Php 在开始一个新项目时,什么是值得提前花费时间的 更新:

Php 在开始一个新项目时,什么是值得提前花费时间的 更新:,php,mysql,web-applications,agile,Php,Mysql,Web Applications,Agile,到目前为止,每个人都有很好的答案!每一个都非常有助于找到问题的根源,确保我和我的伴侣站在同一个立场上。我认为很多是因为我们没有谈论我们的实际意图,发布时间表和一般的工作流程 在这样做的过程中,我遇到了一些我从未想过要解决的相关问题,以后可能会发表更多的帖子(可能在年) 背景故事: 我正在和我的一个大学朋友一起开发网络应用程序 我们正在使用MySQL和PHP开发我们的站点,并计划在前端使用一些jQuery。我们的目标是手机和平板电脑。它最终将涉及大量众包数据。我不想说太多关于具体项目的想法。(如

到目前为止,每个人都有很好的答案!每一个都非常有助于找到问题的根源,确保我和我的伴侣站在同一个立场上。我认为很多是因为我们没有谈论我们的实际意图,发布时间表和一般的工作流程

在这样做的过程中,我遇到了一些我从未想过要解决的相关问题,以后可能会发表更多的帖子(可能在年)


背景故事: 我正在和我的一个大学朋友一起开发网络应用程序

我们正在使用MySQL和PHP开发我们的站点,并计划在前端使用一些jQuery。我们的目标是手机和平板电脑。它最终将涉及大量众包数据。我不想说太多关于具体项目的想法。(如果您认为我应该提供更多细节,请对此发表评论。)

我们有一个原型,还有一些GUI模型。我们的想法让人抓痒,而且似乎是以前从未尝试过的

我们的问题: 我们希望遵循37signals《返工》一书中的原则。这本书的很大一部分是关于尽早推出产品的想法。它讨论了为什么我们应该专注于我们产品的核心,我们应该忽略所有额外的东西

基本上,我们的想法是尽可能少地销售产品,这样我们就可以发货并开始获得反馈。对于这意味着什么,我们都有不同的看法,这将我们引向不同的方向

我认为这本书只讨论了最基本的功能,但他觉得这也是关于代码设计的。我认为有些事情现在值得做,以加快速度,但他希望我们尽快完成,完全跳过这些问题

我想做一些准备工作,因为这样以后会节省大量的时间。比如从OO开始,设计一个全面的数据库模式,花时间建立一些东西,比如,把我们的问题分解成单独的步骤

[我理解他的方式:]他想赶时间,即使这意味着要编写糟糕/草率的代码,只要它能让设计脱颖而出。他不想把时间花在基本的代码基础设施上,也不想随着我们的前进或干涸的原则而重构。他不想花时间来决定需要做什么,他只想去做。例如,他认为向svn提交小的更改只是开销

我知道他不想让我们浪费时间来建立一个完美的系统,但我认为这太过分了,这不是37signals所提倡的

这本质上是一个乌龟对兔子的问题,我不知道如何向他解释,如果他不至少做一些简单的节省时间的代码设计选择,并将问题分解成小的不连续的部分来解决,那他将是自食其果

除此之外,他是一个优秀的开发人员,并且有能力把它做好

我的问题是:
  • 多少准备太多,多少准备太少

  • 在项目开始时,我们应该关注哪些高回报的事情

  • 在开发的这个阶段,我们应该如何从代码角度(而不是特性)判断哪些值得开发

  • 花时间实现像XCS和其他系统这样的东西,从一开始就可以更容易地编写干净的代码,这值得吗

  • 你将如何向他解释细粒度任务和进行小的原子变化的价值

  • 你对你的代码做了哪些事情 导致船期提前

  • 最佳答案:
    我会接受最能改变他/我想法的答案。请随意回答我列出的任何问题,以及目标语言中示例的额外积分。参考其他37signals的工作可能会有所帮助。

    我对你的观点没有具体的答案,但在我看来,“太多”是任何超出“工作代码”范围的东西

    尽快把整个过程中最简单、最卑鄙的部分准备好并运行起来

    让代码变得丑陋吧,反正它会被替换掉的 让设计看起来像狗的底部-它将被替换无论如何 让事情变得不可验证和不安全——不管怎样,它都会被替换的

    想法是尽快建立一个内部原型并运行。如果可以跳过,但仍然在浏览器或诸如此类的东西中“使用想法的核心”,那么就跳过它

    一旦你有了工作,不管有多糟糕,第一步就完成了

    第二步是循环式的——回到你已经写过的东西,把它做得更好。然后,转至步骤2

    在第1步中,我唯一不想跳过的部分是单元测试,这是因为在编写代码之前,我使用单元测试来确定代码应该做什么。一旦单元测试通过,该部分就完成了-下一步

    第2步涉及重写代码,使其更干净,处理更多的边缘情况,更容易更新、维护和构建。这些都涉及单元测试(通常涉及重写单元测试)


    基本上,你的朋友是对的-除了单元/集成测试之外

    很高兴看到另一个37signals粉丝

    以下是他们在线书籍中的一段话:

    人们经常花太多的时间起床 努力解决他们遇到的问题 甚至还没有。不要。见鬼,我们 没有能力发射大本营 给顾客开账单!因为产品 按月周期计费,我们知道 有30天的时间来解决这个问题

    基本上,决定发布日期。将应用程序的总范围减少到在该日期发布所需的最低限度。这将帮助您及时获得应用程序,并为您提供实时数据

    如果您已经确定了范围部分,并且希望专注于编码问题,那么您应该有一个loo