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
================================================
那么下面来看看他们都是什么吧。
如果你刚开始搞web开发,但还没有选定一个框架,我推荐你从AngularJs入手。它很简单上手快而且功能强大。特点在于引入了编程模式,使得代码更松耦合且易测试。缺点是in-page routing and complex multi-model/aggregate view construction。
Ember则补充了这些缺陷。Ember提供了强大的构建功能:比如嵌套的views和controllers。 Ember的弱点是上手不太容易。一旦掌握就能用很短的code实现强大功能。
- 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
原文链接: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
相关文章推荐
- 【DevOps】为什么我们永远疲于奔命?
- 架构纵横谈之二 ---- 架构的模式与要点
- 网络管理之IP地址篇
- 文件的读出 编辑 管理
- BS项目中的CSS架构_仅加载自己需要的CSS
- 关于三种主流WEB架构的思考
- SQL Server 2008 R2 应用及多服务器管理
- Enterprise Library for .NET Framework 2.0缓存使用实例
- C# Entity Framework中的IQueryable和IQueryProvider详解
- 由vbs sort引发.NET Framework之间的关系说明
- C#难点逐个击破(6):C#数据类型与.net framework数据类型
- VC下通过系统快照实现进程管理的方法
- zend framework框架中url大小写问题解决方法
- Yii PHP Framework实用入门教程(详细介绍)
- 微软NET Framework 3.5 Beta 1 发布 提供下载
- 使用Entity Framework(4.3.1版本)遇到的问题整理
- w3c技术架构介绍
- 使用jQuery管理选择结果
- linux学习笔记 linux目录架构
- SQLServer 管理常用SQL语句