LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

PHP代码的优与劣

admin
2010年7月8日 1:35 本文热度 5410
我在sitepoint做面试官的时候一定会问的问题是:你认为php代码的优劣体现在哪里?因为这个问题可以让我大体知道应聘者是哪种类型的程序员,而不是单纯地考察他对php函数的掌握程度(这一点zend的php认证做得不错,雅虎的php程序员面试题也属于此类)。[br] 重要的是,这个问题可以让我知道应聘者是否经历过这样的事情——从一个懒散程序员手中接过一段凌乱的代码进行重用,或者要帮助团队中的其他成员来处理这类事情。[br] 诚然,对于这个问题我自己并没有一个满意的答案,不过我知道哪些答案是我想听到的:[br] 优良的php代码应该是结构化的。大段的代码应该被分割整理成一个个函数或方法,而那些不气眼的小段代码则应该加上注释,以便日后清楚它们的用途。而且应该尽可能地把前台代码如html、css、javascript等从程序中分离出来。php的面向对象编程特性可以很好地帮助程序员将代码整理有序。[br] 优良的php代码应该是规范化的。无论是为变量名和函数名设定命名规则,还是对一些会重复使用的过程如数据库操作和错误处理进行标准化,抑或是简单到规定好代码是怎样缩进的,这些规范化都可以让代码的可读性大大提高。[br] 优良的php代码应该是自适应的。php有许多特性如magic quotes和short tags,这些特性的打开和关闭会影响到程序的运行。所以,一个好的程序员应该在他的代码中加如适当的语句来使程序能够根据环境进行调整。[br] 优良的php代码应该是安全的。虽然php是一种高效、灵活的语言,没有固定的框架,但却把安全问题留给了程序员们。对潜在安全漏洞的深刻理解,如跨站脚本攻击(xss)、跨站请求伪造(csrf)、代码注入漏洞、字符编码循环漏洞等,对于今天的专业程序员来说是至关重要的。[br] 当应聘者在回答这些问题的时候,我就能清楚地知道是否该录用他。当然,有时程序员并不能很好地阐明这个问题,这时我们会让他们做一些php测试。测试中的许多问题表面上看起来非常简单,但这也给了应聘者们一个展现自我的机会,因为只要观察得仔细,就能找出问题。[br] 下面这一小段“劣质”的php代码是一道简化了的测试题。这种问题就像在问:你该怎样优化这段代码?[br] echo("[br] search results for query: " .[br] $_get['query'] . ".[br] ");[br] ?>[br] 这段代码的主要问题在于它把用户提交的数据直接显示到了网页上,从而产生xss漏洞。其实有很多方法可以填补这个漏洞。那么,什么代码是我们想要的呢?[br] echo("[br] search results for query: " .[br] htmlspecialchars($_get['query']) . ".[br] ");[br] ?>[br] 这是最低要求。xss漏洞用htmlspecialchars函数填补了,从而屏蔽了非法字符。[br] if (isset($_get['query']))[br] {[br] echo '[br] search results for query: ',[br] htmlspecialchars($_get['query'], ent_quotes), '.[br] ';[br] }[br] ?>[br] 能写出这样代码的人应该是我想要录用的人了。[br] * * 在输出$_get['query']的值之前先判断它是否为空。[br] * echo命令中多余的括号被去掉了。[br] * 字符串用单引号限定,从而节省了php从字符串中搜索可替换的变量的时间。[br] * 用逗号代替句号,节省了echo的时间。[br] * 将ent_quotes标识传递给htmlspecialchars函数,从而保证单引号也会被转义。虽然这并是最主要的,但也算是一个良好习惯。[br] 可惜的是,能给出这样让人满意答复的程序员少之又少。我们花了3个月的时间才招聘到让我们满意的程序员。[br] 那么,你会怎样回答文章开头提出的问题呢?你认为php代码的优劣体现在哪里?你认为一个php程序员还应具有哪些品质?

该文章在 2010/7/8 1:35:12 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved