如果你还有以下这些现象,那你仍是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)好.既然出了两个帮派,就有人积极地做它们的帮众,互相唾骂和鄙 ...
随机推荐
- 7月12号day4总结
今天学习过程和总结 封装JDBC在src/main/java下com.neuedu下utils建立JDBCUilt.java 进行封装,基于框架的开发要么继承父类要么实现接口 一个方法里只能有一个动态 ...
- Debian中文字体安装
默认装的英文办的debian7,看中国字不太美,这好办照着做吧 1. Setup locales #dpkg-reconfigure locales 选择 zh_CN GB2312 zh_CN.GBK ...
- Eclipse中使用Maven创建Web时错误
一.问题描述 使用Eclipse创建Maven项目时,报一下错误,不能创建成功. 二.问题原因 错误详细描述是说 Could not resolve archetype org.apache.mave ...
- SqliteDeveloper 破解
方法1: 注册表删除 HKEY_CURRENT_USER\SharpPlus\SqliteDev 下的 StartDate 方法2: 安装完成SQLite Developer后,先不要打开软件,下面 ...
- luogu 2709 小B的询问 莫队
题目链接 Description 小B有一个序列,包含\(N\)个\(1-K\)之间的整数.他一共有\(M\)个询问,每个询问给定一个区间\([L..R]\),求\(\sum_{i=1}^{K}c_i ...
- hdu 5157(树状数组+Manacher)
Harry and magic string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- 如何让IE7,IE8支持css3
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 原理:在用ie浏览 ...
- 计蒜客 28206.Runway Planning (BAPC 2014 Preliminary ACM-ICPC Asia Training League 暑假第一阶段第一场 F)
F. Runway Planning 传送门 题意简直就是有毒,中间bb一堆都是没用的,主要的意思就是度数大于180度的就先减去180度,然后除以10,四舍五入的值就是答案.如果最后结果是0就输出18 ...
- UVA 1395 Slim Span 最小生成树
题意: 给你一个图,让你求这个图中所有生成树中满足题目条件的,这个条件是生成树中最长边与最短边的差值最小. 思路: 根据最小瓶颈生成树的定义:在一个有权值的无向图中,求一个生成树最大边的权值尽量小.首 ...
- maven的知识图谱
maven 1.maven的好处 java项目管理工具 依赖管理 对jar包统一管理 项目名称 公司/组织 版本信息 本地仓库 由于索引的存在,找jar包很快 项目构建 依赖管理 传统项目 很大 包含 ...