nomagick
2023-05-18 21:03:18 +08:00
我觉得这道题非常好,准备留着自己用了。
各位觉得面试题是考中学算数吗,难道公司就是一帮中学生组成的吗
按照中学的标准考察候选人难道能算是良好履职吗?
这题考查的是你发现隐含假设的能力,你只要能发现,这个题就没有确定答案。
在一般的程序员写程序的时候,一般都会不自觉地设定一系列假设,常见的有项目名称、当前代码的核心用途等。
什么叫差劲的代码,差劲的代码就是假设太多,只能解决当前限定条件下的特殊问题,就像 CRUD 的一个 API ,写个意面代码,只着眼当前业务逻辑,这个代码就很难复用。最终因为大部分代码都不能复用,总的维护成本就很高。
据我观察很多人甚至意识不到大部分假设的存在。
什么叫好的代码,好的代码就是能够厘清隐含假设,限制假设,寻找共性,形成抽象层级,最终实现复用,因为代码能够复用,总的代码量就会减少,就更容易维护,并且假设管理得越清晰,结构就越好,维护越容易。
所以回到这题,如果你只给出了确定概率答案,这题基本就算答废了,面试官就需要引导你进行更多的思考,直到你能够意识到隐藏假设的存在,你能举出的越多越好,之后基于假设做一些推断,就完成了能力考查的目标。