fly*_*ire 32 project-management design-patterns product-management product yagni
我正在为企业市场开发一个新的革命性Web应用程序.当然,很多人在我之前认为他们的网络应用程序将是革命性的,只是发现它不是.(或者它是,但无论如何业务都不好).
所以我在想,为了找出我的想法是否有最低成本的牵引力,遵循一个极端的YAGNI:
没有安全功能(即没有用户等).对于任何新客户,我安装了一个新的数据库实例和一个新的webapp实例.每个webapp实例都受http服务器密码(摘要或基本授权,可能通过https)保护.
没有国际化.只是嵌入在源代码中的英文字符串.
没有脱钩.只是与数据库通信的网页.
没有表演技巧.没有队列,缓存,计时器,后台作业,异步调用等.
没有可扩展性.没有数据库分区,没有分片,没有群集或复制.
另外,只要合适,就可以在微观层面使用YAGNI.
我只是想开始这个项目并尽可能快地达到一个点,我可以通过一个简单而引人入胜的用户界面来销售(或试图销售)我的创新功能.
如果计划失败,我会尽早知道.如果成功,我会看到客户想要的东西.他们想要法语版吗?或者他们是否想要组织内的用户和角色?
这是人们对YAGNI的意思,还是YAGNI的一个病态和夸张的例子?
Pek*_*ica 37
我完全同意YAGNI原则,但你仍然想要成功的计划.如果一个应用程序突然有超过十个用户需要完全重写,那么它的YAGNI就太过分了.
你需要的一些东西.从我的角度来看,最重要的两点是:
不准备你的应用程序进行国际化,不要让自己陷入困境.如果您的申请有任何好处,那么国际化将在某一天出现在桌面上.此外,在2010年从头开始构建应用程序时,使用UTF-8处理外来字符的能力是绝对必要的.国际化对英语母语人士来说似乎并不重要,但相信我,这是必不可少的,国际化的痛苦以后的申请很可怕.
三思而后行无安全功能.那些想要与不同安全级别的用户一起使用您的应用的组织或团体怎么办?它可能是,这是一个功能,您可以真正做到不-我都内置了很多我的产品从未被用来充分发挥其潜力还没有的细粒度的安全系统.但要好好考虑一下你的具体应用是否可以做到,即使它是成功的.
S.L*_*ott 17
这就是他们所谓的"原型制作".去吧.
YAGNI与原型设计之间存在微妙之处.
如果是用户要求的特征性炎症,你说不,那就是YAGNI.
当它的实现(I18N,"解耦"(?),队列,缓存,计时器等)并且你对自己说不.那不是YAGNI.这是原型.
你在这里拥有的大多数东西似乎都不是面向用户的镀金.我不会称之为 - 确切地说 - YAGNI.
我自己并不是YAGNI原则的粉丝; 我认为在设计不佳的软件的合理性中经常使用它.过度设计的软件当然也是一个问题,但"YAGNI"并没有为实际影响分析留下太多空间.
事实证明,在软件世界中,许多您认为不需要的东西,实际上是您需要的.然后还有一些.Who'dathunkit.
我写了一两个应用程序,应该是一次性应用程序或两年后仍在生产中的保留.他们很难维持.
尤其是当它涉及到像安全-你可能是会需要它.
| 归档时间: |
|
| 查看次数: |
3596 次 |
| 最近记录: |