1.基本情況
1.1什么是開源
以手機操作系統為例。ios是閉源的,安卓就是開源的,區別在於源代碼是否是公開的。開源不等於免費,在現有某些情況下,使用開源的代碼,需要遵守開源協議里的條款。該協議類似“君子協定”,但場內大玩家基本都遵守,秩序比混亂更有利於發展。雖然開源不一定免費,但開源一定透明,能增加“信任”,信任體現在兩方面,一是防范外部危機(凝聚集體智慧的代碼更具有健壯性),二是服務提供方沒有有意收集我的信息(留后門)。最開始重點在共享(在網上發布),后來重點更進一步,轉移到了協作上。可以看作最開始是單純的共享信息,現在是在共享信息的基礎上,更好地協作。
思考點:在github上,開源項目歸發布者所有,其他contributer(貢獻者),為何願意貢獻,如何改良這個模式,良性循環,使貢獻者也能得到收益?
1.2.為什么要開源
開源對個人地意義:鍛煉技術,炫技
創新工作的目的:降低門檻;提高工作效率
要做一件事,
- 首先要明確目的是什么?也就是問題是什么?
- 其次,要有相關的信息
- 再使用決策模型處理相關信息,
- 最后得到最終結果
其中,如何解決可以封裝成黑盒,輸入問題和信息,輸出解決方案。
開源級服務和企業級服務
1.3.開源協議
MIT和阿帕奇協議(完全開放協議)
GPL協議(強制使用者開源協議)
1.4.為什么大廠在搞開源
通過開放代碼,從而建立生態,將生態中其他開發者的代碼連接到提高的服務上,服務是可以收費的。基於開源服務的代碼誰都可以賣,大廠的自信基於兩點:一是軟實力,技術實力,資金實力,二是硬實力,強制某些代碼更適配自身硬件,從而獲得競爭優勢。
兩種思路:1,技術是護城河,因此要保護源碼 2.放棄壟斷,開放生態,依靠生態賣服務
2.如何學習開源
2.1開源項目下載
優先使用碼雲,github下載會慢一點
下載后解壓,先不着急運行
觀察:
- 用了哪些技術
- 是否有數據庫
- 你的環境是否匹配
通過了,再考慮運行
2.2、跑起來
1.安裝數據庫,執行SQL
2.前端依賴安裝
3.后端項目導入
4.等待所有的成功,啟動后端項目:只要發現了Swagger,跑起來的第一步就是先進入Swagger- ui 頁面,這里都是接口
進而查看配置文件,默認端口等,有哪些配置需要改為自己的項目和環境地址
前端就是安裝依賴,啟動測試運行,看接口是否正常
2.3、前后端分離項目於的固定套路
1.從前端開始分析。打開控制台,點一個接口,分析調用關系
2.前后端端口調用不一致 8013 -- 8000,
- 封裝了接口請求 ajax axios
- 找到配置
- 前后端分離項目的重點:找到接口的調用關系
- Springboot 提供服務,前端調用接口,vue 負責渲染頁面。
- 前端項目固定套路
- 通過抓取前端的請求,找到后端對應的接口
- 后端分析:Controller -- Service -- Dao
- 接下來分析如何渲染,vue標准套路
2.4、如何找到一個好的開源項目
1. 找分類
2.看收藏
3.看具有價值
4.根據自身的理解情況去看