5.4.3軟件整體設計探討
軟件業務領域五花八門,用戶需求千差萬別,軟件結構多姿多態,還有不一樣的操做系統,不一樣的計算機語言,公司的技術棧等等,決定了軟件設計也是百花齊放。前端
從軟件的發展史看,經歷了單機軟件、C/S架構、B/S架構,B/S架構+APP,趨勢是萬物互聯,還有是「軟件定義」,軟件給硬件賦能,如軟件定義網絡等。sql
下面一些概念或知識點,也許對整體設計會有幫助,雖然是掛一漏萬。數據庫
- 移動端:
- 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流行框架:
- Java流行框架:
- SSM
- Struts2
- Hibernate
- SpringBoot 2.0
- 前端流行框架:
- Session vs. Cookie
- Session同步 vs. Redis Session共享
- RESTful接口
- Redis
- ELK
- 數據庫自增id與全局id
- 安全機制:
- 傳輸安全
- 訪問安全
- 信息安全
- 數據庫關鍵存儲信息安全
- 存儲安全
- 業務處理安全