架构爱好者
学习交流中心

面试准备

备战面试,应该从4个方向进行准备:

  1. 日常知识体系的搭建:包括各种渠道获取到的知识,比如书籍、视频、文章。
  2. 日常项目经验的积累:包括公司项目和个人项目。
  3. 网上面试题的积累。
  4. 针对自己的简历有重点的去准备对应知识。

知识的总结可以通过画思维导图或者记笔记(比如写这本书)的方式进行,方便日后回顾。

像网上面试题和针对简历准备的内容,是短期可以提高的,效果也不错,也是本书主要的内容。

但是日常知识体系的搭建和项目经验的积累是靠平日里一点一滴积累起来的,有很多经验性的东西, 靠看面试题之类的是很难积累起来的,比如代码重构相关的经验、对工程化项目代码的理解等。

新人或者一直做小项目或者一直在做大项目里某个子模块的开发可能会觉得所有能封装的东西都封装起来比较好,这样修改相关需求时往往可以事半功倍。

但是经常在大项目里跨模块开发的人可能就会觉得除非非常通用的东西,很多是不用封装的, 一来经常跨模块开发意味着对很多模块的熟悉度都有限,容易出现改一个地方多个页面出错的问题, 测试的时候因为不是需求相关页面所以根本没测,就变成产线问题了,而当一个组件被很多业务里用到时,如果没有人精心维护这种组件, 这个组件内部的代码很容易变得非常丑陋,到最后没法轻易地知道要传什么属性给这个组件。

你说这两种想法有孰优孰劣吗,我觉得是没有的,这个事情就是要看项目体量,体量小时容错率高(比如不容易漏测试,更大概率用户量小), 项目的学习/熟悉成本也低,业务复杂度低,这种情况下我觉得就是要尽量封装。 但是体量大了我就不建议尽量封装了,体量大了容错率低,而且对工程项目来说,可维护性才是最重要的。

当然凡事不绝对,比如虽然是个大项目,但是有很多开发参与,每个人又主要各自维护其中个别几个模块,那其实就是多个小项目的情况了,也就适合封装了(小模块内封装模块自己用的,非常通用的封装到外面)。

未经允许不得转载:技术杂烩 » 面试准备