40个迹象表明你还是PHP菜鸟

更新时间:2008年09月29日 20:18:26   作者:

英文版权归Reinhold Weber所有,中译文作者yangyang(aka davidkoree)。双语版可用于非商业传播,但须注明英文版作者、版权信息,以及中译文作者。翻译水平有限,请广大PHPer指正。

我愿意把本文归入我的“编程糗事”系列。尽管在正规大学课程中,接触到软件工程、企业级软件架构和数据库设计,但我还是时不时地体会到下述事实带给我的“罪恶”感,当然,都是我的主观感受,并且面向Eclipse:

你是PHP菜鸟,如果你:

1. 不会利用如phpDoc这样的工具来恰当地注释你的代码

2. 对优秀的集成开发环境如Zend Studio或Eclipse PDT视而不见

3. 从未用过任何形式的版本控制系统,如Subclipse

4. 不采用某种编码与命名标准,以及通用约定,不能在项目开发周期里贯彻落实

5. 不使用统一开发方式

6. 不转换(或)也不验证某些输入或SQL查询串(译注:参考PHP相关函数)

7. 不在编码之前彻底规划你的程序

8. 不使用测试驱动开发

9. 不在错误开启状态下进行编码和测试(译注:参考PHP函数error_reporting)

10. 对调试器的好处视而不见

11. 不重构你的代码

12. 不使用类似MVC模式把程序的不同层次划分开

13. 不知道这些概念:KISS, DRY, MVC, OOP, REST

14. 不用return而是直接在你的函数或类中输出(echo/print)内容

15. 对单元测试或通用测试的优点视而不见

16. 总是返回硬编码的HTML,却不返回纯粹的数据,字符串,或对象

17. 总是对“消息”和“配置参数”进行硬编码

18. 不对SQL查询语句做优化

19. 不使用__autoload(译注:参考PHP手册相关描述)

20. 不允许智能错误处理(译注:参考PEAR的ErrorStack)

21. 使用$_GET替代$_POST来做具有破坏性的传递操作

22. 不知道怎么利用正则表达式

23. 从未听说过SQL注入或跨站脚本

24. 不允许简易配置,也不允许类的构造函数接受参数传递而后执行set/get方法,或运行时的常量定义

25. 不理解面向对象编程(OOP)的优势和劣势

26. 不视情形大小而滥用OOP

27. 自认为实现可复用的软件一定等于/需要让你的代码遵循OOP

28. 不利用智能缺省值

29. 没有单一的配置文件

30. 不想暴露文件源码,却用.inc后缀名取代了.php

31. 不使用数据库抽象层

32. 不能保持DRY作风,即不重复自己,如果你总是在复制粘贴一些东西,说明你设计得很差劲

33. 没有实现让一个函数/类/方法只做一件事,也不能组合利用它们

34. 没能尝试OOP的特长,如抽象类、接口、多态、继承,访问控制修饰符(译注:如public, private, protected)

35. 不用现有的设计模式优化你的程序体系设计

36. 不允许你的用户在你拥有很多文件或目录的情况下定义基础目录

37. 污染了名称空间,比如用常见字符串命名你的库函数

38. 使用数据库表时不使用表前缀

39. 不使用统一的模板引擎

40. 不关注已有的PHP开发框架,懒于探索;其实先进的开发理念和美妙代码就蕴含其中。

译注:另有马永占翻译版本《PHP程序员的40点陋习》,简洁并配有译者注释。

相关文章

招聘一个程序员,唯一对你有意义的是他能写出好程序的能力。 很少人像这样去招人,他们更喜欢去挑剔程序员的个人癖好和性格缺点。2010-09-09

技术的快速进步,最好的途径就是阅读源代码了。自己也阅读了很多开源的程序,感觉方法很重要,好的方法可以达到事半功倍的效果。一下就是我自己的一些新的,希望对大家都有用。2009-08-08

PHP+MYSQL开发工具及资源收藏...2007-01-01

有效率地在AWS上部署是值得学习的但是怎样简单的去部署git服务?为了它我是否需要额外的服务?同样的一个实例是否可以运行多个应用?收费模型又是怎么样的呢尽管看了他们的价格页面,我还是不明白哪一部分跟我相关。看完他们网站我心里还是有一堆的问号无法找到答复。2016-04-04

PHP是全世界上使用率最高的网页开发语言,台湾每4个网站,就有1个用PHP语言开发。1995年发明PHP语言的Rasmus Lerdorf,也是打造出Yahoo全球服务网站的架构师之一,他首度来台分享如何架构网站扩充性丶安全性和效能的秘诀。2011-06-06

影响PHP+MYSQL执行速度的写法对比...2007-01-01

在面向对象编程,多态性是一个强大的和基本的工具。它可以用来在您的应用程序建立一个更有机的流。本教程将介绍多态性的笼统的概念,以及它如何在PHP中可以很容易地部署。2011-08-08

