通过评论开发范式

当我进入一个新项目时,一次又一次地遇到一个问题,促使我写下这个概念:在5年的商业开发过程中,我一直很“幸运”地参加了首席开发人员要离开的项目。 每次我继承一个巨大的代码库时,其操作法则只有其创建者才能理解。 反过来,我已经在第一年之后通过设计养成了开发的习惯,并通过评论养成了设计的习惯。 我想和大家分享一下:


通过评论开发范式


想法。 评论设计。 代号 (IC-DC)


想法:通过评论进行设计。 代号


  • 主意
    这个主意的发起人可以是您,也可以是其他人,例如您的PM(TimLead)。

一个想法的示例: “您需要从'+,-,方括号和空格'之类的字符中清除电话号码,以便输出仅是一组数字。此功能需要实现以电话号码进行搜索-以任何方式输入。”


  • 通过评论设计
    编写描述程序逻辑的注释。

通过注释设计示例:


扰流板
<?php namespace App\Services; use App\Entity\Users; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManager; class PhoneService { //  ,   //        //    //  ,    8,     7 //   } 

  • 代码编写
    现在我们需要将注释投影转换为代码:

例如:


扰流板
 <?php namespace App\Services; use App\Entity\Users; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManager; class PhoneService { //  ,   public function clear_phone(string $phone){ //        $symbols_for_delete = ['+','-','(',')', ' ']; //    $phone = str_replace($symbols_for_delete, '', $phone); //  ,    8,     7 if( $phone[0] == '8' ){ $phone[0] = '7'; } //   return $phone; } } 



这是为了什么


为什么我需要注释,代码,所以很清楚?


许多人会说代码就是文本-而且很容易阅读。 我不得不提到,代码是一种通过使用的语言的语法表达您的想法的方法。 而且,当我们编写复杂的逻辑时,我们会以多种方式使用自己的语法。 但是,如果我们处于设计阶段-我们将以一种通用的语言描述我们的逻辑,然后在3年后返回代码,我们将了解它的工作原理和代码。 继承人,同样可以轻松解决。 通过注释使用设计-减少了项目的熵,并使代码更加美观。


为什么需要设计,我可以坐下来一次写所有东西吗?


如果您在问这个问题,那么您只需要紧急阅读Steve McConnell撰写Perfect Code 。 在那里,这个概念不仅仅被公开。
我会给一个小报价:


在代码设计阶段,通常会发现75%的错误。 如果找不到它们,我将不得不重构。

确实,在设计阶段,您可以了解所构想的业务逻辑将无法按计划工作,或者可以看到解决特定问题的更好方法。 而且,您以后无需再重新构建逻辑块-不能完全按预期工作。


我需要对所有内容发表评论吗?


我在上面给出了基本示例。 它们是完全可以理解的,无需评论,但是我仍然使用IC-DC方法来实现它们。 因为 我不希望我的代码增加熵。 我访问了许多项目,正是由于其中的巨大熵,大多数项目不得不从头开始重写。 考虑一下是否要简单地删除花费了几个月或几年时间的项目。 如果答案是否定的,那么我认为始终使用这种方法是值得的。 因为 如果您离开该项目或几年后出现了一种新技术,该技术可以比您的旧解决方案更好地满足需求-IC-DC将帮助您最佳地实施更改,将功能降到最低,因为新员工或新员工将了解其工作方式和原因。

Source: https://habr.com/ru/post/zh-CN480342/


All Articles