項目 | 內容 |
---|---|
課程班級博客鏈接 | 18卓越班 |
這個作業要求鏈接 | 常用源代碼管理工具與開發工具 |
我的課程學習目標 | 了解軟件項目源代碼常用管理工具。 了解軟件項目源代碼常用集成開發軟件工具。 |
這個作業在哪些方面幫助我實現學習目標 | 1.了解個各種代碼管理軟件的特點與區別。 2.了解了svn與git兩種管理模式的卻別。 3.熟悉了軟件項目源代碼常用集成開發軟件工具。 |
1. 任務一:調研源代碼版本管理軟件
- 使用過的源代碼管理軟件
- github:
GitHub是一個面向開源及私有軟件項目的托管平台,因為只支持Git作為唯一的版本庫格式進行托管,故名GitHub。(摘自百度百科)
- svn:
SVN是subversion的縮寫,是一個開放源代碼的版本控制系統,通過采用分支管理系統的高效管理,簡而言之就是用於多個人共同開發同一個項目,實現共享資源,實現最終集中式的管理。(摘自百度百科)
- 碼雲(gitee):
碼雲gitee是深圳市奧思網絡科技有限公司推出的代碼托管平台,支持Git和SVN,提供免費的私有倉庫托管。
- 了解的源代碼管理軟件
- Gitlab:
GitLab 是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來的Web服務。安裝方法是參考GitLab在GitHub上的Wiki頁面。(摘自百度百科)
- Bitbucket:
BitBucket 是一家源代碼托管網站,采用Mercurial和Git作為分布式版本控制系統,同時提供商業計划和免費賬戶。(摘自百度百科)
- svn與git兩種代碼管理模式的區別
- svn介紹:
1.SVN的全稱是Subversion,即版本控制系統。它是最流行的一個開放源代碼的版本控制系統。
2.SVN采用客戶端/服務器體系,項目的各種版本都存儲在服務器上,程序開發人員首先將從服務器上獲得一份項目的最新版本,並將其復制到本機,然后在此基礎上,每個開發人員可以在自己的客戶端進行獨立的開發工作,並且可以隨時將新代碼提交給服務器。當然也可以通過更新操作獲取服務器上的最新代碼,從而保持與其他開發者所使用版本的一致性。
3.SVN的客戶端有兩類,一類是基於Web的WebSVN等,另一類是以Tortoise SVN為代表的客戶端軟件。(摘自百度百科)- git介紹:
Git 是用於 Linux內核開發的版本控制工具。與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必服務器端軟件支持(wingeddevil注:這得分是用什么樣的服務端,使用http協議或者git協議等不太一樣。並且在push和pull的時候和服務器端還是有交互的。),使源代碼的發布和交流極其方便。 Git 的速度很快,這對於諸如 Linux kernel 這樣的大項目來說自然很重要。 Git 最為出色的是它的合並跟蹤(merge tracing)能力。(摘自百度百科)
- svn與git的比較
1.Subversion屬於集中式的版本控制系統。集中式的版本控制系統都有一個單一的集中管理的服務器,保存所有文件的修訂版本,而協同工作的人們都通過客戶端連到這台服務器,取出最新的文件或者提交更新。
2.Git屬於分布式的版本控制系統。Git記錄版本歷史只關心文件數據的整體是否發生變化。Git 不保存文件內容前后變化的差異數據。
(摘自博客)- svn的優點:
- 管理方便,邏輯明確,符合一般人思維習慣。
- 易於管理,集中式服務器更能保證安全性。
- 代碼一致性非常高。
- 適合開發人數不多的項目開發。
- svn的缺點:
- 服務器壓力太大,數據庫容量暴增。
- 如果不能連接到服務器上,基本上不可以工作,看上面第二步,如果服務器不能連接上,就不能提交,還原,對比等等。
- 不適合開源開發(開發人數非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明確的權限管理機制(例如分支訪問限制),可以實現分層管理,從而很好的解決開發人數眾多的問題。
- git的優點:
- 適合分布式開發,強調個體。
- 公共服務器壓力和數據量都不會太大。
- 速度快、靈活。
- 任意兩個開發者之間可以很容易的解決沖突。
- 離線工作。
- git的缺點:
- 學習周期相對而言比較長。
- 不符合常規思維。
- 代碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有代碼和版本信息。
- svn的優點:
- svn與git在團隊協作流程和項目管理方面的區別:
- 團隊協作流程:
- git:創建開發分支→Fork項目到個人的倉庫→Clone項目到本地→和團隊項目保持同步→push修改到自己的項目上→請求合並到團隊項目上→團隊項目負責人審核及同意合並請求。
- svn:創建新項目→創建分支→切換分支→合並代碼→正式版本發布→bug修復。
- 項目管理:
- git:安裝並配置Git,建立與GitHub的連接→Git上傳本地工程到GitHub或其他代碼托管平台。
- svn:集中式開發和分散式開發。
- 團隊協作流程:
- 以碼雲(gitee)與github兩種代碼托管工具為例進行比較:
gitee github 代碼托管模式 支持git與svn 支持git 開發商 國內 國外 開源項目 優秀的庫少 優秀的庫多 網絡質量 網絡穩定 網絡不穩定 功能 提供免費的 Git 倉庫,還集成了代碼質量檢測、項目演示等功能 除了 Git 代碼倉庫托管及基本的 Web 管理界面以外,還提供了訂閱、討論組、文本渲染、在線文件編輯器、協作圖譜(報表)、代碼片段分享(Gist)等功能
2. 任務二:調研並試用廣泛使用的源代碼集成開發工具軟件(Integrated Development Environment,IDE)
- MyEclipse:
- 優點:基本可以實現java方面的所有開發功能;集成了很多常用的框架。
- 缺點:myeclipse版本是收費的,在圖形化插件集成方面還是不夠成熟;內存占用嚴重。
- IntelliJ IDEA
- 優缺點與MyEclipse類似。
- Android studio
- 穩定速度快:使用Eclipse的開發人員都會碰到突然假死、卡頓、內存占用高等一系列影響開發效率的老問題,Android Studio在這塊性能上得到了明顯的提升,並且Android Studio使用了單項目管理模式,在啟動速度上比 Eclipse快。
- 功能強大的UI編輯器:集合了Eclipse+ADT的優點,並且能更實時的展示界面布局效果。
- 完善的插件管理:Android Studio支持了多種插件,可直接在插件管理中下載所需的插件,。
- 完善的支持多種代碼管理工具:不需要任何操作,直接支持SVN、GITHUB等主流的代碼管理工具。
- 整合了Gradle構建工具:Gradle繼承了Ant的靈活性和Maven的生命周期管理,不適用XML作為配置文件格式,采用了DSL格式,使得腳本更加靈活簡潔。
- 智能:智能保存,智能補齊,在實際的編輯代碼中熟練使用后,可極大提高代碼編寫效率。
- 內置終端:不需要自己打開一個終端來使用ADB等工具。
- 谷歌官方支持:是Google官方專門為Android應用開發打造的利器,也是目前Google官方唯一推薦,並且不再支持其他IDE。
- 基於IntelliJ IDEA開發,相比於Eclipse更適合於開發安卓app。
- Code:: Blocks
- 優點:跨平台;開源;空間占用較少,輕量級;
- 缺點:在開發工程方面,相比於其他IDE不占優勢;僅支持C/C++開發。
- Visual Studio
- 優點:基本包含了其他IDE的絕大部分功能,適合用於開發。
- 缺點:空間占用大;僅支持C/C++,C#語言的開發。
- VScode
- 優點:免費;插件多;占用內存低,啟動速度;全平台,支持多種語言。
- 缺點:不夠穩定。
- Subline
- 優點:主流前端開發編輯器;體積小,運行快,啟動快;文本功能強大;支持編譯,且可以在控制台看到輸出;可安裝大量插件,來滿足定制化需求;輕量級,適用小項目。
- 缺點:收費閉源。
- HBuilderX
- 優點:一套代碼,多端運行;代碼實現簡單,開發快速,官網提供很多組件;uniapp開發體驗對前端人員十分友好;突破了系統對H5調用原生功能的限制。
- 缺點:問世的時間還比較短,有很多地方還不是完善。
- PyCharm
- 優點:方便的環境管理;自動導入包;方便的代碼調試;Git管理;遠程管理開發。
- 缺點:內存占用高。
3. 任務三:練習使用typora進行MarkDown格式博客的本地編輯和實時預覽
總結:通過本次實驗,我們了解了好多目前常用的軟件項目源代碼管理工具,例如:GitHub,Gitee等,了解了其功能與背景,比較了它們之間的優缺點;同時還了解了svn與git兩種源代碼管理模式的區別;除此之外我們還了解了好多項目軟件常用的IDE,例如:Visual Studio,Eclipse等,比較了它們之間的優缺點。