读懂开源代码太重要啦!!!但没有谁能像天才一样直接写出一个框架,很多人写框架其实都是从模仿开始的。而要模仿,又得看得懂框架源码才行。真是无限循环的难题。读懂可以四步走

搜索网上资料

阅读一个框架的源码,最基础的操作肯定是扫一遍网上的各种分析文章。通过这个操作,你可以对这个框架有个大致的了解。站在巨人的肩膀上,少走许多弯路。但如果你看的项目是公司内部的框架,那么你只能找公司内部的文档了,更甚者,有些连文档都没有。那么你可以略过这一步。

扫一遍源码

当你拿到框架的源码的时候,你可以大致把源码的每个包,以及每个包下面的文件扫读一遍。扫读并不需要你弄清楚每一行代码的意思,只需要让你知道源码每一部分的作用。

如果一个开源框架足够标准,那么他的命名是非常语义化的。所以我们扫读的时候,通过包名、文件名就可以判断出这个包是用来干嘛的。例如 util 包是工具类,那我们可以直接跳过。vo 包是存放实体模型的,同样可以跳过。protocol 包是存放协议相关的等等。通过这么一个步骤,你会对整个项目有一个基本的印象,知道这个项目大概有哪些东西,哪些相对比较重要。

找到入口

通过扫读源码,应该能够发现一些入口的迹象,例如对于 Dubbo 来说,你会发现它有一个名为 dubbo-demo 的子模块,那么我们肯定重点看它。进一步发掘需求你会发现它的入口就是 dubbo-demo 中的 Provider 类、Consumer 类。我们可以直接接运行这两个类的 main 方法,并一步步跟踪代码的执行情况。

通读源码

找到入口之后,下一步就是通读所有源码了,就是把源码的每个文件每一行都看一遍。在这个阶段不求完全弄懂细致的业务逻辑,但是要形成一个大概的框架,知道这个框架是如何设计的,有哪些大致的模块,这些模块是如何设计的。

在通读源码这个阶段是最枯燥无味的,也是最容易放弃的。一方面因为源码实在过于多,另一方面因为没有一个目标,所以看着看着心里没有底,所以容易放弃。

作者:陈树义

推荐看的一些源码库

搞深度学习,除了纯粹的研究岗,不论是深度学习研究员还是深度学习算法工程师,或者是深度学习框架工程师、高性能计算工程师...一些源码总是要看的。

平常用的Pytorch、Caffe、TensorFlow、Paddle、TVM,这些都是开源的。不论公司还是个人都在用,很好用也很强大,大佬们也会经常魔改。

最后也分析一些深入学习的基础,python相关免费教程。

经典的深度学习框架TensorFlow的使用,IO操作,以及神经网络基础、卷积神经网络的相关知识,并用卷积神经网络原理搭建、设计自己的网络,实现对验证码图片内容的识别。可以用最简单方式轻松掌握TensorFlow深度学习框架

python热门爆款
零基础入门:

Python小白基础入门教程 Python入门到精通教程
零基础必备:全套Python教程_Python基础入门视频教程,零基础小白自学Python必备教程

python基础进阶:Python深入浅出进阶教程【敢信?】收藏=点赞十倍
Python实战Djongo项目:python企业级开发项目-手把手从0到1开发《美多商城》
mysql数据库:MySQL全套教程,MySQL从基础到黑马订单案例实战
机器学习算法:3天快速入门python机器学习
聚类算法:360°解读机器学习经典算法——聚类算法
数据挖掘:黑马程序员Python教程,4天快速入门Python数据挖掘,系统精讲+实战案例
Web服务器:Python高级语法进阶教程_python多任务及网络编程,从零搭建网站全套教程
180分钟爬虫入门:180分钟轻松获取疫情数据,Python爬虫入门课
Scrapy框架:Python爬虫基础,快速入门Scrapy爬虫框架
多线程:python多线程编程

人工智能入门:智能机器人软件开发教程基础,从helloworld到神经网络
人工智能深度学习:智能机器人软件开发教程基础,从helloworld到神经网络
图像与视觉处理:人工智能教程|零基础学习计算机视觉快速入门

