面向对象编程(OOP)

面向对象编程(OOP),oop,Oop,这不是关于某段代码的特定问题,如果我当前的问题在StackOverflow上无效,请道歉。有了这么大的社区,我很想找到一个通用的最佳实践方法 这并不是说我不知道如何以面向对象的方式编写代码,而是当我的代码不断增长时,我正在迷失方向,我的代码实际上直截了当地说变得“丑陋”。发生的事情是,重写代码要花很多时间才能最终使其再次正确 别误会我。我真的花时间和精力以最好的方式修改我的代码。我重写了可以重写的部分,等等。实际上我想避免重写,我知道这需要大量的练习。非常感谢您提供与项目相关的任何指导/提示 我

这不是关于某段代码的特定问题,如果我当前的问题在StackOverflow上无效,请道歉。有了这么大的社区,我很想找到一个通用的最佳实践方法

这并不是说我不知道如何以面向对象的方式编写代码,而是当我的代码不断增长时,我正在迷失方向,我的代码实际上直截了当地说变得“丑陋”。发生的事情是,重写代码要花很多时间才能最终使其再次正确

别误会我。我真的花时间和精力以最好的方式修改我的代码。我重写了可以重写的部分,等等。实际上我想避免重写,我知道这需要大量的练习。非常感谢您提供与项目相关的任何指导/提示

我已经用面向对象的方式编写了代码,但它是基于小代码/项目的,现在当我开始着手更大的项目时,我就迷失了方向

我的问题很简单:我是唯一一个这样的人吗?如何让我的代码始终保持整洁


提前感谢您提供有关此情况的任何提示。我只是想写更好更干净的代码

始终牢记在心。这将帮助你保持在正确的轨道上。这是一个良好的开端

始终牢记在心。这将帮助你保持在正确的轨道上。这是一个良好的开端

实际上,您可能经常需要更新现有代码以满足新的需求。但如果这是您经常做的事情,那么您的开发过程可能不够好

你可能缺乏事先的思考和计划过程。 当你有一个新的开发任务时,你会做什么?你只是继续写一些代码吗

我使用的过程如下:

1) 用户故事。 描述一个用户故事,它通常来自客户或用户。这可能类似于“我想在仪表板上有一个漂亮的最新数据图表”

2) 需求规范。开始提问并添加细节。您可能需要创建一个单独的文档来描述所有的细节-应该显示什么样的数据,应该是直线或条形图还是其他类型的图表,图表应该放在哪里,等等

结果-详细的需求规范。它应该足够清晰,以便您可以将它提供给其他开发人员,他们应该能够继续执行以下步骤,而无需提出问题

也可以查看这篇文章

3) 实施细节。思考如何实现需求,描述类结构和对象交互,思考可扩展性和灵活性,规划代码的单元测试

其基本思想是,您甚至在实际编写真正的代码之前就开始编写和重新编写代码。 想象一下您的类/对象将如何使用,在实际编写代码之前尝试编写一些测试

这里是以一种好的方式设计代码的地方,并且可能很有用

4) 估算。如果你在第(3)点做得很好,那么将植入分为几个小步骤并估计每一步需要多少时间就很简单了,比如:

  • 数据库迁移-添加新表-1h
  • 实现ClassA、ClassB、ClassC-1h
  • 使用特殊的计算算法-4h实现ClassD
  • 单元测试-2h
  • 测试、修复发现的缺陷-上述缺陷的20%
我通常使用这种估算方案(对于意外情况,加上20%),可以得到非常准确的估算。就像一个40小时的任务,它可能是1-2小时的错误,它不应该是50%的错误

5) 实施。在这里,您只需继续执行任务。 一切都计划好了,一切都非常清楚。 不考虑设计和策略,只考虑本地决策(比如我是否使用
进行
while
在这里循环?)


通过这种方式,您可以最大限度地减少实现过程中的“意外”,并减少以后重新编写代码的需要。

在实践中,您通常需要更新现有代码以满足新的需求。但如果这是您经常做的事情,那么您的开发过程可能不够好

你可能缺乏事先的思考和计划过程。 当你有一个新的开发任务时,你会做什么?你只是继续写一些代码吗

我使用的过程如下:

1) 用户故事。 描述一个用户故事,它通常来自客户或用户。这可能类似于“我想在仪表板上有一个漂亮的最新数据图表”

2) 需求规范。开始提问并添加细节。您可能需要创建一个单独的文档来描述所有的细节-应该显示什么样的数据,应该是直线或条形图还是其他类型的图表,图表应该放在哪里,等等

结果-详细的需求规范。它应该足够清晰,以便您可以将它提供给其他开发人员,他们应该能够继续执行以下步骤,而无需提出问题

也可以查看这篇文章

3) 实施细节。思考如何实现需求,描述类结构和对象交互,思考可扩展性和灵活性,规划代码的单元测试

其基本思想是,您甚至在实际编写真正的代码之前就开始编写和重新编写代码。 想象一下您的类/对象将如何使用,在实际编写代码之前尝试编写一些测试

这里是以一种好的方式设计代码的地方,并且可能很有用

4) 估算。如果你在第(3)点做得很好,那么把你的植入分成几个小步骤和小步骤就很简单了