网站在线发布网站外链,友情链接,网站收录,APP推荐

友情链接互换买卖平台

技术之路十六载

后台-系统设置-扩展变量-手机广告位-内容广告位一

蓦然回首,技术之路已走过十六载。记录一下那些年的技术与经历。

初出校门

学的是计算机网络专业,技术相关的课程学习了C语言、HTML网页设计 、Java程序设计、SQL Server等课程。那时候也了解到了软考这样一种考试并报名参加了考试,想着考取一个证书可能会对将来找工作有所帮助,经过半年多的准备,效果还不错,在毕业前拿到了软考中级网络工程师证书。

但说实话,那时候对将来会从事什么样的工作,还不是很确定。还是比较迷茫的。虽然学习了程序设计、数据库等等一些知识,但对于软件行业、企业中实际用的技术还没有太多具体的认识。

临近毕业,在一个同学那里了解到一个培训机构,主要培训Java开发、数据库方面,培训期间会分组做一些小项目案例,培训机构会请一些企业在职人员讲课以及带项目实战。当时觉得自己确实需要系统地学习一下,并且那个培训机构还不错。就这样报名参加了大概半年的培训学习。在培训结束时,也还算顺利地找到了一个软件开发的工作。

现在看来,当时决定参加这个培训,就拉开了后来IT行业从业的序幕。

SSH框架

培训结束时,还算顺利地找到了一个Java开发的工作,主要是做Java B/S架构的项目。当时Java最新版本是1.5,项目所使用的主流技术是JSP,Struts,Hibernate,Spring等,即现在较少提起但当时很流行的SSH框架。

SSH框架即使用Spring、Struts、Hibernate结合起来的集成框架,印象中应该是2013年之前比较流行的一种Web应用程序开源框架。

SSH框架很好的对应了MVC模式。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring管理Struts和hibernate。

tupian

SSH框架

JSP全称Java Server Pages,是一种动态网页技术标准。它以静态HTML页面为模板,将Java代码和特定变动内容嵌入到静态的HTML页面中,即Java代码与HTML代码混合在同一个JSP文件中。

通常,SSH框架构建的项目最终的部署文件为.war后缀名的压缩文件,部署到Tomcat或其他WEB服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML返回给请求者。

所以,当我们用浏览器访问JSP页面时,整个页面的HTML内容都是由服务器响应回来,看到的效果是整个页面重新加载。相比于现在流行的前后端分离、按需加载的模式,体验上会差很多。

那时也兴起了AJAX技术,在我的项目中也有所使用。AJAX技术本质上是使用一系列技术(例如 HTML, JavaScript, CSS、DOM, XML、XMLHttpRequest)的一种新方法。它可以做到页面按需加载,而不是刷新整个页面,提升了用户体验。使用AJAX的页面,一般会存在如下的代码。

tupian

AJAX

当时的Java开发人员同时要承担后端业务逻辑代码、JSP页面代码的开发,要掌握常用的JavaScript、CSS等,且当时没有很多流行的JavaScript框架,大多是原生的JavaScript。至于jQuery这些也是后来渐渐发展起来。

数据库

数据库方面,当时项目中大多使用SQL Server、Oracle,在我参与的一个政务项目中,还用到了IBM DB2。项目在不同数据库之间切换,使用Hibernate作为数据持久层的优势就体现出来了。

Hibernate是一个开源的对象关系映射框架,它对JDBC进行了轻量级的对象封装,将对数据库的操作转换为对Java对象的操作,Hibernate根据底层数据库的实际情况生成适合的SQL语句,屏蔽不同数据库实现之间的差异。 开发人员只需按照面向对象的思维去操作数据库,基本不用考虑不同数据库之间的差异。

YUI与extJS

早期的前端框架,印象最深的就是YUI和extJS。YUI 库,全称Yahoo! UI Library。是一组工具和控件,用JavaScript写成, 为的是用DOM 脚本,DHTML和AJAX等技术创建丰富的网页交互式应用程序。