搞深度学习如何快速读懂开源代码?相关推荐

  1. 如何快速读懂开源代码?

    文章目录 **RUN起来** **调试** **把控关键数据结构和函数** **从小的开始** **关注一个模块** **工具** **一.阅读开源代码存在的一些误区** 二.阅读代码的心态 **三. ...

  2. AI实战:基于深度学习的空气质量预测模型开源代码汇总

    基于深度学习的空气质量预测模型开源代码汇总 一.传统机理空气质量模型 空气质量模型是基于人类对大气物理和化学过程科学认识的基础上,运用气象学原理及数学方法,从水平和垂直方向在大尺度范围内对空气质量进行 ...

  3. 快速读懂UML类图,搞懂类之间的6大关系,轻松绘制UML类图

    快速读懂UML类图,搞懂类之间的6大关系,轻松绘制UML类图 前言 一.UML类图简介 二.类之间的六大关系及UML类图 1.依赖关系及UML类图表示 2.泛化关系及UML类图表示 3.实现关系及UM ...

  4. 如何快速读懂别人的项目

    作为入行未深的初级程序员,因为工作需要接手了别人的项目做优化,才发现已入苦海,因为可能原作者比较清楚程序的架构以及每行代码的含义所以很多地方没有进行注释.程序中一些变量以及定义都是使用的缩写,所以弄懂 ...

  5. 深度学习工程应用快速入门

    课程介绍 伴随人工智能时代的到来,深度学习技术也发挥着越来越重要作用,越来越多的技术人才开始投身入这一行业中,并希望发展成为一名深度学习算法工程师.然而,在实际的工程设计中,深度学习研发者总会面临着各 ...

  6. 网络编程懒人入门(十二):快速读懂Http/3协议,一篇就够!

    本文中文译文由作者"ably.io"发布于公众号"高可用架构",译文原题:<深入解读HTTP3的原理及应用>.英文原题:<HTTP/3 dee ...

  7. 搞深度学习需掌握的基础数学知识

    转载请注明出处:乐投网-搞深度学习需掌握的基础数学知识 IT 互联网行业有个有趣现象,玩资本的人.玩产品的人.玩技术的人都能很好的在这个行业找到自己的位置并取得成功,而且可以只懂其中一样,不需要懂其余 ...

  8. 深度学习小白如何看懂神经网络模型/图?

    深度学习小白如何看懂神经网络模型/图? 神经网络的图还是比较容易看懂的,比电路图什么的要好懂多了.只是刚开始接触有些不习惯罢了,多看一些就好了. 下面举几张神经网络图作为例子(由简单到复杂). 简单的 ...

  9. 研一一整年都在搞深度学习,研二醒悟打算转开发

    作者:阿秀 阿秀的学习笔记:https://interviewguide.cn 你好,我是阿秀. 最近阿秀组建了自己的学习圈子,其实圈子里以前只有我一个人的,每天适当充电.看看书或者看一些教学视频,也 ...

  10. 网络编程之一泡尿的时间,快速读懂QUIC协议

    网络编程之一泡尿的时间,快速读懂QUIC协议 TCP协议到底怎么了? QUIC协议登场 QUIC协议的目标 QUIC协议这么好,可以大规模切换为QUIC吗? QUIC协议实践 我想试试QUIC协议,可 ...

最新文章

  1. 再见,Navicat!同事安利的这个IDEA的兄弟,真香!
  2. 恕我直言,牛逼哄哄的MongoDB你可能只会30%
  3. 计算机领域经典巨著TAOCP卷3上市!【含赠书】
  4. iOS swift2.3 迁移到3.0 遇到的一些问题
  5. Nginx使用服务信号升级
  6. javafx基础教程_JavaFX教程–基础
  7. python是开源语言吗c,属于新十年的开发语言:Go语言可能很快会取代Python
  8. 接口测试--测试工具apipost脚本大全
  9. 字段合并_报表数据合并困难?找VBA!数据不标准字段缺失如何合并?找VBA
  10. 【Notepad】Notepad++常用快捷键总结
  11. Zookeeper - zookeeper安装与配置
  12. SW转发与MAC地址表
  13. oracle物理结构视频教学,详解Oracle物理结构
  14. matlab单回路控制系统设计,实验二单回路控制系统的建模与仿真 .doc
  15. J2Cache以RabbitMQ作为消息通知配置
  16. Z国的货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小Y使用1024元的纸币购买了一件价值为N的商品,请问最少他会收到多少硬币?
  17. Windows 使用 ssh 命令行 通过密钥连接到 云服务器
  18. Android开发基础规范(二)
  19. SeekBar实现实现进度提示随thum移动,自定义View
  20. Algorithms for Detecting Significantly Mutated Pathways in Cancer

热门文章

  1. Redhat Linux系列(Fedora,CentOS,Redhat enterprise)中一些常用软件
  2. vb mysql 实例_VB与数据库的交互经典例子总结
  3. Thea For SketchUp破解版|Thea For SketchUp v2.1.909.1853中文破解版下载(附安装教程)
  4. VS2015开发工具里面没有Arial字体怎么办?VS如何添加字体
  5. php网站开发实例教程源码,PHP+MYSQL网站开发全程实例
  6. 安卓玩java模拟器_安卓系统智能手机玩JAVA游戏!JAVA模拟器让你痛快地玩!
  7. Skype的故事:几乎所有风投都想投 犯罪分子洗钱必备
  8. WAP PUSH解析(1)——SMS PDU编码
  9. Python 每日一题(计算数值和)
  10. 设置SQL Server 2008 以允许远程连接