2012-04-25 143 views
1

我花了一些时间学习Django,并且我已经完成了一些应用程序。但我真的不知道开发应用程序时最好的方法是什么,我的意思是,有几种选择:制作所有模型,然后制作所有的URL,然后制作所有的模板。其他人推荐使用敏捷方法,进行用例并一路走下去,直到它完全正常运行,当然还有其他可能的建议。就我个人而言,我感觉真的被敏捷方法所吸引,但我不知道,因为例如我追加到我的数据库的每个模型都意味着要创建一个新模型。Django开发最佳实践

总结,在开发和应用Django时,考虑到它带来的所有后果,最好的方法是什么?

谢谢。

+1

在http://programmers.stackexchange.com上,这个问题可能会更合适,并且会得到更好的答案,因为它更多地是关于流程而不是编程。 – agf 2012-04-25 04:13:15

+0

FWIW,我是转换到测试驱动方法(TDD),并且我在Django中编写了一个关于TDD的教程:http://www.tdd-django-tutorial.com/ – hwjp 2012-04-28 12:17:42

回答

1

我不是一个Django专业人员,我砍了很多Django,因为我没有使用Django模型(除了基本的中间件,例如会话和用户配置文件)。除此之外,我根本不使用Django数据库模型。 所以我的经验真的不一样。

从我的角度来看,这真的取决于你的团队的工作习惯。我并不在乎它是敏捷开发还是直接的一天黑客攻击。

我想说出一些规格。你需要知道你想提供什么样的模型和服务,对吗?

一旦你准备好了最初的规范,你就可以开始编码了。我认为最简单的(对我来说)是编写一些模型,然后编写一些视图,并编写与我正在使用的模板相对应的模板。实际上,为了开始,我必须编写一些基本模板文件和一个显示所有必要组件的虚拟视图,以便我的基本htmls能够在浏览器上正确显示。

但之后,我先写模型,因为它通常是最难处理的。关系(模型和模型类)之间的关系并不是最直观的事情。

当我想我准备好了某些东西时,我通过浏览来测试我的代码。我还没有编写测试代码。我写他们直到我觉得我有足够的测试。

说真的。这是一种习惯。

在这一点上我不能做测试驱动,因为它需要太多的时间。

我应该改写它。根据我的项目环境和我的经验,我通常会等到再有几次观看之后再继续。这就是我。有些人对每一次试图添加/修改都做了测试。这是一种习惯。在过去,我会花很多时间重写相同的功能,以使它看起来很漂亮。但是,由于时间的限制,如果我确信自己的功能有效(没有错别字等),我会在写入更多观点后再编写测试。

如果你问我测试科学计算程序,很容易做测试驱动。我对使用Django进行测试(模拟,Django unittest)还很新,所以对我来说很难。

只要你和你的团队感觉良好,按照你的感觉是对的。随着时间的推移,你将会改进开发。

只要确保你总是写测试,并尽可能地记录你的代码。

不要过分关注the right development approach。有熟练的开发人员讨厌测试驱动开发。你的规格会一直改变。有一天,我写了10个视图和10个表单,第二天我必须销毁它们,因为我需要以REST风格编写我的url。我的观点参数必须改变。

+0

“我不能在这一点上做测试驱动,因为它需要太多时间。“几乎是-1这个;)。这只适用于小型项目,如果您对测试没有经验。只要项目增长,它就非常有用,而且节省时间。 – marue 2012-04-25 07:26:36

+0

是的。我想我对某些测试技术还是很新的。但是我觉得在你写代码的每一分钟都会测试你的代码是非常疯狂的。这是我从测试驱动的爱好者看到的那种形象。有点上帝我不想测试我的代码,如果他们只涵盖这么少。如果您足够了解您的输入和输出,则不需要立即编写测试,因为只需查看代码即可确定预期的返回格式是正确还是错误。我不知道这是否会吓倒有经验的开发人员。 LOL – CppLearner 2012-04-25 07:31:28

+0

谢谢你的回答,很明显你已经写了一些时间。但我需要更简洁的东西。我的意思是,不仅仅基于经验而且还有理论背景。 – 2012-04-25 12:35:41

0

我相信应该先创建模型。即使你没有一个非常详细的规范,我会说,在开始编码之前,你应该总是知道他们的后端是什么样的。是的,这意味着坐下来写下所有东西,而不需要编码。

之后,接下来的观点。根本没有模板或用户界面(除了绝对最低限度,就像这个页面上会有一个表单,它会要求输入用户名/密码等),我甚至在模板摆弄之前编程测试所有内容。

最后是模板。

+0

感谢您的回答。 – 2012-04-25 12:33:53