互联网应用开发之我见

互联网应用开发 随着互联网用户的快速升级,互联网的应用也在迅速膨胀,这个就给了很多软件工程师发挥自己聪明才智的机会,但是,如何才能够快速了解互联网应用开发流程及选用合适的开发工具呢?在新技术和新概念层出不穷的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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值