最近看了个文章,写的很精辟,跟大家分享一下,这也是我的目标:

如果你还有以下这些现象,那你仍是PHP菜鸟:
1. 不会利用如phpDoc这样的工具来恰当地注释你的代码;
2. 对优秀的集成开发环境如Zend Studio或Eclipse PDT视而不见;
3. 从未用过任何形式的版本控制系统,如Subclipse;
4. 不采用某种编码与命名标准,以及通用约定,不能在项目开发周期里贯彻落实;
5. 不使用统一开发方式;
6. 不转换(或)也不验证某些输入或SQL查询串(参考PHP相关函数);
7. 不在编码之前彻底规划你的程序;
8. 不使用测试驱动开发;
9. 不在错误开启状态下进行编码和测试;
10. 对调试器的好处视而不见;
11. 不重构你的代码;
12. 不使用类似MVC模式把程序的不同层次划分开;
13. 不知道这些概念:KISS, DRY, MVC, OOP, REST;
14. 不用return而是直接在你的函数或类中输出(echo/print)内容;
15. 对单元测试或通用测试的优点视而不见;
16. 总是返回硬编码的HTML,却不返回纯粹的数据,字符串,或对象;
17. 总是对“消息”和“配置参数”进行硬编码;
18. 不对SQL查询语句做优化;
19. 不使用__autoload;
20. 不允许智能错误处理;
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的特长,如抽象类、接口、多态、继承,访问控制修饰符;
35. 不用现有的设计模式优化你的程序体系设计;
36. 不允许你的用户在你拥有很多文件或目录的情况下定义基础目录;
37. 污染了名称空间,比如用常见字符串命名你的库函数;
38. 使用数据库表时不使用表前缀;
39. 不使用统一的模板引擎;
40. 不关注已有的PHP开发框架,懒于探索;其实先进的开发理念和美妙代码就蕴含其中

如果你还有以下这些现象,那你仍是PHP菜鸟:的更多相关文章

  1. Mathematics for Computer Graphics数学在计算机图形学中的应用 [转]

    最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=10509 [译]Mathematics for Computer Gra ...

  2. Mathematics for Computer Graphics

    Mathematics for Computer Graphics 最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=105 ...

  3. 10步成为一个优秀的Java开发!

    1.拥有坚实的基础并理解面向对象原则 Java开发人员必须深刻理解面向对象编程.如果没有面向对象编程的坚实基础,就无法感受到像Java这样的面向对象编程语言的美感. 如果你不太了解现象对象编程是什么, ...

  4. Android 已发行多年,移动 App 已经趋近饱和,那么 Android 开发还会有那么吃香吗?

    一.关于Android的前景 不断地也听见很多人在谈做Android是否还有前途.Android研发在走下坡路了.Android的工作太难找了.Android是不是已经凉了...... 对于这些其实我 ...

  5. nuget的搭建及多源冲突

    为什么使用nuget来管理类库引用就不再阐述,好处真的一抓一把.在使用nuget的时候,我们如果总去访问别人的nuget源,受限于网络情况的好坏,速度真的没法保证,更别说访问国外的源了.那好,我们来自 ...

  6. 优化C/C++代码的小技巧

    说明: 无意看到一篇小短文,猜测作者应该是一个图形学领域的程序员或专家,介绍了在光线(射线)追踪程序中是如何优化C/C++代码的.倒也有一些参考意义,当然有的地方我并不赞同或者说我也不完全理解,原文在 ...

  7. net.ipv4.tcp_tw_recycle

    原创 2016-03-07 CFC4N 运维帮 本文为翻译英文BLOG<Coping with the TCP TIME-WAIT state on busy Linux servers> ...

  8. 如何通过Visual Studio发布Azure应用程序

    发布 Azure 云服务 使用 Azure Tools for Visual Studio,可以直接从 Visual Studio 将云服务发布到 Azure. 在发布 Azure 云服务之前,必须已 ...

  9. 编程的宗派(OOP与FP孰优孰劣)--王垠

    编程的宗派 总是有人喜欢争论这类问题,到底是"函数式编程"(FP)好,还是"面向对象编程"(OOP)好.既然出了两个帮派,就有人积极地做它们的帮众,互相唾骂和鄙 ...

随机推荐

  1. 最大异或和(xor)

    最大异或和(xor) 题目描述 给定一个非负整数序列{a},初始长度为N. 有M个操作,有以下两种操作类型: 1.A x:添加操作,表示在序列末尾添加一个数x,序列的长度N+1. 2.Q l r x: ...

  2. Java面试题之hashmap中用什么hash算法解决碰撞的?

    查了一下源码(jdk8),记录一下吧,能记住就记一下吧! static final int hash(Object key) { int h; return (key == null) ? 0 : ( ...

  3. 读入输出优化_C++

    当我们考试时遇到大量的读入或者输出时,这些代码会耗费许多运行程序的时间,导致TL 本来 log2n 的算法因为读入被卡成线性的就太不划算了,所以我们这里要采用读入输出优化 getchar 和 putc ...

  4. 推送通知iOS客户端编写实现及推送服务器端编写

    http://blog.csdn.net/tonny_guan/article/details/8963262 1.iOS客户端编程 推送通知技术在Mac OS X和iOS系统上都可以运行,我们本章主 ...

  5. c专家编程读书笔记

    无论在什么时候,如果遇到malloc(strlen(str));,几乎可以直接断定他是错误的,而malloc(strlen(str)+1):才是正确的: 一个L的NUL哟关于结束一个ACSII字符串: ...

  6. js5秒后自动关闭本页面及5秒钟后自动跳转指定页面的方法

    5秒钟后自动关闭 <!DOCTYPE HTML> <html> <head> <title>倒计时自动关闭/跳转页面</title> < ...

  7. 使用VMware 管理服务器

    使用VMware 管理服务器 实验室有一台浪潮服务器.师兄只留下了开机用户名和密码,和一个VMware vSphere Client的安装包,就把它托付给了我.就是这样一个方方正正的长方体,只提供了接 ...

  8. UVALive 3507:Keep the Customer Satisfied(贪心 Grade C)

    VJ题目链接 题意: 知道n(n <= 8e6)个工作的完成所需时间q和截止时间d,你一次只能做一个工作.问最多能做多少工作? 思路: 首先很像贪心.观察发现如下两个贪心性质: 1)一定存在一个 ...

  9. 【linux高级程序设计】(第十五章)UDP网络编程应用 5

    域名与IP信息解析 /etc/hosts 文件中有部分IP地址与域名主机名的信息 /etc/resolv.conf 里面有DNS服务器的IP地址 struct hostent { char *h_na ...

  10. VS2015自动添加注释

    记录下创建一个MVC5下的Models文件夹下的代码添加自动注释修改文件路径位置: 让VS自动生成类的头部注释,只需修改两个文集即可,一下两个路径下个有一个 Class.cs文件 C:\Program ...