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

第一要做的作业

首先步,从找工作始于。你应有寻找合适的合作社,在这里你可以尽情表明并促成您这不足维护的潜力。
你不肯定需要变成公司的 PHP
大牛尽管是这更好。找工作时,即便工作描述提到需要从另外的搬迁到 PHP
(所以您了解您会做主),或者也可以找寻这种需要10年 PHP5
工作经验的误导性工作,再加上熟稔运用 FrontPage 和 Netscape Composer 。

只要您收获那种稀有的火候,从第一天起先就要拔取措施。在会议上发言,让您的理念被听到。大胆谈论面向对象的架构设计,集团,立异方案,如何让够好变得更好,当然你也得做出相应的允诺。确保每个人在第一的编码环节都咨询你的见地。

重写

在不期待的情事下重写全局变量,尤其是超全局变量。尽早重写$_GET数组中的属性,多次重写,$_POST亦是这么。在$_REQUEST上做一些不起眼的重写作为点缀。如果是在WTF-ed上,你可以表明是在预防用户输入的
XSS 攻击、注入攻击以及任何的病毒攻击。

翻译注:这是一篇很棒著作,使用有趣的叙述形式,从反面讲解了作为一个好好的
PHP
工程师,有怎么着工作是你无法做的。请留心哦,此篇随笔罗列的行为,都是你要尽量制止的。

命名相关

您的变量名应该起的神秘部分,最好唯有一个字母。
这样什么人都爱莫能助透过简单的追寻找到需要的始末。

类名和章程最好也利用一个字母来定义。如若您真的想定义一个正常点的名字,这就径直利用它吧
—— 记住,隐藏音信的最好形式就是反复的利用它。
当重复使用相同名称(称为“面向对象的编程”)时,假设将圆括号和花括号放在新的一行,这将推动提升代码的可读性,并且让队友在您的代码中搜索另外事物时,都得重复一下正则表达式。考虑一下吧:

    $noodles = 1;
    class
    noodles
    {
        var $noodles = 2;
        function
            noodles
            ()
        {
            $noodles['noodles'] = 'noodles';
        }
    }
    function
        noodles() {
            return new noodles;
        }
    $noodles = noodles();
    var_dump($noodles);

您也可以选拔奇特的字符集来命名变量。西普埃布拉字母就极度确切,因为有些字母看起来跟开普敦字母一样,
但其实不是(所有这多少个:xopekacMEBCTAKXOPH)。那么下面的出口是:

    $alert = 1;
    $аlert = 2;
    echo $alert;

2?假若第二个 alert以西南安普顿字母”a”初阶,则不得以!

至上实践

  1. 明令禁止代码约定。 关于编码和命名约定的对骂无穷无尽。这样的动静绝无法在你优质的团队中冒出。你有牛逼的品种要做,你不容许花上不少的流年来谈谈用
    tab
    如故仍然空格。再说了,约定就是限制。倘诺一个新娘入职,并且他不习惯你的预定,他会很痛苦。不快乐的程序员是不曾效用的程序员。什么人问您你就向他们解释。让各种人都用他们自己喜好的风骨写代码。至于你协调的代码 –
    变换你的约定。星期五用 camelCase 小驼峰命名,周四用 all_lowercase
    全小写命名,周二混合着用,在各类 2 月 29 日 使用匈牙利命名法。
  2. 不写注释。 你的代码很漂亮,它不需要注释。倘若有人不知道您的代码,那么很有可能他们不是那么好的程序员。假诺,有其一也许的话,你被强迫要求写注释,那么直接夸张的写。详细描述最显眼和最不首要的代码,跳过其他的。

        // 下面这一块代码
        // 我们增加两个变量:
        // 命名为变量 a 和变量 b
        // 两个都是整数
    
        // 声明变量 a
        // 并给它赋值整数 1
        $a = 1;
        // 声明变量 b
        $b = 2;
        // 给变量 a 和 b 求和
        // 声明和初始化见上面
        // 并且将结果赋值给
        // 一个新的变量 c
        $c = $a + $b;
    
  3. 利用记事本编码。
    或者利用其他没有代码缩进展示的编辑器。使得其外人忍受痛苦最终离开团队。这样你就不用总是听她们的抱怨了。假如有人问你干什么使用记事本,准备好解释:因为它出自于
    Windows
    (当今唯一一个,为持有创设性的程序员准备的操作系统),无需任何必要的培养,也不需要花费任何代价。我相信您能在网上找到您可以利用此外程序的参考文献,甚至席卷
    Word,来编排你的网页代码,然而只有记事本才是的确的显要,毕竟,你们公司雇佣的人只有您才是权威。

  4. 拒绝单元测试。
    向任何质疑你的人解释,你是被雇佣过来编写高质量并且没有破绽的代码的(由此,无需测试)。为啥会有心机正常的人会花时间来写无关首要的测试来验证代码能否正常运行?有些事情在生活中就像-天空是粉红色的,太阳从东方升起,你的代码是可以健康运行的,由此非常感谢。继续(就像评论一样,假使被迫接受测试,那么准备好测试这么些显明的内容然后跳过另外的部分)
  5. 不使用模板引擎。
    模板引擎可以帮助您区分业务逻辑层与体现层。它可以保证代码的可维护性所以您不可能遵循这一个规定。PHP
    之父 Rasmus Lerdorf 说过:“PHP
    就是模板引擎”。尽管你没法使用模板引擎,也要找到呼应的艺术滥用它,例如放一些政工代码在模板中,或者是小心的将HTML(和
    CSS 和 JavaScript)代码混合在数据库访问层中。
    相似的话,尽可能在同一行代码中的将您的 PHP,HTML,CSS 和 JavaScript
    代码理直气壮地混合在联合。在 PHP 代码中开创 JavaScript
    和带内联样式的 HTML
    代码。假诺人家问到,告诉他们这种情势叫做“封装”,你会对您的代码负任何专责。

  6. 版本控制。 尽管这很难制止,不过使和谐解脱任何形式或版本控制很值得尝试。你可以在讨论的时候向我们声明那样做增进了团队成员之内的关联,而不是去倚重冷血的版本控制软件。假如你未曾说服任什么人,请不要绝望。
    你付出的时候可以不 commit all 。
    在该地保留部分和谐的代码。那样一旦您以外的人猜测构建和布局的话,这多少个小而致命的代码片段将会损坏这些连串。
    假诺被抓了,就分辨说这一个代码还不合乎体现,毕竟,你付出了力所能及教育初级团队的高质料的代码和理想的化解方案。这多少个小男孩和小女孩将会愿意着你并充满希望!

  7. 构建一个框架。 然后您不可防止地变成架构师,你的尊贵毋庸置疑。这样你就足以加上一些机密约定(当然其中绝大多数偶发是自相冲突的),即便是最有经验的保安人士也发觉不出。
    你的框架将负担所有的事情,不需要任什么人费心地去明白它,我们会很心花怒放因为你一个人让开发变得更便于而且提升了方方面面集团的产能。不要以开源的法子发表你的框架,因为 a)
    这几个框架是信用社的资金而且集团投入了人大量的本金, b)
    开源社区会笑话你,而且这将改成你虚张声势的结果。

