程序员如何快速上手一个自己不太熟悉的新项目

在知乎上看到的,由作者Jim Jin(奔四老码农,只想做点有意义的事情)写的。

原文出处:http://www.zhihu.com/question/38865497/answer/78625125

作者:Jim Jin
链接:http://www.zhihu.com/question/38865497/answer/108163546
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

不知道你有没有经历过一个五年或者更长工作年限的开发人员半路加入团队的情况,可能第一两个星期他会问一些业务或者技术问题,不过一两个月他就可能在指导那些初级开发人员了。

什么原因呢?因为他已经从过往经验里面总结出来一些套路了。

那么套路是什么呢?

1. 绝大部分业务系统,不管他后端是oracle、mysql、nosql还是内存数据库,也不管他前端是web、h5、winform、android还是ios,它的核心功能都是由增删改查组成然后通过通信、运算和人机交互串起来的,系统的复杂度主要体现在系统规模、性能、稳定性、业务流程、通信等方面。(部分工具类、基础架构类系统可能不一样)

2. 绝大部份系统,不管是基于Java、.NET、C++还是Nodejs技术,都是遵循某种或几种设计模式分层进行开发的,最最常见的也就是MVC了。其他请参考一下设计模式教程。

那么怎么快速熟悉新的项目呢?同样也是套路。

1. 先搞清楚新的系统是搞什么的,就问简单几个问题,谁在用这个系统?用这个系统做什么?然后自己根据这些问题去文档找答案。

2. 弄清楚系统是怎么分层、分模块的,每层、每个模块都用到了什么技术和框架,之间是怎么通信的。有架构设计文档的话学习一下最好,没用过的技术先查查资料知道个大概。

3. 把开发环境搭起来,通过几个典型的功能弄清楚系统里面增删改查、通信、用户交互是怎么实现的。最简单的方法是根据系统的分层,先从前端到数据库把代码疏通一下,搞不清楚的话打开debug模式一步一步走一下。

4. 经过上面三个步骤基本上就可以改几个bug和照葫芦画瓢做个功能了。后面重点关注那些没用过的技术和组件:先搞清它的目的、背景、实现原理和功能列表,再照着文档做几个demo,平常工作时把它的文档建个快捷方式,随手查询学习一下。

5. 平常开发过程中如果遇到问题首先要相信:
1)绝大部分自己遇到的问题很多人已经遇到过并且解决了 。
2)绝大部分自己遇到的问题在当前系统里面已经有了答案。
3)绝大部分自己遇到的问题在你用的框架和组件里面都有现成的解决方案。

6. 对于规模比较大的系统或者系统集合,其实你平时工作接触到的也就是其中的一个系统或者模块,先把自己接触的部分搞定就行了。

7. 对于老系统,首先建议看一下我另外一个回答:在感觉项目代码的构架不行的时候,你们会怎么办? - Jim Jin 的回答
1)老系统其实满是宝藏,里面有很多你可以借鉴和学习的东西。
2)老系统也满是坑,一个看起来毫不悬念的代码改了以后可能会引发地震。
3)很多你看着不爽的代码其实都是有道理的。
4) 不要在老系统里面继续挖坑。
5)看不懂的代码不要动。
6)在你力所能及的范围内让老系统变的更美好。

上面这个套路应该符合百分之七八十的项目,题主可以试试看。

文章转载自:http://www.cnblogs.com/it-xcn/p/5763475.html

