固定链接 2018年开发者最佳工具

2018年开发者最佳工具

2018年开发者最佳工具

2018 年马上就要过去了,这一年开发行业发生了很多变化,对整个行业产生了很大的影响。这一年来,我与很多开发团队进行沟通,观察了每个团队在互联网快速迭代的背景下对开发工具的选择和使用,总结了一下自己心目中的最佳开发者工具,希望对大家工具选择有参考意义。

入选名单(不包括大数据方向)

Elasticsearch

Elasticsearch 的母公司今年 IPO 了,这个一点也不出乎意料,在与每个团队交流的过程中发现,不管是 BAT、TMD 还是创业公司,都在使用 ES。除了在常规的搜索场景中,ELK 成了日志处理的最佳解决方案。

每个业务系统需要一个运营系统,以前是通过数仓、访问备库来完成这个任务,现在 ES 就是最佳替代品。日志分析、运营系统、LBS 搜索都有 ES 的身影,ES 在 DB-Engines 的排名中持续上升,仅次于 Redis 的流行程度。

gRPC

在讲 gRPC 之前,对于刚入门还想写 RPC 框架的同学我强烈建议到此为止,不要花费精力了,直接用 gRPC 吧。

gRPC 性能好,接口稳定,多语言支持,不管是异步、同步、微服务都能非常好的支持,并且社区非常活跃,后端服务都是需要服务化框架,RPC 是一个必须面对的技术问题,需要一个 RPC 框架来构建业务架构。

Java 领域里的 SpringBoot、Dubbo 有各自的拥趸,但是光 Java 的开发语言的框架就五花八门,一个稳定、高性能的 RPC 框架成为要迫切解决的问题。这两年的多语言 + 微服务架构的兴起,给了 gRPC 一个很好的发挥空间,如果你需要选 RPC 框架,选择 gRPC 就对了。

CNCF

本来想选择 Kubernetes 作为一个年度工具,但是不得不提 CNCF 项目。CNCF 的目标很远大,要成为下个基础设施。CNCF 在 2018 年发展非常的迅速,今年的开源当红小生:Kubernetes、Prometheus、gRPC、Fluentd、Envoy、Harbor、OpenTracing 等都被收到旗下,通力合作打造一个全新的基础设施生态。

基础设施不再以操作系统、网络、存储为核心,而是面向云环境,通过容器构建一个更加简洁的交付环境。当你需要做服务扩容的时候,不用关心你的存储、网络、操作系统,能在秒级完成扩容;你的每个 API 请求都能被跟踪;服务发现、服务治理不再是一个难题的时候,DevOPS 还需要吗?

GitLab

因为 GitHub.com 被收购了,GitLab 前段时间还被热炒了一番。其实,GitLab 这两年动作很大,之前还收购了 Gitter 来完善沟通协助功能。需求、Bug、CI/CD、CodeReview 等等一应俱全,很多企业都部署了 GitLab,甚至很多代码托管服务都是基于 GitLab 来实现的,围绕代码开发的场景 GitLab 逐渐有了自己的生态。

每个公司都需要一个 Git 托管工具,GitLab 就是首选。

Python

Python 是唯一一个入选的语言工具,论流行程度比不上 Java、JS,但是今年入选的原因是深度学习。

在研发领域大家经常会把工程师分为工程方向与算法方向,在算法方向 Python 就是当之无愧的王者,深度学习最火的两个框架 TensorFlow 与 PyTorch 都是 Python 优先的策略。

当今的研发方向逐渐往人工智能方向发展,越来越多的算法被提出来和验证,未来机器学习是每个团队都需要面临的的领域,除了算法,Python 就是进入这个领域的必备工程技能。

小程序

小程序不属于某个平台,是一系列技术的整合,现在看起来每个平台的小程序技术框架都差不多,每个平台切入的点都不相同,微信的游戏、钉钉的 E 应用等等,大部分都是 WebAPP 技术的实现,从 PC、APP、H5 等衍生出来一个新的技术领域。

小程序的特点是快、轻、与平台深度绑定,功能有限,但是可以享受平台的流量红利。除了端的技术,小程序在 Serverless 方面得到了很多的帮助,BAAS 逐渐被很多小程序开发者接受,大家也可以了解一下 Parse 或者 FireBase 这些技术。

