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

如果你还有以下这些现象,那你仍是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. JAVA File方法各类文件复制操作

    import java.io.*; public class AllFile { public static void main(String[] args) throws Exception {// ...

  2. vue的过渡效果

    https://segmentfault.com/a/1190000007738518

  3. 封装的方法--读取任何路径下的properties文件中的值

    概述:我们在做项目时,经常需要从某个properties文件中读取properties文件中的值.现在我封装了一下方法,直接读取配置文件中的值. 代码如下所示: /** * Created by qi ...

  4. ios 改变图片大小缩放方法

    http://www.cnblogs.com/zhangdadi/archive/2012/11/17/2774919.html http://bbs.csdn.net/topics/39089858 ...

  5. VS2013 MFC C++ CString ,const char , char, string 类型转换

    VS2013 测试 以下测试加入头文件: # include <string>#include <cstdlib>using namespace std; //-------- ...

  6. Golang/Go语言/Go IDE/Go windows环境搭建/Go自动提示编译器/GoSublime

    Go是Google开发的一种编译型,并发型,并具有垃圾回收功能的编程语言. 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go ...

  7. 【leetcode】500. Keyboard Row

    问题描述: Given a List of words, return the words that can be typed using letters of alphabet on only on ...

  8. ***七牛跨域上传图片JS SDK

    SDK: http://developer.qiniu.com/code/v6/sdk/javascript.html#upload 上传 在页面中引入 plupload,plupload.full. ...

  9. (1)C#工具箱-公共控件1

    公共控件 InitializeComponent() 先说下InitializeComponent()这个方法,它在form1.cs里调用这个方法对控件进行初始化,控件的方法要在这个方法之后,否则会因 ...

  10. PyCharm配置gitHub远程仓储

    在一个团队里,编码不能是闭门造车,git学起来: 1. GIT的基本介绍.安装及使用教程- @廖雪峰 2. pycharm配置github远程仓储- @谢小小XH