程序员在工作过程中,会遇到很多需要阅读源码的场景,比如技术预研、选择技术框架、接手以前的项目、review他人的代码、维护老产品等等。可以说,阅读源代码是程序员的基本功,这项基本功是否扎实,会在很大程度上影响一个程序员在技术上的成长速度。
2014年的时候《Qt on Android核心编程》和《Qt Quick核心编程》时作者在编写时,很多内容都是通过分析Qt源码搞明白的。这阵子研究CEF和PPAPI,也主要靠研究源代码来搞明白用法。最近工作上要修改已有项目的一个子系统,也是得硬着头皮先读懂代码。
总之在开发工作这十来年中,读过太多源码了,从源代码中学习到太多东西了,如果不阅读源代码,真不知道自己能否成长起来。
写代码是从模仿开始的,提高也是从观摩别人的优秀设计和代码开始的。所以阅读源码至关重要,接下来咱从下列方面聊聊阅读源码的事儿。
分类:
其他好文 时间:
2020-05-27 23:11:49
阅读次数:
94
壹 ? 引 又到了每日一道算法题的环节,今天做的题同样非常简单,题目来源leetcode27. 移除元素,题目描述如下: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 ...
分类:
Web程序 时间:
2020-05-27 23:11:25
阅读次数:
93
一、模块、包1.模块:一个包含所有你定义的函数和变量的文件,其后缀名是.py,一个.py文件就是一个模块模块实质上就是一个python文件。它是用来组织代码的,意思就是把python代码写到里面,文件名就是模块的名称,test.pytest就是模块的名称随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本
分类:
编程语言 时间:
2020-05-27 23:11:05
阅读次数:
137
想修改nginx的默认网站目录,百度了一大圈都没找到满意的 通过宝塔安装的nginx,进入配置文件目录:/www/server/nginx/conf/ 修改nginx.conf,找到http,server,加入: server { listen 80; server_name localhost; ...
分类:
Web程序 时间:
2020-05-27 22:07:34
阅读次数:
242
SA-N26接口和EPS fallback 1 什么是N26接口 如下图,N26(23.501)接口为4G核心网和5G核心网之间的接口,即MME和AMF的接口,用于4G和5G的互操作 2 SA(5GC)模式下进行IMS语音的方法 在23501中描述:对于SA组网下注册在5GC下的UE获得IMS语音服 ...
分类:
其他好文 时间:
2020-05-27 22:07:10
阅读次数:
774
引用变量概念 在PHP中引用意味着用不同的名字访问同一个变量内容 定义方式 &符号来定义引用变量 工作原理 <?php $a = range(1,1000);//定义一个a变量 $b = $a;//定义一个变量b,将a的值赋值给b.此时b不会单独开辟空间,a、b指向统一内存空间 $a = range ...
分类:
Web程序 时间:
2020-05-27 22:06:52
阅读次数:
85
cnpm install -g @tarojs/cli 全局安装完taro之后应该直接就可以使用taro了,但是在docker容器里安装taro之后执行taro bash: taro: command not found # 在网上查分别npm cache verify和cnpm cache ver ...
分类:
其他好文 时间:
2020-05-27 22:06:20
阅读次数:
278
AR1配置 ospf 1 router-id 1.1.1.1 area 0.0.0.1 network 10.1.12.0 0.0.0.255 AR2配置 ospf 1 router-id 2.2.2.2 area 0.0.0.0 network 10.1.23.0 0.0.0.255 area 0 ...
分类:
其他好文 时间:
2020-05-27 22:06:04
阅读次数:
145
原题:hdu1312 B: 不要停下来啊 题目描述 丁丁妹因为上山挖大头菜而误打误撞进入了一处古代遗迹,古代遗迹是一个n×m n × m 的迷宫,丁丁妹所处的位置用'@'标出,'.'表示道路,'#'表示墙壁。为了逃出迷宫,丁丁妹想知道她最长能在迷宫中走多少格。我们的目的地根本不重要,只要继续前行就好 ...
分类:
其他好文 时间:
2020-05-27 22:05:46
阅读次数:
101
条件: if condition1: statement1 elif condition2: statement2 ...... else conditionN: statementN 判断条件的省略用法: string 空字符串为False, 非空字符串解析为True int 0解析为False, ...
分类:
其他好文 时间:
2020-05-27 22:05:32
阅读次数:
86
空间分析是综合分析空间数据的技术的通称。矢量数据的空间分析是GIS空间分析的主要内容之一。 ArcGIS矢量数据的空间分析主要是基于点、线和面三种基本形式。在ArcGIS中,矢量数据的空间分析主要是缓冲区分析、叠置分析和网络分析等。 一、缓冲区分析 缓冲区是为了识别某一地理实体对其周围地物的影响度, ...
分类:
其他好文 时间:
2020-05-27 22:05:19
阅读次数:
105
1.读取 def read_dataset(): file_path = r'C:\Users\D。\SMSSpamCollection' sms = open(file_path, encoding='utf-8') sms_data = [] sms_label = [] csv_reader ...
分类:
其他好文 时间:
2020-05-27 22:04:37
阅读次数:
97
使用word插入加密无法编辑的对象 觉得有用的话,欢迎一起讨论相互学习~ 今天遇到一个比较棘手的问题,填写一个文件需要在其中夹入另一个文件,但是需要加入的文件是 加密的 ,因此不能使用普通的复制粘贴的方法。 此时可以用到word中插入对象的方法。 插入-->文本-->对象-->由文件创建 就可以啦! ...
分类:
其他好文 时间:
2020-05-27 22:04:07
阅读次数:
132
字符串内容不能更改,可包含byte值0,len()获取的是字节数量, s[i]返回第i个字节的值,类型是uint8,&s[i] 是非法的 s:=s1+s2 会创建一个新的字符串 t:=s[3:8] 不会创建一个新的字符串 //应该是创建了新的直接部分,而引用相同的底层数据 待验证 源码 for i, ...
分类:
编程语言 时间:
2020-05-27 22:03:35
阅读次数:
101
创建序列代码如下: --创建序列 create sequence s_person--指定序列名 start with 1;--指定开始大小 查询序列代码如下: --查询序列 select s_person.nextval from dual;--查询下一个值 select s_person.cur ...
分类:
数据库 时间:
2020-05-27 22:03:03
阅读次数:
104
1 ''' 2 消消乐游戏 3 描述:消消乐游戏规则如下:有很多不同颜色的方块,如果在同一条直线上,相同颜色的方块达到一定数量N,则这N个相同颜色的方块被消除(即使大于N个也只消除N个)。剩下的方块将按照顺序向中心集中,集中后如相同颜色的方块数量达到N,继续消除。现以不同的小写英文字母代替不同颜色, ...
分类:
其他好文 时间:
2020-05-27 22:02:45
阅读次数:
268
Spring源码分析-SpringAop什么时候调用jdk动态代理?什么时候调用cglib SPRING AOP中JDK和CGLIB动态代理哪个更快? ...
分类:
其他好文 时间:
2020-05-27 22:02:29
阅读次数:
75