WINXP下apache+php4+mysql...2006-11-11

PHP 开发工具...2006-12-12

手把手教你使用DedeCms的采集的图文教程...2007-03-03

最新评论

soyun是php么,40个迹象表明你还是PHP菜鸟相关推荐

  1. 40个迹象表明你还是PHP菜鸟

    40个迹象表明你还是PHP菜鸟 我愿意把本文归入我的"编程糗事"系列.尽管在正规大学课程中,接触到软件工程.企业级软件架构和数据库设计,但我还是时不时地体会到下述事实带给我的&qu ...

  2. 小心了,40个迹象表明你还是PHP菜鸟

    1. 不会利用如phpDoc这样的工具来恰当地注释你的代码 2. 对优秀的集成开发环境如Zend Studio或Eclipse PDT视而不见 3. 从未用过任何形式的版本控制系统,如Subclips ...

  3. 十天学会PHP(第五版),十天学会php之第五天

    十天学会php之第五天 学习目的:学会读取数据 先看两个函数: 1.mysql_query 送出一个 query 字符串. 语法: int mysql_query(string query, int ...

  4. 开发者 发展 2 码路指南

    码路指南 如何定义和区分高级软件开发工程师? 一名优秀的初级开发工程师应该能够快速完成他人分配的工作,并且保证质量. 一名优秀的中级开发工程师不需要监督.他们可以自己提出代码设计的问题,并在设计讨论中 ...

  5. 程序员是青春饭吗?30岁后的发展方向和突破

    作者:丁仪 来源:https://chengxuzhixin.com/blog/post/30_sui_hou_de_fa_zhan_fang_xiang_he_tu_po.html 前些年,有人说程 ...

  6. python四舍五入round_四舍五入就用round( )?Python四舍五入的正确打开方式!

    四舍五入就用round( )?Python四舍五入的正确打开方式! 2018-09-22 21:40 阅读数 4 <>round( )函数简介 菜鸟教程中介绍到,round() 函数作用就 ...

  7. java-net-php-python-47ssm志愿者管理系统程序计算机毕业设计程序

    java-net-php-python-47ssm志愿者管理系统程序计算机毕业设计程序 java-net-php-python-47ssm志愿者管理系统程序计算机毕业设计程序 本源码技术栈: 项目架构 ...

  8. 这个阶段快递公司最重要的人物是CTO

    "这个阶段快递公司最重要的人物是CTO,"菜鸟总裁童文红在今天的菜鸟两周年合作伙伴大会上出语惊人,"因为在过去的几年里面,快递靠人的魅力靠机制的魅力来运行已经到了极致,而 ...

  9. 增长率高达40%!物联网平台如何拉动产业马车飞速狂奔

    来源: 联动原素.安信通信研究.IoT Analytics 物联网智库 整理发布 物联网的低准入门槛造就了这个内容庞大的产业生态,致使更多的企业融入进来.伴随物联网大规模发展,物联网平台在其中的作用越 ...

最新文章

  1. go mysql socket_Go语言实现socket实例
  2. String类及其构造器和常用方法
  3. python爬虫beautifulsoup_python爬虫初步之BeautifulSoup实战
  4. Zabbix监控多个JVM进程
  5. 0603 0402 0805 电阻封装寸尺
  6. 2020年最新全国彩礼地图出炉,你那儿娶媳妇儿需要多少彩礼钱呢?数据分析来告诉你...
  7. CentOS+Subversion
  8. 全面剖析Ajax的XMLHttpRequest对象(学习Ajax必须知道的东西)
  9. 希望这篇文章对理解C#的对象模型有所帮助
  10. php函数获取数据库中的表格,初步了解PHP获取数据库表信息函数_PHP教程
  11. ads软件是什么?有什么用?怎么用?
  12. 网吧服务器系统安装,网吧服务器和客户端安装教程
  13. micropython esp8266 红外控制小车
  14. 电脑连接手机热点用百度云下载一会后断网
  15. java date iso,使用DateTimeFormat.ISO.DATE配置Jackson而不是工作
  16. 软件生存周期、项目生命周期、产品生命周期区别
  17. Oracle-数据库所有查询命令
  18. 2017年Q1中国无线路由器市场研究报告
  19. 内网穿透的概念及解决方案
  20. Postman学习_Sinno_Song_新浪博客

热门文章

  1. 控件必须放在具有 runat=server 的窗体标记内 错误解决解决方法
  2. c:forTokens
  3. 黄聪:火狐firefox打开flash就卡
  4. 【修正】Q93:PLY文件对应图形法向量反向问题——以bunny10K为例
  5. 《深度学习》李宏毅 -- task2 回归
  6. 获取一个字符串在另一个字符串中出现的次数
  7. 数据分析在企业中的应用
  8. python用正则表达式提取中文_python3.x提取中文的正则表达式示例代码
  9. 使用TypeScript命令行工具 tsc CLI
  10. flutter 推荐插件:path_provider