仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 827|回复: 19
打印 上一主题 下一主题

[学习教程] PHP编程:干失落你法式中的僵尸代码

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:29:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学习了六个多月PHP了,还是个新手,在这里受到了很多人的帮助,谢谢你们!     
  跟着万圣节愈来愈盛行,咱们想跟人人会商一下一个在软件开辟中十分广泛的成绩:僵尸代码。几近一切人人接触过的代码库里都四散着良多小段的,乃至大片大片的被正文失落的代码。这就是僵尸代码。
  //今朝禁用这项功效。Jimmy在写这段代码时一定是喝醉了。
  //你能够觉得这里产生了可骇的代码凶手案…不,不,我只是把它们正文失落了…
为何称它们为僵尸代码?你晓得,僵尸不并非真的逝世的。就像生怕片子里告知咱们的,虽然僵尸看起来是逝世人,但它们仍有才能四周出没攻击咱们。不异 的事理,僵尸代码也是处于不生不逝世之间…它们在乘机弄砸咱们的任务。正文失落的代码还在世,它们就存在咱们的代码库中。法式员在保护和重构代码时会和它们遭 遇,凡是是转动屏幕时和它们擦肩而过,或是在停止关头词搜刮时和它们撞个满怀。但这些代码也的确是逝世的,由于它们在软件产物中其实不履行。因而,这些僵尸就 应当被烧失落,立即。
僵尸代码不逝世之躯

  我以为,有两个缘由招致了僵尸代码的暴虐:懒和惧怕风险。懒法式员对代码有保藏癖。他们缺少确信的勇气和清晰的熟悉去删除无用的代码,因而他们就把 它们埋没在正文里,希冀有朝一日它们能回生来再次祸患人。代码需求常常的、有企图的删除,由于优异的法式员都晓得:代码就是债权。越少越好。固然,被正文失落的代码依然是代码。
  烂法式员或许会辩论说,他们正文失落这些代码是为了“万一”今后有人会需求它们。现实上,这好意反而是害了人人。这实践上说的是惧怕风险,缺少对版本 掌握体系感化的信赖。有版本掌握体系在,删除的代码永久不会真实的逝世失落。它们被埋到棺材里但却在世。所以,正文代码的办法没有多大实践功效。
  关于法式来讲,正文失落的代码跟删失落的代码一样,不起任何感化。让代码半逝世不活,以僵尸的形状存在,形成手艺债权,终究会让你的团队受益。要判断,删失落它们。
僵尸代码下降信噪比

  当写法式时,咱们必定要勉力使代码里无效信息的比率越高越好。这有助于人们了解法式,更快的浏览代码,避免咱们由于曲解而写出有成绩的代码。僵尸代 码直接的匹敌代码的可了解性。它稽延咱们浏览和保护代码的速度,由于它使咱们在屏幕上看到更少的无效代码。它们就是视觉乐音,搅扰人们的正常浏览。处于某 些缘由,有些法式员会承受这类让步的做法,可是在实际中,谁会承受这类乱糟糟的画面。想象一下,假如纽约时报看起来像这个模样:
  

  若何浏览这断断续续的文字?乐音的增添就是对可了解性的伤害。对这些被正文失落的局部,虽然它们绝不相关,乃至会误导,但你却没法对它们置若罔闻。有 人会说,这不是终究宣布的产物,这些代码存在于开辟过程当中,拿它们跟宣布的产物做对照,这就像拿苹果比桔子。然而请记住,被写出的每行代码均匀都要被浏览10次。没错,你的代码的浏览人数没有纽约时报多,然而,你具有的是一个最主要的忠厚的浏览群体。就是咱们。 Knuth对此关心停止了精辟的总结:
  “编程是一种一团体告知另外一团体他想让盘算机做甚么的艺术。” Donald Knuth
而僵尸代码让你讲话讲不清晰。一个法式员需求去浏览被正文失落的代码吗?
僵尸代码形成歧义妨害调试

  正文失落的代码会带来歧义,人们会嫌疑这些代码是不是该正文失落。试想一下,你是一个来保护法式的法式员,俄然看到了一片正文失落的代码,而法式就在这四周 出了成绩。这个法式员的义务会变得更辣手。他需求浏览和了解这些正文失落的代码,懂得正文它们带来的影响。是由于测试而正文这些代码但忘了恢复吗?或许正文 这些代码的人可以供应匡助,但他是谁?查询拜访举动入手下手。过剩的歧义会损耗你的工夫,增添你的思虑承当——原本可所以一次轻松的调试进程。
