2018年即将到来,软件开发行业继续向前发展,大佬们已经开始关注那些新的语言、框架和工具。2017年,我们看到了流行编程语言、框架和工具的新版本,它们赋予了我们更多的力量并改变了我们的工作方式。很难跟上所有事情,所以在每年年底,让我们谈谈在接下来的12个月里什么可能是最重要和最有价值的学习。1.首先说说D(big)S(potential)S(potential)Q(trend)1.ProgressiveWebApps(渐进式Web应用程序PWA)可能你还不知道。2016年,一个名为PWA的新技术概念悄然兴起,现在让我们来深入了解一下它的内涵。你有没有在生活中没有或几乎没有网络的时候打开过淘宝知乎或B站?应该是产品文章视频的地方可能没有图片,但是也可以完成一些简单的功能,比如展示产品名品名视频名。这时,你被某款产品吸引住了,却发现自己还没有打开互联网。打开互联网后,您可以进入产品购买页面。但是没有网络,数据从哪里来?这是PWA的外壳类型和离线性质的一个很好的例子。先渲染一个类似border的东西,而且因为它的服务器架构,用户即使没有网络或者弱网也可以使用。Opensomethinginasecond我们相信,在2018年,PWA将变得更加重要和值得研究。2.AI+机器人,炒作还是未来?现在每个人都在谈论机器人。从它们运行的??平台到构建它们的框架,整个互联网社区都在努力制造自己的机器人。机器人可能会像今天的移动应用程序一样成为下一个大型开发项目,如果你加紧努力,你可能会赶上来。但是,一旦人们厌倦了机器人,机器人可能会沦为一些无聊的角色,比如自动客户支持,这并非没有风险。但是,我们可以做梦!AI是2016年的流行语。语音识别和图像分类只是该技术的两个面向用户的应用,机器可以达到甚至超过人类的性能。有许多初创公司将人工智能和机器学习应用于新领域。许多开源项目被发布,例如谷歌的TensorFlow和微软的CognitiveToolkit。3.前端框架合并在JavaScript社区中,有趣的是几乎每周都有新工具出现,但在2016年,这些新工具并没有取代应用程序中的旧工具。相反,我们看到流行的框架交换想法并吸收新来者的创新。所以在2017年,无论你选择哪个主流的JS框架,它们的功能大多是相似的。4、云各地的公司和开发者都在把自己投入到“云”中。这种虚拟化的计算机基础设施可按需提供,并可从控制面板进行完全配置。三大云提供商是AWS、GoogleCloud和Azure。由于持续的竞争,价格一直在下降,这吸引了更多的小公司和个人开发商涌入。因此,无论你在BAT还是初创公司工作,熟悉云工作流都将是2018年的一笔不错的投资。5.机器学习机器学习在过去十二个月呈爆炸式增长。3月份,AlphaGo与李世石的比赛将机器学习带入了公众视野。从原始数据中学习的智能计算机系统正在改变我们与移动设备交互的方式。从表面上看,机器学习将在2017年成为更大的赢家。6.VR&AR虚拟现实(VR)和增强现实(AR)已经出现了一段时间,但最终技术已经成熟到足以提供引人入胜的体验.比如前段时间淘宝试水的VR购物,或者网上热销的LeapMotion、kinect等游戏设备,都预示着VR/AR设备的广阔前景。Facebook(OculusRift)、谷歌(Daydream)和微软(WindowsHolographic)都有虚拟现实平台,各大公司都欢迎第三方开发者。学习其中之一:云部署、机器学习库、VR开发。2.编程语言——生死之本1.JavaScript继续其令人难以置信的创新步伐。为了与Web浏览器的快速发布时间表保持一致,JS标准每年都会更新。下一个版本ES2017预计将于2017年年中完成。它将带来许多JS开发人员梦寐以求的特性——async/await,用于处理异步函数。什么,新功能不明白?那么也许你可以从基本的JS类库中学习。2.TypeScriptTypeScript2.1于2016年底发布,为旧版浏览器带来了async/await并改进了类型推断。TypeScript是一种编译为JavaScript的静态类型语言。它添加了强大的功能,如经典的OOP模型和可选的静态类型,使大型代码库更易于维护。它是编写Angular2应用程序的首选语言,我们建议您尝试一下。3.C#C#7.0预计2017年推出。微软推出开源的VisualStudioCode编辑器和.NetCore,让所有人都大吃一惊,你可能会问,一个新版本只是更新了一个框架和一个编辑器,何乐而不为呢??抛开“每一秒,每一秒,每一秒”的VS(微软在2016年发布了Mac版VS),单说.NetCore这个大家并不熟悉的框架,就知道这一代的有多强大了C#是。众所周知,Java几乎可以说是目前使用最广泛的编程语言。它之所以被广泛使用并能被Android选为设计语言,是因为它具有跨平台的特性。而.NetCore则是将C#原有的架构.NetFramework和优秀的编辑器Mono(个人体验,Mono的代码提示和报错相当优秀)整合为一个跨平台的实现,并尝试在GitHub上开源.这直接触动了Java的核心竞争力,也算是让人瞠目结舌了。现在C#不仅可以在Windows上运行,还可以在Linux、Unix、MacOS甚至BSD上运行。我们相信2017年对于所有C#程序员来说将是激动人心的一年。4.PythonPython3.6于12月发布。它正在巩固其作为开发人员、IT专业人员和科学家首选脚本语言的地位。它适用于自动化、Web开发、机器学习和科学计算。当你想写一个简单的爬虫程序来获取信息时,现在Python应该是你的首选。至于Python2/3版本这个问题已经争论了很多年,在社区的努力下,但现在您可以轻松选择3并享受完整的库支持。对于那些需要额外性能的人,他们可以查看PyPy,并可选择启用JIT的Python运行时。5.RubyRuby2.3于今年早些时候发布,具有一些性能改进。Ruby也是通用脚本语言的不错选择,但与Rails搭配使用时可能会更加闪耀。Ruby3×3计划宣布,将试图使即将发布的Ruby3版本比当前版本快3倍,为在更多上下文中使用Ruby提供基础。6.PHPPHP7.1于12月发布,对该语言进行了细微的改进。这建立在去年7.0版的主要性能改进之上,将PHP转变为构建Web应用程序的快速平台。我们认为,当您需要开发一个网络应用程序时,PHP将是一个不错的选择。7.JavaJava9预计在2017年推出,并将带来受欢迎的新功能,例如评估代码、HTTP2.0支持和新的APIrepl。对有才华的Java开发人员和使用该语言的各种令人兴奋的项目的需求很大。如果Java不是你的菜,你可以尝试一些基于JVM的语言,比如Kotlin和Scala。8.SwiftSwift3于今年早些时候发布。这是Apple对现代编程语言(乔布斯还活着......)的愿景,它简化了iOS和macOS上的应用程序开发。Swift是开源的,并吸引了一个庞大的社区来维护和开发它。第4版计划于2017年发布,将改进语言并引入服务器API,使其成为编写Web应用程序和后端的不错选择。如果您正在寻找更令人兴奋的东西,可以试试Crystal和Elixir,它们结合了友好的类ruby??语言平台。或者你可以看看像Haskell或Clojure这样的函数式语言。另外两种可以选择的快速语言应该是Rust和Go。2018建议语言方向:学习一种或多种:JS(ES2017)、TypeScript、C#、Python、Ruby、PHP7、Java/Kotlin/Scala。3.前端(9K)到全栈(10k+)1.WebWeb平台最近取得了两大进步——WebAssembly和ServiceWorkers,它们为快速高效的Web应用程序打开了大门,缩小了与原生编译的差距应用差距。ServiceWorkers尤其是渐进式Web应用程序(上面提到的PWA)的支持技术和Web平台的强大通知,未来还会有更多的API。2.Angular.js2Angular.js2于今年发布。该框架由Google支持,非常受企业和大公司(Gu)公司(Ge)的欢迎。它具有大量功能,使从网络到桌面和移动应用程序的写作成为可能。该框架是用TypeScript编写的,这也是编写应用程序的推荐语言。有很多东西需要学习,但我们认为在2017年学习Angular2将是一笔不错的投资。3、Vue.jsVue.js今年也看到了2.0版本。它吸收了Angular、React和Ember的伟大创意,并将它们整合到一个易于使用的包中。它也比前两个更轻巧、更快。我们建议您今年尝试一下,从我们的Vue.js教程之一开始。http://igeekbar.com/igeekbar/post/109.htm4。EmberEmber是另一个可供选择的JavaScript框架。它支持数据绑定、自动更新模板、组件和服务器端渲染。与竞争对手相比,它的一大优势是更加成熟和稳定。重大更改的频率要低得多,社区也降低了兼容性。这使得该框架成为长期应用程序的不错选择。另外两个值得关注的框架是Aurelia和React。React的生态系统在过去一年变得更加复杂,因此很难向初学者推荐。但经验丰富的开发人员可以将该库与GraphQL、Relay、Flux和Immutable.js结合成一个全面的全栈解决方案。没有绕过Bootstrap的前端编译,Bootstrap4目前处于Alpha版本,预计将在2017年发布。显着变化是新的通用卡片组件和flexbox网格,这是一个使工作环境更简单、更快乐的现代框架。5.SASS和LESSSASS和LESS仍然是当今最流行的两种CSS预处理器。虽然vanillaCSS最终获得了对变量的支持,但SASS和LESS仍然对混合、函数和代码组织提供了出色的支持。如果您还没有,请查看我们的SASS和LESS快速入门指南。2018年前端框架方向建议:学习以下一种或多种:Angular2、Vue.js、Ember、Bootstrap、LESS/SASS。4.Backend后端有很多选择,这一切都取决于你对编程语言的偏好或者特定的性能需求。Web开发的一个持续趋势是远离后端,将该层转变为前端和移动应用程序使用的API。然而,全栈框架通常更简单、开发起来更快,并且仍然是许多Web应用程序的有效选择。1.Node.jsNode.js是在浏览器外运行JS的主要方式。它今年发布了许多新版本,提高了性能并扩大了整个ES6标准的覆盖范围。Node有一个用于构建快速API、服务器、桌面应用程序甚至机器人的框架,以及一个创建各种可以想象的模块的庞大社区。在Node.js框架中,您可能想研究一下:Express、Koa、Next、Nodal。2.PHP是什么?PHP,我不是在开玩笑。PHP首先是一种网络语言,有大量的网络框架可供选择。由于其优秀的文档和未来,Laravel已经形成了一个活跃的社区。ZendFramework发布了第3版,标志着这个面向业务的框架有了很大的升级。Symfony今年也发布了很多新版本,使其成为全栈解决方案的更好选择。3、Ruby对于Ruby,Rails框架是首选。2016年发布5.0版本,提供对WebSockets、API方式的支持。Sinatra也是小型应用程序的不错选择,预计2.0版将在2017年某个时候发布。4.PythonPython有自己的全栈/最小框架组合,以Django和Flask的形式出现。Django1.10于8月发布,引入了Postgres的全文搜索和经过全面改进的中间件层。5.JavaJava生态系统也有流行的网络框架可供选择。Play和Spark是两个可靠的选择,它们也可以与Scala一起使用。6.Phoenix对于爱好者来说,Phoenix也是一个后端选项,它是用Elixir编写的,试图成为一个功能齐全、高性能的Rails替代品。如果Elixir是你2017年想学习的语言之一,那就试试Phoenix。2018年后端方向建议:学习其中一个:一个全栈后端框架,一个微框架。五、数据库1.MySQLMySQL8.0将是数据库的下一个大版本。预计在2017年的某个时候,它将为系统带来许多改进。MySQL仍然是最(mian)流行(fei)的数据库管理系统,整个行业都从这些新版本中受益。2.PostgreSQLPostgreSQL9.69月发布。它为数据库系统带来更好的全文搜索、更快的并行查询和更高效的复制、聚合、索引和排序。Postgres用于大规模、TB级数据集和繁忙的Web应用程序,这些优化在大数据和海量数据时代是受欢迎的。3.NoSQL对于NoSQL爱好者,我们可以推荐CouchDB。它是一个快速且可扩展的JSON存储系统,公开了一个REST-fulHTTPAPI。该数据库使用方便,性能优良。PouchDB是CouchDB的精神对应物,它完全在浏览器中运行,并且可以与Couch同步。这使您可以在离线就绪的Web应用程序中使用Pouch,并在互联网连接可用时自动同步。4.RedisRedis是我们最喜欢的键值存储,它轻巧、快速且功能丰富。您可以将其用作智能内存替代品、NoSQL数据存储或流程消息传递和同步通道。它提供了大量的数据结构选择,即将发布的4.0版本将有一个模块系统和改进的复制。2018数据库方向建议:学习其中之一:MySQL、Postgres、CouchDB、Redis。6.开发工具1.YarnYarn是Facebook开发的Node.js的替代包管理器。它是对npm命令行工具的升级,提供更快的安装、更好的安全性和稳定的项目构建。它仍然使用npm包注册表作为其后端,因此您可以访问很棒的JavaScript模块。Yarn兼容npm使用的package.json格式,与npm相比,两者最大的区别可能是安装快捷。2.VisualStudioCode和Atom两个最流行的开源代码编辑器——VisualStudioCode和Atom在过去的12个月里为我们带来了令人难以置信的创新。一是网络建设工程。如果你还是一个“单打独斗”的程序员,也许你不需要网络项目,但如果你不能提前养成良好的版本控制习惯,当你进入一个大型项目团队时,你可能会成为那个人在回家的路上需要跑回去工作的次数最多。语法检查可以帮助您提前减少错误。该编辑器具有可用于大量语言插件的语言检查、linting和重构工具。3.GitGit是最流行的源代码版本控制系统。它是无服务器的,您可以将计算机上的任何文件夹变成存储库。如果您想共享代码,您有很多选择,例如GitLab、4.Bitbucket和GithubBitbucket和Github,仅举几例。对于2017年,我们建议您熟悉git命令行,因为它会比您想象的更方便。桌面应用程序尚未消亡。即使Web应用程序变得越来越强大,有时您仍需要强大的功能和API,而这些功能和API在Web平台上根本不可用。使用Electron和NW.js等工具,您可以使用Web技术编写桌面应用程序。这样就可以如鱼得水的充分利用操作系统中npm各个模块的功能。5.DevOps软件团队组织的最新趋势是让开发人员负责他们自己的软件部署。也称为DevOps,这可以加快发布速度并更快地修复生产中的问题。现在企业越来越看重会操作会写代码的程序员(或者35岁以后可能会继续在公司工作的员工),那么熟悉能够达到这个目标的技术将是必须的。巨大的进步。我们推荐的一些工具是Ansible和Docker。具有Linux命令行和基本系统管理技能的经验也会使您看起来不错。2018开发工具方向建议:尝试其中的一种或多种:Yarn、Git、VisualStudio、Electron、Ansible、Docker。
