我正在开发自己的应用程序,但遇到了麻烦。我必须实现一个功能,但是找不到实现该功能的好方法。我考虑了几天,没有好主意。搜索互联网并没有给我任何启发。
我需要继续前进,但我想知道什么是最好的:
- 多思考,多等待,然后继续寻找最佳方法
- 停止浪费时间,从不良的设计开始,用测试覆盖一切
你怎么看?如前所述,我正在开发自己的应用程序。我没有任何截止日期,但我也想尽快完成对应用程序的编码。
我正在开发自己的应用程序,但遇到了麻烦。我必须实现一个功能,但是找不到实现该功能的好方法。我考虑了几天,没有好主意。搜索互联网并没有给我任何启发。
我需要继续前进,但我想知道什么是最好的:
你怎么看?如前所述,我正在开发自己的应用程序。我没有任何截止日期,但我也想尽快完成对应用程序的编码。
Answers:
除了谈论这件事的人(问题建议你没有对项目的同事),我常常觉得这是一个很好的方法把重点放在我的事情可以做。
通常,我知道我必须写一些代码。我还不知道如何写的东西,然后被存根替换,这些存根要么返回虚拟结果,要么使用足以测试其余结果的近似值。
这使您保持生产力。并且,当您需要实现缺少的部分时,您已经有了接口。而且,您在相同的问题域中编写了很多围绕该问题的代码,通常可以帮助我产生想法:您更确切地知道需要输出什么,如果可以帮助解决问题,还可以使用其他哪些输入。而且,通常得出的结论是,丢失的部分不必像最初所想的那样包罗万象。
如果搜索失败,您总是可以使用第一个(不一定是最好的)想法来实现,然后在找到正确的方法时对其进行重构。
这是正确的方法,因为即使您发现了看起来不错的主意,但以后可能会变得很糟糕。或者在那时可能很好,但是后来您发现更好的东西。然后,您仍然必须重构。
进行此操作时,请确保以易于重构的方式设计和实施。如果操作正确,则仅需更改有问题的部分,而无需从头开始。
询问另一个人呢?例如,您可以在这里描述您的问题,或者如果它是一个实施问题,请在stackoverflow.com上进行描述,并征求意见。有时,即使您没有得到好的答案,如果您开始写下问题,它也会对您有所帮助。
一些想法:
不好的解决方案没有错。通常,您只是在那个时候对问题域了解得不够多。有了一个不好的解决方案,让您继续学习并进一步了解问题。然后,您仍然可以返回并重构您的第一个解决方案。
我总是尝试从最终用户的角度来看它。作为开发人员,您很容易想到“酷”的想法,因为您可以花很多时间在上面工作,实际上对您的应用程序几乎没有增加。
理想情况下,您想要映射应用程序中的所有功能,并根据最终用户的利益对它们进行优先级排序,我个人使用MOSCoW,尽管只要您在整个过程中保持相同的优先级排序方法就可以像1一样简单。 -5。
在此之后,如果您仍然发现此功能是应用程序的必要组成部分,那么就像人们已经说过的那样,请问!我认为我从未遇到过某个问题,而该问题最终并未由同事或Stackoverflow上的好人解决。
我的观点是:永远不要编写行之有效的代码!将来很难重构。
对于开发人员(当然还有PM或老板),这是一种非常普遍的方法。我听到了很多时间“只是让它正常工作”或“我会稍后修复”(以后什么时候?永远不会!),但是,我认为质量并不是在项目中期就无法获得的。
我的建议是,暂时停止思考您的问题。...做其他事情,有时,解决方案只是自己提出来的。
顺便说一句,向同事询问绝对是解决您的麻烦的好方法。