JAVA
ThoughtWorks
Tech Radar 网页地址是 https://www.thoughtworks.com/radar
c++
0. 前言
0.1 维度与层次
C++语言技术雷达图从能力角度分为以下三个维度:
针对这三个维度中众多的技术点,有偏重地推荐为两个层次:
- 关键知识技能:表格中标蓝加粗字体为关键的知识技能与技术点;
- 扩展知识技能:未标蓝加粗的内容为推荐的扩展内容,在掌握了关键知识技能的基础上,根据业务的不同可以有选择性地挑选学习。
0.2 雷达图的应用建议
专家团针对每个知识技能给出了掌握程度的评分标准:
- 知道(1分):能说清楚是什么,解决什么问题,了解技术对应的社区的使用情况和学习路径。
- 会用(2分):实现过对应技术的"QuickStart",知道技术的适用场景,能照猫画虎实现需求。
- 熟练(3分):能够在业务场景中用最佳实践解决问题,形成自己的方法论和套路。
- 精通(4分):熟悉技术背后原理,研究过源码,能够解决疑难问题(故障、性能优化以及扩展)。
- 贯通(5分):对该技术的不足比较深入的洞见,能够提出创新性的解决方案,拓展该技术。
使用雷达图的个人或团队可以在初期对自身能力做一次评估,并选择合适的技术方向学习。之后在合适的时间点再次评估,审视是否有进步。
辅助评分的参考工具:excel工具
知识技能雷达excel工具示意图:
1. 通用领域
此章节的内容多为通用技术、知识,可应用于各个业务领域的软件开发活动中。
1.1 设计
1.2 重构
知识技能 | 技术点 | 学习参考 |
---|---|---|
# 重构 | ||
- 重构&坏味道(重构方法论及手段) | 《refactoring》 | |
《重构与模式》 | ||
《嵌入式软件重构方法与实践0.2》 |
1.3 编码
1.4 测试、调试与性能调优
知识技能 | 技术点 | 学习参考 |
---|---|---|
# 开发者测试 | ||
- 测试分层: Unit testing Integration testing System testing Operational acceptance testing | 《单元测试之道》 《测试驱动的嵌入式C语言开发》 | |
- 开发者测试框架: gtest DTCenter | gtest/gmock入门 google/benchmark DTCenter | |
# 调试 | ||
- 单步调试: debuger breakpoints threading condition breakpoint watch | gdb 《软件调试 第2版》 | |
# 性能调优 | ||
- 体系架构cache & profiling方法 | Software optimization resources C++性能调优纵横谈 《C++性能优化指南》 公司软件教练组系列文章: 丁兆杰 数据Cache预取技术系列 丁兆杰 利用Cachegrind帮助优化D-Cache命中率 左春伟 性能之巅:定位和优化程序CPU、内存、IO瓶颈 左春伟 软件教练说:性能优化与性能设计 左春伟 高质量C/C++程序设计 左春伟 软件架构-解构高并发 金晶 高性能并行计算纵横谈 白玉刚 内存优化经验分享 Mike Guangxuan Liu 性能优化之算法优化 丁兆杰 使用Valgrind工具集进行Cache性能调优 丁兆杰 L2中的位运算 |
2. 业务领域
此章节的内容多为某个业务领域的特定技术、知识,同时也是业界经典范例,强烈推荐学习参考。
3. IT基础
此章节的内容多为软件开发活动中一些推荐掌握的技能、知识,熟练掌握和运用这些技能对软件开发的效率、质量都有较好的帮助。
知识技能 | 技术点 | 学习参考 |
---|---|---|
# Linux工具链 | ||
- 脚本语言:shell,python | 《UNIX Power Tools》 《鸟哥的Linux私房菜》 《Linux与Unix Shell编程指南》 《Linux Shell核心编程指南》 | |
- 性能分析工具: perf 工具 gperftool(google) 火焰图 | Linux kernel profiling with perf Perf -- Linux下的系统性能调优工具-Part 1 Perf -- Linux下的系统性能调优工具-Part 2 perf Examples gperftool 火焰图 | |
- 编译工具链: GCC LLVM/Clang | GCC官网 《编译原理》(龙书) LLVM入门 Clang 编译器用户手册 | |
# 版本管理(VCS) | ||
- Git、Gitlab、Github | Git官网 Git实践练习 | |
- gerrit | ||
# IDE/TOOLS | ||
NextCode | VSCode Refactoring | |
wecode | wecode | |
CLion | CLion Refactor Help | |
Eclipse-CDT | Eclipse Refactor Actions | |
Sublime-text | Sublime-text | |
Typora(markdown编辑器) | ||
# CI/构建 | ||
CMake | 《CMake CookBook》中文 | |
Makefile | 《跟我一起写makefile》 | |
# 代码静态检查 | ||
Pclint | ||
coverity | ||
fortify | ||
clang-tidy | ||
ASAN | ||
valgrind |