图片 1

大写

字母例子,函数方法名不区分大小写,滥用这些特性。

function abc(){
    echo "abc";
}
AbC();

另一方面,数组的健(key) 对大小写敏感,也滥用这么些特点。

$a['UseConvetionsOnlyTobreakThem'] = 1;
if (isset($a['UseConvetionsOnlyToBreakThem'])) {
    // ?? 大写 B !!1!
}

引用相关

不畏你非凡正常的定义来部分东西,但并不意味着你无法以诙谐的措施来使用它。重要的枪杆子有:

  • eval()
  • 可变变量
  • 可变类,比如$strudels = "noodles"; $noo = new $strudels;
  • call_user_func()

差不多任何将代码视为字符串的语言结构都是你的好对象。

    // calling abc();
    $z = 'A';
    call_user_func($z .'bC');

这是一个发端!

这就是昨天的一切。我希望你相信您自己也能成功,你也足以编写不可维护的代码。现在您的前景就在您的手中!当然,你也得以编写可读性相比高的代码,可是冒着被取而代之的高风险。

更多现代化 PHP 知识,请前往 Laravel / PHP
知识社区

控制结构

行使、混合、匹配所有准备的ifwhileforforeachswitch语法。假设被问起来,所有的那个,请解释说您正在作育新员教育学习真正的语言。

if ($a > 5):
  if ($a > 4) {
      while ($a > 0):
        echo --$a;
      endwhile;
  }
endif;

嵌套三元运算符,没有比这些更好、更简洁的代码了。

// 猜猜这里输出什么
echo true ? 'true' : false ? 't' : 'f';

for的循环体内,再次增多$i以保持所有人的专注。或者,通过不采用$i来兑现循环增量的悲喜。从不。

嵌套循环、深切,然后突然跳出它们(循环)。像 break 2break 3
这样的代码存粹是为了娱乐,尤其是当混合了竟然的缩进代码时。

乘势失业率更是高,很两人意识到保障自己的做事是何其的首要。那么,什么是保住自己工作,并让投机无可取代的好措施呢?一个很简短的谜底是只要您的代码没有人能够体贴,那么你就成功保住了办事。编写不可维护的代码是一个破例的技巧,但奇怪的是,似乎对某些开发者来说是很自然的。不过对此剩余的开发者来说,这里有一对技术和提示来让您从头写不可维护的代码。

不足维护的骨干

灵感来源于优异的作品 “Writing unmaintainable
code

(想要保住工作的人必然会看的), 以下是您需要明白和贯通的三个至关首要概念:

  1. 你应当让别人无法轻易地修改任何事物,除非她破坏此外一些事物。

    保安人士并龙时间去领会你的代码。
    可敬重的代码意味着可以在堆积如山的代码中很快稳定到特定的一对,能够很快领会它是咋样工作的还要在不破坏部分事物的情景下举行修改。你不可能如此做。
    不可能让别人能随随便便地搜寻到一点事物仍然在她们希望的地方找到。

  2. 你的代码不可能“看起来”不可维护(因为人家会怀疑的),
    它必须“是”不可维护。

    代码在维护人士看起来应当是例行的,但要在她们最奇怪的时候给他俩一个惊喜。

相关文章