VSCode

VSCode,从一个 Emacs 爱好者来看,习惯一个工具之后是舍不得换的,但是我还是全面切换到了 VSCode,包括写这篇文字的 Markdown,也是用 VSCode 完成的。

如果要推荐一个 IDE 的效率工具的话,VSCode 是强烈安利,插件丰富,运行稳定,每个插件完成度非常高,除了 IntelliJ IDEA 对 Java 的 Debug 比较友好,我没见过其他 IDE 对各种语言的 Debug 比 VSCode 支持得更友好;Linter 也很优秀,不会犯格式错误,看起来赏心悦目。

本质上就是插件丰富、质量高造就了 VSCode 的成功,你可以考虑升级一下你的吃饭的家伙了。

Vue.js

与大部分的开发团队沟通后,得出一个结论:前端方向大部分都在迁移或者已经使用了 Vue.js 。虽然 React、Angular 还是很多人在用,但是每个前端工程师今年的学习清单里面都有 Vue.js。

Vue.js 简单易用,效率上吊打其他框架,前端已经不是简单的一个实现设计图的工作,大部分的产品逻辑都在前端完成,前后端分离的体系下,后端就提供数据接口就可以,用户大部分的逻辑都在前端上完成,Vue.js 就是拯救整个行业的利器,节约了无数的人力,前端工程师再也不用看后端工程师的脸色了。

GraphQL

GraphQL 最近逐渐在开发者社区流行起来,今年成立了 GraphQL 基金会来推广,究其原因还是 RESTful 虽然简单易用,但是管理成本、沟通成本特别大。GraphQL 就是 RESTful 进化后的产物。

前后端分离的做法已经持续了很长一段时间,GraphQL 通过描述接口和格式来定义数据交换的格式,在以往都是服务端先定义接口客户端来配合调用接口,现在是客户端来定义数据格式,服务端来实现数据格式的接口即可,工作方式发生了对调,对客户端的开发工作进行了大幅的优化。

题外话

Linux 基金会不得不说是非常成功的开源机构,这两年 CNCF 如日中天的发展,项目之间有很好的协同,Linux 基金会通过领导行业联盟的方式,鼓励商业公司出钱出力,商业与社区配合比较好,这个打法很有章法,所以才能孵化一个成功一个。

反观 Apache 基金会,以前被人尊敬的大数据方向的领导者进一步没落,这几年都没孵化出影响力特别大的项目,都是一些看起来非主流的项目在孵化,被各种商业公司强安排一些项目进去,当 Apache 基金会被各种公司打扮的时候,发展比较慢也是情有可原了。

总结

其他还有很多的工具没有入选,每个领域都可以开一些独立的榜单,这里不深入展开了。

不难发现一个有趣的趋势,移动领域已经是互联网研发团队的首选,服务端上的技术已经相对成熟,CNCF 成为一个新的基础设施,OpenStack 开始瑟瑟发抖,还在用 OpenStack 的公司可以了解一下 K8S 。

小程序是中国特有的场景,移动和小程序给我们带来了一个全新的技术方向,这在其他地区是感受不到的。不管是微信、钉钉、支付宝、头条都在加大小程序的投入,每个平台都有把大家有限的时间留住的想法,所以通过小程序的方式不停的吸引你,这种锦上添花的特性效果很明显,所以大平台才会加大投入,是很值得每个开发团队关注的技术方向。

今年开源发生了很多事情,MongoDB/Redis/JDK 分别修改了各自的商业授权,开源本身就是一个推广方式,本质上只有合理的商业才能支撑一个社区的繁荣和发展,比如 GitHub 被微软收购、RedHat 被 IBM 收购,看起来免费的服务都是有很好的商业支撑,所以才会蓬勃发展。好服务就应该有好的回报,所以技术直接变现是越来越受到认可的。

注:以上内容仅代表个人看法,供大家参考,并不代表官方观点。欢迎大家总结出自己心目中的 2018 最佳开发工具。

本文作者:金堤

您的留言将激励我们越做越好