你解决的问题比你编写的代码更重要!
软件的目的往往被忽视
程序员在繁忙的编码工作中,有时会忘记软件的初心——那就是解决实际问题。
回首往昔,50年前,在1968年,由北约科学委员会主办的软件工程工作会议上,人们开始意识到软件正逐渐融入社会生活的各个方面,但也变得复杂且难以理解。那次会议之后,编程逐渐成为一个独立的行业,渐渐脱离了商业领域的直接控制。
从那时起,业务与软件开发之间始终存在一种分离。如果开发者过于专注技术实现,可能会忽略软件背后的真正目的。他们可能看不到无需编码的隐藏解决方案。
举一个例子。有一家初创公司开发了一个设备,可以通过蓝牙解锁家门。这个设备的操作界面非常简单,即使手机被锁定,用户也能看到一个小部件,上面只有一个“打开门”的按钮。
当用户靠近家门时,只需拿出手机点击这个按钮即可开门。那么,为何还要编写复杂的软件界面呢?我们完全可以在检测到设备靠近后自动解锁。这个例子充分说明了过度关注技术实现而忽视实际需求的问题。我们应当将技术与实际需求相结合,找到最简洁有效的解决方案。
有时修复严重的bug可能并不是首要任务。如果你的系统是一个加密交换系统并且允许重复存款,那么如果修复成本过高,人工干预可能是更经济的选择。在决定修复哪个bug时,我们需要权衡其严重性和优先级。并不是所有的bug都值得修复。同样,开发人员常常尝试为所有任务编写脚本,但一些重复性的任务可能并不值得自动化。有时候,简单的操作步骤比复杂的抽象命令更有用。在某些情况下,保持信息的明确性比抽象化更重要。我们要警惕陷入过度抽象化的陷阱。在一个项目中,我们曾尝试建立一个现场验证功能,但随着时间的推移,这个功能被不断推迟并最终被放弃。原因是验证本身是强制性的,而且大多数浏览器已经支持基本的HTML验证功能。有些功能可能看起来很有吸引力,但实际上并不值得投入时间和资源去开发。作为开发人员,我们需要时刻提醒自己为什么要开发软件——是为了解决实际问题,创造价值,使世界变得更美好。我们不是“键盘侠”,而是解决问题的人。不要为了编码而编码,要为了解决问题而编码。有人曾说过:“如果你手里只有一把锤子,那么你会觉得到处都是钉子。”但我们不能只顾着钉钉子,而忘了为何要拿起这把锤子。
文章从网络整理,文章内容不代表本站观点,转账请注明【蓑衣网】