软件设计与开发知识体系

作者:陆金龙    发表时间:2019-05-16 09:22   


一、软件开发的六大基石(Foundation)

1.操作系统原理  (内存模型和并发)
2.数据结构与算法 (Java、C语言类型设计)
3.网络技术(网络模型、通讯协议、安全通讯) 
4.存储技术(关系型数据库和NoSQL)
5.编译型高级语言原理(Java及Java虚拟机、编译原理)
6.编程思想(面向对象与设计模式)
 

二、软件开发的六大技术栈(Development Skills)

1.嵌入式、NDK(略)
2.网络安全通讯(HTTPS、SSL、证书、跨域、统一身份验证)
3.服务端框架:Java SSM(Spring SpringMVC MyBatis)、MySQL和Redis、PostgreSQL、Kafka、Ngix、分布式、集群
4.前端框架:Webpack+Vue+相关组件(框架、UI)+Echarts+Map、兼容性处理、网页资源大小控制、加载速度
5.移动端框架(Android):架构(应用与module、APP框架(如路由等)与业务组件、基础库和组件)、Android Framework、View体系和自定义UI组件、UI卡顿和内存泄漏处理、复杂布局及UI的自适应与兼容性处理、热更新
6.开发管理环境:Jira+Confluence、GitLab、Jenkins
 

三、软件工程与系统架构(Architecture)

1.开发管理:1)沟通与管理(会议、Jira项目进度、Confluence文档、周月报) 2)团队建设(职级:助理、工程师、前后端组长、研发主管/架构师、部门经理;岗位:产品、测试、前端、后端、架构;分享与培训)3)KPI考核与反馈 3.25 3.5 3.75(产品岗、测试岗、开发岗、开发管理岗)
2.业务与需求的研究
3.系统架构设计和整体技术方案(存储、服务端技术选型、前端技术选型、通讯机制、安全机制、高性能、高并发和可扩展方案)
4.UML设计与技术文档(开发、部署、测试)
5.编程语言和技术的预研