僵尸代码影响关头词搜刮

  在大型法式库中,grep/find号令将会是你锁定某些特定的代码片断的雷达。但是,假如法式库里各处分布着僵尸代码,很有能够你捕获到的方针都是被正文失落的。这是搅扰。华侈工夫。
僵尸代码影响代码重构

  检查(重构)能修复咱们的魂灵。咱们应当以小孩scout的干事准绳为荣,永久把代码拾掇得比你想象的要整洁。但是,当一个类或办法包括有大批的僵尸代码时,工作就欠好处置了。假如重构这段法式,我是不是还要参考正文失落的代码?它们近期将会被从头利用吗?它会影响我的新版的完成吗?这些成绩关于保护的法式员来讲本该不需求回覆的。
  另外,集成重构东西基本不会思索这些正文失落的代码。因而,当办法,变量,类被重定名或润色符改动时,这些正文失落的代码就不会同步做修正。当你再想把正文失落的代码回生时,它们极可能基本不克不及编译。
有破例吗?

  没有。很明白。有人会说“我如今正文它们是由于我过会儿就要恢复它们。”OK,假定你是个家庭妇男,你走到起居室,看到:
  

  想一想你心坎的对话。这是个大度的房子,但这个器材又丑且奇异。我想开灯,但怎样会有胶带?假如我撕失落胶带去开灯,会产生甚么工作?你极可能终究决意 找贴胶带的人。“哦,我想翻开吊扇,但它启动时往返扭捏,失落了上去,我想修缮它….”固然,这是应当的。而在你没修睦它之前,胶带一向贴在开打开。咱们当 然不应让这些只修了一半的器材存在屋内。一样,咱们也不承受如许的代码。
  说的更分明些,任何被正文失落的代码都是僵尸代码,都应当被删失落。不论有几何。不论是在宣布的产物中仍是在开辟情况中。僵尸代码有时会在存亡之间摇 摆。假如代码被正文失落,这很有能够有器材没有完成。常常是设置装备摆设需求往返切换或逻辑分支摆布扭捏。正文代码能够会做实行性的往返切换,删除这些代码,建一个 记事贴,纪录下需求做的工作。在记事贴中记下哪次提交版本时删除这些代码。或,新建一个版天职支专门做这事,兼并时删除它们。如许,保护任务就不会受 到搅扰。
心里的查对表

  假如你盘算要正文一段代码,请先问问本人:


  • 假如有能够的话,甚么时分会作废正文?
  • 是不是能删失落它,假如往后有需求,从版本掌握体系里找回?
  • 对这些未完成的、有能够会回滚的代码,可否用版天职支来处置?
  • 这类需求往返切换正文的功效能否经由过程设置装备摆设完成?
  • 重构时也需求重构这些正文失落的代码吗?
   
  让咱们开启第一次年度万圣节僵尸代码大清剿。
我的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。
金色的骷髅 该用户已被删除
沙发
发表于 2015-2-3 23:46:35 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
柔情似水 该用户已被删除
板凳
发表于 2015-2-7 02:09:07 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
透明 该用户已被删除
地板
发表于 2015-2-7 15:54:16 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-11 11:02:54 | 只看该作者
当然这种网站的会员费就几十块钱。
小妖女 该用户已被删除
6#
发表于 2015-3-1 13:45:51 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
小魔女 该用户已被删除
7#
发表于 2015-3-4 10:47:22 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
海妖 该用户已被删除
8#
发表于 2015-3-4 11:36:19 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
若相依 该用户已被删除
9#
发表于 2015-3-6 23:49:10 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
因胸联盟 该用户已被删除
10#
发表于 2015-3-11 11:59:00 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
变相怪杰 该用户已被删除
11#
发表于 2015-3-13 01:06:11 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
分手快乐 该用户已被删除
12#
发表于 2015-3-17 01:09:02 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
飘灵儿 该用户已被删除
13#
发表于 2015-3-23 10:19:43 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
精灵巫婆 该用户已被删除
14#
发表于 2015-3-26 07:56:24 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
简单生活 该用户已被删除
15#
发表于 2015-3-28 09:37:18 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
灵魂腐蚀 该用户已被删除
16#
发表于 2015-4-3 09:53:46 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
愤怒的大鸟 该用户已被删除
17#
发表于 2015-4-7 06:14:21 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
乐观 该用户已被删除
18#
发表于 2015-4-16 19:22:37 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
山那边是海 该用户已被删除
19#
发表于 2015-4-17 11:52:39 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
不帅 该用户已被删除
20#
发表于 2015-4-27 10:48:32 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-3 03:04

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表