標籤:
通用的樣本說明:
- 本系列部落格只討論工具的基礎,不討論任何語言。
- IDE預設指代的是Visual Studio 2013 Community Edition。 本系列文章的結尾,你可以熟練地使用它寫程式。
- 將Visual Studio啟動後的預設布局狀態稱為主視窗,主視窗標題列中顯示的項目名稱不必要。
- 在日常口語和Windows資源管理員的基礎上定義了幾個描述菜單操作的符號:[]、{}、/、>>、=、(,)。
- 檢查一個設定項的表示方法為:
- [視窗名稱]/{菜單名稱}/{子功能表名稱}/{設定項項名稱}=設定項的值
- 例如預設的Debug配置:
- 檢查多個設定項時,按照單個設定項的方式,逐一寫出
- 檢查一個設定項有多個值的時候,用括弧包括並用內部的逗號分隔,如:
- [方案總管]/{項目名稱}/{引用}=(System,System.Core,System.Data,System.Xml)
- 執行一個左鍵單擊序列,就是將最後的檢查項換成”/”,例如退出IDE:
- 右鍵菜單的串連符號為>>,例如重新整理Windows案頭:
- 快顯視窗中的設定項的表示與上類似
- MDI子視窗中設定項的表示與上類似,注意到在Visual Studio中,MDI子視窗的名稱在它的左上方或者可能自動吸附到主視窗的四周
- 標題列和狀態列作為菜單的推廣,適用於上述表示方法
- 缺陷說明
- 歡迎反饋,mailto:[email protected]
- 作者的慣用語言是C#
- 作者是軟狗
- 作者的IDE沒裝中文語言套件,所以有的名詞翻譯得不準確:-(
- 由於還沒有釐清相關的認證問題,著作權保留
- 系列文章沒有提出或解決新的問題,目的只是科普
本文
今天編程的目的是為了明天不編程。
這一篇部落格討論編程工作內在的目的性,也就是原始程式碼控制。所謂原始程式碼控制僅僅針對可以工作的最穩定的代碼進行管理。笨代碼和聰明代碼是程式碼片段或編程緩衝,而非協作中的原始程式碼控制。
原始碼和程式碼片段
把自己寫過的所有代碼儲存起來,是很好的想法。把自己能用的代碼儲存起來,以便隨時再用,這個想法對開發人員來說,可能會更好一點。因為後者更能讓開發人員集中注意力於設計。常見的追蹤檔案歷程記錄的方式是版本控制,也就是通常所說的原始程式碼控制。但是通常所說的原始程式碼控制聽起來更像是“字元記錄”。
一片代碼,僅僅從它與程式整體的關係來說,可以概略地分為兩類,一類是立時可用的,另一類是“我還要修複一下”的。前一種叫做“原始碼”,而後一種只能叫做“片段(snippets?)”。這個區別對開發人員的提示在於,從實踐上說,編程就是圍繞release的體力勞動工作。
美麗的代碼和穩定的代碼
美麗的代碼通常會用一些幽密的手法來實現一個比較bigger的功能。穩定的代碼則不然。比如求兩個集合的差集的情況而言,美麗的代碼可能會在一個迴圈裡面寫大量的語句,而穩定的代碼則可能寫成三五個順序執行的迴圈。那麼,到底是美麗的代碼好還是穩定的代碼好呢?
實際上我們會發現,我們的確會觀望美麗的代碼,但我們賴以發揮作用的還是穩定的版本。代碼的穩定的版本通常會更加容易調試、更加簡約迴圈的內容。我們最終會在保持穩定的基礎上進行效能的調整。
針對更強的目的性實施原始程式碼控制
至少一個版本已經在運行,無論是在測試中還是在原型中。在此之外談原始程式碼控制就是搞學術研究。
原始程式碼控制的概念應該比項目的層級要高。這是因為,就編程的目的而言,一個項目只是達成方案目的的一個子部分。
一旦將原始程式碼控制針對強的目的來進行,那麼原始程式碼控制所維護的重心也就自然而然地落到了工作的完成時態。
用IDE內建的Git進行原始程式碼控制
在Visual Studio中貫穿著強目的性的原始程式碼控制的設計哲學(即使可以很容易地濫用)。這表現在,在不開啟任何解決方案的情況下,[Team Explorer]仍是可用的。然後在分支的合并上有一些自動的簡化。
由於實踐所限,llorch目前還沒有用過Team Foudation Server,因此本篇的內容就以Visual Studio中的Git支援來樣本性地說明了。由於Visual Studio 2013內建的Git功能並不完備,有的網友習慣自己組裝其他的Git外掛程式。llorch的教程主要想給新手們提供一點參考,所以,這裡就假設使用第三方外掛程式的是“進階使用者”了。
配置Visual Studio中的Git
[主視窗]/{視圖}/{Team Explorer}/,開啟[Team Explorer]子視窗,這是原始程式碼控制的主要操作視窗。
[Team Explorer]/{下拉式清單}=設定/{Git設定}/,對影響Visual Studio全域的身份資訊、緩衝目錄進行設定。
複製網上的Git倉庫
[Team Explorer]/{下拉式清單}=項目/{串連到Team 專案}/{複製}/,填入Git倉庫地址和本機快取目錄就開始複製了。內建的Git工具只能和https協議的發布URL良好協作,不支援ssh的版本,而支援Windows憑據登入的方式。
如果已經複製過了,這裡的菜單會自動切換成拉取。拉取的時最好注意一下分支提交的情況,以免覆蓋掉有用的工作。llorch試了幾次,好像只要有分支沒有提交,這裡的拉取就會變灰色。
[Team Explorer]/{下拉式清單}=項目/{本地Git存放庫}/{庫N}//,雙擊(//)列出的任何一個本機存放區的庫,會跳轉到[Team Explorer-首頁]子視窗,在[Team Explorer-首頁]/{解決方案}欄目中可以選擇操作分支或開啟解決方案。
一旦開啟瞭解決方案,則手動切換到[方案總管]開始編碼。(這是一個使用者體驗上的BUG,沒有自動切換過去,可以通過取消Team Explorer的停靠來改善。)
提交更改到本機存放區庫
[方案總管]/{解決方案}>>{提交}/,在其中填入提交訊息後就可以提交。
提交更改到遠程存放庫
Visual Studio 2013 Community Edition內建的Git工具僅支援通過https協議向遠程存放庫提交。無論如何,為了提高通用性,應該先複製,修改之後,再提交。
[Team Explorer]/{下拉式清單}=未同步提交/,如果項目是複製而來的,那麼直接點擊{傳出提交}/{推送},可以利用複製步驟中儲存的憑據進行一次提交。如果不是,那麼這裡需要輸入一次憑據。
將全新的方案納入本地Git存放庫
[方案總管]/{解決方案}>>{將解決方案添加到原始程式碼控制}/,呼出[選擇原始程式碼控制]視窗,選擇其中的{Git}。
[方案總管]/{解決方案}>>{提交}/,這裡會提交到本機快取。
提交更改到遠程存放庫同樣是適用的。
分支管理
[Team Explorer]/{下拉式清單}=分支/,在這個介面中Visual Studio把分支的管理簡化到了極致。基本懂得“分支”是什麼意思的童鞋都應該會使用,就不贅述了。
總結
追蹤字元曆史是適用的,而提高目的性更有實際意義。
Visual Studio內建的Git工具只提供了對https協議的支援,而且閹割掉了許多高大上的延展性。然而,如果僅僅就集中精力編寫原始碼而言,仍然是適用的。
原始程式碼控制的精髓在於分支與合并。這可能是Visual Studio之外的工程。
不建議安裝系統全域的Git工具。最好能用專用的Shell工具(Cygwin、Gentoo-prefix-interix等)來進行進階操作。這樣不僅可以避免額外的複雜性,而且可以較好地控制每使用者環境變數,甚至能夠獲得更多可愛的特性。
得益於Visual Studio強大的外掛程式社區,可以加裝具有完整功能的Git外掛程式。內建用慣了反而喜歡內建的簡潔,這實在只是個習慣問題
ps:llorch寫這一系列部落格的目的在於穩固編程技能的基礎,今天的討論是為了明天的不討論~。隨著原始程式碼控制的討論陸陸續續寫完,也即將進入尾聲。llorch會以對程式集的討論結束這一系列部落格,而後專註於“好玩”的內容上去。
感謝大家的關注和支援!!
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
原始程式碼控制--llorch的Visual Studio基本教程(四)