使用碼雲和博客園學習簡易教程
有了《使用開源中國(碼雲)托管代碼》和《使用博客園進行學習》, 不少同學可以使用使用碼雲和博客園來學習了,也有不少同學還是誤用。我以一周的學習過程為例,寫一個step by step的教程。
我們以Linux(Ubuntu)環境下的學習為例,需要你掌握別出心裁的Linux命令學習法中的內容。
首先在Ubuntu中安裝配置git,user.name中最好有學號信息:
sudo apt-get install git
git config --global user.name "20155200rocedu"
git config --global user.email "rocedu@qq.com"
我在碼雲上建立了課程組織BESTI.IS.Java2017,大家可以在組織中創建自己的學習項目:
現在助教和課代表已經是管理員了,參考2016-2017-2 《Java程序設計》課程學生博客和代碼托管鏈接盡快把同學們加為“開發者”:
我們可以在組織中通過點擊“新建項目”建立自己的學習項目了,項目名稱中一定要體現學號信息,語言和.gitignore都選擇Java:
建好的學習項目如下圖所示:
我們在Ubuntu中通過git clone https://git.oschina.net/bestiisjava2017/ljp20155200_JavaProgramming.git
來克隆我們的學習項目,
需要注意的是,項目鏈接有兩種方式HTTPS和SSH兩種,我們選擇復制HTTPS的鏈接,這樣不需要公私鑰對,只要碼雲的用戶名和口令就行了。想用SSH的可以自己學習。
如上圖,參考《Java學習筆記(第8版)》學習指導建立教材學習項目目錄,我們先使用mkdir src
,mkdir bin
建立src和bin目錄。我們通過vi src/Hello.java
或atom src/Hello.java
編輯代碼,輸入以下程序:
1 public class Hello {
2 public static void main(String []args){
3 System.out.println("Hello Java World!");
4 }
5 }
下面我們編譯運行Hello.java程序。最簡單的辦法是到src目錄中使用javac Hello.java
,Java Hello
進行編譯和運行。這時Hello.java和Hello.class都在src目錄中,如下圖我們通過javac -d bin src/Hello.java
把Hello.class產生在bin目錄中,通過cd bin
,java Hello
,cd ..
來運行Hello.class 並保證工作目錄是項目根目錄:
代碼編譯運行沒有問題了,我們通過git add .
,git commit
把剛才的工作納入版本控制,通過"git push"把我們的工作推送到碼雲上。
到碼雲上 我們可以看到本地的代碼和腳本已經上傳到網站上了。
編譯運行我們可以通過vim run.sh
寫一個腳本簡化,以后可以使用Ant,Gradle等讓編譯自動化。
#!/bin/sh
javac -d bin src/Hello.java
cd bin
java Hello
cd ..
注意要用chmod +x run.sh
給腳本加上執行權限。腳本測試沒有問題,我們使用git add .
,git commit -m "add run script"
把腳本納入版本控制中。
我們使用vim src/Hello.java
編輯Hello.java代碼,加入一行打印己學號姓名的代碼:
1 public class Hello {
2 public static void main(String []args){
3 System.out.println("Hello Java World!");
4 System.out.println("Hello 20155200 rocedu!");
5 }
6 }
通過腳本進行編譯、運行的結果如下:
沒有問題,我們使用git add .
,git commit -m "print student id and name"
把新加代碼提交到版本控制系統中。
這樣,參考積極主動敲代碼,使用JUnit學習Java中的學習方法就可以進行實踐學習了。遇到問題參考《使用JDB調試Java程序》,《Intellj IDEA 簡易教程》進行調試。
我們每周的學習要通過在博客園發博客,碼雲 也是博客寫作,預覽的好平台,同時也把博客的寫作納入了版本控制。
我們先運行mkdir docs
,touch docs/java_homework_week1.md
創建docs目錄和空文件“java_homework_week1.md”。
我們通過git add .
, git commit -m "init docs with empty java_homework_week1.md"
把作業博客納入版本控制。
我們通過git push
把作業推送到碼雲 上:
在碼雲 上我們看到了docs文件夾:
點擊docs文件夾,打開“java_homework_week1.md”,點擊“編輯”就可以寫作業了:
為了規范作業,我在2016-2017-2 《Java程序設計》教學進程中給出了作業模板的Markdown 內容,作業提交要嚴格按模板提交,我們先把模板拷貝過來,並進行提交:
提交說明是“拷貝作業模板”,這等價於 git commit -m "拷貝作業模板", 點擊“提交到master”按鈕。
要養成寫一段完整文檔提交一次的習慣。
作業模板包含以下要素,不要遺漏:
- 教材學習內容總結
- 教材學習中的問題和解決過程
- 代碼調試中的問題和解決過程
- 代碼托管
- 上周考試錯題總結
- 其他(感悟、思考等,可選)
- 學習進度條
- 參考資料
我們給幾個簡單的例子,點擊“編輯”:
首先把標題中的“學號”改成自己的學號,方便老師識別作者,然后把“第X周”改成“第一周”
要注意模板中“教材學習內容總結”,以前不少同學寫作業在此浪費了大量時間,寫總結要:
- 盡量簡單的總結一下本周學習內容
- 盡量不要抄書,浪費時間
- 看懂就過,看不懂,學習有心得的記一下
這樣才能體現差異化,當然你也可以預測老師會考什么,在此列出來備查,一定不能長篇大論,內容卻千篇一律。
比如我們總結出了三個要點,在提交信息中寫“完成學習要點”,然后點擊“提交到master”按鈕。
我們的學習模板參考了鄒欣老師(博客,微博,豆瓣)設計的進度條,進度條用好對學習的促進作用非常大的,實踐一年來效果不太好,主要各種原因造成學習數據亂填。
為此我設計了一節“代碼托管”,要求學生有兩個截圖:
- 代碼提交過程截圖:運行 git log --pretty=format:"%h - %an, %cd : %s" 並截圖
- 代碼量截圖:運行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 並截圖
后來我寫了個腳本直接把這個過程自動化了:
#!/bin/sh
clear
echo "//==========Today====================================="
echo "code summary infomation:"
find . -name "*.java" -mtime 0 | xargs cat | grep -v ^$ | wc -l
echo "documents summary infomation:"
find . -name "*.md" -mtime 0 | xargs cat | grep -v ^$ | wc -l
echo ""
echo "//==========This Week================================="
echo "code summary infomation:"
find . -name "*.java" -mtime -7| xargs cat | grep -v ^$ | wc -l
echo "documents summary infomation:"
find . -name "*.md" -mtime -7| xargs cat | grep -v ^$ | wc -l
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-0 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-1 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-2 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-3 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-4 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-5 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-6 days"`
echo ""
echo ""
echo "//==========All================================="
echo "code summary infomation:"
find . -name "*.java"| xargs cat | grep -v ^$ | wc -l
echo "documents summary infomation:"
find . -name "*.md"| xargs cat | grep -v ^$ | wc -l
echo "commit history:"
git log --pretty=format:"%h - %an,%ci: %s "
在“代碼托管”部分貼這個腳本的截圖就可以了。可以看出自己每天,本周,這學期寫了多少文檔,多少代碼。
“代碼托管”的鏈接要改成自己的學習項目鏈接:
在碼雲上寫的文檔,要同步到自己的電腦上,只要運行git pull
就行了。
我們運行一下"statistics.sh"腳本,我們可以看到自己的學習進度:
每周作業中要對這個結果截圖,使用博客園的上傳圖片功能可以生成Markdown圖片鏈接
我們把這個鏈接插入碼雲上的作業博客中:
完成了本周學習任務,我們可以通過“一鍵復制” 把作業博客的內容復制,然后去博客園班級中去提交作業了.
最后,完成本周的學習任務,一定要運行git push
就可以把本周學習成果推送到碼雲上。
總結一下我們課上的git使用流程是:
-
在碼雲上建立教材(個人項目,團隊項目)項目目錄
- 使用git clone https//... 克隆學習項目
-
作業博客可以在碼雲上完成,納入版本控制
- 使用git pull可以把碼雲上的文檔同步到本地PC上
-
平時學習,代碼要在編譯,運行,測試沒有問題后進行如下操作
- git add .
- git commit -m "提交信息"
-
周末提交作業前
- git push
git commit -m "提交信息"中提交信息的寫法參考《Commit message 和 Change log 編寫指南》,最重要的一點是「One Thing One Commit」,不要寫了一周的代碼,周末提交一次,所有代碼的msg都是「第XX周代碼」
更多學習參考
一定要注意,這個教程教你如何在第一周就可以使用git和博客園來完成學習,git的使用和背后的原理還要多多學習。
上課學習流程參考代碼驅動的程序設計學習.
代碼推送參考Ubuntu下git的安裝與使用
團隊項目參考使用GitHub進行團隊合作.
歡迎關注“rocedu”微信公眾號(手機上長按二維碼)
做中教,做中學,實踐中共同進步!
-
版權聲明:自由轉載-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0
如果你覺得本文對你有幫助,請點一下左下角的“好文要頂”和“收藏該文”