在软件工程学中“聪明”是一种指控

如果单纯在编程领域,如果说聪明是一种褒奖的话。一般来讲,在软件工程领域,聪明更像是一种控诉。因为在这个领域,更重要的是维护性。下面是3个典型的靠小聪明实现功能的案例。

把主逻辑放到SQL里

在编程中,很多时候我们在和数据库进行交互。有些用程序写会很繁杂的操作,用一个复合SQL或者存储过程就可以简洁的实现。这种实现方式需要一天的开发工作缩短到一个小时就可以搞定。但是这种开发方式有可能造成两个问题:

第一是这种复合SQL有可能随着时间推移、数据量积累或者在某种特殊场景下有极差的效率,可能造成慢查询,严重的会拖死数据库。

第二是复合SQL最终只返回一个结果。在程序里可能需要把过程的结果提示出来。举个例子:查询一个班所有分数在90分以上的学生。在程序里,我要先查一个班,有可能这个班不存在,这时候就需要明确返回提示:班级不存在。班级存在后,要查这个班的所有学生列表,有可能这个班的学生列表没有录入。这个也明确提示。而用一个SQL,最终返回90分以上学生不存在的话,实际不存在的是中间哪个环节是不知道的。代码即注释的一个重要条件是代码要显示完整的逻辑过程和注意点,这一点复合SQL做不到。

极致追求短小

过于追求代码短小也会造成主逻辑不清晰的问题。比如现在大家用lambda表达式用的很多,但是有些中间结果需要返回提示的就不好办,结果很多聪明的程序员就省略了这些提示,只追求主要逻辑的正确,这也是不可取的。

非主流方法解决问题

有很多开发者很有创意,会用自己的实现独创的方式实现功能。现在对于业务开发来说,轮子已经相当丰富,自己造轮子要小心。比如这个看其没什么问题,但是永远不会得到自己想要的结果的程序

在软件工程学中“聪明”是一种指控_第1张图片

你可能感兴趣的:(在软件工程学中“聪明”是一种指控)