首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django:如何评估项目的重构

django:如何评估项目的重构
EN

Stack Overflow用户
提问于 2010-07-29 00:35:35
回答 2查看 1.8K关注 0票数 8

你们中有没有人评估过django项目,以及如何改进/重构它的代码库?我工作的公司的一个宠物项目正在得到越来越广泛的应用,在进一步开发之前提高它的质量是很好的。在我们开始将越来越多的特性添加到django项目中之前,有没有什么技术或方法可以分析它?我们不想突然意识到,由于早期糟糕的选择,我们不得不接受一些非常糟糕的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-29 01:24:32

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

  1. 最重要的是,我们并不总是把代码放在正确的位置。视图方法中的功能太多,表单和模型中的功能太少。这个问题我见过很多次了。要处理输入,请使用表单,以格式化/调整/...模型数据,使用模型方法或属性。说真的,有一次我把代码放在更好的地方,把150行代码减少到了20行。
  2. 很好地提高了可维护性和可读性,我们编写的许多代码实际上并没有真正使用python和/或django的全部力量。对于第一个,阅读像Dive Into Python这样的东西是一个很大的帮助,对于第二个,我只是跟踪了我们构建的所有复杂的构造(主要是0.96的遗留代码),并查看在django文档中是否有替代方案。当然,不要浪费你的时间去把每件事都简化为一行代码,但是对于遗留代码,这可以帮助提高可读性和在django-snippetsgoogle code等站点上的maintainability.
  3. Always外观。如果有不错的现有django项目,可能会剥夺你的很多功能。通常,这些项目被更多的人关注,因此更加稳定和高效。如果一个项目不能满足你所有的需求,你甚至可以自己添加你的需求,而不是为你的站点定制所有的需求。
  4. 会尽量减少应用程序的交叉依赖。当你绘制依赖图时(例如,通过将每个具有外键的应用程序相互链接),它仍然应该是清晰的,而不是每个应用程序都链接到任何其他应用程序。通常你会有一些被很多人使用的“助手”应用(例如用户系统,标签),所有其他的应用实际上只依赖于这些应用。
  5. 编写测试,django有一个很好的测试套件,所以使用它吧。当然,对于许多应用程序中常见的、可能会发生变化的代码部分,也是如此。真的,没有什么比突然注意到4个月前你实际上解决了一个bug,但你不知道是哪个更新再次破坏了它更令人恼火的。
  6. 再看一遍数据库规范化,django orm模型仍然与关系数据库紧密耦合,所以这是一个重要的概念,尤其是当你使用以后可能会扩展的模型时。

关于真正的重构,我能想到的唯一重要的工具是South,如果你的数据库方案改变了,它可以给你很大的帮助。否则,就像我已经给出的提示一样:编写测试以确保重构前后的功能保持不变。

票数 8
EN

Stack Overflow用户

发布于 2010-07-29 02:00:41

您可以了解code smells。有些人说,如果你的代码有异味,那就意味着你需要考虑重构。

事实上,这是一个非常广泛的主题。请记住:

过早优化是万恶之源-- DonaldKnuth

我个人认为这对于(过早)重构也是有效的。

编辑:这也是一个很好的关于代码气味的资源:http://www.codinghorror.com/blog/2006/05/code-smells.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3355163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档