從大的方面講:
架構就是從無到有的如何把 “應用/系統/軟件/項目/產品” 做出來的具體的方式。包括硬件服務器選擇,軟件/服務的安裝使用,編程語言的選擇,該語言框架的選擇,具體編程技術的選擇,具體到一個增刪改查編寫的規范及前端的用戶體驗編寫規范。
具體點:比如實現商城項目,里面需要什么功能:商品展示(吸引用戶點擊商品的方式、商品基本信息、促銷信息、會員信息)、購買流程、下單流程、物流、權益展示(券等)。要有一個完整的整體項目概念,不要專注於一個小系統的架構,太小了,要思考整個設計過程。
具體功能怎么實現,項目優化可以給產品提建議。
分層來說:
1.首先是邏輯架構,描述業務職責單元,例如包含哪些子系統,哪些模塊,職責單元之間的依賴關系是怎樣的;
2.再就是代碼架構,采用何種架構模式(分層,網關),使用什么框架體系,代碼組織方式等;
3.還有一個是存儲架構,圍繞持久化,緩存,消息通知等數據的存儲方式,分區分片,同步機制等
注意:技術解決了業務什么問題?之前是怎樣的,改后有什么提升?
一個典型的web項目的架構包含了他的:
硬件架構(比如 服務器集群,Load Balance ,網絡配置 ,CDN方案);
軟件架構 (比如 數據庫是否做讀寫分離 ,數據庫優化,nosql的使用,郵件發送方案,計划任務,消息管理,緩存);
業務邏輯架構(是否使用其他公司的服務API,或提供服務API給其他公司)
代碼架構(什么語言php 還是java,什么框架 mvc,restful,前端框架,后端框架)
描述一個項目的架構就是解釋給別人這個項目是怎樣的,你是怎么做滿足、解決了這個項目的各種需求和問題。