用日誌記錄「開源軟件」的誕生git
進入連接,點亮星標,支持一下github
加微信與開發者交流 kzca2000數據庫
遇到技術選型,常見的作法每每是選擇最前沿的,最流行的,或者選擇最新的。對於這種方式我只能說部分贊成,技術選型我認爲最重要的是要適合產品的使用場景。再好的技術,沒有遇到發揮它優點的情景,也是白搭。微信
那麼來看看我要開發的這款開源ERP,他的特色:併發
軟件是開源的,面對衆多的開發者和使用者,必定要選擇學習成本低、成熟度高、普及度高,而且儘可能使用最少的第三方技術或框架實現所需功能。app
軟件是免費的,那麼就不能考慮收費的中間件或技術。框架
ERP軟件是企業級管理系統,它最大的特色是業務邏輯複雜,功能複用較多、併發不大、服務層相互調用頻繁、數據保密程度要求較高。因此重點考慮的是MVC框架的靈活性、ORM的標準化、安全性框架以及緩存技術。運維
系統雖然是ToB的,但考慮到企業需求的多樣性,要考慮到豐富的可擴展性,尤爲是對微服務的支持。
SpringBoot2
(1)成熟度高、普及度高
(2)SpringMVC框架對Rest支持
(3)配置簡化
(4)豐富高效的第三方集成
(5)SpringCloud微服務擴展
MySQL
(1)免費
(2)全文索引
(3)支持讀寫分離、集羣配置
Hibernate5
(1)最完整的ORM框架
(2)屏蔽底層數據庫
(3)與SpringBoot JPA無縫整合
(4)經常使用DAO方法的簡化,提高開發效率
Redis
(1)緩存速度快、單線程
(2)持久化
(3)支持分佈式
Cas+Shiro
(1)安全的單點登陸協議
(2)簡單的安全性框架配置
能夠看到,我並無選擇不少的第三方技術或框架,由於我不想增長一個開源軟件的使用者或開發者的學習成本和運維成本。不少時候技術用的越多,系統開發的越大,你要面臨的問題就越多,甚至在不少時候成指數增加。總之就是用最少的技術作更多的事!
已經寫到23:00了,今天寫這麼多吧。下一篇說說開源協議的選擇,以及選擇一個開源協議後要作哪些工做。