马永占,myz,mayongzhan

相当稳定的进步,欢迎回贴交流

myz
myz的公告

XML聚合
feedsky
最近评论
waterFLY:所有的东西都有tostring(),是因为所有的类都继承自object,object有 toString();
790500:马永占,你好,请加我QQ790500,我想做个小软件,是关于登陆论坛的
joe:Zend_Acl 每个人理解不同,我开始用zf做项目,权限也是自己写,后来全部重写为Zend_Acl,因为个人觉得Zend_Acl和Zend_Auth结合用不错

Zend_Filter 虽然我写的model底层类的那些基本的过滤都是直接用php函数,毕竟速度快,也方便,但这个只是基础,很多时候不同表单牵涉不同的过滤,例如ip地址过滤等等,那么就需要自己写filter了,……
nginxlee:很好,很强大!
Henry_Ma:这个笔记不错,我也这样记一下。
文章分类
收藏
    相册
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 PHP程序员的40点陋习 - 马永占 译 收藏

    新一篇: SEO 技巧 - 马永占 译  | 旧一篇: 成为更优秀的PHP开发人员的五点建议 - 马永占 译

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

    Reinhold Weber 提出PHP程序员的40点陋习.(本E问只写了一部分内容,译者找到原版翻译,以下是完全版)

           1不写注释

           2不使用可以提高生产效率的IDE工具

           3不使用版本控制

           4不按照编程规范写代码

           5不使用统一的方法

           6编码前不去思考和计划

           7在执行sql前不执行编码和安全检测

           8不使用测试驱动开发

           9编码时不打开自动报错(error_reporting)

           10不使用一种好的调试工具

           11不重构你的代码(refactor)

           12不采用MVC这样的分层结构

           13不知道以下等等概念:KISS,DRY,MVC,OOP,REST

           14在函数或者类里直接用print或者echo输出东西而不是返回(return)

           15不使用也不去了解单元测试

           16返回HTMl而不是data,strings,objects等类型

           17糟糕的代码和配置参数(hard code messages and configuration parameters)

           18不优化sql查询

           19不使用__autoload

           20不支持自动错误操作(应该是智能纠错)

           21使用$_GET替代$_POST去进行危险的参数传递(记得这40条都是错误的东西)

           22不知道怎样使用正则表达式

           23从未听说过sql注入和跨站脚本(安全方面,应该了解下这两个东西的英文:sql injection,cross-site scripting)

           24不支持简单配置,传递参数给类的构造函数,set/get方法,定义常量

           25不能理解OOP的优缺点

           26无论要做的东西有多小,都使用OOP

           27认为做可复用的软件就是OOP

           28不使用缺省值(don't choose intelligent defaults)

           29不使用单一配置文件

           30不想让别人看到代码,却使用.inc替换掉.php

           31不使用数据库抽象层(持久层)

           32开发时不DRY(Dont repeat yourself). (就是总开发重复的东西)

           33不开发可以重复使用的类或者方法.

           34不使用抽象类或者接口类,继承,多态,封装.

           35不使用已有的设计模式优化你的程序.

           36不允许使用者定义基础目录(这点好象PHP不太适合,毕竟不是基于操作系统的开发)

           37错误的使用命名空间,使用大家都普遍使用的单词作为前缀.(这样以后别人使用会造成冲突.,例如自己定义一个function 叫 array_push())

           38使用数据库时不使用表前缀(这个很重要...)

           39不使用或者使用一个陌生的模板引擎(方便团队开发,大家要使用常见的模板)

           40不去看PHP的框架(大多数框架中都包含优秀的代码和先进的概念.值得我们学习)

    其中译者还有很多做不到的,还需要努力!

     

    以下是原文:

     

       1. don't comment your code properly with something like phpDoc

     

       2. don't see the need and/or benefits of a good programming IDE like Zend Studio or Eclipse PDT

     

       3. have never used some form of version control like Subclipse

     

       4. don't adopt some coding & naming standards and general conventions and stick to to them at least throughout the project

     

       5. don't use a consistent methodology

     

       6. don't escape and/or validate properly input or sql queries

     

       7. don't plan your application thoroughly before starting to code

     

       8. don't use test-driven development

     

       9. don't program & test with error reporting on

     

      10. don't see the benefits of a debugger

     

      11. don't refactor your code

     

      12. don't keep the different layers seperated using something like MVC

     

      13. don't know what these stand for: KISS, DRY, MVC, OOP, REST

     

      14. don't return content but echo or print it from your functions or classes

     

      15. have never seen the advantage of unit tests or testing in general

     

      16. return HTML, not data, strings, or objects.

     

      17. hard code messages and configuration parameters

     

      18. don't optimize your sql queries

     

      19. don't use __autoload

     

      20. don't allow intelligent error handling

     

      21. use $_GET instead of $_POST for any destructive actions

     

      22. don't know how to use regular expressions

     

      23. you've never heard of sql injection or cross-site scripting

     

      24. don't allow simple configuration, can be parameters passed to a class’s constructor, set/get methods called later, or constants defined at a runtime.

     

      25. don't understand the benefits and limitations of Object Oriented Programming

     

      26. misuse OOP / everything you write , no matter how small is OOP

     

      27. you think reusable software equals/requires your code to be OOP

     

      28. don't choose intelligent defaults

     

      29. don't have one single configuration file

     

      30. don't want the file contents to be seen, but give it a .inc extension instead of .php

     

      31. don't use a database abstraction layer

     

      32. don't keep it DRY, Don't repeat yourself. If you have to copy and paste or duplicate something your design may be off.

     

      33. don't make a function/class/method do just one thing and don't make them interact.

     

      34. don't try to take advantage of OOP specific features like abstract/interface classes, inheritage polymorphism & access modifiers.

     

      35. don't optimize your application design with established design patterns

     

      36. don't allow your user to define a base directory if you have multiple files and/or directories

     

      37. pollute the global namespace, one option is to prefix the functions in your library with a common string

     

      38. don't allow a table prefix when using database tables

     

      39. use a separate template engine

     

      40. don't take a look at established php frameworks for inspiration, most of them have advanced web dev concepts and good code

     
     
     
     
     
     
    Reinhold Weber has put together a list of signs (40 in all on his "programming list of shame") that you're a lousy PHP programmer. Here's a sampling:
    don't see the need and/or benefits of a good programming IDE like Zend Studio or Eclipse PDT
    have never used some form of version control like Subclipse
    don't use a consistent methodology
    don't use test-driven development
    don't return content but echo or print it from your functions or classes
    return HTML, not data, strings, or objects.
    don't allow intelligent error handling
    you think reusable software equals/requires your code to be OOP
    Now granted, some of them are a bit more high level than others, but if you're not headed towards a lot of these, you might change paths, hop out of that comfort zone and branch out into the community and the language a little bit more.
     
     

    发表于 @ 2008年02月15日 13:34:00|评论(loading...)|收藏

    新一篇: SEO 技巧 - 马永占 译  | 旧一篇: 成为更优秀的PHP开发人员的五点建议 - 马永占 译

    评论

    #冰古 发表于2008-06-20 20:26:31  IP: 10.10.22.*
    原文链接呢?
    #mayongzhan 发表于2008-06-21 20:26:20  IP: 123.120.70.*
    哥哥.原文都给你写出来了...晕...去phpeye吧.那里的翻译部分有这篇....是我译的~
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © myz