代码之家  ›  专栏  ›  技术社区  ›  Luke101

我怎样才能尽快把产品推向市场以赶上最后期限

  •  2
  • Luke101  · 技术社区  · 14 年前

    我的矿山客户不关心优雅和结构良好的代码。我用最少的第三方工具从头开始编写应用程序。我正在使用L2S、Recatcha、Tinymce、Lucene和结构图。

    我想尽快将客户的产品推向市场,同时牺牲优雅的代码。有什么工具可以让我把产品推向市场吗?

    7 回复  |  直到 14 年前
        1
  •  7
  •   Niki    14 年前

    没有客户机关心优雅和结构良好的代码。这不是您编写优雅和结构良好的代码的原因。你写它是因为它更短,更简单,写得更快,包含更少的错误,并且更容易找到这些错误。

    添加: 我知道我上面写的话听起来很矛盾。当我开始工作的时候,我也不相信。我必须学会硬的方法。所以说得更清楚一点:这就是当你 不要 尝试编写优雅、结构良好的代码:

    • 您将引入一些细微的错误,这些错误会导致奇怪的、无法产生的行为,并且查找所需的时间比最初编写代码多10倍。
    • 你将多次解决同一个问题。或者,反过来说:优雅的解决方案可以解决一组问题,而丑陋的解决方案只能解决一个问题。或者是一个问题的一部分。
    • 你会重复很多。这意味着要写的代码越多,要维护的代码越多,错误就越多。
    • 您将在一周后编写您不理解的代码。因此,不添加新的特性/解决bug,而是浪费时间试图找出某些代码为什么工作(或不工作)。
    • 你会解决错误的问题。这是迄今为止最严重的危险,如果你试图节省时间来正确地计划事情,这种情况会发生得太频繁。
        2
  •  4
  •   Jungle Hunter    14 年前

    好的代码是为您而不是您的客户准备的。

    我不认为有这么神奇的药丸。

    但我还是建议你去结账 12 Steps to Better Code . 并非所有的原则都适用于您(如果您没有与至少一定数量的人一起工作),但是像版本控制、如何处理错误、测试和其他方面的事情会比您所想的更有帮助。

        3
  •  3
  •   Noel Walters    14 年前

    假设添加更多的团队成员不是一个选项,您可以:

    1. 工作时间更长(在你或项目完成之前喝咖啡吃比萨饼)
    2. 推迟版本2的一些功能。
    3. 牺牲品质。
    4. 迟交。

    选择权是你的,但选择2是我的建议。一个功能较少的程序比一个不能依赖的功能丰富的产品更好。

        4
  •  2
  •   Rachel    14 年前

    有点陈词滥调,但是没有什么工具能让你得到你想要的结果,只有人。就这一点而言,没有任何工具可以保证人们真正想要使用的坚固、可靠、设计良好且具有吸引力的产品都是肉制品所能解决的问题。尊敬的是,如果我是你的话,我会谨慎对待“将产品推向市场”的整个概念:我相信你有理由采取这种做法,但越是匆忙往往会导致速度越慢,结果就越不理想。

        5
  •  2
  •   jcoder    14 年前

    当你没有时间按照合理的标准生产一个产品时,那么重要的是要知道哪些部分你可以偷工减料,哪些部分你不能。

    正确处理最重要的是组件之间的接口。确保它们是正确的,并且组件之间的耦合尽可能少。

    例如,如果您有一个报告生成器,它有时会崩溃,偶尔会生成错误的结果,并且有丢失和损坏的功能,您可以在稍后有时间时修复它,甚至废弃整个模块并正确地执行它。

    但是,如果您已经对接口进行了黑客攻击,并且它依赖于以某种方式存储其数据的其他组件,或者依赖于其他模块的内部工作,那么很难将其撕掉并彻底替换。

    不要忽略高层模块的设计和它们之间的接口。不断问自己,如果我必须撕掉这个模块,并以不同的方式做它,它会影响我的任何其他模块…答案应该尽可能清楚。修复代码是“容易的”,但如果这都是一个混乱的大混乱,就不容易了。只要你以后能很容易地替换他们,小公司就不需要表现得很好。

    强制性的评论——我当然不是建议任何人写坏代码。只是有时有一些基本的业务需求会造成最后期限,以至于你不能做好每件事情,而且知道哪些事情你可以稍后解决,哪些事情你不能解决是一项重要的技能。

    所以无论如何,要回答你的问题,设计工具,比如UML绘图工具,可能比编码工具更有用。

        6
  •  2
  •   Kris van der Mast    14 年前

    大多数情况下,你会得到这样的结果:

    http://www.scottsimmons.tv/blog/wp-content/uploads/good_2dcheap_2dfast.jpg

    另一个我听过一个项目经理说过要增加团队成员:

    “不是因为你有9个女人,孩子的成长只需要一个月。”

        7
  •  0
  •   Asaf    14 年前

    我建议使用CruiseControl.net或Hudson等持续集成工具,并编写许多JUnit测试(或C等效测试)。

    通过这种方式,即使您开发得很快,并且没有花足够的时间来完成所有的工作,CI服务器也应该防止您产生错误,这将花费您很长的时间来发现。

    也就是说,我同意其他人所说的,你写优雅的代码,这样你(或你的队友)就会理解它,而不是让你的客户满意。