作者:OSC-局长 来源:开源中国 物联网智库 整理发布 转载请注明来源和出处
软件开发行业继续向前大步迈进。 在 2016 年,我们看到了很多新版本的流行语言、框架和工具。它给了我们更多的支持,也改变了我们的工作方式。紧跟潮流是很难的,所以在每年年底,我们会给你介绍什么是重要的,而且应该在未来十二个月内学习。 一、趋势 Progressive Web Apps在 2016 年,我们看到了Progressive Web App概念的兴起。它代表了脱机工作的 Web 应用程序,并提供类似 Native App 的体验。它们可以添加到你的智能设备的主屏幕,甚至可以给你发送推送通知,弥补了与本地移动应用程序的差距。我们认为,在 2017 年,PWA 将变得更加重要,更值得探讨。
聊天机器人现在每个人都在谈论聊天机器人。从运行它们的平台到构建它们的框架,社区也正在忙于各种活动(阅读介绍)。机器人是新的移动应用程序,如果你快点的话也可以在大家都感到新奇时赶上浪潮。一旦新奇消退,机器人可能会被降级到一些无聊的角色,如自动客服。但无论怎样,我们都可以梦想嘛! 前端框架的合并在JavaScript社区,有着令人难以置信的框架和工具的混合,几乎每个星期都会出现新的。直到最近,人们期望旧的工具将被新的替代,但这不是我们在2016年看到的。相反,我们看到了流行的框架交换想法以及采纳由新诞生的框架提出的创新。所以在2017年,该选择哪个框架作为主要JS框架不是很重要,它们的功能大多是可比较的。 云端各地的公司和开发者都在积极地拥抱“云”。云是虚拟化的计算机基础架构,可根据需要提供,并可从控制面板中完全配置。目前三大云提供商分别是AWS,Google Cloud和Azure。由于其持续的竞争价格一直在下跌,因此小公司和个人开发者也将其纳入预算中。熟悉云工作流程将是2017年一笔不错的投资。 机器学习机器学习在过去的十二个月中已经呈现爆炸式的增长。通过在今年3月份的AlphaGo vs Lee Sedol的历史性比赛,它进入了主流。从原始数据中学习的智能计算机系统正在改变我们与移动设备交互的方式。看上去,机器学习将是 2017 年更大的影响因子。 二、编程语言学习其中的一门或多门:JS(ES2017),TypeScript,C#,Python,Ruby,PHP7,Java/Kotlin/Scala JavaScriptJavaScript继续着它令人难以置信的创新步伐。由于Web 浏览器的快速发布计划的推动,JS 标准每年都会更新。下一个版本,ES2017预计将于 2017 年中期完成。它将带来许多 JS 开发人员渴望的特性 用于处理异步函数的аsync/await。感谢Babel,即使在今天,你也可以在每个浏览器中编写 ES2017。 TypeScriptTypeScript 2.1于 2016 年年底发布,为旧浏览器带来了async/await,并改进了类型推断。TypeScript 是一门编译为 JavaScript 的静态类型语言。它增加了强大的功能,如经典的 OOP 模型和可选的静态类型,使得巨大的代码库更容易维护。它是编写 Angular 2 应用程序的首选语言,建议各位尝试。这是关于它的快速入门指南。C#C# 7.0预计在 2017 年发布,作为一门优秀的语言将会有更大的改进。当微软推出开源 Visual Studio Code 编辑器 和 .Net Core 时,每个人都感到惊讶。它们都可以在 Linux,Windows 和 macOS 上运行,并允许你用 C# 编写快速、高效的应用程序(点击这里阅读更多)。这些工具促成了一个充满活力的社区。 PythonPython 3.6将于今年 12 月发布。它正在巩固其作为开发人员、IT 专业人员和科学家的脚本语言的选择的地位。它适用于自动化、Web 开发、机器学习和科学计算。Python 2/3 的选择对于社区来说是一个长达数年的斗争,但是现在你可以自信地选择 Python 3 并享受完整的库支持。对于那些需要额外的性能的使用者,他们可以看看PyPy 一个可启用 Python 运行时的 JIT 替代品 。 RubyRuby 2.3今年早些时候发布了,并带来了性能改进。作为通用脚本语言,Ruby 也是一个好选择。 Ruby 3×3 的倡议已经公布,这将使即将到来的 Ruby 3 比当前版本快 3 倍,而且会在更多的情景中打开使用 Ruby 的大门。 PHPPHP 7.1是在 12 月发布的,并带来了细小的增强。 这是基于去年 7.0 版本中的主要性能改进,将 PHP 转变为构建 Web 应用程序的快速平台。我们建议把PHP The Right Way作为良好的做法和构建 Web Apps 的现代做法。 JavaJava 9预计在 2017 年发布,并将带来备受欢迎的新功能,例如用于评估代码的 repl、对 HTTP 2.0 的支持和新的 API。有才能的 Java 开发人员和使用该语言开发项目的人对于这些特性有强烈的需求。如果 Java 不是你需要的,有一些基于 JVM 的语言,如Kotlin和Scala,可以去了解。 SwiftSwift 3于今年早些时候发布。这是苹果对现代编程语言的愿景 简化iOS 和 macOS 上应用程序的开发。Swift 是开源的而且吸引了大量的社区。版本 4 计划于 2017 年发布,将改进语言特性和引入服务器 API,使其成为编写 Web Apps 和后端的一个不错选择。 其他如果你正在寻找更令人兴奋的东西,可以尝试Crystal和Elixir,它们结合了一个友好的类似 Ruby 的语法且有着卓越的性能。或者你可以看看函数式语言如Haskell或Clojure。另外两门推荐的快速语言是Rust和Go。 三、前端学习以下一个或多个:Angular 2,Vue.js,Ember,Bootstrap,LESS/SASS Web平台最近取得了两个重大进展Web Assembly和Service Workers。它们为构建快速和高效的 Web 应用程序打开了大门,而且弥补了与Native App 之间的差距。Service Workers尤其是Progressive Web Apps的启用技术,并为Web平台的通知提供支持,将来也还会有更多的API。 Angular2Angular 2于今年发布。该框架由Google支持,非常受企业和大公司的欢迎。它具有大量的功能,使在从网络到桌面和移动应用程序中编写任何东西成为可能。框架使用TypeScript编写,这也是在框架中编写应用程序的推荐语言。学习它有很多需要阅读的内容,但我们认为在2017年学习Angular 2将是一个很好的投资。 Vue.jsVue.js今年也发布了 2.0版本。它借鉴了Angular,React和Ember中的好想法,并将它们放入一个易于使用的包中。它也比前两个更精简和更快。建议各位都去尝试一下,可参考入门教程。 Ember.jsEmber是JavaScript框架的另一个坚定选择。它支持数据绑定、自动更新模板、组件和服务器端渲染。与其竞争对手相比,它的一个好处是更成熟和稳定。重大更改的频率要低得多,而且社区也重视向后兼容性。这使得该框架成为生命周期长的应用的不错选择。 其他另外两个值得一看的框架是Aurelia和React。过去的一年中React的生态系统变得越来越复杂,因此很难向初学者推荐。但经验丰富的开发者可以将库与GraphQL,Relay,Flux和Immutable.js组合成一个全面的全栈解决方案。 没提到Bootstrap的前端汇总是不完整的。Bootstrap 4目前正处于Alpha阶段,预计在2017会正式发布。值得关注的变化是新的通用卡片组件和Flexbox网格,这使得框架更现代化而且让用户使用它工作更舒心。 SASS和LESS仍然是当今最流行的两种CSS预处理器。虽然vanilla CSS最终对变量进行了支持,但SASS和LESS仍然优先对mixins,函数和代码组织进行支持。 如果还没有了解它们,可查看这里的SASS和LESS快速入门指南。 四、后端学习其中之一:全栈后端框架,一个微框架 后端有很多选择,所有这一切都取决于你对编程语言或特定性能需求的偏好Web开发中的一个持续趋势是远离后端的业务逻辑,并将该层转换为由前端和移动应用程序使用的API。但一个全栈框架通常是能更简单、更快速地用于开发,并且是许多Web Apps的有效选择。 Node.jsNode.js是在浏览器外运行 JS 的主要方式。今年我们看到它发布了许多新版本,提升了性能以及添加对整个 ES6 规范的覆盖。Node 具有快速构建 API、服务器、桌面应用程序甚至机器人的框架,以及创建可以想象到的各种模块的庞大社区。一些你可能想研究的框架:Express,Koa,Next,Nodal。 PHPPHP首先是一门Web语言,并且有大量的Web框架可供选择。由于其出色的文档和功能,Laravel构造了一个积极的社区。Zend Framework发布了第3版,这标志着这个面向业务的框架的巨大升级。Symfony在今年也发布了很多新的版本,使它作为一个全栈解决方案成为一个更好的选择。 Ruby对于 Ruby,Rails 框架是首选。5.0 版本已于 2016 年发布,为 Web Sockets,API 模式等提供支持。Sinatra也是小应用程序的不错选择,2.0 版本预计 2017 年发布。 PythonPython有以Django和Flask的形式组合的全栈/最小框架。Django 1.10 在 8 月发布,为 Postgres 引入了全文搜索和一个大修改的中间件层。 JavaJava生态系统还有流行的 Web 框架可供选择。Play和Spark是两个坚定的选择,作为奖励,它们可以与 Scala 一起使用。 其他对于爱好者,还有Phoenix可供选择,这是用Elixir语言编写的,并试图成为一个功能完全替代 Rails 的框架而且具有卓越的性能。如果 Elixir 是你想在 2017 年学习的语言之一,不妨尝试 Phoenix。 五、数据库
学习以下其中之一:Postgres,MySQL,CouchDB,RedisPostgreSQLPostgreSQL今年发布了两个完整版本 9.5和9.6。它们带来了期待已久的 UPSERT 功能(又名 MySQLMySQL 8.0将是该数据库的下一个主要版本。正式版预计 2017 年发布,将给系统带来很多改进。MySQL 仍然是最受欢迎的数据库管理系统,整个行业都受益于这些新版本。 NoSQL对于 NoSQL 的粉丝,推荐CouchDB。它是一个快速和可扩展的 JSON 存储系统,公开了一个 REST-ful HTTP API。这个数据库易于使用,性能卓越。PouchDB是一个开源的 JavaScript 数据库,完全在浏览器中工作。可通过 Couch 同步数据。在应用程序离线的时候,可以将用户数据保存在本地,在网络连接可用后自动同步。 RedisRedis是最受欢迎的 Key-Value 数据库。它体积小,快速而且通用性好。作为 NoSQL 数据存储或进程消息传递和同步通道,你可以将其作为智能内存缓存的替代方案。它提供了大量的数据结构可供选择,并且即将到来的 4.0 版本将有一个模块系统和改进的复制功能。 六、工具
尝试其中的一个或多个:Yarn,Git,Visual Studio Code,Electron,Ansible,Docker YarnYarn是由 Facebook 开发的 Javascript包管理器。它是对 npm 命令行工具的升级,提供了更快的安装,更好的安全性和确定性构建。它仍然使用 npm 包注册表作为其后端,因此可以访问同一个 JavaScript 模块的生态系统。Yarn 与 npm 使用的 Visual Studio Code和 Atom两个最受欢迎的开源代码编辑器 Visual Studio Code和Atom在过去 12 个月中进行了很多不可思议的创新。这两个项目都使用网络技术构建,并吸引了大量的粉丝群体。编辑器有针对大部分语言的语法检查,linting和重构工具的插件。 GitGit是最流行的源代码版本控制系统。它是无服务器的,你可以将计算机上的任何文件夹转换为存储库。如果你想共享代码,有很多选择,像GitLab Bitbucket和Github(当然还有码云)。2017年,建议熟悉git命令行,因为它会在比你想象中更多的场景派上用场。 Electron和 NW.js桌面应用程序还没有死,即使 Web App 变得越来越强大。有时你需要强大的功能和 API,这是网络平台无法提供的。使用诸如Electron和NW.js之类的工具,可以通过使用 Web 技术编来写桌面应用程序。你可以完全访问操作系统和 npm 可用的广度模块。要了解这些工具的更多信息,请阅读有关Electron和NW.js的教程。 DevOps软件开发中的最近趋势是让开发人员负责自己的系统部署 也称为 DevOps,这能产生更快的发布和更快地修复生产中的问题。具有运维经验的开发人员会受到公司的高度重视,因此从现在开始熟悉能实现这一目标的技术将是巨大的进步。推荐的一些工具是Ansible和Docker。拥有 Linux 命令行和基本的系统管理技能也会为助你一臂之力。 七、技术声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除 |