diff --git a/养成计划.md b/养成计划.md index 7b76d88..da42a8e 100644 --- a/养成计划.md +++ b/养成计划.md @@ -4,39 +4,42 @@ 1. **基础知识学习**: - - 阅读模块的文档、技术手册。 + - 阅读模块的文档和技术手册,重点关注“快速入门”和“核心概念”部分。 - - 学习模块的核心概念、架构图和基本工作流程。 + - 学习模块的架构图,理解其主要组件和数据流。 2. **代码层面了解**: - - 阅读模块的核心代码,理解关键函数和数据结构的功能。 + - 选择一个核心功能(如模块的初始化流程),阅读相关代码(约200-300行)。 - - 通过代码注释和文档,了解代码的组织结构和调用关系。 + - 通过代码注释和文档,理解关键函数和数据结构的作用。 3. **简单操作练习**: - - 运行模块的单元测试(UT),观察输出结果。 + - 下载模块代码,编译并运行单元测试(UT),记录测试结果。 + + - 修改一个简单的UT用例(如修改输入参数),观察输出变化。 + **证明方法**: 1. **代码阅读报告**: - - 提交一份代码阅读报告,描述模块的核心代码结构和关键函数的作用。 + - 提交一份1-2页的报告,描述核心代码的功能和调用关系。 - - 报告中需包含对代码逻辑的理解和疑问。 + - 报告中需包含对代码逻辑的理解和至少一个疑问。 2. **操作报告**: - - 提交一份详细的操作报告,包括UT编译运行和结果确认。 + - 提交一份操作报告,描述UT的编译、运行步骤和结果。 - 报告中需包含遇到的问题及解决方法。 3. **展示讲解**: - - 向团队展示模块的基本功能和代码结构,并解释其工作原理。 + - 在团队会议中,用5分钟展示模块的基本功能和代码结构。 - - 回答关于模块基础知识和代码逻辑的提问。 + - 回答团队关于模块基础知识和代码逻辑的提问。 --- @@ -47,52 +50,52 @@ 1. **任务实践**: - - 独立完成模块的常见任务(如:修复一个已知Bug、添加一个小功能)。 + - 从Bug跟踪系统中挑选一个低优先级Bug(如UI显示错误),独立修复并提交代码。 - - 参与模块的日常维护工作(如:代码合并、上库)。 + - 参与一次代码合并,解决合并冲突并确保代码通过CI(持续集成)测试。 2. **问题定位训练**: - - 分析模块的日志,定位常见问题的根因,并记录分析过程。 + - 选择一个已知问题(如模块启动失败),分析日志文件,定位根因。 - - 使用调试工具逐步排查问题,并撰写问题排查报告。 + - 使用调试工具(如GDB、IDE调试器)逐步排查问题,记录排查步骤。 3. **回溯分析**: - - 研究模块的历史问题(如:Git提交记录、Bug跟踪系统)。 + - 从Git提交记录中挑选一个历史Bug修复,分析修复思路和方法。 - - 分析过去解决问题的思路和方法,总结规律,并撰写总结文档。 + - 撰写一份总结文档,描述问题的根本原因和修复方案。 4. **理解依赖和限制**: - - 学习模块的上下层依赖关系,理解模块在系统中的作用。 + - 阅读模块的依赖文档,列出模块的上层调用方和下层依赖库。 - - 了解模块的技术限制(如性能瓶颈、资源消耗)和业务限制(如需求变更、时间压力)。 + - 分析模块的性能测试报告,记录其性能瓶颈和资源消耗。 **自证明方法**: 1. **任务成果**: - - 提交一个修复Bug或实现功能的代码,并通过代码审查。 + - 提交修复Bug的代码,并通过代码审查。 - - 撰写任务总结报告,描述解决思路和步骤。 + - 撰写任务总结报告,描述Bug的修复思路和步骤。 2. **问题排查报告**: - 提交一份问题排查报告,详细描述问题的定位和解决过程。 - - 报告中需包含使用的工具、分析方法和最终解决方案。 + - 报告中需包含日志分析、调试步骤和最终解决方案。 3. **展示讲解**: - - 向团队讲解一个历史问题的解决过程,展示回溯分析的结果。 + - 在团队会议中,用10分钟讲解一个历史Bug的修复过程。 - - 分享自己在任务实践中的经验和教训,证明对模块的熟悉程度。 + - 分享自己在任务实践中的经验和教训。 4. **依赖和限制分析**: - - 提交一份文档,描述模块的上下层依赖关系和技术限制。 + - 提交一份文档,列出模块的上下层依赖关系和技术限制。 - 在团队讨论中展示对依赖和限制的理解。 @@ -105,34 +108,34 @@ 1. **复杂任务处理**: - - 参与模块的核心功能开发或性能优化,并记录开发过程。 + - 参与模块的核心功能开发(如实现一个新特性),并记录开发过程。 - - 解决模块中的复杂问题(如:并发问题、内存泄漏),并撰写解决方案。 + - 解决一个复杂问题(如内存泄漏),撰写解决方案文档。 2. **架构理解**: - - 深入研究模块的架构设计,阅读核心代码,并绘制架构图。 + - 绘制模块的架构图,标注主要组件和数据流。 - - 参与模块的设计讨论,提出改进建议,并记录讨论内容。 + - 参与模块的设计讨论,提出至少一个改进建议。 3. **回溯分析**: - - 分析模块中过去的高难度问题(如:性能瓶颈、架构缺陷)。 + - 分析模块中过去的高难度问题(如性能瓶颈),总结解决模式。 - - 总结复杂问题的解决模式,并撰写技术文档。 + - 撰写一份技术文档,描述问题的根本原因和优化方案。 4. **设计折衷与妥协**: - - 在设计和开发过程中,权衡不同的技术方案,理解每种方案的优缺点。 + - 在设计和开发过程中,列出两种可行的技术方案,比较其优缺点。 - - 根据项目需求和限制条件,选择最合适的方案,并解释选择的理由。 + - 根据项目需求,选择最合适的方案,并撰写选择理由。 **自证明方法**: 1. **复杂任务成果**: - - 提交一个复杂任务的代码,并通过严格的代码审查。 + - 提交一个复杂任务的代码,并通过代码审查。 - 在团队中展示复杂任务的解决方案,并回答技术细节问题。 @@ -144,7 +147,7 @@ 3. **展示讲解**: - - 向团队讲解一个复杂问题的解决过程,展示回溯分析的结果。 + - 在团队会议中,用15分钟讲解一个复杂问题的解决过程。 - 组织一次技术分享,讲解模块的架构设计和优化思路。 @@ -163,13 +166,13 @@ 1. **技术创新**: - - 主导或参与模块的技术创新项目(如:引入新技术、重构核心代码)。 + - 主导或参与模块的技术创新项目(如引入新技术),并记录项目过程。 - - 提出并实现模块的改进方案(如:性能优化、扩展性提升)。 + - 提出并实现模块的改进方案(如性能优化),撰写技术方案文档。 2. **领导能力培养**: - - 带领团队完成模块的开发或优化任务,并记录项目管理过程。 + - 带领团队完成模块的开发或优化任务,记录项目管理过程。 - 指导其他工程师,参与技术决策和架构设计,并撰写指导文档。 @@ -177,11 +180,11 @@ - 分析模块的历史技术决策,评估其成功或失败的原因。 - - 总结模块的技术演进过程,撰写技术白皮书。 + - 撰写一份技术白皮书,总结模块的技术演进过程。 4. **全面掌握依赖和限制**: - - 从全局视角分析系统的依赖关系和限制条件,并提出优化方案。 + - 从全局视角分析系统的依赖关系和限制条件,提出优化方案。 - 在技术决策中,平衡短期需求和长期目标。 @@ -192,13 +195,13 @@ - 提交技术创新项目的成果,并通过团队和上级评审。 - - 展示项目对模块的实际影响(如:性能提升、成本降低)。 + - 展示项目对模块的实际影响(如性能提升、成本降低)。 2. **领导能力证明**: - 提交项目管理记录,展示任务分配、进度跟踪和风险管理能力。 - - 通过团队反馈证明领导能力(如:沟通能力、决策能力)。 + - 通过团队反馈证明领导能力(如沟通能力、决策能力)。 3. **展示讲解**: