您的位置:首页 > 运维架构

IT民工进化指南:软件工程师最该了解的新技术Top10

2015-05-29 15:55 288 查看
某篇blog点评当前值得学习的最新技术,值得一读。没有找到2015的,看看2014的,也不过时,我没有完全按原文逐字逐句翻译,但意思基本都点到了

原文链接:http://www.gettingcirrius.com/2014/02/top-10-technologies-i-want-my-software.html

Top 10 Technologies I Want My Software Engineers to Know In 2014

学习 AngularJS 然后学习 Ember.Compile-to-JavaScript language (CoffeeScript, Dart, TypeScript, Clojure Script).HTTP/REST + AMQP + MQTT + Kafka (都学).Scala 或者 Clojure (选择一个学).Git, Ansible, 和 Vagrant.Amazon Web Services.Concurrency 和 Distributed Programming.Python 或者 Node.js.了解NoSQL: Neo4j, Redis, MongoDB, HBase, and Cassandra.Lambda 架构.

================================================

那么下面来看看他们都是什么吧。

1. 学习 AngularJS 然后学习 Ember.

在客户端的MVC技术框架大战中,虽然有很多framework可选,但在社区里AngularJS 和 Ember 已经是最受关注的热门技术了。

如果你刚开始搞web开发,但还没有选定一个框架,我推荐你从AngularJs入手。它很简单上手快而且功能强大。特点在于引入了编程模式,使得代码更松耦合且易测试。缺点是in-page routing and complex multi-model/aggregate view construction。

Ember则补充了这些缺陷。Ember提供了强大的构建功能:比如嵌套的views和controllers。 Ember的弱点是上手不太容易。一旦掌握就能用很短的code实现强大功能。

2. Compile-to-JavaScript language (CoffeeScript, Dart, TypeScript, Clojure Script).

可以取代javascript的一些script语言,分别解决了一些javascript的弊病,可以看看。

3. HTTP/REST + AMQP + MQTT + Kafka (必学)

- Http/Rest不用说,任何web开发必学基础restful api 

- AMQP(Advanced Message Queuing Protocol), 一个处理异步消息的标准协议。当你需要通过PubSub消息来连接多个后台应用时,这是你的首选协议。基于AMQP的实现就有很多了,如Apache
Qpid,Apache Apollo等, 而其中最推荐的实现是RabbitMQ。 (RabbitMQ:
一个独立的开源实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。RabbitMQ发布在Ubuntu、FreeBSD平台。)

- MQTT,  低能耗,简单的消息推送协议,主要是为移动设备设计的。Facebook的应用就是用MQTT同步你手机的状态的。MQTT现在已经被多种AMQP的message broker所支持了, 比如RabbitMQ。 MQTT是free的,IBM写的, 你可以自由的用它跑在移动设备上和RabbitMQ通信。

-Kafka, 为高吞吐量应用设计的消息架构,最初被LinkIn设计和使用。其架构独特性在于消息流的分片,和消息批量转换。除非你有scalability的问题,否则我还是推荐传统的RabbitMQ架构。

4. Scala 或 Clojure

当前最火的现代编程语言,你怎能不学?

(Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性)

作者认为2种语言只学一种就好。他认为Clojure更优雅,而Scala对于java,C#或C++程序员来说学起来更容易。

插一句:本博觉得还是学Scala吧,它被称为下一代的Java, 被用于最受关注的大数据平台Spark上。

5. Git, Ansible,Vagrant

DevOps的概念已经越来越被大家接受。能从Github上checkout自己的代码已经成了开发团队的必备方式。开发,布署,测试不再分别进行。避免了过去由于开发和部署的环境不一致导致的各种bug。Git的用法也成了程序员的基本技能了。

DevOps的概念还可以再深入讲讲,等有空再开一篇专门讨论。

Vagrant, 一种虚拟机自动化工具,就是管理虚拟机配置,让你可以直接使用配置好的环境。

本博推荐另外一种容器技术来取代Vagrant, 当前爆火的Docker

Ansible, 一种优雅的部署和管理工具,类似功能的工具有:Chef, Puppet, 不过Ansible更新也更受关注。Ansible的不同之处在于,它使用SSH把Python的sctipts直接在被管机器上运行,因此不需要装任何软件。

下次一定写写这些自动化配置,部署工具:  Chef, Puppet, Ansible,  Salt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息