程序開發流程
需求設計 —>
產生需求文檔。整理功能和依賴條件等
詳細設計 —>
產生詳細文檔。功能模塊劃分,接口定義,類圖,業務流程圖,數據庫設計等
編碼階段 —>
程序開發階段
按照編碼規範和接口定義,進行功能模塊人員劃分,代碼實現。
測試階段 —>
單元測試,集成測試(接口,功能),灰度測試(預發佈,準上線)
部署上線 —>
考慮業務訪問特徵,採用相應線上策略(反向代理,增加程序實例,擴展機器)等,部署程序到線上。
業務分析 —>
分析線上業務日誌,優化程序架構和邏輯,數據分析,策略調整。
附加
程序規模:
單機程序(進程,線程) —> 多機程序(多進程,調度,協調)
CPU計算密集, 磁盤IO密集型,網絡IO密集(異步非阻塞,epoll)
HTTP協議:
應用層協議,基於TCP協議的。
四層:數據鏈路層 —》 傳輸層(TCP, UDP) — 》 網絡層(IP) —》 應用層
網絡ISO七層結構
HTTP瀏覽器處理請求過程:
輸入domain —> DNS解析得到服務IP地址 —> TCP三次握手 —> HTTP通信 —> web服務器(解析並組裝網頁頁面) —> 返回給用戶HTTP頁面
web服務架構:
DNS層 —> 負載均衡層 (F5,nginx) —> 應用服務層 (eg: django實現的web服務) —> 緩存服務層(redis) —> 數據持久化層(mysql, 磁盤)