django:如何评估重构项目

gru*_*czy 8 django project-planning evaluation refactoring

有没有人对django项目进行评估以及如何改进/重构它的代码库?我工作的公司的一个宠物项目正在被越来越广泛地使用,在进一步开发之前提高其质量将是有益的.django在我们开始将越来越多的功能纳入其中之前,是否有任何分析项目的技术或方法?我们不想突然意识到,由于早先选择不好,我们必须忍受非常糟糕的事情.

Kil*_*nDS 8

在一个相当大的网站上工作了一年多之后我注意到的主要是关于我们的设计/编码.这不是纯粹的重构相关,可能你已经知道很多,但也许它可以帮助:).

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

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