extJS是从YUI发展起来的一个前端框架,拥有强大的UI控件和交互效果,特别是表单和列表控件。它的页面风格如下。

tupian

extJS风格的页面

RIA

RIA(Rich Internet Applications)富互联网应用,具有高度互动性、丰富用户体验以及功能强大的客户端。接触这个概念大概是在2007年。

传统网络应用程序的表示层建立于HTML页面之上,而HTML是适合于文本的,它的页面组件、展现形式以及交互性相对简单,没有桌面程序那么丰富,也就是用户体验不是很好。而RIA的出现就是为了解决这个问题。

使用RIA可以将部分原本需要在后台程序处理的问题转移到客户端,使数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快,且数据往返于服务器的次数更少的用户界面。

从这个视角来看,当前流行的前端框架Vue、React等构建的应用也算是RIA应用了。

J2ME

时间来到2008年,工作过程中,机缘巧合接到了一个私活,是做一个手机端“空中充值”应用。现在看来,这是我的工作与手机结缘。

那时移动网络还是2G时代,网络流量是比较昂贵的,记得当时不小心下载了一首MP3,大概3MB左右流量,手机很快就欠费好几十块。这是移动互联网时代即将到来的前夕。

在2010年以前,大家所使用的手机普遍是诺基亚,摩托罗拉,以及国内的一些手机设备厂商基于MTK做的功能机。常见的手机操作系统是Symbian、WinCE、MTK功能机系统(不太清楚叫什么名字)。

其中诺基亚的Symbian系统,中文翻译为塞班,微软的WinCE系统,在当时也是属于智能手机系统了。Nokia N95/N97系列算是当时的高端手机了,记得那时的价格大概5、6000左右。

我当时使用的手机是Nokia 5700,也是Symbian系统的,记得当时价格2000左右。与现在的手机价格相比较,那个时候手机价格普遍是比较高的。

tupian

Nokia 5700

回到技术,这个“空中充值”项目的手机应用,就涉及到J2ME,使用Eclipse开发工具,需要安装WTK(Wireless Tool Kit)工具包,程序也是通过模拟器运行及调试。WTK最终将项目编译出.jar文件以及.jad文件,其中.jad文件是描述文件,将编译出的.jar文件与.jad文件安装到Symbian系统的同一目录下,即可运行。

LWTLWT(Lightweight Window Toolkit) 是 Motorola 公司对 MIDP 的 javax.microedition.lcdui 原生界面包的一个扩展,可以在 Motorola 系列的手机中像使用 MIDP 界面一样来进行使用,解决了 MIDP 界面不能通过屏幕层次进行控制,以及无法实现个性化控件的问题 。此外,使用LWT做出来的UI界面比原生界面美观了不少。

在“空中充值”这个项目之后,后续的工作中又做了一个手机端OA应用,实现一些工作流程审批的业务功能。通过这么两个项目,基本掌握了J2ME手机端应用开发流程和方法。但总体来讲,当时的手机应用都是比较简单的,而且大部分场景是针对有移动办公需求的商务人士。

有了这些J2ME手机端项目经历,对于之后我从事Android开发工作,入门就变得比较容易了。刚开始Android手机应用的开发也是使用Eclipse开发工具,安装ADT插件开发包。至少从这些流程和概念上,感觉是似曾相识了。

Android

2009年,换了工作,进入手机企业酷派,开始从事Android平台手机应用开发。在这之前,工作中的项目大多是B/S架构的WEB应用开发。

记得当时Android最新版本是1.5。移动网络也已经是3G时代了。智能手机时代刚刚到来,大部分同事也都是刚进入手机开发领域,对全新的Android智能手机平台也都要从头开始学习。

当时HTC是Android阵营头部厂商之一,2008年9月发布了一款HTC G1手机,是世界上第一款使用 Android操作系统的商业性手机产品。我们在开发中,使用真机进行调试并测试时,就使用的这款手机。

tupian

HTC G1

