我们是程序员,所以编写代码是我们的工作,不是吗?
我们的工作不单单是整天在屏幕前敲键盘。
作为程序员,我们是解决问题的人。我们得到其他人遇到的BUG,并使用所有可用的工具来查找解决方案。
软件不是目的
软件本身不是我们工作的目的。编写的软件必须与实际问题/要求相关联,否则,即使代码编写的再精美,它仍然是无用的绣花枕头程序。
更重要的是,您编写的软件应该能够通过评估,无论它是否能够很好地解决要解决的问题/需求。软件是用于解决特定需求的工具。以您可以想到的最佳软件为例:它简洁,易于阅读,并且所有设计模式都正确使用。但是,如果它不能做您需要做的事,那就没用了。
了解问题/需求
软件开发的第一步应该是了解问题/需求。花再多的时间去做这事都不为过。这同时适用于整个项目。
无论您多么努力,都无法正确理解因需求而导致的问题是多么错误。大多数时候,它们涉及大量的重构和大量的测试工作。您必须解释整个程序为什么出错,而不必理会您所面临的尴尬。
完美是你的敌人
已经有人指出,我们应该专注于解决问题/要求,而不是编写代码。作为程序员,我们有时会为正在解决的问题感到困扰,以至于我们忘记问自己:“我的问题解决方向正确吗?”
我们应该不时休息一下,看看我们为什么这样做。遇到问题时,以下问题可能会为您提供帮助:
解决这个问题有多有价值?
还有其他更快的方法吗?
有没有更容易实现的折中方案?
这些问题并非总是可以自己解决的(除非您正在处理个人项目)。与利益相关者交谈,看看他们真正关心的是什么。如果可能,请收集用户反馈。
一般来说,快速的A / B测试对下一步应该提供的帮助很大。实验并迭代!您的项目不需要完美就可以成功。
您可以编写的最佳代码是根本没有代码
并非每个问题都需要技术解决方案。您不需要应用程序即可处理所有其他事情。一切都是有代价的。编写代码时,它会浪费您的时间和资源。另外,拥有的代码越多,需要维护的代码就越多,出错的可能性就越大。
我相信您现在已经注意到添加代码是有风险的。错误迟早会出现。您所拥有的代码行数与维护代码所涉及的工作之间存在非线性关系。换句话说:更多的代码意味着更多的问题。
尝试将您的代码变成其他人的需求。我发现,通常情况下,找到现成的解决方案需要花费时间。在软件开发中,我们已经达到了这样一个阶段:许多东西都有现成的库或API。对于常见问题/需求,我建议使用现成的解决方案:例如身份验证,付款等。
领取专属 10元无门槛券
私享最新 技术干货