互联网应用开发 随着互联网用户的快速升级,互联网的应用也在迅速膨胀,这个就给了很多软件工程师发挥自己聪明才智的机会,但是,如何才能够快速了解互联网应用开发流程及选用合适的开发工具呢?在新技术和新概念层出不穷的IT
世界如何选择合适的技术快速完成开发任务就摆在了广大工程师的面前,经过多年的开发实践和互联网应用运营,我在此总结一下自己的经验,希望能够给进入这个领域不久的软件工程师一个良好的指导,避免走过多的弯路。 (一)应用分类 目前互联网已经覆盖了有线和无线,甚至即将覆盖电视网络,所以针对不同的终端,应用分类也不同,从应用场景可以分为:基于PC
终端的、基于智能无线终端的和基于电视机顶盒终端的。 针对这些终端的应用开发差别仅在适应不同终端而要采用不同的开发工具,但是应用的服务器端可以是完全相同的架构,所以下面从客户端及服务器端两个点分别讲述所需要的技术及开发工具。 从上面的网络架构图上基本可以分为三个层面:客户端、代理或者接口服务器、应用服务器。客户端很好理解,就是面向最终用户的各种界面,代理服务器是桥接用户和实际业务逻辑或者应用系统的层面,这些服务器只负责通信和转发请求及数据,可以起到负载均衡和屏闭应用系统的作用,应用服务器层面是实际运行各种应用系统的逻辑层,也是工程师重点关注的层面。其中涉及到开发工作的只有客户端和应用服务器方面,而代理层都有成型的系统支持,只涉及到部署和维护工作。 (二)角色分配、技术领域及开发平台选择1.客户端(1)无线终端 今后无线终端的发展方向是智能终端,虽然系统繁多,但是目前看占有市场份额最大的只有:
Apple
系列(
IPhone
、
IPad
),
WebOS
,
Android
,针对这些主流的智能终端系统有不同的开发平台。 l Apple
系列是苹果公司自主研发的基于
C++
语言的开发平台; l WebOS
是基于
HTML+javascript
的技术; l Andriod
是基于
Java
的技术; (2)PC
终端 目前
PC
(含笔记本)还是最主要的互联网应用终端,而且是最为成熟,应用最为丰富的终端,是互联网应用主要的承载体,因为
PC
终端的操作系统相对固定,应用的界面适配也通过
OS
实现,所以应用系统开发不用过多的考虑这些方面,而是关注应用逻辑本身。 l 基于浏览器的应用只要适配各种浏览器本身就可以,主流的浏览器为
IE6/7/8
,
Firefox
,
Chrome
,现在的很多开发工具都已经适配了以上的浏览器,所以主要精力放在利用这些开发工具开发相应应用就行,涉及到的工具有:页面文档
html,xhtml
编辑器,页面修饰工具
CSS
编辑器,页面脚本代码
javascripts
、
flash
编辑器。在这个层面涉及到的角色有
UI
设计及制作(俗称美工),
javascript
工程师。开发利器分别是
UI
设计用的
Photoshop
,
UI
制作用的(
html
,
css
)
Dreamweaver
,程序开发目前最好的
javascript
框架及工具套件是
jQuery
,
flash
开发工具是
Flex Builer
。 l 基于客户端的的应用开发工具分为
Linux
和
Windows
系统的,基于
Windows
操作系统的开发工具为
Delphi
,
VC++
,
C++Builder
等,基于
Linux
操作系统的开发工具为
Eclipse
及相关插件。开发客户端要求不仅了解相关工具实现
UI
的方法,而且必须深入了解进程、线程原理和编程方法,还必须熟悉网络通信的原理和编程方法,另外还要注意,虽然客户端软件完全支持数据库的操作,但是基于
web
的应用,最好不要使用客户端软件直接访问数据库,而是通过服务器端的应用系统操作数据库,然后将所需要数据通过通信渠道传递给客户端软件。 (3)电视机顶盒 机顶盒目前虽然还不是主流应用终端,但是随着国家三网融合的进程,会逐步成为用户获取信息的一个主要终端的,机顶盒的系统多是是嵌入式
Linux
,所涉及的开发工具还是以
JAVA
为核心的,今后的发展和技术演进还得进一步跟踪、学习。 2.服务器端(1)配合及时通信客户端的服务器端应用系统 这种系统是早期
C/S
架构的沿袭和演化,要求客户端和服务器端建立长久通信连接,而且两个端点的状态变化能够及时通知另一端,典型的开发工具是
C++
等编译语言,要求能够实现所有业务逻辑,同时管理各项进
/
线程,还要维护众多客户端系统的状态。 (2)Web
应用的服务器端应用系统 这种系统的应用场景为单向内容浏览或者伪实时交互系统,涉及到的技术及开发工具为
JAVA
、
.NET
、
PHP
,针对这些开发环境有不同的开发平台。 l 基于
JAVA
的开发框架为
SSH
或者类似的
J2EE
架构,
SSH
是目前中
/
轻量级的企业
web
应用系统架构中最好的搭配,第一个
S
代表
Struts2
,需要熟悉
JSP
和各种优质的标签库使用方法,推荐使用
jQuery
标签库,第二个
S
代表
Spring
,是一个很好的业务逻辑实现层,也是通过
Java
语言实现的,
H
代表
Hibernate
,是数据持久层,需要熟悉结构化数据映射为面向对象数据的思想和方法,通过这三者的有机结合就能够构建出一个高性能、高可靠性、易维护的应用系统。 l 基于
.NET
的框架,涉及到的开发工具及平台是统一集成在
Visual.net
平台上的,其中包括了表现层的
ASP
技术、逻辑层的
C#,C++
技术。 l PHP
系统目前是
web
应用系统中占有比重最大的一种,从早期的纯脚本语言演变到了如今的面向对象语言,有很多优秀的框架可供选择,下面列举几个供参考: n 1.Yii Yii
是一个基于组件的高性能的
PHP
的框架,用于开发大规模
Web
应用。
Yii
采用严格的
OOP
编写,并有着完善的库引用以及全面的教程。从
MVC
,
DAO/ActiveRecord
,
widgets
,
caching
,等级式
RBAC
,
Web
服务,到主体化,
I18N
和
L10N
,
Yii
提供了今日
Web 2.0
应用开发所需要的几乎一切功能。而且这个框架的价格也并不太高。事实上,
Yii
是最有效率的
PHP
框架之一。 n 2.CodeIgniter CodeIgniter
是一个应用开发框架
——
一个为建立
PHP
网站的人们所设计的工具包。其目标在于快速的开发项目:它提供了丰富的库组以完成常见的任务,以及简单的界面,富有条理性的架构来访问这些库。使用
CodeIgniter
开发可以往项目中注入更多的创造力,因为它节省了大量编码的时间。 n 3. CakePHP CakePHP
是一个快速开发
PHP
的框架,其中使用了一些常见的设计模式如
ActiveRecord
,
Association Data Mapping
,
Front Controller
以及
MVC
。其主要目标在于提供一个令任意水平的
PHP
开发人员都能够快速开发
web
应用的框架,而且这个快速的实现并没有牺牲项目的弹性。 n 4. PHPDevShell PHPDevShell
是一个开源(
GNU/LGPL
)的快速应用开发框架,用于开发不含
Javascript
的纯
PHP
。它有一个完整的
GUI
管理员后台界面。其主要目标在于开发插件一类的基于管理的应用,其中速度、安全、稳定性及弹性是最优先考虑的重点。其设计形成了一个简单的学习曲线,
PHP
开发者无需学习复杂的新术语。
PHPDevShell
的到来满足了开发者们对于一个轻量级但是功能完善,可以无限制的进行配置的
GUI
的需求。 n 5. Akelos Akelos PHP
框架是一个基于
MVC
设计模式的
web
应用开发平台。基于良好的使用习惯,使用它可以完成如下任务: ◆
方便的使用
Ajax
编写
views ◆
通过控制器管理请求(
request
)及响应(
response
) ◆
管理国际化的应用 ◆
使用简单的协议与模型及数据库通信 你的
Akelos
应用可以在大多数共享主机服务供应方上运行,因为
Akelos
对服务器唯一的要求就是支持
PHP
。因此,
Akelos PHP
框架是理想的用于发布单独
web
应用的框架,因为它不需要非标准
PHP
配置便能运行。 n 6. Symfony Symfony
是一个用于开发
PHP5
项目的
web
应用框架。 这个框架的目的在于加速
web
应用的开发以及维护,减少重复的编码工作。 Symfony
的系统需求不高,可以被轻易的安装在任意设置上:你只需一个
Unix
或
Windows
,搭配一个安装了
PHP5
的网络服务器即可。它与差不多所有的数据库兼容。
Symfony
的价位不高,相比主机上的花销要低得多。 对于
PHP
开发者而言,使用
Symfony
是一件很自然的事,其学习曲线只有短短一天。干净的设计以及代码可读性将缩短开发时间。开发者可以将敏捷开发的原理(如
DRY
,
KISS
或
XP
等)应用在其中,将重点放在应用逻辑层面上,而不用花费大量时间在编写没完没了的
XML
配置文件上。 Symfony
旨在建立企业级的完善应用程序。也就是说,你拥有整个设置的控制权:从路径结构到外部库,几乎一切都可以自定义。为了符合企业的开发条例,
Symfony
还绑定了一些额外的工具,以便于项目的测试,调试以及归档。 n 7. Prado PRADO
团队由一些
PRADO
狂热者组成,这些成员开发并推动
PRADO
框架以及相关项目的进行。 PRADO
的灵感起源于
Apache Tapestry
。从
04
年开始,
PRADO
成为
SourceForge
上的开源项目之一。这个项目目前进展到了
3.x
版本。 n 8. Zend 作为
PHP
艺术及精神的延伸,
Zend
框架的基础在于简单,面向对象的最佳方法,方便企业的许可协议,以及经过反复测试的快速代码库。
Zend
框架旨在建造更安全,更可靠的
Web 2.0
应用及
web
服务,并不断从前沿厂商(如
Google
,
Amazon
,
Yahoo
,
Flickr
,
StrikeIron
和
ProgrammableWeb
等)的
API
那里吸收精华。 n 9. ZooP Zoop PHP
框架,意为
Zoop
面向对象的
PHP
框架。 这是个稳定,可伸缩并可移植的框架。从诞生到现在的
5
年间,已经在不少产品开发中被使用。
Zoop
是一个快速,有效并干净的框架。它的伸缩性很好,你可以只安装你需要的功能。 对代码并不很熟悉的开发者也可以通过
Zoop
快速的开发安全的
web
应用。熟练的开发者则可以更加将
Zoop
的弹性利用到极致。 Zoop
建议将
display
,
logic
以及数据层(
MVC
)分开使用。 Zoop
由很多组件和项目集合而成,其中包括
smarty
和
prototype AJAX
框架,
PEAR
模块等。高效的核心组件提供了很多你原本需要自己编码来实现的功能。
Zoop
内置的纠错功能可以通过配置实现生产环境下的错误日志生成,这个错误日志提供了很多信息,可读性很高,可以更轻易的寻找并排除错误。 Zoop
的一个特别之处在于其
GuiControls
,在
PHP
中是一个相当革新的想法。它提供了很多
form widgets
与验证完整的集合到一起,并形成了一个可以轻松打造个性化
GuiControls
的框架。 n 10. QPHP QPHP
,意为快速
PHP
,它是一个与
ASP.NET
类似的
MVC
框架。基本上它是这样一个情况: ◆
整合了
Java
和
C#
的美感 ◆
除去了在其他
PHP
框架中使用的
Perl
形式的意义含糊的语言 ◆
大量基于
OOP
的概念 以下方面只涉及到部署和配置,基本不需要大量开发,承担该工作的角色是运维工程师。 (3)数据库 数据库的选择也非常丰富,主要包括成熟的大型商业数据库和开源的高性能数据库,
Windows
平台上最好的数据库是
SQL Server
,
linux
上开源的数据库是
MySql
,企业级应用的商业数据库是
Oracle
,当然还有其他很多的数据库可供选择,但是针对互联网应用所占比重不大,在此不逐一说明。 (4)Web
服务器 Web
服务器分为静态和动态两种,静态高性能服务器最常使用的是
Nginx
、
Apache
,动态服务器最常使用的是
ASP
(基于
Windows
的
.NET
系统)、
Tomcat
(基于
Java
和
PHP
)、
Resin
(基于
Java
),通过动静态
Web
服务器的结合可以提供动静态复合功能的
Web
应用。 (5)缓存服务器 这层服务器是进一步提高
Web
应用系统响应效率的有效模块,通过这个层面可以将来自客户端的数据请求直接从缓存服务器提供出去,而不需要多次访问
Web
应用系统,从而提高效率和降低
Web
服务器的负载。缓存包括静态页面及资源缓存、文件缓存、数据缓存几个方面: n 静态页面及资源缓存采用的系统是
Apache
代理服务器及
Squid
等系统; n 文件缓存主要采用分布式文件系统及分级备份策略系统; n 数据缓存可以选用
memcached
。 综合以上所述,互联网应用系统开发的过程及分工基本如下: 序号 过程 承担角色 1. 需求分析 架构师及产品设计人员; 2. UI
设计 美工及产品设计 3. 页面制作 美工及产品设计 4. 系统设计 架构师 5. 客户端开发 Delphp,C++,javascript,Apple,Andriod
工程师 6. 服务器端开发 ASP
,
C#
,
C++
,
PHP
,
JAVA
,
JSP
工程师 7. 数据库设计及维护 架构师,维护工程师 8. 系统部署及维护 维护工程师
转载于:https://www.cnblogs.com/gxldan/archive/2011/12/07/4066788.html