HTC G1手机支持全触摸屏,同时底部区域有一排物理按键以及一个圆形轨迹球,轨迹球用来操作界面上的指针。它既支持触屏操作也支持按键操作。

酷派N930

酷派最早于2009年投入Android平台手机研发,经过一年多的艰苦研发,于2010年底发布了其首款Android旗舰手机酷派N930,在当时是面市比较早的Android手机产品之一。有幸经历了这一研发过程,收获良多。在东莞黄江的伯爵山庄、松山湖创意生活城都留下了很多难忘的记忆。

tupian

Coolpad N930

2009年正是iPhone4手机风靡全球之时,作为手机的颠覆性产品,很多手机企业都纷纷模仿。酷派N930也对原生的Android系统进行深度二次开发,定制开发出了自己的UI系统,集成了TAT动效框架,也有对iPhone的模仿。

tupian

Coolpad N930 音乐APP的Widget

作为公司的首款旗舰机,公司对N930的研发寄予厚望,精益求精。软件方面,自主研发了大量内置APP,比如联系人、短信、邮件、浏览器、天气预报、新闻、电子书、记事本等现如今智能手机都会具备的应用。硬件及整体设计方面也有诸多可圈可点之处。

tupian

Coolpad N930的发布广告

2010年到2015年间,Android平台迅猛发展,国内各手机厂商也得以快速发展,到2015年前后,经过激烈的市场搏杀,最终实力雄厚的手机厂商脱颖而出,赢得了市场,例如小米、华为、OPPO、VIVO等,时至今日,这一市场格局仍基本未变。

Android平台的兴起和发展让人们的生活发生了日新月异的发展。智能手机很快得到普及,且变得越来越物美价廉。同一时期,可穿戴智能设备、物联网、电商、团购、打车、外卖、共享经济等蓬勃发展、百花齐放,移动互联网时代到来了。极大地提升了人们的生活水平,能深刻感受到技术改变了世界。

SaaS

2014年,接触到SaaS软件产品,从这时候起,SaaS逐渐兴起。SaaS是英文Software as a Service的缩写,中文的意思就是:软件即服务。

SaaS的核心概念是软件的服务化。即SaaS将软件看做是一种服务,而不是传统上的软件产品。用户对软件的需求实际上是对应用服务的需求,而用户使用软件实际上是在消费服务,用户可以按需消费。

SaaS模式的提出,是软件行业革命性的变化,彻底颠覆了传统软件行业固有的经营模式。技术方面,SaaS产品也有新的需求,比如更依赖互联网、数据安全性和保密性有了更高要求。此外,页面及功能的灵活可配置化、定制开发、多租户(Multi-Tenant)架构、高性能、可伸缩等等,也都是SaaS产品重要的技术点。

微服务

前面所提到的移动互联网的发展、SaaS模式的发展。都要求技术上也必须要做到相应的发展和支撑,显著的特点就是要支持越来越多的业务、更多的用户、更大的访问量、存储和处理更多的数据等等。微服务技术的应用日益广泛。

微服务可以看作是面向服务的体系结构(SOA)架构的一种变体,它提倡将单一应用程序拆分成若干个小的服务,服务之间互相协调、互相配合。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制交互(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境等。

技术上,选择使用Spring Boot、Spring Cloud构建微服务应用的开发人员和企业越来越多。技术热度逐渐取代了之前流行的SpringMVC、SSM框架等。

tupian

SpringBoot是Spring的升级版,它消除了设置 Spring 应用程序所需的 XML配置,预组装了Spring的一系列组件,以便尽可能少的代码和配置来开发基于Spring的Java应用程序。

SpringCloud是基于SpringBoot来实现的微服务架构开发组件,Spring Cloud是一系列框架的集合,简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。

点滴记录,十六年技术之路,见证了技术变迁,对技术、架构、产品、团队有了更丰富和生动的认识。带着这些收获继续前进...

后台-系统设置-扩展变量-手机广告位-内容广告位二

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Top