yoi*_*cis 11 language-agnostic
做"足够好"的软件会不会让你成为程序员?
以下是我对此的看法:
来自JoelOnSoftware的Joel Spolsky说,程序员感到厌倦,因为他们"足够好"(即使它们没有经过优化也能满足要求的软件).我同意,因为人们喜欢做一直都是正确的事情.在光谱的一侧,我想要:
另一方面,对我们人类的一个特点是我们喜欢变化.为了让我们保持吸引力(热爱编程),我们需要从一个项目或技术跳到另一个项目或技术,以便我们不会觉得无聊并且"有趣".
如果您作为程序员或人类为您做"足够好"的软件有任何好的或坏的副作用,我想您的意见?
pax*_*blo 21
我实际上认为足够好的程序员比蓝天可靠 - 一切都很完美.
那是因为,虽然我是一名程序员,但我也是一名商人并且意识到程序并不是程序员满意,而是满足特定的业务需求.
我实际上在另一个问题上有一个争论,即关于检测一个tic-tac-toe/noughts-and-crosses游戏的最佳方法(面试问题).
我收到的最好的解决方案来自一位候选人,他只是通过if陈述检查所有8种可能性.有一些提供了一个通用的解决方案,虽然可行,但完全没有必要,因为规格很明确,它只适用于3x3电路板.
许多人认为我的限制性太强,"获胜"的解决方案是垃圾,但我的观点是编写完美的可扩展软件并不是程序员的工作.满足业务需求是他们的工作.
如果该业务需要允许他们自由地做更多必要的事情,那很好,但大多数软件和修复都是在时间和成本限制下提供的.程序员(或任何职业)不在真空中工作.
tva*_*son 16
作为一名程序员,我想编写一款无缺陷的优秀软件.我并不是特别感兴趣的是镀金,这是添加"改进"软件的不必要功能的行为,尽管我们都在一定程度上做到了.从这个意义上讲,我对"足够好"的软件感到满意,如果足够好你意味着我已经完成了客户的要求,同时也很好地制作了它并确保了它的高质量.
困扰我的是当我采取捷径并写出糟糕的,未经测试的代码时.我讨厌编写有缺陷的代码,或者我没有将它重构为更好的设计,因为我已经过去了.当我让很多技术债务陷入困境时 - 忙于编写新功能而不是不断改进旧功能,因为我正在添加新功能 - 然后我知道最终我会有一些东西,而客户可能是很高兴,我不会.
幸运的是,在我的工作场所,管理层知道保持代码清洁的价值,而且我知道不要过分追求完美的难以捉摸的目标.没有代码是完美的,但"足够好"必须意味着代码是精心设计的.我已经了解并且仍在学习,对满足客户要求的代码感到满意,并且最好的功能是不需要实现的功能.幸运的是,我有足够的工作去做功能,因为它们不需要是一件好事.
根据我的经验,"足够好"总是包括黑客,邋,,糟糕的评论和意大利面条地狱,因此导致缺乏可扩展性,错误,懒散,并阻止其他人能够有效地建立你的工作.
Pax,虽然我认识到你关于商业需求和实用主义的观点,但"按书"做事是为了商业方面."现在已经足够了"和"只是让事情快速正常工作"总是会导致更多的工作时间来修复所有事情,或者直接重做它,而不是第一次正确地做到这一点."这本书"是出于某种原因而写的.