




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Go语言精进之路:从新手到高手的编程思想、方法和技巧2读书笔记模板01思维导图读书笔记目录分析内容摘要精彩摘录作者介绍目录0305020406思维导图高手思想代码实践方法编程思维高质量第条原理测试使用工作代码模式性能反射类型标准关键字分析思维导图内容摘要内容摘要Go入门容易,精进难,如何才能像Go开发团队那样写出符合Go思维和语言惯例的高质量代码呢?本书将从编程思维和实践技巧2个维度给出答案,帮助你在Go进阶的路上事半功倍。编程思维层面:只有真正领悟了一门语言的设计哲学和编程思维,并能将之用于实践,才算精通了这门语言。本书从Go语言设计者的视角对Go背后的设计哲学和编程思想进行了梳理和分析,指引读者体会那些看似随意实则经过深思熟虑的设计背后的秘密。实践技巧层面:实践技巧源于对Go开发团队和Go社区开发的高质量代码的阅读、挖掘和归纳,从项目结构、代码风格、语法及其实现、接口、并发、同步、错误与异常处理、测试与调试、性能优化、标准库、第三方库、工具链、最佳实践、工程实践等多个方面给出了改善Go代码质量、写出符合Go思维和惯例的代码的有效实践。学完这本书,你将拥有和Go专家一样的编程思维,写出符合Go惯例和风格的高质量代码,从众多Go初学者中脱颖而出,快速实现从Go新手到专家的转变!读书笔记读书笔记推荐阅读,对测试,标准库,工具链等做了介绍,和上一部一样,是进阶的好读物。介绍了很多实用工具,包括测试、debug、govet、rename等,对生产力有质的提升。看了第一本,再来看第二本,循序渐进,将知识串起来,不错,值得推荐!。可以选择粗读,对其中的概念与方法有一个了解。这本适合快手通读一遍,遇到问题来再来翻翻。正如本书反复强调的,go是自带“电池”的语言,还自带很多方便的工具,太善待开发者了。非常推荐,需要注意的是版本比较早没有泛型和context包的最佳实践和分析。介绍了很多有用的工具和技巧,都是实实在在的经验。提前点评一下,虽然没看这本2,但是1看了不少了.书中内容涉及GO的方方面面,通俗易懂的讲解了Go的各种内部实现原理,相信看完这两本书,下一步可以向源码迈步了.。第二本相比第一本来说,更多介绍Go的测试、外围工具,有一些是非常实用的技巧,比如调试,性能测试,基本上要用好Go都是必须的实战要求。精彩摘录精彩摘录与包内测试本质是面向实现的白盒测试不同,包外测试的本质是一种面向接口的黑盒测试Go语言规定:Go工具链将忽略名为testdata的目录。这样开发者在编写测试时,就可以在名为testdata的目录下存放和管理测试代码依赖的数据文件unsafe.Pointer和其他常规类型指针一样,可以作为对象引用。如果一个对象仍然被某个unsafe.Pointer变量引用着,那么该对象是不会被垃圾回收的。但是uintptr并不是指针,它仅仅是一个整型值,即便它存储的是某个对象的内存地址,它也不会被算作对该对象的引用。如果认为将对象地址存储在一个uintptr变量中,该对象就不会被垃圾回收器回收,那就是对uintptr的最大误解。包内测试这种方法本质上是一种白盒测试方法。由于测试代码与被测包源码在同一包名下,测试代码可以访问该包下的所有符号,无论是导出符号还是未导出符号;并且由于包的内部实现逻辑对测试代码是透明的,包内测试可以更为直接地构造测试数据和实施测试逻辑,可以很容易地达到较高的测试覆盖率。因此对于追求高测试覆盖率的项目而言,包内测试是不二之选。目录分析第40条理解包内测试与包外测试的差别第42条优先编写表驱动的测试第41条有层次地组织测试代码第八部分测试、性能剖析与调试第43条使用testdata管理测试依赖的外部数据文件第44条正确运用fake、stub和mock等辅助单元测试第45条使用模糊测试让潜在bug无处遁形第46条为被测对象建立性能基准第八部分测试、性能剖析与调试第47条使用pprof对程序进行性能剖析第49条使用Delve调试Go代码第48条使用expvar输出度量数据,辅助定位性能瓶颈点第八部分测试、性能剖析与调试第40条理解包内测试与包外测试的差别40.1官方文档的“自相矛盾”40.2包内测试与包外测试第41条有层次地组织测试代码41.1经典模式——平铺41.2xUnit家族模式41.3测试固件第42条优先编写表驱动的测试42.1Go测试代码的一般逻辑42.2表驱动的测试实践42.3表驱动测试的优点42.4表驱动测试实践中的注意事项第43条使用testdata管理测试依赖的外部数据文件43.1testdata目录43.2golden文件惯用法第44条正确运用fake、stub和mock等辅助单元测试44.1fake:真实组件或服务的简化实现版替身44.2stub:对返回结果有一定预设控制能力的替身44.3mock:专用于行为观察和验证的替身第45条使用模糊测试让潜在bug无处遁形45.1模糊测试在挖掘Go代码的潜在bug中的作用45.2go-fuzz的初步工作原理45.3go-fuzz使用方法45.4使用go-fuzz建立模糊测试的示例45.5让模糊测试成为“一等公民”第46条为被测对象建立性能基准46.1性能基准测试在Go语言中是“一等公民”46.2顺序执行和并行执行的性能基准测试46.3使用性能基准比较工具46.4排除额外干扰,让基准测试更精确第47条使用pprof对程序进行性能剖析47.1pprof的工作原理47.2使用pprof进行性能剖析的实例第48条使用expvar输出度量数据,辅助定位性能瓶颈点48.1expvar包的工作原理48.2自定义应用通过expvar输出的度量数据48.3输出数据的展示第49条使用Delve调试Go代码49.1关于调试,你首先应该知道的几件事49.2Go调试工具的选择49.3Delve调试基础、原理与架构49.4并发、Coredump文件与挂接进程调试第50条理解GoTCPSocket网络编程模型第52条掌握字符集的原理和字符编码方案间的转换第51条使用net/**包实现安全通信第九部分标准库、反射与cgo第53条掌握使用time包的正确方式第54条不要忽略对系统信号的处理第55条使用crypto下的密码学包构建安全应用第56条掌握bytes包和strings包的基本操作第57条理解标准库的读写模型第58条掌握unsafe包的安全使用模式010302040506第九部分标准库、反射与cgo第60条了解cgo的原理和使用开销第59条谨慎使用reflect包提供的反射能力第九部分标准库、反射与cgo第50条理解GoTCPSocket网络编程模型50.1TCPSocket网络编程模型50.2TCP连接的建立50.3Socket读写50.4Socket属性50.5关闭连接第51条使用net/**包实现安全通信51.1HTTPS:在安全传输层上运行的HTTP协议51.2HTTPS安全传输层的工作机制51.3非对称加密和公钥证书51.4对服务端公钥证书的校验51.5对客户端公钥证书的校验第52条掌握字符集的原理和字符编码方案间的转换52.1字符与字符集52.2Unicode字符集的诞生与UTF-8编码方案52.3字符编码方案间的转换第53条掌握使用time包的正确方式53.1时间的基础操作53.2时间的格式化输出53.3定时器的使用第54条不要忽略对系统信号的处理54.1为什么不能忽略对系统信号的处理54.2Go语言对系统信号处理的支持54.3使用系统信号实现程序的优雅退出第55条使用crypto下的密码学包构建安全应用55.1Go密码学包概览与设计原则55.2分组密码算法55.3公钥密码55.4单向散列函数55.5消息认证码55.6数字签名55.7随机数生成第56条掌握bytes包和strings包的基本操作56.1查找与替换56.2比较56.3分割56.4拼接56.5修剪与变换56.6快速对接I/O模型第57条理解标准库的读写模型57.1直接读写字节序列57.2直接读写抽象数据类型实例57.3通过包裹类型读写数据第58条掌握unsafe包的安全使用模式58.1简洁的unsafe包58.2unsafe包的典型应用58.3正确理解unsafe.Pointer与uintptrer的安全使用模式第59条谨慎使用reflect包提供的反射能力59.1Go反射的三大法则59.2反射世界的入口59.3反射世界的出口59.4输出参数、interface{}类型变量及反射对象的可设置性第60条了解cgo的原理和使用开销60.1Go调用C代码的原理60.2在Go中使用C语言的类型60.3在Go中链接外部C库60.4在C中使用Go函数60.5使用cgo的开销60.6使用cgo代码的静态构建第61条使用module管理包依赖第62条构建最小Go程序容器镜像第63条自定义Go包的导入路径第64条熟练掌握Go常用工具第65条使用gogenerate驱动代码生成第66条牢记Go的常见“陷阱”010302040506第十部分工具链与工程实践第61条使用module管理包依赖61.1Go语言包管理演进回顾61.2Gomodule:Go包依赖管理的生产标准61.3Gomodule代理61.4升级module的主版本号第62条构建最小Go程序容器镜像62.1镜像:继承中的创新62.2镜像是个筐:初学者的认知62.3理性回归:builder模式的崛起62.4“像赛车那样减重”:追求最小镜像62.5“要有光”:对多阶段构建的支持第63条自定义Go包的导入路径63.1govanityurls63.2使用govanityurls第64条熟练掌握Go常用工具64.1获取与安装64.2包或module检视64.3构建64.4运行与诊断64.5格式化与静态代码检查64.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 秋季学期心理健康宣传活动计划
- 跨区域安保协作的模式与机制研究计划
- 年度预算执行及监控策略计划
- 完善人事档案管理系统计划
- 仓库人员岗位职责与分工计划
- 企业文化建设与数字化转型的融合思考
- 中国传统文化在世界舞台的传播案例
- 中医药在预防医学中的应用价值
- 中国电子商务物流发展现状与趋势分析
- 中西餐烹饪技艺交流与融合
- 碎暖(2018辽宁沈阳中考记叙文阅读试题含答案)
- 吸收放散实验课件
- 语文-2023年高考新课标Ⅱ卷《社戏》解析
- 定积分的应用-毕业论文
- 驾驶员职业心理和生理健康知识专家讲座
- 政治理论考试题库(含答案)
- 2023年福建省福州一中自主招生考试数学试卷
- 浙美版小学美术四年级上册2砖石上的雕刻教学设计
- 学前教育基础综合(心理学)考试复习题库(含答案)
- DB3207-T 2007-2022 政府购买动物防疫社会化服务管理规范
- 苏教版2023年小学四年级数学下册教学计划+教学进度表
评论
0/150
提交评论