| 来源:码农翻身 微信公众号(id:coderising)。 作者:刘欣
你可能没有注意到, 在软件开发的王国里存在着一个有趣的动物园, 其中动物之多, 范围之广, 不花个几年功夫是逛不过来的。
Linux
自1991年诞生以来, 小企鹅迅速攻城拔寨, 虽然没有击败微软占领桌面, 但是成功的霸占了服务器的操作系统, 令人没有想到的是它还随着Android系统占据了大部分人的手机, 有数据显示,2016年智能手机卖了14亿步, 其中Android占了近80%, 企鹅凶猛啊。
码农们日常直接和小企鹅打交道的可能不多, 但是基本的操作命令需要掌握。 尤其是对于后端编程的同学, 咱们的程序基本上都交由小企鹅来运行, 了解操作系统的进程、线程、虚拟内存、文件系统、IO 等基本知识,并且和Linux结合起来, 对于提升自己的内功是非常有利的。
Mysql
小海豚 MySQL开源数据数据库的No.1 , 除了那些财大气粗的公司还是使用收费昂贵的Oracle, DB2之外, 大部分公司都转向了小海豚 , 阿里不也成功的去IoE ,把自己的核心系统都转到MySQL来了嘛。
小海豚和小企鹅, 再加上PHP, Apache , 组成了声名远扬的LAMP, 免费,快速,灵活, 是很多中小网站的最爱。
虽然现在小海豚已经被Oracle公司领养, 给未来的发展抹上了一层阴影, 但是现在市场摆在那里, 如果Oracle 想懂点手脚,估计人民群中是不会答应的。
Tomcat
这只名叫汤姆的“老”猫是一个实现了Java EE中Servlet和JSP规范的老牌正宗Web应用服务器, 稳定、免费、开源、强大, 深受广大人民群中喜爱。
在Java 世界中, 除了不差钱的土豪用Weblogic, Websphere 之外, 工薪族都会选择汤姆猫做为自己的应用服务器, 利用其他一些开源的监控软件, Tomcat可以轻松的组成一个集群, 再加上前端的Web服务器Nginix , 后面的小海豚Mysql , 还有缓存memcached , redis, 一个高可用的系统不在话下。
Python
“人生苦短, 我用Python”
简单, 清晰, 优美是这条大蟒蛇的重要特点。
当然你必须得接受缩进的语法, 如果你是完美主义者, 可能忍受不了Python 方法签名中令人生厌的self。
Python 用途极广, 不仅可以写小程序, 桌面程序, 爬虫,Web程序, 还能进行科学计算,数据挖掘,Machine Learning。
总之, 你要是想学编程, 尤其想迅速的写程序做点有意义的事情, Python是不二之选。
Docker
大鲸鱼Docker随着容器技术和微服务突然间火了起来!
看看这个鲸鱼背上的集装箱吧, 每个集装箱都是一个应用环境,可以简单理解为虚拟机,相比那些笨拙的虚拟机, docker 是个非常轻量级的方案 。
这些集装箱(应用环境)可以轻松的,非常快速的创建起来,并且互相隔离, 我们的应用部署起来就省事多了。
Hadoop
这个黄色小象非常的了不起, 它能够把一个非常非常非常大的数据集分散存储在多个廉价的计算机上, 某个计算机坏了也没关系, 每一份数据都有备份。
这还不算完, 它还能把一个电脑搞不定的计算任务也分散到多个电脑上去执行, 执行完以后再收回来得到一个最终的结果, 厉害吧。
当然数据集必须得足够大, 要不然就失去意义了。
Ant
别看蚂蚁个头小, 干的活儿确一点都不小, 它做的最多工作就是把你的代码从代码仓库里下载下来,编译,测试,打包,部署到测试环境甚至生成环境, 这些过程都是自动化的。 当然你必须编写XML任务描述交由它来执行。
虽然Maven , Gradle的崛起带走了不少Ant的用户, 但还有不少它的粉丝在坚守Ant, 尤其是在大量的遗留系统中。
参见:
狐狸Firefox
“邪恶”的微软通过IE打败了网景浏览器以后, 没了竞争对手, 竟然好几年不更新IE浏览器。
此时小狐狸FireFox的出现让大家看到了进步的曙光。 丰富的插件支持可以说了吸引了不少用户去下载使用。 小狐狸给了微软已很大的压力,逼迫着微软不断的革新进步。
但是随着Chrome的强势崛起, 小狐狸有点力不从心了, 大家都抱怨它内存占用多, 速度慢,不如以前那么灵活了。
大象PostgreSQL
又是一头大象! 看来大象是动物园中很受大家喜欢的动物。
不过这头大象却是一个数据库, 它的功能比小海豚Mysql 更加强大, 但是由于机缘巧合的原因, 小海豚Mysql 随着互联网,随着LAMP崛起了, 把PostgreSQL 远远的抛在了身后。
作为著名的加州伯克莱利大学出品的数据库, 也许更加注重研究价值吧。
骆驼Perl
老实, 稳重, 不急不躁, 这就是骆驼Perl 给我的印象。
在互联网的早期, 用Perl 写动态网站的人可是不少。
Perl 具备强悍的字符串处理能力 , 其正则表达式和模式匹配功能让人叹为观止, 实际上语言学家Larry Wall发明它的时候, 主要目的也是“扫描任意的文本文件,从这些文本文件中获取信息,基于这些信息打印报表而优化的语言”。
很多别的语言, 例如Ruby 都从Perl这里汲取了营养。
但是Perl写出的程序却不容易懂, 代码中充斥着 $@% 等让人”奇怪“的东西, 总是给人一种孤僻的感觉。
河豚 :openSSH
看看这个戴着墨镜,打着领结, 手上铐着顶级机密公文包的河豚, 多么霸气!
也许你用过Telnet , 一个远程登录工具, 利用它你可以登录到远程的服务器去执行命令。 比如说:在家里登录公司的服务器去部署应用。
但是Telnet 的通信是明文的, 登录的密码也是明文的, 黑客(中间人)可以轻松的窃取。
SSH 通过使用MD5、RSA、DES等密码算法 对通信传输做了加密增大了中间人攻击的难度。
而河豚就是SSH的一个开源实现。
小魔鬼:BSD Unix
BSD (Berkeley Software Distribution)是Unix的一个分支, 和PostgreSQL一样, 也是加州大学伯克利分校开发的。
也许你没直接用过BSD Unix , 但或许用过Mac 电脑 , MAC OS X 就是从BSD UNix发展出来的。
特别值得一提的是 大神Bill Joy 在BSD 中第一次实现了高性能的TCP/IP协议栈, 一个人写的软件干翻了一个公司, 这个协议栈最终成为了互联网软件的基石。
(参见《张大胖的socket》)
蜜蜂+大象 Hive
大象头,蜜蜂身, 虽然是个混合体,不过可以看出和大象Hadoop的渊源。
Hive是Hdaoop的一个数据仓库工具, 可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能 , 省去了大量代码的编写, 只写SQL就可以搞定了。
章鱼猫
章鱼猫,又一个新物种,不过这位太出名了, 不用再啰嗦了。
奥,对了, 它还被称为“全球最大的同性交友网站”, 你懂的。
乌龟: TortoiseSVN
在GitHub 出现之前, SVN应该是最流行的版本控制系统。 而小乌龟TortoiseSVN则是最流行的SVN的客户端, 相信大部分人都用过或者正在使用它。
土拨鼠:golang
可爱的土拨鼠可是说是含着金汤匙出生的。
背后是大厂Google, 是C语言和Unix之父 Ken Thompson, 是UTF-8, Plan9 的作者Rob Pike, 是Hotspot JVM, Chrome javascript V8引擎的主要贡献者Robert Grieseme 。
这么一群如雷贯耳,鼎鼎大名的大牛创造的语言go 自然会引起人民群中的极大关注。
土拨鼠的设计目标主要是21世纪的C语言, 语法比较简单,作为一门静态语言,竟然能给人带来一种动态语言的感觉, 还支持自动的内存管理(垃圾回收), 内置了对并发编程的良好支持。 如果你从事服务器端的高并发编程, 不妨关注下这个土拨鼠。
小鸟MyBatis
这个头上戴着红丝带的小鸟是Java Web开发的宠儿, 简单的来讲就是一个O/R Mapping的框架。
它支持定制化 SQL、存储过程以及其他高级映射, 利用Mybatis 几乎 避免了所有的 JDBC 代码和手动设置参数以及获取结果集。
相对于另外一个完全的O/R Mapping框架 Hibernate , MyBatis 更像一个SQL Mapper, 但是却给了开发人员更大的灵活度和控制能力, 所以也受到了很多人的欢迎。
原来SSH的说法很流行, 即Spring , Struts , Hibernate, 现在Struts 有点没落, Spring MVC 强势崛起, 在加上MyBatis, 所以 SSM也逐渐成为了主流。
动物园管理员:zookeepr
这么大一个动物园, 总得有个管理员吧。
Zookeeper 是一个分布式的协调系统, 为分布式应用提供了一项基本的服务: 分布式锁。在此之上可以解决分布式下的很多烦人的问题:状态同步,统一命名,集群管理等等。
作为大象Hadoop 项目中的一个子项目, 是Hadoop 中的一个关键性模块。