php发展

首页 » 常识 » 常识 » ldquo院rdquo来是你
TUhjnbcbe - 2020/11/23 21:33:00

前言

笔者也是在互联网软件行业里面摸爬滚打,回头想想青葱岁月,很多时间都花在各种技术热潮的追逐上,有些是有价值的,也有些因为没人指导走过弯路,下面我就把我自己接触到这么多优秀的开源软件给大家做个梳理。也许比较枯燥无聊,供大家以后查阅。

LAMP:

属于创业公司的最经典组合。

Linux:不用说,大多数公司都用这个,随着虚拟机越来越成熟,大家喜欢创建虚拟的Image,来提供某个Linux版本,我接触过一些常用的,Ubuntu,Redhat,Debian,Gentoo,CentOS,Federo,OpenSuse。

Apache:最著名的webserver,Apache也是开源最活跃的社区,非常成熟的web服务器,有段时间被性能卓越的Nginx赶超,但目前稳定性和模块成熟度还是最高,广受好评。有人比较这两者的差异:NginxvsApache

PHP:当时很多网站用Java写的,php提出就是为了简化网站开发,为web而写。Facebook早年也是PHP写的,是很灵活的脚本语言,Coursera之前也是用Php搭建的,但却是很难维护,主要问题是每个人都可以写一个小框架,编程风格随便,难统一。除了Facebook他们花了大量人力去完善,基本上重写了Php,底层加速成C++,也发明了新语言Hack。

MySQL:经典开源数据库,被Oracle收购,Facebook,Baidu,Taobao都是大量基于MySQL做出非常稳定靠谱的系统。我记得Pinterest也总结过他们为什么用MySQL提高他们的规模。

编程语言:

有个笑话,让程序员打架的一个最有效的方式是去讨论区问大家那种编程语言最好,这就会没完没了的讨论。大致分成C++派,Java派,Python等脚本派。

C/C++:可能很多人入门都是啃着谭浩强的C程序设计,这种语言很强大,既高性能,又灵活(指针,地址,二维指针,指针数组),名词特别多(多态,重载,重用,范型,模板类,元编程),坑也特别多,容易造成内存泄露,野指针,在大学里面吃了不少苦头,疯狂看各种C++经典,秘籍,后来去了创业公司和百度都是大量使用,里面也很多人玩的如火纯青,面试时候经常出个写个线程安全的C++单例模式,析构能否多态或者什么写个调用顺序,让面试者骚手挠腮,欲罢不能,想想自己也折磨过这些面试者,真是罪过啊。这几年视野广了,不接触C++了,回过头来看还是觉得当年有些走火入魔,没必要自己折磨自己。

Java:估计是目前用的最广的项目语言,容易上手,概念简单,无数的库,大量的代码。我就不多介绍了,我自己也是大半的项目用Java写的。缺点时配置比较烦,很多什么XML,Config,适合写服务端。

LUA:大量应用在大型游戏的脚本语言,主要是高性能,语言规范精简、运行时库小,与C/C++交互方便,我在百度做云计算平台时候也是用它作为嵌入式脚本。

Python:跟Perl,PHP,合成3P语言,都是脚本:)非常方便实用,初学编程就可以拿它练习,有很多方便的库,比如urlib,beautifulsoap。有句话说:人生苦短我用Python。做数据分析的有个超好的工具叫iPython,它是结合在线notebook,可以交互式编程,非常爽。据说Python的创始人在Dropbox,当年他简历就一句话,说IwrotePython.在面试Google时候还被一些人误会,想会python算个啥,但人家是作者。有一本书集体智慧编程(豆瓣)用Python作为实践做机器学习,推荐给大家。

GO:Google开源的语言,比C++容易上手,却有相似的性能,很多从Google出来的人喜欢,据说Square,Pinterest就在用。Go语言有哪些好处,谁用谁知道,为什么要使用Go语言,Go语言的优势在哪里?

Scala:各种集大成,面向对象,函数式编程,面向过程。我目前也在学习,东西实在太多,Coursera上面有Scala作者的一门课,

1
查看完整版本: ldquo院rdquo来是你