程序员如何快速上手一个自己不太熟悉的新项目相关推荐

  1. mysql怎样搞一个项目_程序员如何快速上手一个自己不太熟悉的新项目?有什么技巧?...

    不知道你有没有经历过一个五年或者更长工作年限的开发人员半路加入团队的情况,可能第一两个星期他会问一些业务或者技术问题,不过一两个月他就可能在指导那些初级开发人员了. 什么原因呢?因为他已经从过往经验里 ...

  2. *【思路】程序员怎么快速接手一个项目

    可能不管新手老手有些程序员,接手一个项目之后都会多少有些迷惘. 以下是本人总结出来的一点小心得,如果错误希望大家给我留言,一起讨论: 最重要的事儿 如果你总是看见代码多就发愁,看见代码脏乱差就诅咒埋怨 ...

  3. 程序员怎么快速接手一个项目-接手项目指南

    目录 维护项目 最重要的事儿 接手方法:不变应万变 维护实用技巧: 项目的常见套路 熟悉项目的套路 vue 项目 快速梳理大型vue项目整体架构技巧方法总结 快速熟悉内部组件模块技巧方法总结 提升工作 ...

  4. CSDN技术分享——程序员如何快速上手区块链底层技术?

    区块链,应该是这两年来最火的话题.相比去年年末到今年年初,其火热程度虽有所降低,但依旧会有很多人想了解,想探寻其中的奥秘. 令人尴尬的是,真正火起来的不是区块链技术本身,而是数字资产和相关炒作.你跟  ...

  5. 程序员怎么快速接手一个项目

    可能不管新手老手有些程序员,接手一个项目之后都会多少有些迷惘. 以下是本人总结出来的一点小心得,如果错误希望大家给我留言,一起讨论: 最重要的事儿 如果你总是看见代码多就发愁,看见代码脏乱差就诅咒埋怨 ...

  6. 如何快速的熟悉对接新项目,并快速融入开发

    最近项目组有几位大牛过来对接项目,对接时并没有聆听他们对接过程,所以对于这次博客起初想记录时是有些困难的,因为很陌生(对于小白的我来说).后来听对接的同事说,他们在对接时主要就分为两点. 1. 明确项 ...

  7. 【知乎】怎么成为一个优秀的程序员,而不是一个优秀的码农?

    怎么成为一个优秀的程序员,而不是一个优秀的码农? 9 条评论 分享 默认排序按时间排序 98 个回答 3844赞同反对,不会显示你的姓名 萧井陌 微信公众号:炼瓜研究所 技术社区 - 3844 人赞同 ...

  8. 程序员怎样学习python_一个开发十年的程序员论:学习Python最正确的步骤(0基础必备)...

    很多人都在问Python学习步骤应该如何安排?多长时间可以达到精通呢? Python学习步骤应该怎样安排: 首先,学习Python编程技术,自学或者参加培训学习都适用,每个人都有自己的学习方式和方法. ...

  9. 如何快速阅读java源码_程序员如何快速阅读源代码

    科学研究已经证明:人类进行传统阅读时,主要使用左脑的功能;而在采用速读方式阅读时,则充分调动了是左右脑的功能作用,各自发挥左右脑的优势共同进行文字信息的形象辨识.意义记忆和理解,所以速读又被称之为全脑 ...

最新文章

  1. ./ . 和#!/bin/bash 辨析Linux如何选择当前执行脚本的shell
  2. 两两交换链表中的节点Python解法
  3. 第2章 Python 数字图像处理(DIP) --数字图像基础3 - 图像内插 - 最近邻内插 - 双线性插值 - 双三次内插 - 图像放大
  4. c语言煎饼问题算法,C煎饼分类程序?
  5. 漫步微积分三十——定积分的性质
  6. 运营商数据治理实践-郭岳
  7. sql union 和 union all
  8. saefetchurl java_新浪云sae给的图片操作类
  9. python在数据分析方面的应用、下列说法正确_智慧树知到大数据分析的python基础答案...
  10. 发家致富:爬取双色球信息并统计
  11. U3D_Shader编程(第一篇:快速入门篇)
  12. 由验证控件引起的IE的超级爆笑BUG
  13. 转载-杭电老师的思考
  14. 004---css样式表(内部样式表、行内样式表、外部样式表)
  15. iOS应⽤签名原理浅析
  16. Semi-supervised semantic segmentation needs strong, varied perturbations
  17. python之turtle库学习(海龟图形)
  18. HTML字母加圈,终于找到了最详细系列之HTML字符实体
  19. 如何从VDS明网下载钱包
  20. 《国家宝藏》甘肃省博物馆专场:杜淳、黄轩演绎丝路传奇

热门文章

  1. ode45的常用和扩展用法
  2. matlab ode45使用,ODE45函数的使用——翻译
  3. bandizip没有右键菜单解决办法
  4. 电脑上温度符号℃摄氏度怎么打?
  5. ONF执行主席Dan Pitt:2014至2016 SDN 的市场化之路
  6. 处理txt文件下载下来以后,排版格式不对的问题
  7. android电商平台,基于Android的电商平台通用客户端的设计与实现
  8. Unity 优化Unity切换后台的问题
  9. iOS循环引用问题集合、内存泄漏、僵尸对象、代码静态分析
  10. 【转】如何连接两台电脑同时上网