新人程序员或实习生如何快速入门一个新的项目

思维层面

凡事欲成,心中有数。掌握了方法论,有了核心思想和目标,效率才可以上来,不会走弯路。所以,我先讲一下项目入手的方法论,心态吧。如下:

  1. 心态调整:真正好的代码是自解释的,那些看似高深的代码,大部分都是人家写的不够好,不是你不行。同时,项目入手,必定是个循序渐进的过程,不要操之过急。
  2. 心态调整2:不要以追求完美的心态去接手项目,刚刚接手初期不要试图搞懂整个项目。时间紧张的情况下,过去的功能已经完成了,需要修改该功能时,你才需要读过去的代码,方便修改。
  3. 抓住主干,逐渐扩展:先找到主函数或者主thread,没必要深入每个函数,初步了解项目的大概流程即可。(通用程序的核心功能都是由增删改查组成然后通过通信、运算和人机交互串起来的,系统的复杂度主要体现在系统规模、性能、稳定性、业务流程、通信等方面)
  4. 由点到面:从小部分切入,然后扩展到整个项目。和上面说的主干一样,了解了入口之后,不可避免的要走入某条分支,你只要先抓住一点即可。
  5. IDE的技巧使用:善用find all,或者ctags,看看他们是怎么连起来的。
  6. 深入理解代码前,先跑起来,自己操作一遍

具体操作

  1. 提问方式引导自己去看文档,心里有个大概的概念先:先搞清楚新的系统是搞什么的,就问简单几个问题,谁在用这个系统?用这个系统做什么?然后自己根据这些问题去文档找答案。
  2. 由架构层面了解项目的大体实现,就像是软件工程开发的第三步:详细设计。弄清楚系统是怎么分层、分模块的,每层、每个模块都用到了什么技术和框架,之间是怎么通信的。这一步还不用深入到底层,到每一个类的实现。此时的entity,dao都不用怎么具体看实现,只要抓住大体架构就好了。这一步最好能把类图画出来。
  3. 找到一个自己熟悉的功能,看看这个项目是怎么实现的,这一步就是深入代码了。走一遍流程,基本上是初步搞懂了实现。通过几个典型的功能,主要是为了弄清楚系统里面增删改查、通信、用户交互是怎么实现的。这一步可以通过debug模式一步一步地跟下去,以点带面地去熟悉整个项目。

上面的三板斧基本上就可以搞懂一些基本的开发了。到这一步,差不多可以植入自己开发的东西,写一些项目安排的需求了。


  1. 深入掌握项目,并且获得提升。三板斧后面就要重点关注那些没用过的技术和组件:是什么,为什么要用,怎么用,最后了解底层实现。再照着文档做几个demo,平常工作时把它的文档建个快捷方式,随手查询学习一下,回忆知识点。
  2. 补充三板斧更加具体的做法:https://zhuanlan.zhihu.com/p/62134600
  • 项目维护有三宝:沟通 、文档 、代码跑。目标:了解业务逻辑流。即:直接问项目的重点难点,由前人传授经验,在点到面的时候,也知道那个切入点是最好的。而后是看相应文档了。再之后是自己跑一跑,拉到本地,数据库备份好,然后跑起来。
  • 项目出活四部曲,跟、改、理、测要一起。这一步其实就算是一个费曼学习法。通过看懂一个“点”的流程,再,修改代码看变动,以此验证想法,这是最好的一个方式,有反馈。而后是,就是扩展,了解这一“点”相关的“面”,最后,也是一个反馈,验证自己的理解。(费曼学习法:学习一个概念后,要尝试输出验证,根据结果判断理解是否正确,通过良好的反馈循环才可以逐渐修改你对知识的理解,快速达到正确的终点)

参考

  1. https://www.zhihu.com/question/38865497/answer/108214957
  2. https://blog.youkuaiyun.com/luoweifu/article/details/27250179
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值