Web项目设计,以什么顺序构建东西?

Nov*_*ing 0 python django

我需要帮助来建立一个良好的命令来构建一个Web应用程序.我正在django中构建它.它是一个网络应用程序,将有很多东西,如投票,喜欢,创建列表,评论等.因此,为了简化构建多平台webapp的未来保持我的选择,我正在考虑建立网站"API up ".

不确定我是否使用正确的术语,但实际上我想使用REST构建所有功能部件,例如,想要注释的是url.com/api/like/commentID/user/Pass,其中用户传递是可选的,因为它可以如果有网络会话,请使用网络会话.一旦我构建了函数(例如,注释等),我计划在api之上构建视图和模板(例如,类似按钮是api like函数的简单href).

我认为这与我的典型方式有点不同,我通常必须有多种方法,一种用于api类型的东西,一种用于视图/模板形式等.

基本上我要问的是,建立一个基于API的网站是一个好主意吗?

jpi*_*pic 5

保持简单和愚蠢.

首先编写一个简单的用户故事列表 - 不要过度设计您的项目.按应用分组.尝试在许多应用程序中划分您的项目,但不要太多.

控制复杂性是计算机编程的本质.- Brian Kernigan

Pinax或类似的东西开始你的项目.这样您就可以获得开箱即用的所有用户管理/设置/注册/ etc/etc等.您现在可以开始关注使您的网站与众不同的原因.

调试的难度是首先编写代码的两倍.因此,如果您尽可能巧妙地编写代码,那么根据定义,您不够聪明,无法对其进行调试.- Brian W. KernighanPJ Plauger编程风格的元素.

编写第一个应用程序的第一个版本,应包括一些模型,网址,视图,模板和静态文件.

构建软件设计有两种方法:一种方法是使其变得如此简单以至于显然没有缺陷,另一种方法是使其变得如此复杂以至于没有明显的缺陷.- CAR Hoare,1980年ACM图灵奖讲座

推迟不符合标准Django编码方式的功能(例如需要黑客攻击,代码膨胀等等).尽可能依靠外部应用程序,改进它们而不是重新发明轮子.

生命太短,无法运行专有软件.- Bdale Garbee

对其他应用进行编码,如果某些内容太复杂,请再次尝试将其简单化,然后推迟.

最便宜,最快速,最可靠的组件是那些不存在的组件--Gordon Bell

然后,您应该拥有项目的第一个工作版本.你这样做的时候已经过去了.根据剩余的时间量,确定推迟的哪些功能对于第一个版本最重要.

计算科学家的主要挑战不是让自己制造的复杂性感到困惑." - EW Dijkstra

做第一个版本,至少是私有的,你的项目应该在生产中,你应该在截止日期之前成功.代码应该是优雅的,用户故事在代码中以简单的方式实现.设置一个滚动发布系统 - 这是一个可以从测试推送到生产的脚本.

伙计们,老实说吧.鲟鱼是一个乐观主义者.超过90%的代码都是垃圾." - Al viro

你现在准备好处理更复杂的事情了.但不要忘记:您的网站的使用(用户和商业模式)现在应该能够决定优先级.你应该有一个理智的项目,现在自己发展.

对我们的行业来说,这是一个奇怪的事情:我们不仅没有从错误中吸取教训,也没有从我们的成功中吸取教训." - Keith Braithwaite