怎么熟悉项目

不管你想不想,工作中都会看同事的代码。一般需要看别人的代码有三种情况,一是你和同事同做一个项目,二是你新接手一个已经开发到一半的半成品,最后一种情况是公司纯粹让你学习用,给你一个完整的项目。下面针对三种情况分别说一下怎么看代码。
1.和同事同做一个项目
因为是你们一起开发的项目,你对项目结构,和项目逻辑一定非常清楚,此时大多数情况是看业务逻辑,这时候你需要关注的是代码所在类的变量代表意思(包括全局和局部),然后就是先问清楚需要看的代码所要完成的需求或者叫功能点,最后才是认真研究同事的代码块是否能满足需求的。有两种你可能会看这类代码,一是代码出现bug,二是你的工作同事帮你做了。如果是代码中已经明确有bug了,就要重点关注业务算法本身会不会存在问题,然后是观察中程序中变量值的变化是否和预期一样,可以采取调试的办法来完成测验。如果仅仅是观摩学习的,那就要认真学习程序实现业务逻辑所使用的算法和技巧。技巧有时候也很有用,一般技巧不能改变程序的逻辑结果,但是能让程序更已读,更易被维护。比如我们常常使用return和if条件判断,先将错误情况排除了再来具体写业务逻辑。
2.接手半成品
当你接手此项目时,熟悉项目的同事还在公司,那么此时对于你来说是幸运的。因为你接手半成品大概率之前的同事离职或者调往其他项目组了。总之就是你得自己接手了。刚刚说了如果同事还在公司你是幸运得,要求你的领导或者同事做好项目交接。不然你就是无头苍蝇自己摸索了。交接项目越详细越好,包括项目需求,项目开发文档,项目资源清单以及项目源代码。
3.学习使用
对于学习使用的项目,对你来说是非常重要的。因为这个项目很可能是公司其他项目都在使用的框架。这时你应该首先弄懂项目的框架结构,然后就是尽快适应公司其他同事的编码习惯。这对于你后期开展工作是非常重要的。切不可一来就花大精力去读代码的逻辑实现部分,因为这个项目不需要你来维护,至少暂时不需要你来维护。当然你也需要知道此项目的运行平台等。前面你可以通过读项目学习其他同事的编码习惯,另一方面也可能体现公司要求的编程规范。大多数会有自己的编码规范,但也有一些公司没有或者要求不严格。但是严格按照代码规范写代码,又对后期维护代码有非常重要的作用。所以你刚到公司时最好问一下公司有没有代码规范。如果自己的公司会采用华为的或者阿里等大厂的规范。如果有就按照公司的来。
通过前面的介绍可以知道不论哪种情况,项目框架是非常重要的,所以建议公司还是要有相应的技术文档。

程序员入门消遣看看(四)相关推荐

  1. 程序员入门消遣看看(一)

    难熬的"我不合适" 几乎所有的新人程序员在入职1-3个月内,都会感觉自己不适合做这一行.每天都会觉得"太难了",脑袋瓜嗡嗡的.听得最多的话就是"这都不 ...

  2. 程序员入门消遣看看(二)

    关于语言的选择 还在学校上课的同学们,大学的时间是多么的宽裕.学点什么吧,既然我们已经想好了要去做一名程序员,我们是计算机专业的学生,做一名程序员确实也是对口就业.既然时间充裕那就先自学一段时间吧.毕 ...

  3. 匹配正则_程序员入门基础:python正则表达式贪婪匹配和非贪婪匹配

    此文为python正则表达式的高阶入门,正则基础入门请参考程序员入门基础:python的正则表达式. 一.贪婪匹配和非贪婪匹配 举例说明概念: print('非贪婪匹配',re.search('el+ ...

  4. java程序员入门先学什么开发者工具

    学习java编程语言,那么开发工具是肯定少不了的,程序员入门基础中开发工具是一定要学会的,可以帮助开发者们提高开发效率.更优雅的写代码.由于开发者涉及的技术领域众多,以后端开发者的视角盘点平时可能用得 ...

  5. 军营中重重打击之后,我变了一个人(下)--我成为程序员所经历的(四)

    乱搞男女关系被整,该享福了却当文书 老兵退伍之后连队里冷冷清清的,不见了平时搞怪的老兵,连队顿时变得死气沉沉,我还是拿出电脑报合订本接着看,百无聊赖之际偷着喝点小酒,日子就这么一天一天的过.直到200 ...

  6. 军营中重重打击之后,我变了一个人(上)--我成为程序员所经历的(四)

    无助的时候只能靠自己,幸好我是公务员<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&q ...

  7. 黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入

    ------- android培训.java培训.期待与您交流! ---------- 黑马程序员-----集合框架类(四) 高级for循环.方法的可变参数及静态导入 1.1 高级for循环(示例1) ...

  8. 军营中重重打击之后,我变了一个人(中)--我成为程序员所经历的(四)

    所有的梦都破了从绝望中走出 进了警卫连又是一次分班,这回我被分在二排3班,进了班第一件事就是拆背包(我们的被子和褥子在新兵营已经打好背包了),不敢怠慢,因为整个班里弥漫着一股说不出的气氛,刚把被褥铺好 ...

  9. 程序员转行算法工程师-四个月总结

    程序员转行算法工程师-四个月总结 前言 学习感受 年后计划 我的想法 前言 经过四个半月的学习,培训的理论学习已经完成,年后将开始实战课程学习,总结一下现在的感受和以后的规划吧,这是一篇处于迷茫时期的 ...

最新文章

  1. 2021年春季学期-信号与系统-第六次作业参考答案-第八小题
  2. Windows Server 2012 R2配置ISCSI磁盘共享盘(4)
  3. 【以太坊】Ethereum交易过程及ethereumjs-tx的应用
  4. jeecms系统_自定义对象流程
  5. SpringMvc自动代理
  6. Disjoint Set
  7. c语言程序设计修改题,2006年秋季C语言程序设计》期末考试题A卷答案答案--修改后.doc...
  8. 苹果手机html查看器在哪,web前端案例-苹果手机图片查看器
  9. oracle11g增加备库,oracle11g dataguard物理备库搭建(关闭主库cp数据文件到备库)
  10. (android之sqlite三)单机Sqlite数据库
  11. Qt5下载与安装(Windows版)
  12. spfa算法的python实现
  13. ArcGIS 对起伏度、坡度和道路等及进行重分类处理
  14. 浅谈微信小程序开发工具
  15. 龙芯pmon启动流程概述
  16. 呕心推荐深入浅出区块链技术,系统学习区块链技术网站-登链社区
  17. SQL中常用的字符串LEFT函数和RIGHT函数详解
  18. scipy 概率 泊松分布_概率论中常见分布总结以及python的scipy库使用
  19. margin: 0 auto;的作用
  20. 冯 诺依曼与冯 诺依曼计算机,性能之殇(一)-- 天才冯·诺依曼与冯·诺依曼瓶颈...

热门文章

  1. centos7安装与配置OpenStack-Zun组件(Stein版)
  2. matlab程序设计实例——语音识别
  3. IO多路复用(select)
  4. 【AI笔记】刘成林讲座-人工智能发展趋势
  5. 在医疗保健中使用GIS技术有哪些好处
  6. Java 堆内存和栈内存
  7. Git创建秘钥时提示:too many arguments解决
  8. python循环暂停与重启_暂停python中的循环
  9. opengl蒙皮实现
  10. Navmesh研究(二)体素化过程