注意 - 这个问题不是针对RoR或Redmine的插件系统
我一直在为Redmine开发一个自定义插件,Redmine是一个使用Ruby on Rails(RoR)构建的项目管理器平台.现在我不是一个真正的RoR或者那件事,一个Ruby家伙.我已经设法编写插件,一切正常,尽管幕后一团糟."你做错了!!" 感觉来自于我知道RoR是一个备受推崇的框架,所以必须有简单,更好,更优雅,[在这里插入最佳实践术语],做我做过的事情.我并不太关心使这段代码尽可能完美,唯一的原因是它只在内部使用,实际上,人们只关心它"有效"(我是唯一一个会看代码的人).
什么样的智慧可以传递来压制"你做错了!!" 感觉?我很确定如果这种感觉存在,那么手头的任务可能是错误的.
问题是什么?"你做错了!!"的感觉是我们存在的本质.
我不久前读了一条建议,在这种情况下帮助我.当你对它一无所知时,尝试以"正确"的方式做某事可能会导致瘫痪.
因此,如果我必须构建一个客户管理应用程序,我的第一步可能是:
构建一个非常糟糕的 客户管理应用程序.
很难建立一个好的,但很容易建立一个做一两件事的蹩脚的.虽然很难知道什么东西足够好,但很容易知道什么时候有些东西很糟糕.
一旦我面前有一个糟糕的,我可以清楚地看到需要改进的地方.并且很容易改变它,因为蹩脚的实际上做了一些事情; 因此,使用TDD原则,我在保持工作的同时对其进行改进.最终,糟糕的应用程序发展成为一个好的应用程序.
我所研究的许多应用程序最终都是蹩脚的,但最终却试图不再......因此过于复杂,难以改变,调试和改进.
不要压抑感觉!这是错误的感觉是创新的关键.只要问自己"如果这是错的,那会更好吗?"
不要把它想象成"你做错了!!" 把它想象成"有什么更好的方法可以做到这一点?" 最好的情况是你最终会更有效地做到这一点,最糟糕的情况是你发现了一些可能对你下一个项目有用的东西.
我从来没有完成一条我100%满意的代码.但是,我不相信世界上有一个单一的(非平凡的)代码片段无法改进.
开发人员总是认为他们提供了我担心的优秀代码.
他们说作家应该每天都写一些东西,不管它是好还是坏.
Marc Raibert的建议是,如果你不能写出好的东西,写下一些不好的东西,然后从中剔除它.
编程的经验是,当我做了好几次,我终于开始擅长它.
所以不要指望完美.