先看文档
设计文档就像一座大楼的设计图纸,让我们对整个系统先有个直观的认识。
所以说,对于刚入职的新人,一定要和身边同事尤其是带你的师兄搞好关系,给人家买买奶茶,请个午饭啥的,程序员一般内心善良,很容易被打动。
你后续的答疑肯定要麻烦人家,当然人家也可能顺手分享给你一些有用的技术文档资料,你别小看着这个,它对你快速熟悉系统起到了至关重要的作用。
特别注意:通常文档与代码存在一定的滞后性,比如修复线上bug、或者一些小需求,可能就没有文档更新,如果这类需求迭代较多时,那么文档与代码的不一致性会很大。
记住一点,文档只是一个参考,不能全信。要不然你会被坑的很惨!
万物都是相通
任何事情都是有技巧的,就像小时候语文老师教我们如何写作文一样,总分、分总、总分总,这些框架思路大家一定不陌生。
比如上面系统架构,当然每个公司的系统也是大同小异。
首先,最上层的业务输入层,可能是页面,也可能是对外的API接口
不管是哪一种形式,我们可以快速将其转换为用例图。通过用户故事,帮助我们先了解整个系统的核心功能,让我们对业务体系先有个体感。
家里有粮,心中不慌。
然后,就是另一端了,没错,就是底层的关系存储,将业务表的ER图快速还原
不管中间的Service层、Manager层、infrastructure层如何复杂,最终数据肯定是要落盘存储。打蛇要打七寸,解决问题要抓主要矛盾。
当我们把业务表的 ER关系还原出来后,我们基本上能从上下两端,快速摸清业务。
稍微有些经验的架构师、领域专家对于系统如何搭建,心中会形成个概要方案。
然后带着这个思路,再去看代码,不断纠正自己心中的设想方案。就像拿着手电筒走路,不会两眼一抹黑。
同事解惑,结果论证
当然了,你全身心投入看了几天的代码,感觉懂了很多,但又缺少一种脚踏实地的感觉。
可能你也收集了一些问题,还没有答案。
你可以找熟悉系统的同学,占用人家一点时间寻求答疑解惑。当然你也可以讲下对系统的个人理解,听听别人的反馈,验证自己的理解是否有偏差。教学相长会让自己进步更快。
如果恰好你是老板的话,那相对容易很多,你可以安排团队成员对自己负责的模块,梳理产出用例图、类图、状态机、时序图、流程图、架构图等,既锻炼了小伙伴们的逻辑思维能力、表达能力,也为自己熟悉系统提供更多的信息输入。
最后
前人栽树,后人乘凉。无论你是原创作者,还是后来接手,技术文档一定要持续建设。随着越来越多的人接手并重视文档的建设,才能让代码逻辑显性化、清晰化,也便于我们的持续优化升级。而不是处于一种持续混乱的状态中。
金九银十马上要开始了,我整理了一些java技术资料和面试题集,供大家提升进阶,不管你是要入门学习还是想面试跳槽巩固基础,都可以免费领取一份。
下面展示部分截图,文末附免费下载方式。
第一篇:基础篇
第二篇:JVM 篇
第三篇:多线程 &并发篇
第四篇:Spring 篇
第五篇:MyBatis 篇
第六篇:Spring Boot 篇
第七篇:MySQL 篇
第八篇:Redis 篇
第九篇:Spring Cloud 篇
第十篇:Nginx 篇
第十一篇:MQ 篇
第十二篇:数据结构与算法篇
第十三篇:Linux 篇
第十四篇:简历篇
最后
整份文档一共有将近 200 页,为了不影响大家的阅读体验就只展示了部分内容,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!