Post view

代碼管理系統

Hi, Randy你改了什麼代碼?

Oh, My God,我到底當時為什麼要添加這樣的代碼?我為了實現功能foo到底還添加了哪些東西?

Excuse me, Ayaka你用的標記系統是Mac OS特有的,我看不到?

Randy, Ayaka你們分別去做boo,foo功能?老闆,難道要我們把代碼拷貝拷貝去?

時代已經改變,導入CVS(代碼版本系統)勢在必行。目前流行的CVS系統有git和svn,git是原本為Linux kernel所開發的CVS。要知道Linux kernel可有上千個開發者阿!要怎麼讓他們協同作業呢?

我拿我以前開發的一個項目為例子好了。

Gstreamer是一個media構架,plugins-good是當中一個插件包。

原本代碼當中已經有人開發好了硬體解碼(hardware decoder),我現在要開發一個硬體編碼(hardware encoder)部分的插件。

我們通過圖形化界面來看看這個項目吧,其實一般管理是使用文字界面的。

Screenshot_at_2015-11-25_121337.png

哇!15,264次更改阿,你改好多次阿?沒有拉,其實大部分是另外的221位開發者改的。

我們來看看這些更改:

Screenshot_at_2015-11-25_121455.png

只有最上面的ayaka是我改,其實它們不是同一天改的,而且開發順序也並非如此,其實是和別人更改交錯起來了。

我是為了給別人review,突出功能所以才把他們放到上面去的。

我們來看看幾個典型的例子:

1.修改別人的工作

Screenshot_at_2015-11-25_122324.png

原來的數據結構是為decoding設計的,不過我覺得encoding和decoding都可以用,所以就重命名它,並且把使用他的地方統統改了。

紅色的是原來的部分,綠色是修改後的部分。它們會顯示出原地比較的結果。

2.修正錯誤,並添加新文件

Screenshot_at_2015-11-25_122355.png

原本的代碼有一處錯誤,我這次修正了。

下面那個文件是了這次主要文件,這個文件是新文件,在原來是不存在的。所以全部都是綠色,沒有紅色。Screenshot_at_2015-11-25_122404.png

另外,您主要到上面那個淺藍的部分了嗎?那個是本次更改說明。

我們可以把每個功能分開來做,以後可以快速查出哪次出包了。

git工具可以在Windows,Linux,Mac OS,FreeBSD上使用,具體使用方法,請參考手冊。

ayaka 2015/11/25 1 1374
Comments
Order by: 
Per page:
 
  •  蘇言霖: 
     

    你說「現在軟體開發無一不用這種方式管理代碼」確實是這樣沒錯。沒有程式設計者還在用「土法煉鋼」來管理高達幾萬行、幾百萬行以上的龐大程式碼。

    在App Store搜尋GIT就會看到最多人使用,也有4.5顆星好評的SourceTree。

    sourcetree001.jpg

    這套SourceTree可以免費下載使用。當然我早就有用過了,還有幾個類似的原始碼開發管理工具,但其實大同小異。我發現他們全部還是依靠「GIT指令」,擺明了只不過是Linux的Mac版(當然也有Windows版)最後決定是「永遠謝謝免聯絡」!列入拒絕往來戶!

    sourcetree002.jpg

    我提供的BBEdit,如果你覺得用不習慣,太過簡陋,可以不使用,也不用花時間研究BBEdit。我說過,你可以用你慣用的程式編輯工具。但最終必須遵守我的修改程式碼原則。

    事實上就算是你看到的BBEdit,對我來說還是太過複雜,很多根本用不著,不需要的功能都全部加上去!這就像是Word與整套Office系列。早期的Word非常簡單,後來就不斷的增加一堆不必要的功能,甚至到了Office 2010連整個介面都大改版,更不用說之後的Office 2013、Office 2016!

    對我來說,Office 95、98以後的版本,幾乎都是增加一堆用不著的垃圾功能。雖然說我用不著,不表示別人不需要。但就算是Word至少微軟可以提供真正的「專業版」與「簡易版」兩種版本讓user可以選擇,但實際上並沒有。

    那麼,簡單又免費的OpenOffice、LibreOffice就能滿足我的選擇?答案是沒有!這兩套雖然是Office的簡化版,但我只要一個Word,其他很少用到的通通都不要,也就是說應該要分成3-4個小程式,而不是全部集中變成一個大程式。更不幸的是,OpenOffice、LibreOffice根本還是以Linux為主!只不過另外修改介面對應Windows與Mac而已。難用的東西依舊難用!

    當然,在開發PHP程式碼的時候,也會需要「PHP IDE」這種可以直接編輯程式、逐步執行、除錯、監視變數等開發用的工具程式,如果你需要的話,你也可以使用。但Mac上幾乎都是付費版,免費版過於簡陋,我想你也不會想用。當然,你要用Windows版或Linux版的IDE來開發PHP我也沒意見。只要你用的順手、方便即可。

    但我個人是連「PHP IDE」都不想用!理由非常簡單,那些Mac版本的整合環境工具都非常複雜難用!(也試用過付費版)簡單的說,你看到的「支援RAW上傳、下載」的整個功能,以及整個「EXIF」模組,我是只用BBEdit寫出來的。

    回到GIT這種東西。對於「管理高達幾萬行、幾百萬行以上的龐大程式碼」+「指令列愛用者」來說,會覺得非常簡單好用,修改了哪些程式碼,有完整的編輯史列表(這也沒什麼Word、PowerPoint等也有協同編輯,一樣有版本管理功能)。

    但是對我來說,只要是「指令列」的東西,全部都「拒絕往來」!雖然說SourceTree有完整的圖形介面。

    再者,我也沒有「管理高達幾萬行、幾百萬行以上的龐大程式碼」需要管理!把已經相當複雜的Dolphin程式碼放到一套更加複雜的「原始碼管理工具」裡面,程式碼複雜化,我還是用「土法煉鋼」還比較實在!

    但我並沒有強迫你也要用BBEdit的意思,你可以用你習慣在Windows或Linux的工具,不一定要用Mac版本的工具(除非該工具正好有Mac版,而且介面完全相同)。你也可以用你愛用的GIT管理工具來管理程式碼。如果你能完成多項工作,甚至是第三階段、第四階段的工作,甚至可以把你升級為「副站長」。但也還是請你按照我的「土法煉鋼」結果,把加上//BNW註解的程式碼交給我。

    或許哪一天,等我無法再管理網站,把整個網站交接給你的話,那時候你想要用任何方式,我都不會過問。只要網站能正常使用,正常升級版本即可。

     
     2015/11/25 
    0 points
     
Rate
0 votes
Post info
ayaka
工作希望
2015/11/25 (3243 days ago)
Actions