作为刚刚走上工作岗位的fish,都要熟悉前辈们留下来的代码。这段时间是fish最痛苦的时间同时也是最轻松的时间。痛苦是因为要看大量的代码,同时要慢慢从学生到社会人士的转变(*—*,再不能睡懒觉了,不能逃课了)。轻松是因为这段时间没有项目压力,对刚刚接触的东西都比较好奇。就是在冰火两重天的折磨下我们开始了程序员人生之旅。

开始首先遇到的情况是:“哇,这么多代码,如何下手啊?从哪里下手呢”。呵呵,其实好的代码都有一个好的架构。由于咱是fish,就不多说架构方面的东西了,免得贻笑大方。还是说代码阅读方面的事。好的架构有什么作用呢?相信大家都听过庖丁解牛的典故吧,为什么说这个人能这么厉害呢。有两个条件,一个是,牛是进化了很多年的动物,它自身的架构就相当好。另一个是,这人已经干了很多年这件事情了,所以对牛的架构相当熟悉了解了。正因为他对牛的架构相当熟悉,所以他知道从哪个地方先去下手就能非常轻松的将牛解剖了。那对于我们阅读代码呢,肯定没有那么多时间去熟悉,我们唯一可以做的就是找准下手的地方。下手的地方总结一下,无非任何事物都有个源头,那程序的主程序就是我们要关心的了。在一个就是说一个管理完善的项目都有项目文档,很多结构图。这也是一个很好的出发点。从结构图和开发文档我们就能很好的知道程序有几大骨干,血脉。这样在看看程序的文件夹组织,相信一个程序的大体结构在你心中已经有个大致的地图了。

好了,地图有了,我们就可以走一条道了,这条道不要太长或者太弯曲。走一条相对简单的,这样我们可以很快的知道这个程序的编码风格和一些常用的算法思想,以及编码风格。当然你选的这条路一定要搞清楚了,多问问自己的同事。当然了这里有从在一个和别人交流以及问问题的技巧,在问别人的时候一定要先想想,然后告诉别人你的想法。这样人家才能感觉出你的诚心,以及指出你的错误。不要一有问题,就去问人家,这样是很不理智的。当然了对于很细节的问题,实在不明白就不要问了,大概知道原理和使用方法就行了。这样我相信你会很快的熟悉了程序的结构和运行原理。

自然经过一段时间,公司会给你一些小的任务让你去练手,这个时候可能你刚接手后比较迷茫。这时候就要仔细看看需求档案,到底是要做什么。然后看看程序里有没有以前做过类似的流程,有的话自然很好了,就仔细看看以前是如何实现类似的流程。这里又涉及一个事就是,在看的时候一定手头要有个本子,把不用白的,以及有用的函数记住。为什么呢,因为项目文件成千上万,记住的话你用搜索的方法很快就能定位回来。对相似的流程熟悉后,大概有个思路后,在画画流程图在本本上。有的人可能说自己有记事本完全可以计啊,但是记事本能随便画图吗,你屏幕能大到和程序放在一个屏幕里吗?所以不要偷懒。流程图画好之后就可以写代码了,当然了别忘了编码规范。

在说点题外话,在我们学习程序的过程中,还有一件特别重要的事就是学习同事的一些技巧。看看他们是如何分析问题的,如何解决问题的。以及他们的一些调试技巧,还有对快捷键的使用。说实话对快捷键还有调试工具的灵活使用能使你无论是调试代码还是写新代码起到事半功倍的效果。由于我用vs2008,我就感觉p4,还有VassistX特别方便。

最后总结一下. 首先是阅读代码,

1、阅读项目文档,阅读程序框架流程图。

2、要找准穴位,一是找主程序,二是看程序里的文件夹组织方式,三是找一条程序流程,自己过一遍。

3、对于基础比较差的同学可以把程序里某个实现方法自己写小程序练一练,加强基础知识。

4、仔细阅读公司的代码规范,以及一些常用工具的使用方法,学习一些快捷键的使用方法。

5、学习同事解决问题的思路和方法,这都是宝贵的经验。

再说说修改代码,

1、时刻在自己的本本上多记点线索,相信大多数人不是天才。

2、拿到任务后先仔细阅读需求文档,明白需求了才可以制定计划。

3、查找是否有现成的写好的比较像的流程。然后学习,模仿。

4、画个大致的流程图,假如要是和别人代码关联就去找他交流一下,看看和自己理解的流程有没有出入。

5、开始修改代码或者写新的。注意代码规范和好的注释。

今天先写到这里,其实还有很多的查找的技巧和方法,大家自己多总结吧,这估计就是传说中的经验。

转载于:https://www.cnblogs.com/fengju/archive/2010/09/04/6174368.html

