软件工程师的技能地图

博识知识管理,助力构建学习型企业

软件工程师基础能力 3个

遵循代码规范,保持代码形式整洁

1. 如何融入团队开发,使用与团队相同的代码规范与基准

2. 如何在代码 Review 时尽量避免形式上的问题

3. 如何成为一个初级的 Clean Coder

重构:语言与代码规范层面

1. 如何在编写代码或Review时,发现代码形式上的坏味道

2. 针对某种形式上的坏味道,如何进行重构

3. 重构后如何对代码的质量进行保证

使用瀑布式开发流程控制开发生命周期

1. 开发流程,如何明确每个阶段的工作内容及生产物

2. 如何评价每一个阶段的流程数据,以及生产物品质

3. 如何对大的需求进行需求分解

4. 如何进行工作量估算与排期

软件工程师资深能力 3个

使用中级算法与数据结构开发函数或者类型

如何在需要关注排序效率,大规模关系 查找,分布式系统信息一致性时,使用中级算法解决问题

重构:代码结构层面

1. 如何在编写代码或Review时,发现代码中的结构上的坏味道

2. 针对某种结构上的坏味道,如何进行重构

3. 重构后如何对代码的质量进行保证

创建型设计模式

1. 如何对类的实例化过程进行抽象

2. 如何将软件模块中对象的创建和对象的使用分离

3. 如何使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节

4. 如何使整个系统的设计更加符合单一职责原则

软件工程师专家能力 8个

结构型设计模式

1. 如何将类或者对 象结合在一起形成更大的结构,就像搭积木,可以通过 简单积木的组合形成复杂的、功能更为强大的结构

2. 如何在项目中选择是使用类结构还是对象结构

行为型设计模式

1. 如何在项目的众多不同对象之间划分责任和算法的抽象化

2. 如何清晰地划分类与对象的职责,并研究系统在运行时实例对象 之间的交互

源码管理

1. 在团队化中大型产品开发时,如何使用源码管理工具,与团队协作保证代码资产的安全及稳定

2. 在功能开发时,如何确定是否需要使用分支进行开发

3. 在源代码出现问题时,如何跟踪提交问题点,并进行回滚

消息队列

1. 到底什么时候该使用MQ?

2. 如何使用MQ实现消息必达?

3. 如何使用MQ保证幂等?

4. 如何使用MQ快速实现流量削峰填谷

缓存

1. 如何在系统中通过使用缓存来提升吞吐量

2. 如何使用缓存在分布式系统中创建全局 Id

3. 在数据变更时,如何更新缓存与数据库

4. 如何保证缓存与数据库的一致性

5. 如何保证缓存的高可用性

使用高级数据结构进行开发

如何在需要关注如:实现数据库索引,URL去重场景中使用高级数据结构解决问题

使用高级算法进行开发

如何在需要关注如:解决最短路径,URL去重,卡垃圾短信过滤,寻路场景使用高级算法解决问题

PKI

1. 如何使用 PKI 保证系统中的信息安全

2. 如何使用公钥,私钥,数字签名与数字证书

3. 如何使用 HTTPS 进行通信加密

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月10日
下一篇 2020年4月10日

相关推荐