GitHub 上有哪些適合新手跟進的優質項目?

如題,請教各位大神,新手一開始應該看哪些項目比較好,剛上手,follow了幾個大神,但是倒騰一晚上,都覺得這些大神的項目太大了,不知道該從哪裡著手。想知道有沒有合適新手看的?或者說大神們剛上GitHub的時候都是fork的哪些項目?(c/c++, Python, Java都可以。其它語言如果覺得優質,也可以推薦一下)小弟先謝過了~


http://github.com/vczh/tinymoe

這是我寫的一個小語言,特點是所有的控制流都可以用函數來做,coroutine也可以用函數來做,而且用起來跟普通的語言一模一樣,而且寫起來都是一句一句的話,不像普通語言符號滿天飛。然後我還在我的博客http://www.cppblog.com/vczh 上連載文章(還沒寫完),來通過教大家實現tinymoe,學習編譯原理的基礎知識。

整個編譯器是用C++11和STL寫的,還可以作為C++程序的參考讀物


StoreDB - 一個能使你操作localStorage像操作mongodb一樣的javascript庫。

用它能在你寫網站demo或者單頁面離線webapp時極大解放你效率的東西。

高三學業繁忙,暫時不能快速迭代,歡迎大家加入這個有趣的項目。

https://github.com/djyde/StoreDB


我在開源中國上接觸到了一個叫JFinal的框架,簡潔、強大,也託管在Github上,我下面就直接把它在OSC上的介紹貼出來。

jfinal/jfinal · GitHub

JFinal / JFinal

JFinal首頁、文檔和下載

JFinal 是基於 Java 語言的極速 WEB + ORM
框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴展、Restful。在擁有Java語言所有優勢的同時再擁有ruby、
python、php等動態語言的開發效率!為您節約更多時間,去陪戀人、家人和朋友 :)

JFinal有如下主要特點:

  • MVC架構,設計精巧,使用簡單
  • 遵循COC原則,零配置,無xml
  • 獨創Db + Record模式,靈活便利
  • ActiveRecord支持,使資料庫開發極致快速
  • 自動載入修改後的java文件,開發過程中無需重啟web server
  • AOP支持,攔截器配置靈活,功能強大
  • Plugin體系結構,擴展性強
  • 多視圖支持,支持FreeMarker、JSP、Velocity
  • 強大的Validator後端校驗功能
  • 功能齊全,擁有struts2的絕大部分功能
  • 體積小僅218K,且無第三方依賴

以下是JFinal實現Blog管理的示例:

1:控制器(支持FreeMarker、JSP、Velocity、JSON等等以及自定義視圖渲染)

@Before(BlogInterceptor.class)
public class BlogController extends Controller {
public void index() {
setAttr("blogList", Blog.dao.find("select * from blog"));
}

public void add() {
}

@Before(BlogValidator.class)
public void save() {
getModel(Blog.class).save();
}

public void edit() {
setAttr("blog", Blog.dao.findById(getParaToInt()));
}

@Before(BlogValidator.class)
public void update() {
getModel(Blog.class).update();
}

public void delete() {
Blog.dao.deleteById(getParaToInt());
}
}

2:Model(無xml、無annotation、無attribute、無getter、無setter、new Blog()這行代碼也不是必須)

public class Blog extends Model {
public static final Blog dao = new Blog();
}

3:Validator(API引導式校驗,比xml校驗方便N倍,有代碼檢查不易出錯)

public class BlogValidator extends Validator {
protected void validate(Controller controller) {
validateRequiredString("blog.title", "titleMsg", "請輸入Blog標題!");
validateRequiredString("blog.content", "contentMsg", "請輸入Blog內容!");
}

protected void handleError(Controller controller) {
controller.keepModel(Blog.class);
}
}

4:攔截器(在此demo中僅為示例,本demo不需要此攔截器)

public class BlogInterceptor implements Interceptor {
public void intercept(ActionInvocation ai) {
System.out.println("Before invoking " + ai.getActionKey());
ai.invoke();
System.out.println("After invoking " + ai.getActionKey());
}
}


只放一個我寫的吧 -_- https://github.com/hit9/skylark


謝邀。以前有篇文章提到過閱讀源碼的動機(記得是侯捷),寫一下自己記得的:

1. 工作需要。比如需要修改開源軟體的某個地方然後馬上用,這種動機最強,但是用完之後就很快遺忘了

2. 興趣。比如長期使用開源軟體,某一天突然想看一下裡面的構造,於是深入進去。因為很熟悉軟體,所以能有所收穫。比如jQuery的代碼

3. 純粹的興趣。就是想看一下代碼。。這樣就需要選擇了。首先要會使用軟體本身,否則會被大量代碼淹沒。比如一個連JS都不太會的人,直接上手看jQuery就是找死了。找項目很重要,不是什麼代碼都值得看的

4. 做筆記。一個是代碼的大概構造(除了js這種打包的之外,優秀開源項目目錄都很清晰)。另一個是關鍵演算法和代碼的邏輯、數據流。

PS:優秀的代碼也不用全看,看自己感興趣的一部分。對編譯原理不熟的看Lua底層會吃力,但是上層API部分就可以看~


1. c/c++, Python, Java都可以,勸你還是框一個範圍,因為每個範圍都很大的。。。

2. Github上未必就好,每個人都有每個人的風格

3. Github還是以JavaScript居多

4. 你在項目中用到什麼就深入學習一下,不要停留在API而是深入去理解作者的代碼

5. 在用的時候發現不爽可以fork後pull request

6. 不過這沒幾年功底還是算了

7. 建議從stackoverflow開始

8. 如果英文不行,就從SG, CSDN開始

9. 都是這麼過來的


Python:參見Python漫遊指南中,Read Great Code 章節


http://python-guide.org


可以看看underscorejs 的原代碼,可以學習到很多東西,api的實現也不是很難,但是十分深入javascript語言本身的概念,所以如果你還是看不懂,說明你的javascript的理解還是比較淺。

如果是在是初學,可以看看一個叫做CodeCombat的項目,通過遊戲學習js編程。


建議看《STL源碼剖析》


Square Open Source


推薦下 自己的吧 redis admin,基於spring4與spring data擴展了 redis template 樓主可以一看究竟


Java的話,可以看junit


Node.js 開源框架,剛剛起步的項目:

myworld4059/Codekart · GitHub


有興趣的可以來參加reedmi/drp · GitHub,項目剛起步,希望共同參與


推薦閱讀:

如何在 Github 上找到適合自己水平的開源項目進行學習?
不會用Github是怎麼樣的體驗?
非程序員使用 GitHub 會有什麼障礙么?可以用來幹什麼?
Git將分支合併到master,有沒有辦法讓master不要產生分支中那些冗餘的commits?
GitHub的個人資料中,為什麼不提供性別選項?

TAG:代碼 | 開源項目 | GitHub |