gpt4 book ai didi

django:如何评估重构项目

转载 作者:行者123 更新时间:2023-12-04 06:49:04 24 4
gpt4 key购买 nike

有没有人做过 django 的评测项目以及如何改进/重构它的代码库?我工作的公司的一个宠物项目正在变得越来越广泛,在进一步开发之前提高其质量会很好。有没有分析的技术或方法django在我们开始将越来越多的功能放入其中之前?我们不想突然意识到,由于早先糟糕的选择,我们不得不忍受一些非常糟糕的事情。

最佳答案

在一个相当大的网站上工作一年多后,我注意到的主要是关于我们的设计/编码。它不完全与重构相关,可能您已经了解很多,但也许它可以提供帮助:)。

  • 最重要的是,我们并不总是将代码放在正确的位置。 View 方法中的功能太多,表单和模型中的功能太少。我多次看到这个问题。要处理输入,使用表单,格式化/调整/...模型数据,使用模型方法或属性。说真的,有一段时间我只是把代码放在更好的地方,把大约 150 行的 View 减少到 20 行。很好地提高了可维护性和可读性
  • 我们编写的许多代码实际上并没有真正使用 python 和/或 django 的全部功能。对于第一个,阅读类似 Dive Into Python 的内容是一个很大的帮助,对于第二个,我只是追踪了我们构建的所有复杂结构(主要是 0.96 中的遗留代码),并查看了 django 文档中是否有替代方案。当然,不要浪费时间试图将所有内容简化为单行代码,但是对于遗留代码,这肯定有助于提高可读性和可维护性。
  • 始终查看类似 django-snippets 的网站, google code , ... 如果有不错的现有 django 项目可以带走您的许多功能。通常这些项目会被更多人关注,因此更稳定、更高效。如果一个项目不能满足您的所有需求,您甚至可以自己添加您的需求而不是为您的站点定制所有需求。
  • 尽量保持应用程序交叉依赖最小。当您绘制依赖关系图时(例如,通过将具有外键的每个应用程序相互链接),它仍然应该是清晰的,而不是每个应用程序都链接到任何其他应用程序的地方。通常,您会拥有一些被许多人使用的“辅助”应用程序(例如用户系统、标记),而所有其他应用程序实际上仅依赖于这些应用程序。
  • 编写测试,django 有一个优秀的测试套件,所以使用它。当然,对于许多应用程序通用且可能会更改的代码部分。真的,没有什么比突然注意到您在 4 个月前实际解决的错误更烦人的了,而且您不知道从那以后哪个更新再次破坏了它。
  • 再看一下数据库规范化,django orm 模型仍然与关系数据库紧密耦合,因此它是一个重要的概念,当然当您使用可能会在以后扩展的模型时。

  • 关于真正的重构,我能想到的唯一重要的工具是 South , 如果您的数据库方案发生变化,可以为您提供很多帮助。否则,就像我已经给出的提示:编写测试以确保重构前后的功能保持不变。

    关于django:如何评估重构项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3355163/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com