我越来越擅长编程,但我仍然在烦恼一个问题:选择合适的工具。现在,当我想实现某个功能时,我会想到多种不同的方法,但我会卡住,试图考虑所有的后果:性能差异、可扩展性以及我对设计模式的熟悉度。有没有什么建议或方法可以帮助我优先考虑这些后果?我知道这是一个非常广泛的问题,但我想知道其他程序员是如何解决这个问题的。经常会出现这样的情况:我会选择一个方法,写完后又会发现几个星期后需要进行重构,这个重构完全可以避免如果我在开始时选择了另一种设计模式。虽然一些重构是必要的,但我很烦恼当大部分重构是完全可避免的,只要我在开始时选择了合适的设计就好了。预先规划确实有帮助,但有时你只能规划一些基本的东西。一旦你进入具体的实现细节,你就会发现需要改变某些东西,这又会导致其他地方的重构,以便提高性能或可扩展性等原因。