被设计的面试题与设计性的回答
不知不觉中,身边的Android 开发同事都已经变成了5年以上的老兵了,并且公司递过来的简历也都是五年以上的。这种情况下# 码农心经:探索软件开发的行为与架构 里描述的行为价值已经是必备项目了,那怎么简单的考察面试者的基础设计能力,这就是个问题了。
如果简单的问常见的设计模式,就没意义了,一般情况下招过来的人,他们也没有机会写项目架构的搭建,所以问常见的或者面试热门的架构问题就不行了。
在面对设计性的面试题时,我们需要展现出对系统架构和设计模式的深刻理解,而不仅仅停留在表面的知识点上。以下是针对设计性问题的回答思路,旨在突显应聘者的设计能力和实际经验。
架构思维(例子)
假设:需要做一个绑定业务,但是要求不能关注具体的绑定方式
解析: 很简单一句话,这是我设计的一个场景。
主要涉及到面向对象设计中的一些原则,特别是策略模式和依赖倒置原则, 以及面向接口编程的编程技巧等。
其中包含的面试点有:
- 面向接口编程: 此设计遵循"面向接口编程而不是面向实现编程"的原则。这样可以降低代码的耦合度,使得系统更加灵活和可维护。
- 策略模式: 通过使用策略模式,可以在运行时选择不同的绑定策略,而不需要修改客户端代码。这提供了一种灵活的方式来扩展和变化系统的行为。
- 依赖倒置原则: 高层模块(客户端代码)不应该依赖于低层模块(具体的绑定策略类),而是应该依赖于抽象(绑定接口)。这种设计遵循依赖倒置原则,使得系统更加稳定和可扩展。
- 扩展性: 面试者可以被问及如何添加新的绑定策略而不影响现有代码。通过创建新的绑定策略类并实现绑定接口,系统可以轻松地添加新的绑定方式。
- 可维护性: 如何保持系统的可维护性,特别是在将来可能添加新的绑定方式时。合理的接口和类的组织结构可以使得系统更易于理解和修改。
对设计模式的掌握成都程度
你认为你写过的最爽且贼6的设计模式是什么
解析: 不要张口就是单例,还是# 码农心经:探索软件开发的行为与架构 中的那句话,行为模式就是必备的,要想突出必须设计性回答。
比如,聊一个牛逼点的设计模式,结合面试官所在公司的业务(通过网络了解,或者通过HR简单聊几句),说一个解决某种问题的设计方式。
比如你面试的公司是音视频的,你可以说你使用抽象工厂模式很6,之前为了解耦业务视频不强行依赖于某一个SDK而设计了一种可以高度解耦的,动态切换播放器内核的SDK,等。
学会用设计面试题的思维回答面试题
说实话,我们这个工作经验,早已经脱离了八股文的阶段,在面试过程中八股文可能是必问项,但是并不是决定是否能入职的必要条件,我们要结合技术点,回答问题的,且往目标公司的业务方向去靠。要学会将自己熟练的技术运用到回答中
要巧妙!!!
切记,不要说工作这么多年了,记不清了