字体:  

PHPer不要妄自菲薄了,PHP比你想象的要大得多

leric 发表于: 2008-8-17 13:27 来源: PHPChina 开源社区门户

最近在招聘版逛的时候,很多人看到有些要求比较高的职位,就觉得那不是再找PHP的人了,似乎PHP的工作就是写PHP,顶多写点儿JS,CSS之类的,一涉及到Shell,Socket,多线程什么的好像就和PHP无关了。确实,PHP的培训顶多把LAMP交给你,其它没有讲到的看起来就像是分外的事了,但要做好LAMP架构下的系统,要懂得东西太多了。
首先是Linux,最基本的要求是熟悉各种命令,了解AMP的配置;再多一点,就需要知道Linux系统的配置,会写点儿Shell脚本,crontab,会用用Perl,Python之类的脚本语言;再高一层就需要知道Linux的进程和线程的模型,内存管理,进程间通信,文件管理,了解并发相关的问题。这些东西看起来和PHP没有任何关系,但懂得这些东西对于思考解决问题都有着很大的帮助,懂得这些底层的东西,遇到问题才能知其然并能知其所以然,知道那种东西适合哪种环境,出了问题可能会在那一层,才能解决别人解决不了的问题。
Apache和PHP的配置方面也是做PHP必须了解的,这方面我觉得就需要英语的能力了,现在网上技术方面的中文资源的质量很有问题,很多细节问题还是需要从官方的文档里找,这方面就需要慢慢积累,叫招拆招了,没什么多说的。
PHP语言方面,确实很难找到比PHP更容易入门的语言了,但要把PHP用好,功夫就不再语言上了。这方面我觉得学学Java会对PHP的应用有很大的帮助,在Java里被约束管了的程序员,到了PHP肯定会自由的难受的,整个流程中什么东西都要自己定,这样就逼你利用自己的设计思想来组织一套开发的模式。终归这是个编程设计思想的问题,所以设计模式也是一个必修课,现在PHP5里有了完善的OO的支持,Java的不少思想都可以搬到PHP里来了。
MySQL是个比较简单的数据库,但要用好它还是需要不少的数据库功底的。首先数据库的设计是和DBMS关系不大的,通过二维表来表达各种各样的数据关系,也是个比较复杂的事。好的数据库设计是性能优化的基础,在设计中结构的设计,索引的规划,必要的数据冗余,是对性能影响最大的部分。查询的优化需要对关系模型有清晰的理解。MySQL5里添加了不少的新特性,5.1又加了不少东西,像表分区,视图,存储过程,都是应用中很有用的东西,不知道可不行的。另外,各种字段类型,各种表类型的优劣,约束都是要熟悉的。
另外,PHP在应用中,很多东西还是需要别的语言来提供必要的补充的,像一些计算速度要求高的工作,或者需要多线程的工作,就需要C,Java等语言的补充了,所以多会几个语言肯定有好处,每个语言有自己的思维方式,结构化,面向对象,函数式的编程风格差异是很大的,对这些都有点了解的话对开阔思路也是很有帮助的。


最后推荐一个网站:http://highscalability.com/

最新回复

thankwsx at 2008-8-17 13:30:08
slawdan at 2008-8-17 14:40:47
没觉得php比我想象的强大多少……

php就是这样,高不成低不就,asp(非.net)以外就属Php简易了

在其合理的应用范围内,php有着还不错的表现,超出了范围,还是用别的吧~

语言特性导致的,没辙啊
ylcz at 2008-8-18 09:25:31
谢谢提醒
欧阳 at 2008-8-18 11:18:07
3楼不知道php的内涵
slawdan at 2008-8-18 13:34:02

QUOTE:

原帖由 欧阳 于 2008-8-18 11:18 发表
3楼不知道php的内涵
那您可以分享一下php的内涵么?
leric at 2008-8-18 14:14:21
PHP就是一种编程语言,在Web应用中给用户提供了访问Web环境资源最便捷的方式,通过Pecl,Pear提供了一大堆函数实现各种各样的功能,在PHP力所能及的领域给了开发者极大的自由和方便。这就是我认识的PHP语言。
而应用和语言又是两码事,在应用中,PHP需要依赖很多东西来达到目的,需要设计模式的思想来组织系统的架构,描述需要实现的业务,需要数据库技术来管理持久数据,还很可能需要其他语言的配合实现运算密集型的工作和异步的操作。
相比.NET和Java,PHP的开发太过自由。用Java,Struts会告诉你一堆规则需要遵守,而在PHP里,你需要自己来建立这些规则。我觉得这是用好PHP最大的难点了,现在逐渐发展起来的各种框架应该会慢慢改变这个状况吧。

