2015年,软件开发界发生了很多变化。有很多流行的新语言发布了,也有很多重要的框架和工具发布了新版本。下面有一个我们觉得最重要的简短清单,同时也有我们觉得值得你在2016年花时间精力去学习的新事物的一些建议。
大趋势
在过去的几年里,有一个越来越明显的趋势是web应用的商业逻辑逐步从后端转移到了前端,然后后端变得只需要处理简单的数据API。这就让前端开发框架的选择变得尤为重要了。
另外一个重要的改变是2015年发布的 Edge 浏览器。这是IE的替代品,拥有全新的界面和更好的性能。跟IE不一样的是它同样采用了跟 FireFox 和 Chrome 一样的快速发布策略。这让JavaScript开发者社区能够以周为单位获得最新版JavaScript和 Web标准特性支持而不是像过去一样需要等很多年。
语言和平台
Python 3.5 在今年发布了,带来了很多新特性。比如 Asyncio,为你带来了类似 node.js 的事件机制,还有type hints。鉴于Python 3 终于真正地火起来了我们强烈建议你替换掉 Python 2。几乎所有的库都已经支持 Python 3了,所以现在是一个升级历史遗留代码的好时机。
PHP 7 是一个重要的新版本,这个版本修复了很多问题并且带来了新特性和性能提升(看看概览)。 PHP 7 大约比 PHP 5.6 快2倍,这对一些大型项目还有WordPress 和 Drupal之类的CMS系统影响很大。我们强烈推荐 PHP之道,已经更新到最新的PHP7版本。如果你需要更快的速度并且不介意换一个解释引擎的话,可以试试Facebook在用的 HHVM。
JavaScript 也以ES2015 标准 (大家通常叫做 ES6)的形式发布了更新。为我们带来了激动人心的新功能。感谢大多数浏览器版本的快速更新,对 ES2015 的支持已经非常棒了,并且还有 Babel.js这样的工具可以让你的新代码跑在低版本浏览器上。
Node.js 在这一年变化很多,开发者社区曾经分裂成 Node.js 和 io.js,然后又再度合并。经历过这些之后的结局就是我们得到了一个有很多代码贡献者积极维护的项目,并且拥有了两个版本的 Node :一个稳定的LTS (长期支持) 版本,这个版本注重稳定性,比较适合长期项目和大公司,和一个非长期支持但是最快实现新特征的版本。
Swift 2 在今年初发布了。这是 Apple 出品的旨在简化 iOS 和 OS X 开发的现代编程语言。几周前, Swift 正式开源并已经兼容 Linux。这意味着你可以用它来编写服务端应用了。
Go 1.5 在几个月前发布了,并带来了重大的架构调整。在 2015 年它变得越来越流行并被早期创业项目和开源项目所采纳。这门语言是 非常简单的,所以花一个周末你就能学会。
TypeScript 是一个可编译成 JavaScript 的静态类型语言。这是由微软开发的,所以跟VisualStudio 和开源的 VisualStudio Code editors 完美地集成了。它很快就要大红大紫了,因为即将到来的 Angular2 就是用它写的。静态类型对大型团队的大型项目特别有用,所以如果你正在大型团队中做大型项目,或者仅仅出于好奇,你也应该尝试一下TypeScript 。
如果为了好玩儿,你也可以试试某种函数式编程语言比如 Haskell 或者 Clojure。也有有趣的高性能语言比如 Rust 和 Elixir。如果你在找一份程序员的工作的话,职业开发语言比如Java (在第8版中有一些很好的新特性) 和 C# (感谢 Visual Studio Code 和 .net core 实现了跨平台开发和运行) 都值得你在2016年投入时间。
挑一个或几个学习: Python3, Go, PHP 7, ES2015, Node.js, Swift, TypeScript
JavaScript 框架
JavaScript框架是web开发技术栈中非常重要的一部分,所以我们单独拿一小节来说这个。今年有两个新标准—— Service Workers 和 Web Assembly,基本改变了现代 Web APP的开发方式。还有一些我们觉得你在2016年应该保持关注的框架新版本发布。
Angular.js 已经成为了大型企业首选的 JavaScript 框架。这个框架即将发布下一个大版本的消息相信大家已经听过一段时间了,在今年初的时候 Angular 2 发布了开发者预览版。相对 Angular 1 而言是一次颠覆性的重构,而对我们而言带来了巨大的改进。一旦正式发布就很有可能成为企业应用开发框架的首选,所以 Angular2 的开发经验将会是你简历里很好的一个加分项。我们建议再等几个月直到最终版正式发布之后才用于生产,不过你不妨现在就读一读他们的 快速上手指南。
React 在2015年里持续升温并且持续升级,越来越多的新项目采用它开发。几个月前他们发布了新的开发工具 。 Facebook 还发布了用于开发支持 Android 和 iOS 平台原生应用的 React Native 框架,这个框架使用了原生界面配合运行在后台的JavaScript线程实现基于React开发原生应用。可以参考我们今年发表的React初级教程 。
Polymer 1.0 是在5月份发布的。这是第一个稳定且可用于生产的版本. Polymer主要是基于 Web Components 标准, 这是一份将 HTML, JS 和 CSS 打包成独立组件并便于快速引用的标准。目前只有 Chrome 和 Opera 支持 Web Components标准,但是 Polymer 搞定了浏览器兼容性问题。
Ember.js 也发布了一个新版本。 Ember 2 带来了模块化功能、废弃了一些旧特性并提升了性能。 Ember 遵循语义化版本并且开发团队尽可能保证大家能够平滑升级。如果你需要一个稳定且易于升级的框架的话,Ember是个不错的选择。
挑一个或几个学习: Angular2, React, Ember.js, Polymer, Web Components, Service Workers
前端
Bootstrap 在过去的一年里变得更加流行了,正在成为Web开发的标配。使用SASS 并支持 flexbox 的第四版将在几个月之后发布,官方保证可以从V3平滑升级 (不会像2年前从 v2 升级到 v3 那样 ),所以尽管放心,你学的第3版的相关知识照样会适用于第4版。
Foundation 是另一个可替代Bootstrap的前端框架。第6版在年初的时候发布了,这个版本主要侧重于模块化,你可以根据需要定制自己需要的部分以便缩短加载时间。
MDL 是一个Google官方发布的用于开发material design webapp 的框架。这个框架在今年初发布并和Polymer目标相似,但是更容易上手。我们曾经写过一篇 精彩的 MDL 与Bootstrap 差异总结。
CSS预处理器也在持续改良。LESS 和 SASS 是当下最流行的两个,大部分功能都差不多。但是,最新的Bootstrap 4 都已经转向了 SASS,所以2016年要学的CSS预处理器中 SASS 获得了一些优势。当然了,也还有更新的 PostCSS 工具值得留意,但是我们强烈建议先掌握了预处理器再来学这个。
挑一个或几个学习: Bootstrap,MDL, Foundation, SASS, LESS, PostCSS
后端
这几年的Web开发有一个非常明显的趋势。越来越多的应用逻辑转移到了前端,然后后端仅仅是API。然而传统的后端生成页面的应用依然还有生存空间,所以我们觉得学一个经典的全站框架依然是非常重要的。
关键取决于你更喜欢那种语言,可选择的非常多。用PHP你可以选 Symfony, Zend, Laravel (还有 Lumen, 这是新一代专注于API开发的框架), Slim 等。用Python 有 Django 和 Flask 。用 Ruby 有Rails 和Sinatra。用Java有 Play 和 Spark。用Node.js你可以选择 Express, Hapi 和 Sails.js ,还有 Go 语言的Revel。
AWS Lambda去年就已经发布了,但是这个概念到现在才稳定并能用于生产。这是一种可无限扩展的完全取代传统后端服务器的云服务。你可以根据API被访问时的特定条件或者路由来定义不同的响应方法。这意味着你可以完全不用管服务器。
另一个趋势是静态站点生成器比如 Jekyll 和 Octopress( 这里有一个完整的同类清单)。这类工具的主要功能是把一堆文本和图片文件渲染成一个完整的静态网站。那些以前通常自己搭一个Wordpress博客程序的开发者现在更喜欢事先生成并直接上传一个静态网站。这样会更加安全(没有后端服务器也不需要数据库)并且性能非常好。结合 MaxCDN 或 CloudFlare之类的CDN服务可以让用户就近访问,明显减少等待时间。
挑一个学习: 传统的全栈后端框架, AWS Lambda, 一种静态生成器
内容管理系统(CMS)
我们主要介绍两种最流行的 CMS系统。都是用PHP写的并且易于部署和上手。他们都因为PHP7的发布获得了明显的速度提升。
最近几年 Wordpress 已经变得早就不仅仅是个博客程序了。它是一个成熟的 CMS/框架,配合插件可以做任何一种网站。高质量的Wordpress 皮肤是一个巨大的市场,很多自由职业者以Wordpress 相关开发为生。配合类似 WP-API 之类的项目你可以把Wordpress变成一组 REST API 。
Drupal 8 在今年发布了。这是一次侧重现×××发最佳实践的重构。使用了 Symfony 2 组件、 Composer 包管理器和 Twig 模板引擎。成千上万的网站在使用 Drupal,它确实是以内容为主的门户网站的一个很好的选择。
数据库
这一年Web开发社区对 NoSQL 数据库失去了一些热情,重新回到了关系型数据库比如 Postgres和 MySQL 身边。这方面著名的例外是 RethinkDB 和 Redis ,他们都很火,我强烈建议你在2016年都试试。
MySQL 是最火并且大部分主机供应商都支持的开源数据库。在5.7版里,MySQL 也提供了JSONcolumns来存储非关系型数据。如果你刚开始接触后端开发,你可能正在找连接到服务器已安装的数据库的方法。很可能是旧版本的,所以你没办法尝试 JSON 类型数据。MySQL已经包含在了很流行的 XAMPP 或 MAMP 之类的软件包里,所以上手很容易。
挑一个学习: Redis,RethinkDB, MySQL/MariaDB, PostgreSQL
移动应用
移动平台一直在进步并且智能机的硬件配置现在跟低端笔记本的性能差不多了。这对于 hybrid 移动开发框架来说是个好消息,基于web技术开发的移动应用将得到更加顺滑、更像原生的体验了。
我们曾经写过一篇不错的 Hybrid应用开发框架概览 你或许会感兴趣。最火的 Ionic 框架 和 Meteor 都在最近发布了1.0版本且都适合做移动应用开发。Facebook 开源的 React Native,可以在后台JavaScript进程里运行 React 组件并更新原生的UI界面,让你可以用几乎同一套代码同时写 iOS和Android应用。
挑一个学习: Ionic, ReactNative, Meteor
编辑器和开发工具
Atom在今年发布了1.0。它是一款使用web技术开发的免费且功能强大的代码编辑器。它背后有一个很多大开发者社区(译者注:github)提供了很多扩展包。它提供好用的自动完成并集成了代码重构和校验工具。差点忘了它还有很多漂亮的皮肤可以选择,并且你可以自己写CoffeeScript 和 CSS 来定制自己喜欢的皮肤。Facebook 已经这么干了,并且发布了名为 Nuclide 的编辑器。
微软在今年年初发布的 Visual Studio Code 给了大家一个惊喜。这是一款支持多种语言并兼容 Windows,Linux 和 OS X 平台的轻量级IDE。它提供了强大的智能代码检查并集成了 ASP.Net 和 Node.js 的调试工具。
NPM,Node.js的包管理器,火得一塌糊涂并已经成为了前端和node开发者的标准包管理器。这是帮你的项目管理JavaScript 依赖最简单的方法并且上手很容易。
目前哪怕是一个人开发也有必要用 Git。它的分布式模型让你可以把任何一个文件夹变成一个版本控制仓库,然后你可以把这个仓库发布到 Bitbucket 或 Github,同步到其他电脑上。如果你还没用过 Git,我们强烈建议你把它加入你2016年需要学习的清单里面。
挑一个学习: Atom, VisualStudio Code, NPM, Git
搞物联网
树莓派基金会提前给我们送来了圣诞礼物,RaspberryPI Zero 一种只卖 5 美金的高性能电脑发布了。它搭载了Linux,所以你可以把它变成一台服务器,一个家用自动化装置,一面智能镜子,或者把它集成到别的电器里面打造一个你梦寐以求的能联网控制的咖啡机。2016年是你应该拥有树莓派的一年。
规划一个漂亮的2016年吧!
我们已经度过了非常棒的2015年,看起来2016年会更有意思。那么2016年你会想学些什么呢?