转载:https://blog.csdn.net/bigestt/article/details/80278452html
http://www.javashuo.com/article/p-snpxonzn-co.html前端
http://blog.sina.com.cn/s/blog_13ca7342f0102xcpf.htmlmysql
咱们会常常遇到一些新来公司的大牛,在短短是一两周就能够熟悉公司的业务和技术了,并且还能熟练的辅导比他更早来公司的小菜鸟了。web
什么缘由呢?由于他们已经从以往的经验中总结了一些套路出来了。上套路sql
一、绝大部分业务系统,无论它的后端是oracle、mysql、nosql仍是内存数据库,也无论它前端是web、H五、Winform、Android仍是IOS,它的核心功能都是由增删查改组成,而后经过通讯、运算和人机交互串起来的,系统的复杂度只要体如今系统规模、性能、稳定性、业务流程、通讯等方面(部分工具类、基础架构类系统可能不同)。数据库
二、绝大部分系统,不论是基于Java、.NET、C++仍是NodeJS技术,都是遵循某种或几种设计模式分层进行开发的,最最多见的就是MVC了。后端
那怎么快速熟悉新的项目呢?一样也是套路。设计模式
一、先搞清楚新的项目是搞什么的。几个简单问题:谁在用这个系统?用这个系统解决什么问题?用这个系统和不用这个系统的区别?根据这些问题去寻找答案。架构
二、弄清楚系统是怎么分层、分模块的。每层、每一个模块都用到了哪些技术和框架,之间是怎么通讯的。oracle
三、把开发环境搭建起来,经过几个典型的功能弄清楚系统里面的增删查改、通讯、用户交互是怎么实现的。最简单的方法是根据系统的分层,先从前端到数据库把daima疏通一下,搞不清楚的话打开debug模式一步一步的运行查看。
四、通过上面的3个步骤基本上能够了解到系统的大体功能,后面就能够重点关注那些没有用过的技术和组件,先搞清楚它的目的、背景、实现原理和功能列表,再照着文档作几个demo,增长熟悉度。
五、日常开发过程当中若是遇到问题首先要相信:
1)绝大部分本身遇到的问题不少已经遇到过并解决了。
2)绝大部分本身遇到的问题在当前系统里面已经有答案了。
3)绝大部分本身遇到的问题在你用的框架和组件里面都有现成的解决方案。
六、对于老系统。
1)老系统其实尽是宝藏,里面有不少你能够借鉴和学习的东西。
2)老系统也尽是坑,一个看起来毫无关联的代码改了以后可能引起地震。
3)不少你看着不爽的代码其实都有道理。
4)不要早老系统里面继续挖坑。
5)看不懂的代码不要动。
6)在你力所能及的范围内让老系统变得更美好。
读代码的技巧:
o 先补充基础知识。好比新上手Visual Studio,了解一下nuget;刚接触Android,了解一下什么是activity、service、context这些。这是纯粹读代码没法读懂的
o 先大块,后小块。大块的读,知道每一个module大体干啥就行,而后当作一个黑箱便可。再相关的module,把黑箱化小
o 设断点,打log,看call stack
o 头脑里思考两件事。一,静态上dependency是怎样的,谁调用谁;二,动态上时序是怎样的,思考一下线程之间的关系
o 勤问,本身读以前找人大体讲一下会省不少时间。纠结于细节等于丧失big picture
· 而后你会发现你有一大堆须要读的,一大堆须要问的,一大堆须要学的。分好轻重缓急,一个个去作就好