“你做错了!!”感觉

时间:2008-12-22 21:43:35

标签: language-agnostic

NB - 这个问题不是针对RoR或Redmine的插件系统


我一直致力于Redmine的自定义插件,这是一个使用Ruby on Rails(RoR)构建的项目经理平台。现在我不是真的一个RoR或者那个问题,一个Ruby家伙。我已经设法编写插件,一切正常,尽管幕后一团糟。 “你做错了!!”感觉来自于我知道RoR是一个备受推崇的框架,所以必须有简单,更好,更优雅,[在这里插入最佳实践术语],做我做过的事情。我并不太关心使这段代码尽可能完美,唯一的原因是它只在内部使用,而且真的,人们只关心它“有效”(我是唯一会看代码的人)。

可以传达什么样的智慧来压制“你做错了!!”感觉?我很确定如果这种感觉存在,那么手头的任务可能是错误的。

12 个答案:

答案 0 :(得分:66)

有什么问题? “你做错了!!”的感觉是我们存在的本质。

答案 1 :(得分:29)

我在一段时间后阅读了一条建议,在这种情况下帮助我。当你对此一无所知时,尝试以“正确”的方式做某事可能会瘫痪。

因此,如果我必须构建客户管理应用程序,我的第一步可能是:

构建一个非常糟糕的 客户管理应用程序

很难建立一个好的,但很容易建立一个做一两件事的糟糕的事情。虽然很难知道什么东西足够好,但很容易知道什么时候有些东西很糟糕。

一旦我面前有一个糟糕的人,我可以清楚地看到需要改进的地方。并且很容易改变它,因为蹩脚的实际上做了一些事情;因此,使用TDD原则,我在保持工作的同时对其进行改进。最终,糟糕的应用程序演变成了一个好的应用程序。

我工作过的很多应用程序最终都是蹩脚的,并且开始尝试不成为......因此过于复杂,难以改变,调试和改进。

答案 2 :(得分:10)

不要压抑感觉! 这是错误的感觉是创新的关键。只要问问自己“如果这是错的,那会更好吗?”

答案 3 :(得分:8)

不要把它想象成“你做错了!!”把它想象成“有什么更好的方法可以做到这一点?”最好的情况是你最终会更有效地做到这一点,最糟糕的情况是你发现了一些可能对你的下一个项目有用的东西。

答案 4 :(得分:6)

我从未完成过一条我非常满意的代码。但是,我不相信世界上有一个单一的(非平凡的)代码片段无法改进。

开发人员总是认为他们提供了我担心的优秀代码。

答案 5 :(得分:5)

他们说作家应该每天写一些东西,无论它是好还是不好。

Marc Raibert's advice如果你不能写出好的东西,写下一些不好的东西,然后从中剔除它。

我的编程经验是,当我多次完成某些事情时,我终于开始擅长编程了。

所以不要指望完美。

答案 6 :(得分:4)

像许多其他框架一样,RoR可以很容易地做出他们预期的事情,并且很难做出他们没有预料到的事情。几乎所有框架都是如此,这些框架不是您专门为项目设计的自定义框架。事实上,你必须在幕后做很多混乱的事情来做某事并不会让我感到惊讶。所以,如果你正在做一些没有预料到的事情,那么你觉得自己做错了就很自然了,因为从框架设计师的角度来看,你根本就不应该这样做。

答案 7 :(得分:4)

在很多情况下,RoR使用'syntactic vinegar'正是为了给你一种更好的感觉。您应该查看其他一些插件,以了解所使用的约定。一般来说,如果你遵循RoR的惯例,那感觉就是对的。

答案 8 :(得分:3)

特别是对于Redmine,插件系统仍然是新的,我们正在尝试制定最佳实践。由于Redmine(以及Ruby on Rails)是开源的,我建议将你的感受提升到项目的论坛,看看人们的想法。其他人可能会同意你的意见,并可以帮助改进系统。

注意:我是Redmine的核心开发人员之一,帮助构建了Redmine插件系统,并发布了大约12个Redmine插件。甚至我觉得事情不时倒退。

答案 9 :(得分:2)

如果你回顾一下今天几年你写的任何一段代码,你可能会感到很震惊。换句话说,它可能会显示您的进展情况。你得到的感觉是持续学习的一部分。从正确的方向开始,使其稳定。优雅伴随着时间的流逝,计算机编程风格的时尚变化与其他一切相同。

答案 10 :(得分:2)

“问题是什么?”你做错了!!“感觉是我们存在的本质。”

也许并不真正相关,但是:

“程序员是一个以解决他之前发明的解决方案所造成的问题为生的人。”

答案 11 :(得分:1)

第一次使用语言,框架等时,你会做一些“错误”的事情。在开发其他应用程序或进行调整时改进您的原始应用程序,您将找到需要修复的内容,或者您​​可以做得更好的内容。

在每个项目中,我几乎总觉得我做了一些次优或不完美的事情,但是当它归结为它时,代码起作用,允许人们做他们需要的事情,并且在某种程度上, 成功。 所以继续写作并不断学习!