程序员职业素养

一、技能素质
1.1 软技能

数据结构和算法
设计模式
网络TCP/IP
代码整洁之道
重构改善既有代码
代码大全
敏捷软件开发:原则,模式与实践
领域内驱动设计
Git
vim

1.2 硬技能

iOS 领域专家

基础开发
多媒体开发
IM开发
SDK开发
MVC
MVVM
MVP
VIPER
RXSwift
常用框架源码分析
单元测试
持续集成
反编译

Android 领域专家

基础开发
多媒体开发
IM开发
SDK开发
MVC
MVP
MVVM
RxJava
Kotlin
常用框架源码分析
单元测试
继续集成
反编译

脚本语言
Python
Groovy
Shell

二、工程素质
2.1 专业主义

需求:

认真研读需求文档。
对不合理的需求说”不“。
和产品确定最后的需求。

研发

技术预研,确定采用的技术

开发设计,

遵循六大设计原则。
采用23种设计模式。
设计出架构清晰。
模块低耦合。

设计评审

开发小组封闭讨论设计的不合理之处

工作量化

按功能划分
/ 好处:避免模块的数据层和UI层之间的回调依赖
/ 坏处:不严格遵循设计,导致模块之前紧耦合
按模块划分
/ 好处:模块之间的低耦合
/ 坏处:数据层和UI层异步回调依赖
根据每个人的工作量化导出工期评估
对不合理的工期说”不“

编码

入乡随俗
参考google,sun等大公司的编码规范
初中高

初级:面向功能
中级:面向性能
高级:面向未来

代码提交之前一定要review自己的代码
有精力要阅读别人的代码
推荐工具GitKraken

测试

单元测试 XUnit
组件测试 API
集成测试 API
系统测试 GUI
人工探索式测试

专业的程序员都会写单元测试,甚至测试驱动开发。
对交付的程序,一定是经过一系列,反复测试的。

对交付的程序,

经过金字塔测试
最后组内交叉测试

灰度测试

就是控制发布比例,让一部分用户进行升级测试

持续集成CI
gradle
Jenkins
git

Bug追踪

fabric订阅bug
开发组的每个成员都要订阅fabricbug邮件
及时修复线上bug

版本迭代

三、团队协作
3.1 团队管理工具
3.1.1 组内沟通

在线沟通有记录

微信
lark

当面沟通
尽量当面沟通,效率最高

3.1.2 项目管理工具

Trello

管理需求
管理开发工作量化
管理版本线
管理bug

3.2 时间管理
3.2.1 事件的优先级

紧急重要
紧急不重要
重要不紧急
不重要不紧急

按上面的优先级进行安排工作
3.2.2 番茄工作法

25分钟内免打扰
最优状态是 每天12-14个番茄
最差状态是 每天2-4个番茄

作者:彡廿
链接:https://www.jianshu.com/p/2548f14324c3
来源:
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(程序员职业素养)