Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Programming languages 编写易于修改的代码_Programming Languages_Coding Style_Dry - Fatal编程技术网

Programming languages 编写易于修改的代码

Programming languages 编写易于修改的代码,programming-languages,coding-style,dry,Programming Languages,Coding Style,Dry,我可以通过哪些方式编写易于修改的代码 我从经验中学到的一点是,我几乎总是需要写一个来扔掉。这样,在编写实际应用程序之前,我已经了解了所需的领域知识和程序结构。修改代码的最简单方法是不编写代码。不仅为algo编写伪代码,如果您不确定代码的结构,还应编写伪代码 在编写代码时进行设计从来都不起作用……对我来说:-)修改代码最简单的方法就是不编写代码。不仅为algo编写伪代码,如果您不确定代码的结构,还应编写伪代码 在编写代码的同时进行设计永远不会奏效……对我来说:-)一般的指导方针是不正确的 高内聚

我可以通过哪些方式编写易于修改的代码


我从经验中学到的一点是,我几乎总是需要写一个来扔掉。这样,在编写实际应用程序之前,我已经了解了所需的领域知识和程序结构。

修改代码的最简单方法是不编写代码。不仅为algo编写伪代码,如果您不确定代码的结构,还应编写伪代码


在编写代码时进行设计从来都不起作用……对我来说:-)

修改代码最简单的方法就是不编写代码。不仅为algo编写伪代码,如果您不确定代码的结构,还应编写伪代码


在编写代码的同时进行设计永远不会奏效……对我来说:-)

一般的指导方针是不正确的

  • 高内聚、低耦合
  • 不要重复你自己
  • 识别设计模式并实现它们
  • 不要识别不存在或不必要的设计模式
  • 使用编码标准,坚持它
  • 当有疑问时,评论所有应该评论的内容:评论
  • 使用单元测试
  • 在实现之前编写注释和测试,这样您就可以确切地知道您想要做什么
  • 当它出错时:重构,重构,重构。通过良好的测试,您可以确保没有任何故障
哦,是的:

请阅读以下内容:


所有(我认为)以上和更多的东西都在里面

一般的指导方针是不正确的

  • 高内聚、低耦合
  • 不要重复你自己
  • 识别设计模式并实现它们
  • 不要识别不存在或不必要的设计模式
  • 使用编码标准,坚持它
  • 当有疑问时,评论所有应该评论的内容:评论
  • 使用单元测试
  • 在实现之前编写注释和测试,这样您就可以确切地知道您想要做什么
  • 当它出错时:重构,重构,重构。通过良好的测试,您可以确保没有任何故障
哦,是的:

请阅读以下内容:


上面的一切(我认为)以及更多的东西都在其中

以下是我目前的经验:我正在(Java)使用一种可能经常更改的数据库模式(添加/删除字段,修改数据类型)。我的策略是解析这个模式并生成代码。程序员永远不会修改生成的
基类。否则,将创建一个
MyClass extends BaseClass
,并使用超类的“getter”和“setter”实现该类的逻辑组件(例如toString()!)

以下是我目前的经验:我正在(Java)使用一种可能经常更改的数据库模式(添加/删除字段,修改数据类型)。我的策略是解析这个模式并生成代码。程序员永远不会修改生成的
基类。否则,将创建一个
MyClass extends BaseClass
,并使用超类的“getter”和“setter”实现该类的逻辑组件(例如toString()!)

我认为你强调的可修改性比可读性更重要。让某些东西易于阅读并不难,但真正考验人们理解它的能力的是,当其他人(或你)不得不修改它以适应不断变化的需求时

我试图做的是假设修改是必要的,如果真的不清楚如何进行修改,请在代码中留下关于如何进行修改的明确指示

我假设我可能需要对代码的读者进行一些教育,让他们知道如何正确地修改代码。这需要我的精力,也需要阅读代码的人的精力


因此,虽然我很欣赏识字编程的理念,它很容易阅读和理解,但有时更像是数学,唯一的方法是让读者全力以赴,密切关注,反复阅读几遍,确保他们理解。

我认为你对可修改性的强调比可读性更重要。让某些东西易于阅读并不难,但真正考验人们理解它的能力的是,当其他人(或你)不得不修改它以适应不断变化的需求时

我试图做的是假设修改是必要的,如果真的不清楚如何进行修改,请在代码中留下关于如何进行修改的明确指示

我假设我可能需要对代码的读者进行一些教育,让他们知道如何正确地修改代码。这需要我的精力,也需要阅读代码的人的精力


因此,虽然我很欣赏识字编程的理念,它很容易阅读和理解,但有时它更像是数学,唯一的方法是让读者全力以赴,密切关注,反复阅读几遍,确保他们理解。

可读性帮助很大:如果你做了一些不明显的事情,或者你正在走捷径,评论。如果以后有时间,可以在注释处返回并重构。对每件事都使用合理的名称,这样更容易理解正在发生的事情

不断的修改可以让你在不浪费(太多)工作的情况下从初稿过渡到更好的初稿。任何时候你从头开始重写,你可能会失去学到的经验教训。在编写代码时,请使用重构工具消除表示不再需要的探索领域的代码,并使那些不明显的东西变得模糊。第一个减少了你需要维持的数量;第二个减少了每平方英尺的工作量。(实际上,Sqft与代码行一样有意义。)

适当地模块化,并在模块之间强制封装和分离逻辑。您不希望在任何一个部分上有太多的依赖项