msgbartop
用铅笔写日记,记录那最原始的美丽
msgbarbottom

10-8-22 php 语言,也就那样了

话说我还以前从来还没有这样正视过php.虽说之前也学过一点php.不过也是冰山一角而已.对php的印象也只是这是用C语言实现的网页开发语言,开源、跨平台、有很多基于它的免费著名的项目。

前段时间php发布了5.3.3版本,我的论坛(基于discuz! 7.2)一下子不能用了,面对discuz!团队对于这等突发事件缓慢的反应。我便决定把论坛迁移到其他的论坛架构上去.

其间搜索了不少关于phpwind、discuz!、phpbb 等之间的比较,最后锁定了phpbb.也就是这时,看到了一些关于discuz! 论坛架构代码冗余、代码重用性低、效率不好之类的诟病.

按说像康盛创想这样的大公司,说的出“技术从来不是瓶颈,创新是我们一直的动力”这样的口号,做出的东西不应该有这样的硬伤阿,不过想想也对,如果不是没有按照低耦合的模式来,底层改起来的确够麻烦的(从php 5.3.3 开始类里面的同名函数不作为构造函数了).

这时候我就开始觉得php太懒散了.也真是它的易用性,导致开发者想怎么写就怎么写,比如那个变体函数(魔法函数),想想就害怕.

前端时间被公司派到另外一家公司,以外援的身份参加了一个门户网站项目的开发,是一个基于discuz! 下ucenter的项目.我主要负责视频模块.在那边呆了2天,话说我的模块早已完成。闲来无事便顺便看了看他们的项目,这也是我第一次看一个完整的php项目.

话说看的很吃力,注释少的可怜是一个原因,另外一个原因就是php模块的东拉西凑.比如里面有个好像是处理用户登录后的操作的类(姑且算他是类吧,其实我更感觉是一个请求转发器).原理是根据“ac"(应该是action的缩写……)载入不同的页面,执行不同的操作.

本来这个页面应该可以写的更简洁一点,可是里面充斥了大量的if_else 块.嵌套层数估计不下于10层.如果业务要求不得不得如此的话,还则罢了.

更恶心的是对于一些外来参数处理的函数通通写了进去.更有甚者,我貌似还在里面sql语句的声明.真的是……这个类就是传说中的上帝类(God Class)?因为它已经包办了一切.

很难想象,在实现功能的同时,这些开发者是否能考虑下未来的可维护性?可读性?

殊不知,一个正常的函数/方法体不应该超过百行.评价优质代码的标准不是看自己满意否?而是别人.

可是,是谁造成了这种状况?是php.是php 没有标准、没有规范的写法.给了他们方便.我不得不说,这样的代码真的如同老太婆的裹脚布一般,又臭又长.

而我在用记事本打开后,就如看天书一般.囧rz

当然我知道,php 大家庭里面有很多像wordpress、drupal、phpmyadmin 这样的国际知名项目.他们的代码结构如何我不清楚.不过wordpress的我倒有看过一些.怎么说呢,wp里面会专门有这样一个文件夹叫classes 来存放一些基类或者工具类这样的,不过我还是不能忍受在页面里面出现sql语句.当然可能只是个别.

wp总体来讲还是体系严谨的吧,毕竟是这么多人在维护.不然的话我真得不知道wp的作者matt是如何说出“代码如诗”这样的话来.呵呵,那不是自己给了自己一个耳光么?

总而言之,php 还是没有一个明显标准(据说有本书叫thinking in php,有空看看.据说有个框架叫 Zend Framework),我是这样想的,如果一个人在接触php之前有学过其他编程语言(非脚本语言),他可能会感觉不习惯、别扭.
而如果是一个完全的新手的话,则会很快的入门.说不定能在短时间内开发出一套实现了CRUD的简单博客系统.

呵呵,就是这么个大概情况.不过近些年LAMP大行其道确是实事.php 势头还是很猛的呵呵~

访客的留言

    1. 对,我就是一个完全的新手,觉得php挺好。

      p.s.我的服务器其实就是康盛托管的,当年本来想建论坛,后来改建博客的。至少他们数据服务还说得过去,没给我惹麻烦。

    2. 一个多变但很自由的的语言?咱其实也想好好的学习一门。

    3. 500的问题很严重额。提交3次才成功。。T.T...

      1. 有如此毅力,我很感动……

    4. 我被人忽悠到DZ去了 打心底讨厌DZ

      “Firefox 无法建立到 xiazhenxin.cn 服务器的连接”

    5. 打酱油来的······

    6. 博主过于鸡冻了。。。。不是php嫩,而是我们这些所谓的“程序员”嫩!至少我是这么觉得。。。

      1. 伟哥是想表达“没有垃圾语言,只有垃圾程序员”的意思?可是php的松散确是不可回避的事实~

        而且有越来越多的人逐渐从一味追求php的狂热中觉醒了 :)

    7. 哈哈。小鑫兄自己的URL有误

      xiazhengxin.com.cn

      1. 那是我以前的域名,一直没改.因为此域名我还是要拿回来的.

    8. else else

      说的php,那些人,一定要从基础开始,然后,就是去学C
      没有带类过来学去

      或是教科书上的

      我想现在学php完全可以从模板,然后oop开始学

      简单快,到时候学的内容又不一样了!

      还在提醒一下楼主,不要用记事本写php

    9. 嗯 也就那样了,哈哈

    10. hu hu

      http://j.hgmayou.com/ 桔色

写下你的评论 »

(若看不到,请刷新。)