如果你还有以下这些现象,那你仍是PHP菜鸟:
最近看了个文章,写的很精辟,跟大家分享一下,这也是我的目标:
如果你还有以下这些现象,那你仍是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菜鸟:的更多相关文章
- Mathematics for Computer Graphics数学在计算机图形学中的应用 [转]
最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=10509 [译]Mathematics for Computer Gra ...
- Mathematics for Computer Graphics
Mathematics for Computer Graphics 最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=105 ...
- 10步成为一个优秀的Java开发!
1.拥有坚实的基础并理解面向对象原则 Java开发人员必须深刻理解面向对象编程.如果没有面向对象编程的坚实基础,就无法感受到像Java这样的面向对象编程语言的美感. 如果你不太了解现象对象编程是什么, ...
- Android 已发行多年,移动 App 已经趋近饱和,那么 Android 开发还会有那么吃香吗?
一.关于Android的前景 不断地也听见很多人在谈做Android是否还有前途.Android研发在走下坡路了.Android的工作太难找了.Android是不是已经凉了...... 对于这些其实我 ...
- nuget的搭建及多源冲突
为什么使用nuget来管理类库引用就不再阐述,好处真的一抓一把.在使用nuget的时候,我们如果总去访问别人的nuget源,受限于网络情况的好坏,速度真的没法保证,更别说访问国外的源了.那好,我们来自 ...
- 优化C/C++代码的小技巧
说明: 无意看到一篇小短文,猜测作者应该是一个图形学领域的程序员或专家,介绍了在光线(射线)追踪程序中是如何优化C/C++代码的.倒也有一些参考意义,当然有的地方我并不赞同或者说我也不完全理解,原文在 ...
- net.ipv4.tcp_tw_recycle
原创 2016-03-07 CFC4N 运维帮 本文为翻译英文BLOG<Coping with the TCP TIME-WAIT state on busy Linux servers> ...
- 如何通过Visual Studio发布Azure应用程序
发布 Azure 云服务 使用 Azure Tools for Visual Studio,可以直接从 Visual Studio 将云服务发布到 Azure. 在发布 Azure 云服务之前,必须已 ...
- 编程的宗派(OOP与FP孰优孰劣)--王垠
编程的宗派 总是有人喜欢争论这类问题,到底是"函数式编程"(FP)好,还是"面向对象编程"(OOP)好.既然出了两个帮派,就有人积极地做它们的帮众,互相唾骂和鄙 ...
随机推荐
- 论文笔记《Tracking Using Dynamic Programming for Appearance-Based Sign Language Recognition》
一.概述 这是我在做手势识别的时候,在解决手势画面提取的时候看的一篇paper,这里关键是使用了动态规划来作为跟踪算法,效果是可以比拟cameshift和kf的,但在occlusion,gaps或者离 ...
- xdebug使用教程
http://www.cnblogs.com/xujian2016/p/5548921.html 配置信息 zend_extension="D:\phpStudy\php53n\ext\ph ...
- Waifu2x测试
真的是好玩..给大家(?)提供一个能用Waifu2x upscale的图片类型集合.. 上面是原图下面是Upscaled..因为是png大家自行下载对比..
- POJ2187 旋转卡壳 求最长直径
给定平面上的一些散点集,求最远两点距离的平方值. 题解: 旋转卡壳求出凸包,然后根据单调性,求出最远两点的最大距离 #pragma GCC optimize(2) #pragma G++ optimi ...
- 使用java mail的网易smtp协议 发送邮件
package com.enation.newtest; import java.security.GeneralSecurityException; import java.util.Propert ...
- 生成 RSA 私钥及公钥
$ openssl # 进入 OpenSSL 程序 OpenSSL> genrsa -out rsa_private_key.pem 1024 # 生成私钥 OpenSSL> pkcs8 ...
- Windows.Forms Panel 动态加载用户控件 UserControl
创建好一个Windows Forms程序,在创建好的程序中Form1添加一个Panel控件 如图:
- eclipse块编辑
1. Windows > Preferences然后键入keys或浏览到General > Keys.根据该键输入filter text的block selection快速找到快捷方式上市 ...
- Uva 10158 War
并查集的应用 直接阔成2倍.后N项为对应的敌人 #include <map> #include <set> #include <list> #include < ...
- Linux内存管理图解【转】
转自:http://www.360doc.com/content/13/0505/15/12218157_283128759.shtml Linux内存管理图解 2013-05-05 果儿的百科 ...