Process 代码设计过程?

Process 代码设计过程?,process,Process,我将要做一个项目,一个web应用程序。我正在阅读37signals getting real Pample online(),我了解构建整个网站的推荐流程。头脑风暴、草图、HTML、代码 他们对每一个过程都轻描淡写,但他们从来没有真正谈论过编码过程(他们所说的只是保持代码精简)。我一直在读不同的方法(从上到下,从下到上),但我对每一种方法都不太了解。我甚至在某个地方读到,人们应该在实际编写代码之前为代码编写测试???什么 构建应用程序时应该遵循什么编码过程 如果有必要,我将使用PHP和一个框架。

我将要做一个项目,一个web应用程序。我正在阅读37signals getting real Pample online(),我了解构建整个网站的推荐流程。头脑风暴、草图、HTML、代码

他们对每一个过程都轻描淡写,但他们从来没有真正谈论过编码过程(他们所说的只是保持代码精简)。我一直在读不同的方法(从上到下,从下到上),但我对每一种方法都不太了解。我甚至在某个地方读到,人们应该在实际编写代码之前为代码编写测试???什么

构建应用程序时应该遵循什么编码过程

如果有必要,我将使用PHP和一个框架。

根据方法论,您应该在编写代码之前编写测试。这有助于使代码更干净、更模块化,等等,并允许您在任何时候测试代码以确保其正常工作

实际上,使用TDD是您的选择。我承认,我通常只在开发大量使用算法的库或代码时使用TDD。但有相当一部分可以在web应用程序中自动测试


在任何情况下,他们可能得到的是,你应该从小处开始你的代码,只是编码你需要的。然后迭代,并根据需要编写更多代码,边测试边写。您的代码越简单,就越容易在其生命周期内进行测试和扩展。

因此,您已经了解了编码过程中的所有内容,并且有了web页面的体系结构和设计以及模型

选择能为您带来最划算的功能。(向客户展示一些东西,可以是管理层,也可以是向您购买的人。)

开始对该功能进行编码,确保它满足需求,并且不会引入任何未来可能的挂钩。用“程序员水晶球”猜测人们未来可能想要什么会浪费很多时间

代码需要遵循该语言的最佳实践,希望有人对您正在开发的语言有足够的了解来指导您

在完成每个功能点时,请进行代码审查,尽早审查,并经常在项目开始时审查

一旦您完成了对初始件的编码并且客户满意,您就可以开始新件了


如果您发现了常见的功能,无论它们是水平的(特定于领域)还是垂直的(特定于体系结构),那么您需要重构它们。记住,不要剪切粘贴。

精简代码意味着你不是仅仅因为是程序员就在编写代码。您只编写了足够的代码来完成任务。任何额外的代码都是浪费时间和金钱。如果您发现您正在为“以后使用”添加代码。停止后来很少出现,应用程序寿命很长。您为以后添加的代码只会在以后混淆。这样想吧。你桌上的每一张纸都必须处理好。每一行代码都必须处理

我读过他们的书《变现实》。我并非事事都同意。然而,他们所说的大部分内容确实适用于web开发,而不适用于桌面或设备应用程序。似乎很多内容,尤其是接近尾声的时候,只是一本书的噪音

如何生成精益代码
  • 记录(为你自己)你需要做什么以及你对需要做什么的理解。绝对清楚你的理解。最好现在就得到一个是/否,而不是一个bug,或者最糟糕的是,一个设计问题,之后这将花费你几周的时间,这总是会导致“被黑客”的代码

  • 生成简要用户指南的草稿。即使你是唯一一个会读它的人。用铅笔和纸做这个。不要把时间浪费在文字处理器上。你将浪费更多的时间“格式化”然后写内容。如果你不能用文字来写,你怎么能编码呢?它不一定要漂亮。丑八怪没关系

  • 尽可能使用铅笔和纸张生成任何类型的文档。(嘿,我不是已经说过了吗。)它速度更快,很明显,用户可以在上面写字,你可以复制,挂在墙上,等等。更重要的是,您可以删除它,然后与用户重新开始。我有没有提到它要快得多

  • 执行个人代码检查。一个好方法是在签入源代码管理之前比较每个文件。我保证你会发现bug,忘记做的事情,等等。这是清理代码、生成任何用户或技术文档以及最后一分钟测试的好时机

例如,我花了一天时间创建一个Excel工作簿来记录我需要创建的模型。我这样做是为了我自己。这个模型已经由专家(在纸上)设计好了。我发现,我应该说是Excel发现,一个循环引用。我报告了这一点,但有人告诉我,在过去的一个月里,这个模型已经被仔细设计好了,问题在于我的理解。两个月后,修复“循环参考”花费了我们两周的时间。我们勉强赶上了最后期限。本可以在八个工时内解决的问题花费了我们60多个工时和巨大的压力。然而,因为我的代码是“精简”的,所以对于一个小表函数来说,修复只需要几行代码

大多数程序员会先编写代码。大多数开发人员首先使用文档。一般来说,提前记录每一分钟可以节省十分钟的时间。(阅读“代码完成”。)不过,别忘了“实现”。您的工作不是编写代码,而是构建解决方案。这样想,一个作家的工作不是写,而是创建一个有人会读的文档。他不会仅仅因为他或你以后可能需要而添加章节。他必须不断地做出决定,包括或排除哪些内容才能接触到他的读者。最好是花几分钟时间对代码做出决定,然后花一天的时间进行编码,然后才意识到代码是不需要的


大体上