今天去面试,面试官希望我多聊一些有关架构设计,当场回答了一些部落格上分享的架构模式。
回家的路上,认真的思考了这个问题:「架构设计是做甚么?」
对我来说,架构是用来处理软件系统上的各种非功能性需求。
不管是增加系统的扩充性、降低开发人员的最低能力、减少维护人员的负担,都是架构设计该处理的问题。
以部落格上写过的架构模式来说:
「Database Migration」抽象化数据库部属升级,减少维护数据库的成本。
「Repository」抽象化系统储存装置,增加系统可移植性。
「Device Projection」抽象化设备管理功能,聚焦开发人员的思考逻辑。
这些架构模式,处理各种面向的问题,内容包山包海。
但能处理各种不同面向的问题,也正是架构设计这份工作有趣的地方:D。