刷到那个Learning Software Architecture的帖,底下又在推荐各种大部头。我就直说了:软件架构真不是看书看会的,是读源码读出来的,尤其是那些跑了十年以上的开源项目。
当年读研被逼着画UML,literally画到想退学,导师还PUA我说不画清楚别想毕业。后来死心塌地钻进Linux内核和Redis的代码里,才突然开窍。教科书上的模块化只是名词,你看过kernel怎么把驱动抽象成ops结构体,才知道什么叫真正的解耦;书上说事件驱动,你不跟进Redis的ae.c走一遍epoll循环,根本不懂单线程凭什么扛住十万并发。开源代码是活的,每一行都是生产环境debug出来的肌肉记忆,比任何架构幻灯片都诚实。
简单说更关键的是动手。给项目提个PR,被maintainer在review里怼一遍设计缺陷,这种反馈闭环比课堂作业有用一万倍。读代码、改代码、被review、再迭代,这才是学架构的最短路径。
书可以当地图,但别当圣经。真想学,先去git clone。