三楼的该长长见识了,英语还行的话到我推荐的那个网站去看看吧。
欧阳 at 2008-8-18 14:25:17
我还没有达到理解内涵的高度,只是在表面理解了一点。

lamp,我自己的站从数百ip发展到数万ip时,网站的程序,数据库等等部署,全部发生了变化,期间遇到了不少的困难。
令人可喜的是,至今遇到的问题中,lamp它总是有办法回应各种问题和困难。
对于php的信心来自另一个朋友的站,日ip 25万,曾经和他交流过一点点技术方面的内容,越觉得自己现在的应用是多么肤浅。

开始阶段认为php=asp,只是语法不同,都是做动态网页。
后来发现php比asp先进一点点,接口多一点,平台支持多一点,于是认为php >= asp。
现在不明白php到底和asp该如何比较。
php在不同的阶段,总给呈现出它不同的内容,它让我觉得我对php越来越无知。
forest at 2008-8-18 23:55:40
laruence at 2008-8-19 00:53:18
删除....

[ 本帖最后由 laruence 于 2008-8-19 10:01 编辑 ]
muqiao at 2008-8-19 07:30:48
是不是LZ学多了,然后来鄙视才学php一门的人,
laruence at 2008-8-19 09:38:33

QUOTE:

原帖由 muqiao 于 2008-8-19 07:30 发表
   是不是LZ学多了,然后来鄙视才学php一门的人,
我不是这个意思,我是比较讨厌那种,动不动就说PHP没前途的人,也不想想自己做的够不够多,够不够努力。
laruence at 2008-8-19 09:44:50
也是因为昨天的特定的情况下我才那么说的哈。。。

;),大家必要太介意
edwardhey at 2008-8-19 09:49:37
好帖子~ 我顶~

确实 PHP感觉给我无限动力,但我更相信PHP能带给我们激情,这些激情是要和别的工具碰撞产生的,shell,socket,linux,python等等~

期待PHP更强大
ssg520 at 2008-8-19 09:59:09
pylong at 2008-8-19 10:06:46
引楼主:Shell,Socket,多线程什么的好像就和PHP无关了
至少我知道:Shell,Socket有关吧

怎么说呢,老感觉这些争吵很是无聊
一个系统(WEB系统),不可能单由一种语言完成
你说要PHP去做如桌面软件等东西的确吃力不讨好
但在WEB方面的开发(不单单指简单小站开发),PHP绝对是可选择之一。
其实做个大型WEB系统开发的人应该清楚,语言只是整个系统架构一部分,影响整个系统的往往不是语言的效率,如果真是语言效率,证明只是写的程序有问题,并非语言本身问题。
WEB,并非单单是语言本身吧
laruence at 2008-8-19 10:23:09

QUOTE:

原帖由 pylong 于 2008-8-19 10:06 发表
引楼主:Shell,Socket,多线程什么的好像就和PHP无关了
至少我知道:Shell,Socket有关吧

怎么说呢,老感觉这些争吵很是无聊
一个系统(WEB系统),不可能单由一种语言完成
你说要PHP去做如桌面软件等东西的确 ...
恩,很客观,我赞同。
E网逍遥 at 2008-8-19 10:43:29
什么语言做什么事,不要要求太多,别的语言有多强大,那是他们的事,凡事都要量力而为,(有种就用汇编语言写个留言本让人用,看人家会不会笑你牛)有本事就自己写一个语言来取代,整天对PHP说三道四,鄙视他,我就是PHP fans我怕谁,草根出身又如何,永远支持PHP,永远跟随PHP
E网逍遥 at 2008-8-19 10:44:20
而且PHP是可以扩展的
欧阳 at 2008-8-19 14:57:56
楼主发此文,是赞同php的,3楼才是不知道php的新手。
ant586 at 2008-8-20 03:42:40
、一门语言一天有上万人同时研究,他们研究出来的东西,我们不可能跟得上的,择其一二学精通吧