最課程階段大作業之01:使用SVN實現版本控制
版本控制在友軍那裡都是放在整個培訓的最後階段才開始講的,但我們打算放到SE階段。與其匆匆在專案實戰階段弄個半生不熟,然後進入實際工作中接受他人對你的懷疑,不如……早死早超生~~~。
可是,我們畢竟現在才剛學了Java一個月,程式碼都寫的不溜呢,甚至都不知道目前掌握的知識能做點撒實際有用的工作,怎麼就來個版本控制?版本控制是撒?
抄一段百科的版本控制解釋:版本控制是指對軟體開發過程中各種程式程式碼、配置檔案及說明文件等檔案變更的管理,是軟體配置管理的核心思想之一。
看到沒,版本控制是一種思想,但是程式猿不跟你講思想,跟你講實實在在的東西,所以,實現這個思想的一定是個實實在在的工具。在最課程的整個學習過程中,商業專案實戰階段程式碼的版本控制工具,我們使用
為什麼要現在就開始體驗版本控制呢?因為我曾經詢問過很多學員,大家對於畢業後軟體公司的真實開發流程很茫然。而最課程想要帶你做的,就是提前適應真實的開發,讓學員從儘可能早的時刻,就參與到需求管理、版本控制、同行review、解決程式碼衝突、移行、測試、釋出的整個過程。
我們在培訓班學習,重點絕不應該僅僅是編碼知識(那還不如去自學看視訊),而應該是如何使用學到的知識應用到真實的開發中。
來提前感知下,整個開發流程大概是個什麼樣子的吧
軟體開發中的精簡併行過程(SPP)
以上整個
不管怎麼樣,讓我們先首先學習這整個過程中最重要也是最基礎的一環:版本控制吧。
1. 什麼是版本控制
上文已經簡單介紹過了,現在我們用白話來再介紹一下它有什麼用:
首先,能將程式碼提交到伺服器,這樣本機即使被炸掉了,或者你突然離職消失了,只要伺服器沒被老闆娘砸掉(什麼,有這種事情?是的,回頭給你們講講我一個客戶的故事),公司的程式碼就都還在;
其次,能將程式碼回退到以前的任何一次提交上。這是什麼意思呢?比如,你一個月前寫了一個功能:讓
要知道,程式碼在本機可是已經覆蓋了,這個時候,版本控制管理工具就可以發揮作用了,你可以將程式碼回退到歷史上任何一個時刻。
這裡來個小插曲,要想不被產品經理欺負,可以嘗試準備如下工具:
最後,版本控制的另一個重要功能是,任何稍微大型點的軟體,都不可能是一個人完成的,所以,我們需要一個工具將團隊成員的程式碼合併到一起,看上去像是一個人寫的一樣。所以,程式碼的提交和合並也是我們真實開發的日常。
好了,暫時對於初學者來說,就講到這吧。目前夠用了。
2. SVN介紹
3. Svn伺服器端安裝
下載回來大概長這樣
雙擊安裝
如上選擇,next
選擇標準安裝
注意哦,預設是不需要https的,如果有同學手賤想嘗試https,也是可以的。但我牆裂建議你不選擇https,因為……在區域網中,沒撒特別的意義。而且,在整個學習的過程中,還要求其他同學連線到你的原始碼伺服器上,選擇了https的話,有些同學的電腦可能會連不上你的電腦。
安裝完畢在系統服務裡有svn的服務,如下:
伺服器端在公司裡,是真的安裝在一臺伺服器上的。在我們的學習過程中,那就跟客戶端一樣安裝在你自己的學習機上就行了。
4. Svn客戶端安裝
客戶端大致長如下這樣
我們一路next下去就行,沒什麼特別需要注意的地方。
5. 配置svn server
開啟伺服器管理介面,新增使用者,按提示來,新增上你自己的使用者名稱,比如:baobao
倉庫有了,就要給這個倉庫分配許可權,因為,你可不想讓任何人都接觸到程式碼。來吧,給你剛建立的使用者新增程式碼的讀寫許可權吧:
完畢。
6. 訪問svn
訪問svn其實就跟訪問網站一樣,也是有一個地址的,但是地址怎麼得到呢?看下圖
然後,在本地任意資料夾中點右鍵
貼上剛才的地址,回車:
你就可以看到下面的介面了
這裡預設已經建立了3個目錄,每個目錄是什麼時候,我們會在專案管理的時候講到,這裡,我們只需要記住,我們所有的程式碼都放到trunk中就行了。
7. Elicpse外掛安裝
那接下來要怎麼把程式碼放到伺服器上呢?一種方式是直接拖動檔案到上面的視窗中去,但是我們平時開發是在IDE中的(Ps:目前是eclipse,未來是idea)。那能不能直接從eclipse中提交程式碼到伺服器呢?
當然是可以的。
但是,要完成這個功能,我們就需要給eclipse裝外掛。這個外掛叫subversive。下載地址在:
那怎麼安裝呢?首先是解壓,然後把下面兩個目錄複製到eclipse對應的目錄中去就可以了。
然後,記得重啟elicpse。
8. SUBVERSIVE CONNECTOR 安裝
但是,事情並不像我們想象的那麼簡單。要說怎麼java程式設計師這麼苦逼呢。當我們以為可以使用svn的時候,我們還需要一個connector,下載地址在:
由於我們的subversive是3.0,故下載這個
同樣,安裝也是執行目錄copy
重啟eclipse,然後檢查下:
如果像上圖一樣,該有的都有了,那麼我們的安裝就成功了。
9. 程式碼提交
首先,像下圖那樣進行選擇
然後,在該頁面new一個倉儲,輸入svn地址,得到:
在trunk下建立一個資料夾,
Ps1,這個資料夾最好和咱們在eclipse中建立的專案名一致);
Ps2,我示例中的專案叫:parent;
回到專案檢視,在專案上share project
接著
注意路徑選擇,路徑的命名首先要定位到trunk下,然後再加上專案的名
接下來,是提交程式碼。在專案名上面,右鍵->team->commit,出現如下介面
首先,讓我們寫上註釋。注意,註釋寫的越詳細越好,把你這次提交完成了什麼功能都寫上,免得我們將來檢視歷史的時候,不知道本次提交是幹什麼用的。
其次,我們是提交全部檔案嗎?顯然也不是,除了程式碼檔案外,一些配置檔案或者附屬檔案我們不應該提交上來。
但是,每次去提交的時候,選擇提交的檔案太麻煩了,那有沒有一種一次性批量忽略的辦法呢?當然是有的,如下圖:
要忽略這幾個字尾:.settings,.project,.classpath
提交後,在eclipse的專案上,會有受控標識,類似如下:
10. 檢視歷史
在專案上右鍵->team->show history,看看會出現什麼?
好了,以上是我們為了完成第一次大作業所要儲備的版本控制的知識。更多的功能,等我們慢慢後期挖掘中。
華麗分割線
===========================================================
1:最課程JavaEE+網際網路分散式新技術開班進行中,來http://www.zuikc.com來報名吧;
2:更多技術文章和開班資訊請加入,QQ群:
3:本文所涉及要下載的軟體可以進群向老師索取;
4:SVN的教學視訊可以進群向老師索取;
相關推薦
最課程階段大作業之01:使用SVN實現版本控制
版本控制在友軍那裡都是放在整個培訓的最後階段才開始講的,但我們打算放到SE階段。與其匆匆在專案實戰階段弄個半生不熟,然後進入實際工作中接受他人對你的懷疑,不如……早死早超生~~~。 可是,我們畢竟現在才剛學了Java一個月,程式碼都寫的不溜呢,甚至都不知道目前掌握的知識能做點撒實
最課程階段大作業06:U度節能平臺控制系統
除了網際網路專案,當今社會還有一個概念非常流行,那就是:物聯網。什麼是物聯網?物聯網是通過感測裝置,按約定的協議,把任意物品與網際網路相連線,進行資訊交換和通訊,以實現智慧化識別、定位、跟蹤、監控和管理的一種網路概念。物聯網是網際網路的一種延伸,將原本使用者與使用者的互動,延伸和擴充套件到物品與物品之間。
最課程階段大作業04:毫無用處的學生管理系統
前面幾期就業班學生知道,我在做簡歷指導時說過:如果你的簡歷中專案經歷寫的是“學生管理系統”、“**辦公自動化”這樣的系統,那麼就等於告訴面試官:你沒有專案經驗。 對於面試找工作,學生管理系統這樣的專案簡直毫無用處,甚至是減分項。如果你一定要說你實現了一個NB的學生管理系統,那麼就需要拿出你在GITHUB上的
最課程階段大作業03:用半天實現淘寶首頁?
每一個在最課程學習的學生,到了最後幾乎都會來問我一個問題:老師,是不是實際的開發中,都會有一個前端開發工程師,把靜態頁面做好了,然後才交給我們後臺開發啊? 我只能說:你想多了。 我知道你這麼問的意思,HTML+CSS+各類前端框架學習起來太繁瑣了,是不是就沒有
最課程階段大作業02:實現自己的利息計算器
上文描述了版本控制後,此篇才真正到了作業本身。我們第一次大作業要完成的是一個利息計算器。 利息計算器或者說融資計算器有自己的圖形化版本,每一個學習的同學如果想要直觀的瞭解下功能,可以管自己的老師要或者加文末的QQ群向老師索取。不過我們今天要實現的是非圖形化的介面,是CS版本的,簡
最課程階段大作業05:汙水處理系統以及百度地圖
吃著火鍋唱著歌,我們的課程已經進行了兩個月了,現在,我們終於有能力進行真正的軟體開發了。 往期學完課程面試歸來的同學,都知道有一句話:“面試造航母,實際工作擰螺絲釘”。 很慶幸的是,到目前為止,你已經掌握了大部分擰螺絲釘需要的知識了,這些知識就是:JavaSE+HTML+CSS+JavaScript+JQ
斯坦福深度學習課程cs231n assignment1作業筆記三:softmax實現相關
任務 實現向量化的損失函式 實現向量化的梯度計算 分析梯度與數值梯度的驗證 使用驗證集來選擇超引數 使用SGD優化方法 視覺化權重 理論知識 softmax損失函式 令W為權重矩陣,大小為D×C;x為輸入,大小為1×D;b為偏置項,大小為1×C。那麼模型的輸
斯坦福深度學習課程cs231n assignment1作業筆記二:SVM實現相關
前言 本次作業需要完成: 實現SVM損失函式,並且是完全向量化的 實現相關的梯度計算,也是向量化的 使用數值梯度驗證梯度是否正確 使用驗證集來選擇一組好的學習率以及正則化係數 使用SGD方法優化loss 視覺化最終的權重 程式碼實現 使用for迴圈計算SVM
面象對象設計6大原則之三:裏氏替換原則
c# 父類 之間 pre 如果 提升 lis 存在 全部 裏氏替換原則(LSP),The Liskov Substitution Principle 定義 所有引用基類的地方必須能透明地引用其子類的對象,即子類可以拓展父類的功能,但不能修改父類已有的功能。 也就是說在父類
面象對象設計6大原則之二:開放封閉原則
bug www 反轉 對象 方法 接口 下層 一個 影響 定義 一個軟件的實體,包括類、方法、模塊、應該對擴展開放,對修改關閉。 也就是說一個軟件的實體應該通過擴展的方式來修改變化,而不是修改已有實體源代碼。 開放封閉原則也是最基本需要遵守的原則,我們應該盡量保證系統的穩
面象對象設計6大原則之六:迪米特原則
可能性 也說 理論 依賴倒置原則 程序 可能 下層 優點 解決 迪米特原則(LOD),The Law Of Demeter,也稱為最少知識原則 定義 一個對象應該對其他對象有最少的了解。 也就是說一個類耦合和調用一個類應該知道的最少,它只關心被耦合和調用的類的公共方法
爬蟲大作業之廣商足球快訊(爬取足球新聞)
描述 brush slist white mat 完整 tps num pat 1.選一個自己感興趣的主題(所有人不能雷同)。 主題:爬取足球新聞相關信息 2.用python 編寫爬蟲程序,從網絡上爬取相關主題的數據。 3.對爬了的數據進行文本分析,生成詞雲。 txt
大作業之zabbix
.sql libevent -c inpu hash openipmi sqli web頁面 har 1、二進制安裝JDK(1.8):用於java-geteway上傳JDK到/usr/local/src/目錄下,解壓: [root@localhost src]# tar z
程式設計菜鳥到大佬之路:C語言程式(十二)
第十二天學習精要 遞迴初步 遞迴 一個函式,自己呼叫自己,就是遞迴。 # include <iostream> using namespace std; int factorial(int n) // 函式返回n的階乘 { if (n ==
程式設計菜鳥到大佬之路:計算機網路(一)
計算機網路概述 計算機網路基本概念 什麼是計算機網路? 計算機網路=通訊技術+計算機技術,即計算機網路是通訊技術與計算機技術緊密結合的 產物。 計算機網路就是一種通訊網路: 定義:計算機網路就是互連的、 自治的計算機集合。
python正則表示式大作業之模擬計算器(29行程式碼)
今天很開心,完成了一項艱鉅的作業,剛開始見到這個作業時我是有些懵逼的,一心想著用findall精準匹配,但是發現匹配後無法處理資料,後來看了點兒老師的思路——用search一個一個地匹配然後替換,然後
MongoDB最簡單的入門教程之四:使用Spring Boot操作MongoDB
Spring Boot 是一個輕量級框架,可以完成基於 Spring 的應用程式的大部分配置工作。Spring Boot的目的是提供一組工具,以便快速構建容易配置的Spring應用程式,省去大量傳統Spring專案的繁瑣配置。 MongoDB是一個基於分散式檔
程式設計菜鳥到大佬之路:演算法基礎(一)
第一天學習精要 列舉 完美立方 列舉:基於逐個嘗試答案的一種問題求解策略。 例題1:完美立方 題目描述 形如
程式設計菜鳥到大佬之路:C語言程式(五)
第五天學習精要 關係運算符和邏輯表示式 關係運算符 六種關係運算符用於數值的比較:相等 ==、不等 !=、大於 >、小於 <、大於等於 >=、小於等於 <=。 比較的結果是bool型別,成立則為true,反之為false。
程式設計菜鳥到大佬之路:C語言程式(六)
第六天學習精要 if語句 條件分支結構之if 語句 有時,並非所有的程式語句都要被順序執行到,會希望滿足某種條件就執行這部分語句,滿足另一條件就執行另一部分語句,這就需要“條件分支結構”。 依次計算表示式1、表示式2…只要碰到一個表示式i為真,則執行語