当前位置: 首页 > 后端技术 > PHP

一步步教你编写不可维护的 PHP 代码

时间:2023-03-29 20:29:43 PHP

一步步教你写出难以维护的PHP代码。请注意,本文中列出的行为都是您应该尽量避免的。随着失业率上升,许多人意识到保住工作的重要性。那么什么是保住工作并让自己变得无可替代的好方法呢?一个简单的事实是,只要没有人可以维护您的代码,那么您就成功地保住了工作。编写难以维护的代码是一项特殊的技能,但奇怪的是,对于某些开发人员来说似乎是自然而然的。但是对于其余的开发人员,这里有一些技巧和提示可以帮助您开始编写难以维护的代码。要做的第一件事第一步是开始找工作。您应该寻找合适的公司,在那里您可以开发和实现您无法维持的潜力。您不一定需要成为公司的PHP专家,但那更好。在找工作时,如果工作描述提到需要从其他东西迁移到PHP(所以你知道你会做主),或者搜索需要10年PHP5经验,以及FrontPage和网景作曲家。一旦你获得了这个千载难逢的机会,从第一天开始就采取措施。在会议上大声疾呼,让大家听到您的声音。大胆谈面向对象的架构设计、企业、改革方案,如何把goodenough做得更好,当然你也要做出相应的承诺。确保每个人都在重要的编码时刻咨询你。unmaintainablecore的灵感来自优秀的文章《Writingunmaintainablecode》(任何想保住工作的人必读),这里有两个你需要掌握和掌握的重要概念:你应该让别人无法轻易地修改任何东西,除非他破坏了其他东西。维护者没有时间去理解你的代码。可维护的代码意味着能够在堆积如山的代码中快速定位到特定的部分,能够快速理解它是如何工作的并在不破坏任何东西的情况下对其进行修改。你不能那样做。不要让人们很容易搜索某物或在他们期望的地方找到它。你的代码不能“看起来”不可维护(因为其他人会怀疑它),它必须“是”不可维护的。代码对维护者来说应该看起来很正常,但在他们最不期望的时候给他们带来惊喜。最佳实践禁止代码约定。关于编码和命名约定的辱骂是无止境的。这种情况绝不能出现在你优秀的组织中。您有很棒的项目要做,您不能花费无数时间来讨论是使用制表符还是空格。再说了,约定就是限度。如果一个新来的人不习惯你的约会,他会很痛苦。一个不快乐的程序员是一个没有生产力的程序员。向任何问你的人解释。让每个人都以自己喜欢的风格编写代码。至于你自己的代码——改变你的约定。星期一使用驼峰命名法,星期二使用all_lowercase,星期五混合使用,每年2月29日使用匈牙利符号。不要写评论。您的代码很漂亮,不需要注释。如果有人不理解您的代码,那么他们很可能不是一个优秀的程序员。如果,如果有可能,逼着你写评论,那就直接夸大吧。详细说明最明显和最不重要的代码,跳过其余代码。//在此代码块中//我们添加了两个变量://命名变量a和变量b//都是整数//声明变量a//并为其赋值整数1$a=1;//声明变量b$b=2;//对变量a和b//声明和初始化见上文//并将结果分配给//一个新变量c$c=$a+$b;使用记事本编码。或者使用另一个不显示代码缩进的编辑器。让别人受苦,最终离队。这样你就不必一直听他们的抱怨了。如果有人问您为什么使用记事本,请准备好解释:因为它来自Windows(当今创意程序员唯一的操作系统),不需要培训,也不需要任何费用。我相信您可以在网上找到参考资料,您可以使用任何程序,甚至Word,来编写您的网页代码,但记事本是唯一真正的权威,毕竟,您公司雇用的唯一权威是您。拒绝单元测试。向任何怀疑你的人解释你是被雇来编写高质量的无错误代码的(因此,没有测试)。为什么头脑正常的人会花时间编写琐碎的测试来验证代码是否有效?生活中的一些事情就像——天空是蓝色的,太阳从东方升起,你的代码有效,非常感谢你。继续(就像评论一样,如果被迫进行测试,请准备好测试明显的并跳过其余部分)而不使用模板引擎。模板引擎可以帮助您将业务逻辑层与表示层分开。它使代码保持可维护性,因此您不能遵循此规则。PHP之父RasmusLerdorf说:“PHP是一个模板引擎”。即使你必须使用模板引擎,也要找到滥用它的方法,比如将一些业务代码放在模板中,或者在数据库访问层中小心地混合HTML(以及CSS和JavaScript)代码。一般来说,在同一行代码中尽可能多地混合使用PHP、HTML、CSS和JavaScript代码是合理的。在PHP代码中使用内联样式创建JavaScript和HTML代码。如果有人问起,请告诉他们这种模式称为“封装”,您对自己的代码负全部责任。版本控制。虽然很难避免,但值得尝试将自己从任何形式或版本控制中解放出来。你可以在讨论中向大家证明,这改善了团队成员之间的沟通,而不是依赖于冷血的版本控制软件。如果您还没有说服任何人,请不要失望。提交时不需要全部提交。在本地保留一些您自己的代码。如果您以外的其他人尝试构建和部署,这些小而致命的代码片段将破坏项目。如果你被抓了,证明代码还不适合展示,毕竟你提交了高质量的代码和优秀的解决方案,可以教育初级团队。这些小男孩和小女孩会仰望和期待您!建立一个框架。那么你必然成为架构师,你的权威毋庸置疑。通过这种方式,您可以添加即使是最有经验的维护者也不会注意到的秘密约定(当然,其中大多数有时是矛盾的)。你的框架会搞定一切,没有人会费心去了解它,每个人都会很高兴,因为你一个人让开发变得更容易,并提高了整个公司的生产力。不要将你的框架作为开源发布,因为a)框架是公司财产,公司投入了大量资金,b)开源社区会嘲笑你,这将是你虚张声势的下场。命名你的变量名应该是神秘的,最好是一个字母长。这样一来,任何人都无法通过简单的搜索找到他们需要的东西。类名和方法也最好使用单个字母来定义。如果你真的想定义一个正常的点名,一直使用它——记住,隐藏信息的最好方法就是经常使用它。当你重复使用同一个名字时(称为“面向对象编程”),如果你把圆括号和花括号换行,将有助于提高你代码的可读性,并让队友在你的代码中寻找任何东西时,您必须重新访问正则表达式。考虑一下:$noodles=1;类面条{var$noodles=2;functionnoodles(){$noodles['面条']='面条';}}functionnoodles(){返回新面条;}$面条=面条();var_dump($面条);您还可以使用花哨的字符集来命名变量。西里尔文非常适合,因为有些字母看起来像罗马字母但实际上不是(所有这些字母:xopekacMEBCTAKXOPH)。那么下面的输出是:$alert=1;$alert=2;回声$警报;2?否,如果第二个警报以西里尔字母“a”开头!参考相关即使你定义的东西很正常,也不意味着你不能以有趣的方式使用它。主要武器有:eval()变量变量变量类,如$strudels="noodles";$noo=新的$strudels;call_user_func()基本上任何将代码视为字符串的语言结构都是你的朋友。//调用abc();$z='A';call_user_func($z.'bC');大写字母的例子,函数方法名不区分大小写,滥用这个特性。函数abc(){echo"abc";}AbC();另一方面,数组的键(key)是区分大小写的,这个特性也被滥用了。$a['UseConvetionsOnlyTobreakThem']=1;如果(isset($a['UseConvetionsOnlyToBreakThem'])){//??CapitalB!!1!}Override在不期望的时候覆盖全局变量,尤其是超全局变量。和$_POST一样,尽早并多次覆盖$_GET数组中的属性。对$_REQUEST做一些简单的重写作为点缀。如果它在WTF-ed上,你可以解释说它防止了对用户输入的XSS攻击、注入攻击和其他病毒攻击。控制结构使用、混合、匹配所有可选的if、while、for、foreach、switch语法。如果被问及所有这些,请说明您正在培训新员工学习真正的语言。如果($a>5):如果($a>4){而($a>0):echo--$a;结束;}万一;嵌套的三元运算符,没有比这更好更简洁的代码了。//猜猜什么是echotrue?'真假?'t':'f';在for循环体内,再次递增$i以引起大家的注意。或者,通过不使用$i来惊喜循环增量。绝不。嵌套循环,深入,然后从中弹出(循环)。像break2和break3这样的代码纯粹是为了好玩,尤其是当混合了奇怪的缩进代码时。这是一个开始!今天就到此为止。我希望您相信自己可以做到,您也可以编写无法维护的代码。现在你的未来掌握在你的手中!当然,你也可以写出更具可读性的代码,但有被替换的风险。如需更多现代PHP知识,请访问Laravel/PHP知识社区