Web应用开发方式已经改变。很大程度上受到移动大潮兴起、基于云计算的应用和服务增加的驱动,现代Web应用开发与5年前有了很大不同。
发生了哪些改变?我将这些改变分为两类:趋势与现实。现实与趋势之间有什么不同?趋势是可以选择的,而现实不可以。比如,扁平化设计是趋势,你可不使用它,但会有很多人使用它。移动用户正迅速增长,这是现实,无论怎样,你都不能忽略智能手机、平板存在的现实。
现在,我们应该专注现实。那现在Web应用开发者应该接受的新现实有哪些?下文将一一例举。
1.你的应用将遭受攻击
伴随着越来越多有价值的数据移至云端,我们发现现在的黑客入侵Web应用只有一个原因:金钱存入在Web应用中。一个不安全的简单网站,会导致黑客轻易入侵并获取个人(金融)信息——银行帐号被洗劫一空,信用卡和账单还款暴涨,公司利益受损等。
据最近的一份研究显示,49%的Web应用都存在较高的安全隐患。当我们把更多数据放置网上后,安全性是至关重要的,Web开发者为此也正付出最大的努力。
安全对于开发者来说是新的现实。很庆幸的是,大部分现代编程语言具有强大、经过安全测试的框架,可用来快速开发安全的应用。Web开发者可通过以下途径提高应用的安全性:高度熟悉开放万维网应用安全项目(OWASP)TOP 10等,及如何利用内建的第三方安全框架在设计阶段识别存在安全隐患。
2.已不存在“典型的”Web用户
正如上文提到的那样,我们不能忽略移动设备存在这一事实。这对Web应用开发意味着什么呢?我们无法知道用户将如何访问Web应用。可能用智能手机,可能用平板电脑,也可能用PC。我们无从知道,也无法控制。换句话说,“典型”用户的概念已经消失。
夏威夷大学的技术经理 Sid Savara表示,以前用户基本使用键盘、鼠标浏览Web,假如800*600是网站的分辨率,那你只需要专注测试该分辨率即可。如今,现实是分辨率从某些手机的320px跨越至桌面的2500px。针对多种不同的浏览器、硬件进行响应式设计、测试已很普遍。
现在,开发者在开发过程中需要进行多方面考虑。该应用在小型、触摸屏上的效果怎么样?是否适合大型、高清晰度的显示屏。当平板用户从横向的风景模式转为纵向的肖像模式时又会发生什么?这些问题凸显了响应式设计和自适应设计的重要性。
响应式设计利用流体网格和CSS3媒体查询,使应用适应各种类型、大小的屏幕。在互联网上,你可以发现大量响应式设计案例。例如, TheNextWeb就是一个优秀的响应式网站。
自适应设计根据设备发布不同的HTML页面。例如,一个单页面网站可能包含三个独立的表现层(HTML):一个针对PC,一个针对平板,一个针对智能手机。通过应用内的逻辑层来识别用户的设备,并显示正确的表现层。例如,在不同设备上访问“Data Listing: Customer Lookup”,注意观察它的页面和行为。
3.集成已成新的常态
据 Gartner预测,如果应用程序集成没有成为真正的专业领域,那该企业在未来几年内将会在竞争中处于劣势。现实是集成在应用开发中变得至关重要。过去,开发者只需开发Web应用本身的所有功能即可。现在,开发者不仅要专注于应用的功能,同时也要集成其他的应用和服务。“API集成非常火爆” SquareHook CEO Joshua Maag表示,“大部分大型应用都有某种形式的API,你可以在应用中使用。深入了解 Oauth 2.0协议,比允许网站与社交媒体此类的工具进行交互更重要。在我们的应用中,我们使用了很多此类API以从用户喜爱的平台中检索内容。”
4.开发已转移至客户端
现在,用户希望Web应用可以像桌面应用、本地移动应用一样。对Web应用的高要求,需要开发者改变开发方法。
过去,客户端-服务器模式依靠服务器来处理大量的请求,然后再将结果发送到客户端。现在,一切都改变了。用户要求可以和本地移动应用、桌面软件相媲美的更强大、响应式Web应用,更多的应用需要放在浏览器端。
Maag表示,过去,大部分开发者主要依靠服务器端技术解决Web应用中的各项事务。现在,则更加注重客户端,同时期望网站可以完成传统桌面应用、移动应用所具有的功能。
幸运的是,很多框架可以减轻该转变所带来的痛苦。现在有很多优秀的框架,理解它们的功能很重要。如jQuery 和Bootstrap已对Web产生了很大的影响。整个互联网已有1%的网站在使用Bootstrap,这个数量相当多了。还有很多其他的优秀框架,可以帮助解决JavaScript命名空间的问题。Angular和Backbone也是相当不错的框架。
5.没有任何理由设计出糟糕的架构
应用架构设计是最消耗时间,最让开发者头疼的部分。没有合适的资源和专业知识,开发者所开发的应用将不安全,不灵活,且无良好的扩展性。
现在,这种情况改变了。随着开发平台(PaaS、IaaS)的兴起,开发者可绕开令人头疼的架构问题,设计出具有良好架构的项目。换句话说,开发者没有任何理由为应用设计出糟糕的架构。
Maag表示,随着PaaS和SaaS平台活跃度的增强及新商业项目的增加,创建一个具有良好扩展性的应用已不再需要大型昂贵设备。开发者需要理解他们应用的架构,及如何设计它才能保证持续的成长即可。现在比以前更容易构建真正具有扩展性的应用,开发者只需花点时间学习一种或几种此类平台即可,这是Web开发的新方式。
原文:5 new realities that developers must learn to accept
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。