我有一个可怕的习惯,实际上我正在努力解决这个问题,当我想到一个更好的方法来做某事 - 要么是重构,要么只是那么冷却,或者更好用户体验,我只需要这样做。即使这会花费我的时间,而且我正处于紧张状态。我不知道该说什么,“不,没有时间,我可以在以后再做。”
你有画线吗?就像现在我需要一种方法来显示数据库中的杂志文章。简单的方法是创建一个新的.aspx页面,然后传递文章ID。令人敬畏的方式是显示文章的模式中的jquery淡入淡出。至少这就是我的想法。不是一个大师,我需要更长的时间来写作。我们下周没有时间推出额外的废话。但是,我只是不能让自己这么简单。
有没有其他人遇到这个问题?想知道更有经验的程序员是否有一些分享的智慧。
答案 0 :(得分:9)
我先走快速路线。
写一个ASPX页面,显示基于ID的文章,甚至更酷,更友好的SEO,一个slug。你将能够满足你的截止日期。然后,我将以令人敬畏的jQuery方式开始。
这样做的好处是,如果用户禁用了JavaScript,您将拥有后备选项。
答案 1 :(得分:7)
你在谈论“镀金”。对于软件开发人员来说,这是一个非常常见且众所周知的问题。
来自StackOverflow本人的glorious founder:
30:显影剂镀金。开发人员对新事物着迷 技术,有时是焦虑 尝试他们的新功能 语言或环境或创造 他们自己实施了一个浮油 他们在另一个人看到的特征 产品 - 无论是否需要 在他们的产品中。所需的努力 设计,实施,测试,文档, 并支持不支持的功能 要求延长时间表。
解决这个问题的正确方法是自愿做大量的工作,你没有时间去做正确的事情,更别说添加额外的花里胡哨了。 :)
编辑:其他“经典错误”链接here。
答案 2 :(得分:1)
我认为这只是确定优先事项的问题。此外,如果您的客户或老板不希望您以华而不实的方式做事,并且您没有时间以华而不实的方式去做,只需按照简单的方式进行操作,然后返回并升级到华而不实的状态。你以后有时间。当你完成他们给你的工作之前,客户和老板通常会更快乐,然后才能让事情变得更好。
答案 3 :(得分:1)
我看看我离开了多少时间,如果我觉得自己受到了压力,我不会在我的专业领域之外冒险。我正是为了正确而优雅地做到这一点,但事实是大部分时间都是截止日期优先,而且我知道如果我按下时保持在我的安慰区内,我很可能会减少错误,这意味着我可以节省质量保证人们有时间测试东西。
尽管如此,我不止一次地知道我可以突破可以做多少的极限。如果你已经没有大量的加班时间,你总是可以额外花费更多的时间来走更难的路线。是的,这样做可以为额外的人带来更多的工作,但有时这是拥有最佳应用程序或拥有第一个失败者之间的区别。
我的其他建议是不要尝试做两种选择。如果您使用它创建基本版本并继续前进。如果你尝试两者兼顾,那么你最终会浪费时间。
答案 4 :(得分:1)
正确的方法是使其运作,以便用户可以获得他们所寻求的信息。设计师的方式是让它有点工作,但也有javascript轻松的事情和移动。
最好的方法是让它正常工作然后修改它。如果你知道在哪里放置东西,那么不应该有太多的重构。显然,检索文章将是业务/应用程序逻辑,实际的花哨设计(如淡入淡出/动画)将成为设置的设计/视图方面的一部分。这些部分应该能够坐下来并且不知道对方在做什么 - 它们不应该紧密耦合。
答案 5 :(得分:0)
听起来像典型的特征蠕变。相信自己现在提出一个功能想法以满足截止日期与完全放弃功能完全不同。您可以在发布几个月后再回到它并添加新功能。
答案 6 :(得分:0)
我认为你已经在那里回答了你自己的问题。你说添加这个功能需要花费太多时间,而且你正处于紧张状态并且将在下周发布。我认为你需要采用“简单”的路线是相当明显的。
你基本上是在描述特征蠕变。 http://en.wikipedia.org/wiki/Featuritis
你需要自我约束,我在你的位置做的是记录我要添加的新功能,并在你有时间处理它之后在你的紧缩模式之后实现它。您显然已经意识到添加此功能会花费您的时间,并且可能会很好地阻止此产品的推出,您只需要具备优先级并遵守它的规则。
答案 7 :(得分:0)
我认为每个开发人员都有这个问题,如果他对编程感兴趣,而不是编写9到5个办公室工作赚钱的方法。
以下是我的建议: 列出你编写代码时想到的每一件很酷的东西。拥有工作基本版后,将其提交到源存储库。
现在,如果你还有时间,那就回去做你想要的时间。如果您不得不认真修改代码,请使用分支标记。
一旦你没时间,如果你正在做敏捷,那就把剩下的东西写成故事并交给你的项目经理或客户。
答案 8 :(得分:0)
我认为,当你说你正在做一些“正确的方式”时,它意味着质量的平衡与你可以写入的速度。
如果你做出尽可能高质量的东西,但从不释放它,那就不是“正确的方法”。另一方面,如果你写垃圾但是速度超快,那也不是“正确的方式”。要以“正确的方式”做点什么,你必须平衡这两者。
我想到的一个经济词汇是“质量,价格或生产速度,选择两个。”
答案 9 :(得分:0)
这样的事情过去绝对会杀了我!
这是我的建议:
稍后向客户展示工作页面和概念证明,并估算需要多长时间。设计原型的经验将使您更好地了解所涉及的内容,如何操作以及实际需要多长时间。概念证明还可以告知维护开发人员什么是什么(衰落与逻辑),并且如果衰落机制或逻辑被破坏,则允许它们进行曝光。
就个人而言,我会远离褪色的东西。根据我的经验,客户端将看不到褪色功能的附加价值,恕我直言将其分隔到另一个页面将更容易维护。我相信以后不会出现错误,因为2页的代码不会混合到一个页面上(如果我理解正确的话)。
答案 10 :(得分:0)
在 test driven development 方法中,当您通过为其编写测试并以最简单的方式实现该功能来实现该功能时,您将能够“返回”并“正确”执行该功能只有当您发现 需要 时才会这样做。了解这一点可以避免过度设计。通常,你会发现你根本不需要。