电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHP代碼的優與劣

瀏覽:3日期:2024-02-22 10:21:49

優良的PHP代碼應該是結構化的;優良的PHP代碼應該是規范化的;優良的PHP代碼應該是自適應的;優良的PHP代碼應該是安全的……

我在SitePoint做面試官的時候一定會問的問題是:你認為PHP代碼的優劣體現在哪里?因為這個問題可以讓我大體知道應聘者是哪種類型的程序員,而不是單純地考察他對PHP函數的掌握程度(這一點Zend的PHP認證做得不錯,雅虎的PHP程序員面試題也屬于此類)。

重要的是,這個問題可以讓我知道應聘者是否經歷過這樣的事情——從一個懶散程序員手中接過一段凌亂的代碼進行重用,或者要幫助團隊中的其他成員來處理這類事情。

誠然,對于這個問題我自己并沒有一個滿意的答案,不過我知道哪些答案是我想聽到的:

優良的PHP代碼應該是結構化的。大段的代碼應該被分割整理成一個個函數或方法,而那些不氣眼的小段代碼則應該加上注釋,以便日后清楚它們的用途。而且應該盡可能地把前臺代碼如HTML、CSS、Javascript等從程序中分離出來。PHP的面向對象編程特性可以很好地幫助程序員將代碼整理有序。

優良的PHP代碼應該是規范化的。無論是為變量名和函數名設定命名規則,還是對一些會重復使用的過程如數據庫操作和錯誤處理進行標準化,抑或是簡單到規定好代碼是怎樣縮進的,這些規范化都可以讓代碼的可讀性大大提高。

優良的PHP代碼應該是自適應的。PHP有許多特性如magic quotes和short tags,這些特性的打開和關閉會影響到程序的運行。所以,一個好的程序員應該在他的代碼中加如適當的語句來使程序能夠根據環境進行調整。

優良的PHP代碼應該是安全的。雖然PHP是一種高效、靈活的語言,沒有固定的框架,但卻把安全問題留給了程序員們。對潛在安全漏洞的深刻理解,如跨站腳本攻擊(XSS)、跨站請求偽造(CSRF)、代碼注入漏洞、字符編碼循環漏洞等,對于今天的專業程序員來說是至關重要的。

當應聘者在回答這些問題的時候,我就能清楚地知道是否該錄用他。當然,有時程序員并不能很好地闡明這個問題,這時我們會讓他們做一些PHP測試。測試中的許多問題表面上看起來非常簡單,但這也給了應聘者們一個展現自我的機會,因為只要觀察得仔細,就能找出問題。

下面這一小段“劣質”的PHP代碼是一道簡化了的測試題。這種問題就像在問:你該怎樣優化這段代碼?

<?echo('<p>Search results for query: ' . $_GET['query'] . '.</p>');?>

這段代碼的主要問題在于它把用戶提交的數據直接顯示到了網頁上,從而產生XSS漏洞。其實有很多方法可以填補這個漏洞。那么,什么代碼是我們想要的呢?

<?echo('<p>Search results for query: ' . htmlspecialchars($_GET['query']) . '.</p>');?>

這是最低要求。XSS漏洞用htmlspecialchars函數填補了,從而屏蔽了非法字符。

<?php; if (isset($_GET['query'])); {; echo '<p>Search results for query: ',; htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>'}; ?>

能寫出這樣代碼的人應該是我想要錄用的人了。

<?被替換成了<?php,這樣更符合XML規范。在輸出$_GET['query']的值之前先判斷它是否為空。echo命令中多余的括號被去掉了。字符串用單引號限定,從而節省了PHP從字符串中搜索可替換的變量的時間。用逗號代替句號,節省了echo的時間。將ENT_QUOTES標識傳遞給htmlspecialchars函數,從而保證單引號也會被轉義。雖然這并是最主要的,但也算是一個良好習慣。可惜的是,能給出這樣讓人滿意答復的程序員少之又少。我們花了3個月的時間才招聘到讓我們滿意的程序員。

那么,你會怎樣回答文章開頭提出的問題呢?你認為PHP代碼的優劣體現在哪里?你認為一個PHP程序員還應具有哪些品質?

本文出自:http://www.yeeyan.com/articles/view/38585/18736原文鏈接:http://www.sitepoint.com/blogs/2007/05/25/good-and-bad-php-code/

標簽: PHP
主站蜘蛛池模板: 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 有声小说,听书,听小说资源库-听世界网| 西门子代理商_西门子变频器总代理-翰粤百科 | 示波器高压差分探头-国产电流探头厂家-南京桑润斯电子科技有限公司 | 北京开源多邦科技发展有限公司官网 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | hc22_hc22价格_hc22哈氏合金—东锜特殊钢 | 防爆电机生产厂家,YBK3电动机,YBX3系列防爆电机,YBX4节防爆电机--河南省南洋防爆电机有限公司 | 锻造液压机,粉末冶金,拉伸,坩埚成型液压机定制生产厂家-山东威力重工官方网站 | 卫浴散热器,卫浴暖气片,卫生间背篓暖气片,华圣格浴室暖气片 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 工业冷却塔维修厂家_方形不锈钢工业凉水塔维修改造方案-广东康明节能空调有限公司 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | 防爆大气采样器-防爆粉尘采样器-金属粉尘及其化合物采样器-首页|盐城银河科技有限公司 | 非标压力容器_碳钢储罐_不锈钢_搪玻璃反应釜厂家-山东首丰智能环保装备有限公司 | 塑木弯曲试验机_铜带拉伸强度试验机_拉压力测试台-倾技百科 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 罗氏牛血清白蛋白,罗氏己糖激酶-上海嵘崴达实业有限公司 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 洗砂机械-球磨制砂机-洗沙制砂机械设备_青州冠诚重工机械有限公司 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 磁力反应釜,高压釜,实验室反应釜,高温高压反应釜-威海自控反应釜有限公司 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 自进式锚杆-自钻式中空注浆锚杆-洛阳恒诺锚固锚杆生产厂家 | 石牌坊价格石牌坊雕刻制作_石雕牌坊牌楼石栏杆厂家_山东嘉祥石雕有限公司 | 不锈钢水箱厂家,不锈钢保温水箱-山东桑特供水设备 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | 壹作文_中小学生优秀满分作文大全 | 气力输送设备_料封泵_仓泵_散装机_气化板_压力释放阀-河南锐驰机械设备有限公司 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 尾轮组_头轮组_矿用刮板_厢式刮板机_铸石刮板机厂家-双驰机械 | 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 创富网-B2B网站|供求信息网|b2b平台|专业电子商务网站 |