阅读代码和修改别人代码的一些技巧以及注意事项相关推荐

  1. 关于修改别人代码的小技巧

    不要瞎看,一定要弄懂原理,多找参考 https://learnopengl-cn.github.io/01%20Getting%20started/07%20Transformations/#_18 ...

  2. WPS 代码域 修改默认代码域 使目录页码样式和页脚样式不同。

    需求:有需要不同样式的情况,所以针对这样去更改. 目录 切换代码域 替换页码格式 大小写域开关 数字格式开关 字符格式和以前用的格式 再次切换代码域 避免整个目录更新 切换代码域 在Windows中, ...

  3. Ubuntu下VSCode C++代码字体修改及代码格式化设置

    1.字体的修改 Linux 上的 VSCode 写起代码来总让人觉得莫名烦躁,而 Windows 上面的 VSCode 就赏心悦目很多,想了很久之后终于发现是默认字体的问题.Windows 上面的 V ...

  4. 一篇文章教会你拉取别人的GitHub代码,修改后提交成为贡献者!!!

    文章目录 一.需求 二.Fork 别人的仓库 三.修改代码 四.提交贡献 五.成为贡献者 一.需求 想要拉取别人的 GitHub 代码,然后修改部分,提交 如果GitHub作者认同,则自己会成为贡献者 ...

  5. V-SLAM重读(3):SVO代码阅读和调试修改

    在本文内容开始之前,看一段调试之后的SVO测试gif(gif图刚开始学会做,大家将就着看一下--) 个人经验(仅供参考): 在阅读一个大型库源代码的时候,遵循以下步骤: (1). 第一步看CMakeL ...

  6. GitHub怎样fork别人代码到自己仓库并进行贡献

    在过程中可能遇到这个问题:https://www.cnblogs.com/q1104460935/p/8275833.html 这个博客应该可以解决 比如说现在有一个很牛逼的项目,我们进入项目地址, ...

  7. 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案...

    为什么80%的码农都做不了架构师?>>>    版权声明:本文由本人撰写并发表于2012年9月份的<程序员>杂志,原文题目<一种支持自由规划的Sharding扩容方 ...

  8. java web源代码_检测Java Web应用程序而无需修改其源代码

    java web源代码 与其他系统进行交互时,大多数Java Web应用程序都使用标准Java接口. 诸如Web页面或REST服务器之类的基于HTTP的服务是使用接口javax.servlet.Ser ...

  9. JavaParser生成,分析和修改Java代码

    作为开发人员,我们经常鄙视手动进行重复工作的人员. 我们认为, 他们应该实现这一目标 . 尽管如此,我们还是进行与编码有关的所有活动. 当然,我们使用的高级IDE可以为我们执行一些重构,但这基本上就是 ...

最新文章

  1. mysql主从整套方案_Mysql主从方案
  2. Optional java 用法_Java8 Optional 的正确使用方式
  3. Android Fragment中ListView的OnItemClickListener无效
  4. 【Android 热修复】热修复原理 ( Dex 文件拷贝后续操作 | 外部存储空间权限申请 | 执行效果验证 | 源码资源 )
  5. 大学计算机专业挂科人多吗,这几个专业真的是太难了,挂科率年年都是新高,很多人都后悔了...
  6. 表、数据的增删改查(所有列、指定列、添加常量、字段起别名、和并列、去除重复、条件查询、比较、判断空、模糊查询)...
  7. python 写文件 编码_Python文件写入时的编码问题解决
  8. 蓝牙AVRCP协议分析
  9. Vue 实现数组四级联动
  10. 华为2019实习生机试题1
  11. 没落的移动端原生开发
  12. 新团队团队融合研讨会_新的网络研讨会:如何避免持续交付的隐性成本
  13. 1419D2 Sage‘s Birthday
  14. 这些微信头像,你敢换吗?
  15. 线上发版如何做到分批发的?详解蓝绿部署,滚动升级,A/B 测试,灰度发布/金丝雀发布
  16. python3.x程序设计基础周元哲答案_周元哲
  17. 人工智能和新能源行业有哪些
  18. 腾讯WiFi码推广,扫码连WiFi小程序代理入驻后如何推广使用教程!
  19. 餐厅点餐系统需求分析
  20. 知识竞赛策划书,这样写就全面了

热门文章

  1. 内链优化对于网站有哪些作用?
  2. 网站改版都要注重哪些因素?
  3. python数据分析numpy_利用python进行数据分析-NumPy高级应用
  4. spark scala word2vec 和多层分类感知器在情感分析中的实际应用
  5. windows 同时安装 python2 python3
  6. laravel5.6 数据库获取数据模式变为’数组‘
  7. 十大经典算法排序总结对比
  8. web3.js(二)根据私钥推出地址查询以太数量
  9. 独热编码(One-Hot)的理解
  10. 11.28 软件工程概论psp