C# 我怎样才能在最后期限前将产品赶往市场

C# 我怎样才能在最后期限前将产品赶往市场,c#,asp.net,asp.net-mvc-2,C#,Asp.net,Asp.net Mvc 2,我的客户并不关心优雅和结构良好的代码。我用最少的第三方工具从头开始编写应用程序。我正在使用l2s、Recatcha、tinymce、lucene和结构图 我希望尽可能快地将客户的产品推向市场,同时牺牲优雅的代码。有没有什么工具可以让我迅速将产品推向市场?好的代码是为您而不是为您的客户编写的。 我不认为有这么神奇的药丸 但我还是建议你去乔尔家看看。并非所有的原则都适用于您(如果您没有与至少一定数量的人合作),但诸如版本控制、如何处理bug、测试和其他方面的工作将比您所想的更有帮助。没有一个客户关心

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


我希望尽可能快地将客户的产品推向市场,同时牺牲优雅的代码。有没有什么工具可以让我迅速将产品推向市场?

好的代码是为您而不是为您的客户编写的。

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


但我还是建议你去乔尔家看看。并非所有的原则都适用于您(如果您没有与至少一定数量的人合作),但诸如版本控制、如何处理bug、测试和其他方面的工作将比您所想的更有帮助。

没有一个客户关心优雅且结构良好的代码。这不是您编写优雅且结构良好的代码的原因。您之所以编写它,是因为它更短、更简单、编写速度更快、包含的bug更少,并且更容易找到这些bug

添加:我知道我上面写的内容听起来很矛盾。当我开始工作时,我也不相信这一点。我不得不用艰苦的方式学习。因此,为了更清楚地说明这一点:当您不尝试编写优雅、结构良好的代码时,通常会发生这种情况:

  • 您将引入一些微妙的bug,这些bug会导致奇怪的、不可复制的行为,并且需要比最初编写代码多花10倍的时间才能找到
  • 你会多次解决同一个问题。或者,反过来说:优雅的解决方案可以解决一系列问题,而丑陋的解决方案只能解决一个问题。或者是一个问题的一部分
  • 你会重复很多次。这意味着需要编写更多的代码,需要维护更多的代码,以及更多的bug
  • 一周后,您将编写不懂的代码。因此,与添加新功能/解决bug相比,您将浪费时间试图找出某些代码工作(或不工作)的原因
  • 你会解决错误的问题。这是到目前为止最严重的危险,如果你试图节省时间来妥善计划事情,这种情况就会经常发生

    • 有点陈词滥调,但是没有工具可以让你得到你想要的结果,只有人。就这一点而言,没有任何工具可以保证人们真正想要使用的健壮、可靠、设计良好、吸引人的产品——这些都是只有肉制品才能解决的问题。恕我直言,如果我是你的话,我会小心对待“将产品推向市场”的整个概念:我相信你采取这种方法是有原因的,但越是匆忙往往会导致速度越慢,效果越不理想。

      假设增加更多的团队成员不是一种选择,你可以:

    • 延长工作时间(在您或项目完成之前,享受咖啡和比萨饼)
    • 推迟版本2的某些功能
    • 牺牲质量
    • 迟交

    • 选择权在你,但选择2将是我的建议。一个功能较少的程序比一个无法依赖的功能丰富的产品要好。

      当你没有时间按照合理的标准构建产品时,了解哪些部分可以省钱,哪些部分不能省钱是很重要的

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

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

      但是,如果你入侵了这个接口,并且它依赖于以某种方式存储数据的其他组件,或者依赖于其他模块的内部工作,那么将其拆掉并干净地替换就变得非常困难

      不要吝啬于高级模块的设计和它们之间的接口。不断问自己,如果我必须删除这个模块,并以不同的方式做它,它会影响我的任何其他模块。。。答案应该尽可能多地被知道。修复代码是“容易”的,但如果只是一个大的混乱,就不容易了。小部件不需要很好,只要您以后可以轻松更换即可

      强制性评论——当然,我并不是建议任何人都写不好的代码。只是有时候有一些基本的业务需求会在截止日期前完成,这样你就不能把每件事都做好,知道哪些事情你以后可以解决,哪些事情你不能,这是一项重要的技能


      因此,无论如何,要回答您的问题,设计工具(如UML绘图工具等)可能比编码工具(如CruiseControl.NET或hudson)更有用,我建议使用持续集成工具(如CruiseControl.NET或hudson)并编写许多JUnit测试(或C#等效测试)

      这样,即使您的开发速度很快,并且没有花足够的时间解决所有问题,CI服务器也应该可以防止您产生bug,而这些bug将花费您非常长的时间来发现


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

      通常你会这样做:


      (来源:)

      我还听到一位项目经理说过,要为团队增加额外的人员:


      “并不是因为你有9个女人,所以你的孩子只需要一个月的时间就可以长大。”

      一个由几名熟练的开发人员组成的团队就可以做到这一点。布鲁克斯定律:为一个后期项目增加人力会使它变得更晚。这听起来就像RAD的定义。关心优雅或可维护的代码不是客户的责任(尽管他们可能会从中受益)