站在巨人的肩膀上做软件开发

来源:互联网 发布:男士连体裤 知乎 编辑:程序博客网 时间:2024/06/09 21:44

不管你相不相信,不管你承不承认,云计算已经大面积铺开了。

 

开发一个JavaEE应用程序,需要自己大费周章搭建一个Websphere Application Server, 不妨用装有WAS的Amazon EC2 Machine Image,另外还需要存放业务数据的地方, 不妨用装有DB 2的Amazon EC2 Machine Image。开发一个Web应用程序,需要花大量精力设计系统架构以确保用户增长时能动态平稳地扩展后台服务器,这时不妨考虑在Google App Engine开发你的Web应用程序。站在巨人的肩膀上做开发, 这无疑节省了开发者的大量时间。学会借力,四两拨千斤,软件工程师们才有可能在云计算时代发挥好创造性。其实我们曾经一直在借力,我们一直也被告知不要重新发明轮子,而且确实没有必要重新发明轮子。当我们在Windows上面开发桌面应用程序时,我们没有直接去调用Native API,而是用MFC, VCL等类库作为基础设施构建我们的应用程序。当我们在开发Web后台应用程序时,我们没有从无到有搭建软件架构,我们被告知要用Struts,要用Spring,于是我们很快就学会了Spring+Struts+Hibernate。当发展到Web2.0的时候,我们依然没有用JavaScript重新开发一套JQuery或者Dojo,老实说,我们就算想开发,也十有八九不会整得比人家好。我们其实已经习惯了站在巨人的肩膀上。在云计算时代,我们需要把这个习惯坚持下去作为行为准则。当我们想要为我们的Web应用程序加入地图功能的时候,我们千万不要自己从无到有整个地图出来(考察到时间和金钱成本,估计基本上不可用),我们可以直接用几行简单的JavaScript API去调用Google Map API。我们要善于利用好各个云计算提供商的API(现在最重要的API应该是Google Data API), 并且我们还可以利用Open API把我们的Web应用程序嵌入到校内网,开心网,淘宝网,共享他们的亿万用户资源。

 

云计算产品按照提供的服务类别大致有以下三类:

1. Infrstructure As a Service, 提供虚拟机供用户使用,基本上就是将硬件虚拟化,然后在上面安装一台虚拟的操作系统,用户可以远程访问提供出来的虚拟机,代表是Amazon的EC2,如果你开发的软件恰好要在SLED 10.3上运行,你又不想自己装一台SLED 10.3,那就租借一台SLED 10.3来做测试。

2. Platform As a service, 提供中间件和平台服务,就好像把DB2/Oracle和WebSphere/Weblogic放到互联网上供用户使用,代表是Google的GAE,MS的Azure和Amazon的S3,有了这样的中间件,你就可以集中精力去关注应用程序的业务逻辑了。

3. Software As a service,将最终应用程序和解决方案作为服务通过网络发布出去, 代表是Salesforce和ZOHO

 

作为软件工程师,需要多关注前面2类云计算产品。

原创粉丝点击