初心者にとって、小型のオープンソースプロジェクトは理解や学習がしやすいものです。では、現在学ぶ価値のある小型オープンソースプロジェクトにはどのようなものがあるでしょうか?この記事では、知乎でユーザーが推薦したいくつかの優れた小型プロジェクトをまとめました。コードは基本的に5000行以内なので、興味のある方は研究してみてください〜

5461b52185b80

1、SeaJS
Sea.jsはCommonJS仕様に準拠したJavaScriptモジュールロードフレームワークであり、JavaScriptのモジュール化開発とロードメカニズムを実現します。Sea.jsはシンプルで自然なコードの記述と整理方法を追求しており、コードは非常に簡潔です。

2、Koa
Koaは次世代のNode.js向けWebフレームワークです。Expressチームによって設計されました。より小型で、より表現力に富み、より信頼性の高いWebアプリケーションとAPIの開発基盤を提供することを目的としています。

3、pssh
psshはOpenSSHツールの並列バージョンを提供します。特に、多数のマシンへの接続を制御する必要がある状況に適しており、並列バージョンのssh、scp、rsync、killコマンドを含みます。このプロジェクトはPythonで書かれており、コードは明確で簡潔、データ構造の定義も非常に明確で、読んだ後には感心することでしょう。

4、grep-at-point
コードを書いているとき、ある関数/クラス/変数がどこで使用されているかを確認したいことがあります。このプロジェクトはemacs lisp言語で書かれており、プロジェクトディレクトリ配下のすべての拡張子のファイル内で、現在カーソルがある単語を検索できます。

5、compile-make
このプロジェクトは、emacs内でのワンキーコンパイルのニーズを実現します。プロジェクトディレクトリ内でMakefileファイルを探し、makeコマンドを実行してコンパイルします。言語:emacs lisp;コード行数:19。

6、sigslot
非常に簡潔なsignal slotの実装で、クロスプラットフォーム対応です。このソースコードは2000行以上ありますが、その大半は異なる数のパラメータに対応するためのテンプレートコードであり、実際の内容は1000行に満たないです。
Gtalkソースコード解析:sigslotの紹介

7、UCOS
uC/OS II(Micro Control Operation System Two)は、ROM上で動作可能な、カスタマイズ可能な、プリエンプティブなリアルタイムマルチタスクカーネルです。移植性が高く、マイクロプロセッサやマイクロコントローラに特に適しており、多くの商用オペレーティングシステムと同等の性能を持つリアルタイムオペレーティングシステム(RTOS)です。

8、SQLite
SQLiteはACIDに準拠したリレーショナルデータベース管理システムであり、比較的小さなCライブラリに含まれています。D.RichardHippによって設立されたパブリックドメインプロジェクトです。SQLiteはデスクトップデータベースとしても使用できます。

9、thttpd
thttpdは、小型でシンプル、移植性が高く、高速かつ安全なHTTPサーバーです。

10、Boa Webserver
boaは小型のWebサーバーで、さまざまなプラットフォームで使用でき、組み込み分野でよく見られます。

11、C4
4つの関数で実装されたCコンパイラで、約500行です。基本的にかなり完成されており、自分自身をコンパイルできます。

12、GLib
GLibは、ツリー、ハッシュ、リストなど、多くの有用なCプログラムを含む開発パッケージです。GLibは以前はGTKツールキットの一部でしたが、現在は独立したプロジェクトとなっています。

13、tj/co
300行未満で、nodeの非同期コールバック構文を改善するためのものです。

14、shadowsocks
shadowsocksは、Pythonベースの軽量なSOCKSプロキシソフトウェアです(使った人にしかわからない良さがあります)。

15、aosabook
これは、素晴らしい本aosabookの続編である『500 Lines or Less』のソースコードです。各章のコードは500行を超えず、Webサーバー、クローラー、OCRなどの「大規模システム」を実装しています。各章は異なる分野の達人によって書かれています。著者リストを見ると、まさにソフトウェア分野の殿堂と言えます。

記事の出典:http://code.csdn.net/news/2822568