现代Web应用开发者必备的六大技能
过去,应用开发需要注重大量的专业知识,程序员只需关注单一的语言(比如COBOL、RPG、C++等),并利用该语言创建应用。而如今,时代在变迁。Web不再是单单关注独立的一面。相反,一个现代化的Web应用开发者应该是“样样精通”。他们不仅要理解开发方面还要明白Web应用安全漏洞问题,了解如何与其他设备集成在一起等等。往深了说,他们还需要了解这些应用程序是如何运行在平板电脑和智能手机上的。
换句话说,Web应用开发正变得更加复杂化。它迫切需要一个不断增加以及不断发展的配套技能。
那么,现代Web应用开发者理应具备哪些技能呢?作者 Joe Stangarone总结了几大领域专家的意见(也包括他自身的想法),这六大技能是每位Web应用开发者必须具备的:
1. 安全
过去,企业在内部安装应用,基于防火墙背后的应用无法与第三方服务或应用进行通信。而随着软件的发展,现代Web应用能够与其他设备进行集成,并存储在云服务器上或者访问多种类型设备。因此,安全问题显得尤为重要。
“作为一名应用开发者(web/desktop),深入理解应用程序的安全性是最为重要的技能之一。”Veracode首席安全顾问Stephen Jensen说道,“在当今世界,有关安全问题的新闻不绝于耳,大多数是揭露数以百万计的人们的敏感信息。因此,Web应用开发者必须知道如何预防常见的漏洞,比如Cross-Site Scripting (XSS),SQL注入等。为了确保应用在创建过程中免受安全问题的恶意攻击,同时也为了保护用户潜在的敏感信息问题,这也是所有开发者应当学习的必备基础技能。”
2. 用户体验(UX)设计
“随着移动设备用户需求量的不断增加,开发者需要充分理解用户体验设计显得愈发重要。”Raster Media CEO Michael Smith说,“设计团队单独负责某款应用的用户体验的日子已经一去不复返了。开发者必须考虑互动、动画、速度以及各个APP之间的通信等问题。”
我完全赞同这一观点。用户体验设计有几大重要因素,首先,用户的期望有所上升。用户下载一款新的应用,他们想立即知道它是如何运行的。他们希望从业务应用中获取相同的体验。其次,用户有选择的余地。如果不喜欢这款应用,他们会寻找另一款代替。由于用户的期望值增加以及竞争的加剧,更为直观的界面需求比以往显得更加重要。
3. 自适应/响应式设计
谈及UX设计,Web App开发者必须建立可随处运行的应用程序。现在的问题不再是“用户如何与我的应用进行交互?”而是演变成“用户与我的应用如何在每款设备类型上进行交互?”
想要做到这一点并不容易。你必须回答以下这些问题:“智能手机上的按钮设置在哪里?你如何在小屏幕上格式化数据表?当设备从人像模式切换至风景模式会发生什么?”总之,Web开发者必须知道让Web应用适应不同屏幕大小的方法。
针对跨平台/设备,响应式设计和自适应设计主要两大方法:
- 响应式设计使用流体网格以及CSS3媒体查询来适应各种屏幕大小/类型上的应用。你可以通过Web找到各种响应式设计案例。例如 TheNextWeb就是个典型的案例。你会发现,当你调整浏览器大小时,该网站会自动适应新的尺寸。
- 自适应设计根据不同的设备提供不同的HTML页面。比如,一款独立的Web应用可能需要3个独立的表示层(HTML):一个是PC端,一个是平板电脑,另一个则是智能手机。例如,在不同的设备上访问 Web App,外观和行为显示的均各不相同。
那么哪一种方法最好呢?我想说它们有各有各的优势。响应式方法对于Web网页设计以及Web应用信息来说是个不错的选择;而自适应方法可更好的适用于数据驱动Web应用,尤其是包含那些数据表的应用。为什么?这是因为它让开发者能够更好的控制数据结构和样式,而不是试图去适应多种屏幕尺寸上的单个表格,自适应设计方法可让你为每款设备创建不同的表单。
4. JavaScript
开发者总会为他们选择的编程语言而争论。你无法说服一个Java程序员称赞PHP是最好的,反之亦如此,就像你也无法说服一个PHP程序员赞同Java是最好的。在Web应用中开发者大多数会选择使用JavaScript。
“随着移动和Web桌面应用的发展,JavaScript已快速成为最为重要的计算机语言。” Coordinato创始人Ben Bakhshi表示,“不少业内人士认为利用JavaScript编码将在未来10年内显著增加。”
5. Web应用架构
在Web开发上,应用架构变得比以往更加重要。应用体系架构直接影响到应用可扩展性、灵活性,以及集成其他Web服务和应用的能力。如果开发者想要创建一款有用的、可持续性的应用,那么理应深刻掌握Web应用架构知识。
“Web应用开发者应该充分关注Web应用架构”,MRC软件开发经理Tyler Wassell说,“开发者应该了解,所开发的应用程序如何与所有系统组件进行交互,以及底层架构将如何影响诸如可移植性、可维护性、可用性等性能情况。”
6. API集成
现如今,API已发展成为Web开发一个重要的方面。从本质来讲,API让不同的Web服务之间相互通信。开发者可以通过其他应用/服务上调用数据创建应用。
SimpleCollegeRecipes网站创始人兼CEO Brendan O’Connor认为,“API集成已成为现在Web应用开发者必备的技能。API允许你从其他网站上整合内容和信息。可以说,API使人人受益,包括终端用户,API供应商以及程序员自己。”
总结:
Web应用开发正在不断演变,Web开发所具备的技能也在不断更新变化中。开发者唯有不断进取、学习新的知识才能在开发行业中站住脚。当然,想要掌握每一种Web(移动Web)技能,几乎是不可能的,大部分公司无法为员工给予Web以及移动开发方面不同的解决方案,不可能做到面面俱到。
那么,你的公司是如何解决日益复杂的Web应用开发的?
现代Web应用开发者必备的六大技能的更多相关文章
- 每个Web开发者必备的9个软技能
对于一份工作,你可能专注于修炼自己的内功,会在不自觉中忽视软技能.硬技能决定你是否能得到工作,而软技能能够表明你是否适合这份工作和适应工作环境等.所有的公司都有属于自己的文化,并努力将这些文化传承下去 ...
- [转]WEB开发者必备的7个JavaScript函数
我记得数年前,只要我们编写JavaScript,都必须用到几个常用的函数,比如,addEventListener 和 attachEvent,并不是为了很超前的技术和功能,只是一些基本的任务,原因是各 ...
- Android开发者必备的42个链接
http://mobile.51cto.com/ahot-426035.htm Android开发者必备的42个链接 下面收集了42个帮助大家学习Android的内容链接,部分内容是面向初学者的,帮助 ...
- iOS开发者必备的10款工具
当前iOS和Android两大移动操作系统“二足鼎立”,几乎覆盖了市面上大部分的智能手机.相比Android,iOS开发适配更简单,且随着各种实用工具和Swift语言的出现,iOS开发门槛地降低,开发 ...
- .NET开发者必备的11款免费工具
原文:.NET开发者必备的11款免费工具 如今,HTML5,jQuery,JavaScript等等这些热门技术,受到了开发者们的强烈追捧,有了这些开发工具也为开发者们减轻了许多负担.本文为开发者介绍了 ...
- Web前端-CSS必备知识点
Web前端-CSS必备知识点 css基本内容,类选择符,id选择符,伪类,伪元素,结构,继承,特殊性,层叠,元素分类,颜色,长度,url,文本,字体,边框,块级元素,浮动元素,内联元素,定位. 链接: ...
- 开发者必备的12个JavaScript库
现在 web 设计是最有趣的了,做好 web 设计不仅要熟练使用 Javascript,css 和 html 等,还要有自己的创意设计.为了方便大家发挥自己的创意,就产生了很多 JS 框架,Node. ...
- [福利] 开发者必备的 Chrome 插件——ChromeSnifferPlus
Chrome Sniffer Plus: Chrome 探测器,可以探测正在使用的开源软件或者 js 类库,开发者必备. 通过本插件,您可以探测: javascript 库: jQuery.ExtJS ...
- 前端开发者必备的Nginx知识
摘要: 最常用的Web服务器 -- Nginx 原文:前端开发者必备的Nginx知识 作者:ConardLi Fundebug经授权转载,版权归原作者所有. Nginx在应用程序中的作用 解决跨域 请 ...
随机推荐
- iOS中assign、copy 、retain等关键字的含义
iOS中assign.copy .retain等关键字的含义 转自:http://my.oschina.net/majiage/blog/267409 assign: 简单赋值,不更改索引计数cop ...
- Amoeba -- 阿里巴巴工程师的开源项目之一陈思儒
http://www.kuqin.com/opensource/20081023/24026.html 个人博客 http://dbanotes.net/web/page/44 阿里巴巴分布式服务框架 ...
- DDD实践问题之 - 关于论坛的帖子回复统计信息的更新的思考
之前,在用ENode开发forum案例时,遇到了关于如何实现论坛帖子的回复的统计信息如何更新的问题.后来找到了自己认为比较合理的解决方案,分享给大家.也希望能和大家交流,擦出更多的火花. 论坛核心领域 ...
- mysql 内连接、左连接、右连接
记录备忘下,初始数据如下: DROP TABLE IF EXISTS t_demo_product; CREATE TABLE IF NOT EXISTS t_demo_product( proid ...
- twobin博客样式—“蓝白之风”
自暑假以来,囫囵吞枣一般蒙头栽入前端自学中,且不说是否窥探其道,却不自觉中提高了对网页版面设计的要求,乃至挑剔.一个设计清爽美观的网页能让读者心旷神怡,甚至没有了阅读疲劳:而一个设计粗劣嘈杂的网页实在 ...
- Hibernate 延迟加载原理
如何简单的理解延迟加载?开发中常见的org.hibernate.LazyInitializationException no session错误又是怎么产生的?下面通过一个简单的例子来解析一下 ...
- 我所理解的Cocos2d-x
我所理解的Cocos2d-x(完全基于Cocos2d-x3.0,深度剖析计算机图形学,OpenGL ES及游戏引擎架构,全面提升游戏开发相关知识) 秦春林 著 ISBN 978-7-121-246 ...
- 使用Java纯代码实现MySQL的连接
建立数据库 1. 点击连接-->MySQL: 输入连接名 . 主机名/IP地址 .端口 .用户名.密码(没有密码就省略),然后点击确定,建立的表格是灰色表示关闭状态,双击开启 2. 重新创建 ...
- PHP的性能演进(从PHP5.0到PHP7.1的性能全评测)
本文是最初是来自国外的这篇:PHP Performance Evolution 2016, 感谢高可用架构公众号翻译成了中文版, 此处是转载的高可用架构翻译后的文章从PHP 5到PHP 7性能全评测( ...
- SQL Server中的高可用性(3)----复制
在本系列文章的前两篇对高可用性的意义和单实例下的高可用性做了阐述.但是当随着数据量的增长,以及对RTO和RPO要求的严格,单实例已经无法满足HA/DR方面的要求,因此需要做多实例的高可用性.本 ...