理顺软件开发各个环节-12(开发管理-总体设计探讨)
5.4.3软件总体设计探讨
软件业务领域五花八门,用户需求千差万别,软件结构多姿多态,还有不同的操作系统,不同的计算机语言,公司的技术栈等等,决定了软件设计也是百花齐放。
从软件的发展史看,经历了单机软件、C/S架构、B/S架构,B/S架构+APP,趋势是万物互联,还有是“软件定义”,软件给硬件赋能,如软件定义网络等。
下面一些概念或知识点,也许对总体设计会有帮助,虽然是挂一漏万。
- 移动端:
- APP(Android/iOS)
- H5
- React Native
- Flutter
- PWA
- 微信小程序
- 阿里小程序
- ......
- HTTP vs. RPC
- 计算机语言:
- ANSI-C
- C++
- Objective-C
- C#
- PHP
- Python
- Java
- JavaScript/jQuery
- Node.js
- R/Erlang/Go/Shell...
- 数据库:
- RDBMS(如Mysql)
- NoSql(如MongoDB)
- 数据仓库 vs. 多维数据库
- 分布式系统和分布式计算架构
- 主备、主从、集群
- 数据库读写分离
- 前后端分离架构
- 单体应用 vs. 微服务
- 微服务与DDD
- 配置化思想
- 商用 vs. 开源
- 队列:
- RabbitMQ
- ActiveMQ
- RocketMQ
- Kafka
- 消息发布订阅
- 消息队列 vs. 回调
- 同步 vs. 异步
- 轮询 vs. 事件触发
- 拉取 vs. 推送
- 集中 vs. 分布
- 并发与事务及线程安全
- 高并发场景对策
- PHP流行框架:
- TP
- CI
- Yii
- Laravel
- Java流行框架:
- SSM
- Struts2
- Hibernate
- SpringBoot 2.0
- 前端流行框架:
- Angular
- VUE
- Session vs. Cookie
- Session同步 vs. Redis Session共享
- RESTful接口
- Redis
- ELK
- 数据库自增id与全局id
- 安全机制:
- 传输安全
- 访问安全
- 信息安全
- 数据库关键存储信息安全
- 存储安全
- 业务处理安全