Web
Web平台最近取得了两个重大进展——Web Assembly 和 Service Workers,他们打开快速和高效的Web应用程序的门,弥合与本地编译应用程序的差距。Service Workers尤其是渐进式Web应用程序(上文中提到的PWA)的启用技术,并为Web平台的通知提供支持,将来还会有更多的API。
Angular.js 2
Angular.js 2今年发布。该框架由Google支持,非常受企业和大公司的欢迎。它具有大量的功能,使从网络到桌面和移动应用程序的写作成为可能。框架是用TypeScript编写的,这也是编写应用程序的推荐语言。
Vue.js
Vue.js也看到了今年的2.0版本。它借鉴了Angular,React和Ember的好主意,并将它们放入一个易于使用的包中。它也比前两个更轻量级并且更快。
另外两个值得一看的框架是Aurelia和React。去年,React的生态系统变得越来越复杂,因此很难为初学者推荐。但经验丰富的开发者可以将库与GraphQL,Relay,Flux和Immutable.js组合成一个全面的完整堆栈解决方案。
没有前端编译可以绕开Bootstrap,Bootstrap4目前处于Alpha版本,预计在2017年发布。值得注意的变化是新的通用卡组件和flexbox网格,这个现代化的框架,使工作环境更加简单快乐。
后端:全栈后端框架,微框架:Node.js, Python, Java
后端有很多选择,所有这一切都取决于你对编程语言或特定性能需求的偏好。Web开发中的持续趋势是远离后端,将该层转换为由前端和移动应用程序使用的API。但是,一个完整的堆栈框架通常更简单,更快地开发,并且仍然是许多web应用程序的有效选择。
Node.js
Node.js是在浏览器外运行JS的主要方式。它看到了今年的许多新版本,增加了性能和增加覆盖整个ES6标准。Node具有构建快速API,服务器,桌面应用程序甚至机器人的框架,以及创建可以想象的各种模块的庞大社区。在Node.js的框架中你可能想研究:Express,Koa,Next,Nodal。
Python
Python以Django和Flask的形式有了自己的全栈/最小框架组合。 Django 1.10在8月发布,引入全文搜索Postgres和一个大修的中间件层。
Java
Java生态系统还有流行的Web框架可供选择。 Play和Spark是两个固定的选择.
数据库:MySQL,Postgres,MongoDB,Redis。
MySQL
MySQL 8.0将是数据库的下一个主要版本。预计2017年某个时候,它将给系统带来很多改进。MySQL仍然是最受(mian)欢迎(fei)的数据库管理系统,整个行业都受益于这些新版本。
PostgreSQL
PostgreSQL 9.6于9月发布。它带来更好的全文搜索,加快了数据库系统的并行查询和更高效的复制,聚合,索引和排序。 Postgres用于大规模,太字节规模的数据集,以及繁忙的网络应用程序,这些优化在大数据和海量数据时代都是是受欢迎的。
NoSQL
对于NoSQL粉丝,我们可以推荐CouchDB。它是一个快速和可扩展的JSON存储系统,它公开了一个REST-ful HTTP API。数据库易于使用,性能卓越。 PouchDB是一个精神对应的CouchDB,完全在浏览器中工作,可以与Couch同步。这允许你在离线准备的网络应用程序中使用Pouch,并在互联网连接可用后自动同步。
Redis
Redis是我们最喜欢的键值存储,它具有轻量级,快速的特点,并且功能繁多。你可以将其用作智能内存替代方法,作为NoSQL数据存储或进程消息传递和同步通道。它提供了大量的数据结构可供选择,并且即将到来的4.0版本将有一个模块系统和改进的复制。
开发工具:Yarn,Git,Electron,Ansible,Docker。
Yarn
Yarn是由Facebook开发的Node.js的替代包管理器。它是对npm命令行工具的升级,提供更快捷的安装,更好的安全性和稳定的项目构建。它仍然使用npm包注册表作为其后端,因此你可以访问优秀的JavaScript模块。 Yarn与npm使用的package.json格式兼容,而且相较于npm,二者最大的差别可能就是快速安装了吧。
Visual Studio Code和Atom
两个最受欢迎的开源代码编辑器 - Visual Studio Code和Atom在过去12个月中为我们呈现到了不可思议的创新成果。首先是网络构建项目,如果你还是一个“单打独斗”的程序员也许你并不需要网络项目,但如果你不能提前养成一个好的版本控制习惯,当你进入大型项目组时,你可能会成为需要在回家的路上半路跑回公司次数最多的那个人。语法检查可以帮助你提前减少BUG。编辑器有可用的语言检查,linting和重构工具的大量语言的插件。
Git
Git是最流行的源代码版本控制系统。它是无服务器的,你可以将计算机上的任何文件夹转换为存储库。如果你想共享代码,你有很多选择,如GitLab。
Bitbucket和Github
Bitbucket和Github,仅举几例。对于2017年,我们建议你熟悉git命令行,因为它会比你想象的更方便。
桌面应用程序还没有死。即使网络应用程序变得越来越有能力,有时你需要强大的功能和API,这是网络平台根本不可用。使用诸如Electron和NW.js之类的工具,你可以使用Web技术编写桌面应用程序。借此,你可以如鱼得水地在操作系统中尽量发挥npm的各个模块的功能。
DevOps
软件团队组织的最新趋势是让开发人员负责自己的软件部署。也称为DevOps,这导致更快的发布和更快地修复生产中的问题。现在公司也越来越看重那种即会运营又会写代码的程序员(或者说有可能在35岁之后能和公司一起走下去的员工),因此熟悉能够实现这一目标的技术将是一个巨大的进步。我们推荐的一些工具是Ansible和Docker。拥有Linux命令行和基本系统管理技能的经验也将使你看起来更优秀。