26

私は最近 Erlang を発見し、現在いくつかのチュートリアルに取り組んでいます。今では、趣味のプロジェクトとして実際に何かを実装することを楽しみにしています。私は別のチャット サーバーにはあまり興味がありません。もっと面白いものをコーディングしたいと思います (はい、これはかなりあいまいな用語であることは承知しています)。

助言がありますか?

編集: プロジェクトは、できれば Erlang の強み (同時実行性、分散) を強調する必要があります。

4

7 に答える 7

23
  1. Twitter フィードをリアルタイムで検索し、誰でも Web フロント エンドから検索できる分散システムを構築します。

  2. 分散ファイル システムを構築します。このファイル システムのベースとして分散 B*Tree または B+Tree を実装します。アーランでやってください。

  3. 手順 2 で構築した分散ファイル システムの上に、分散キー バリュー ストアを構築します。

  4. キー値ストアの上に分散 Web インデックス (分散 Web 検索エンジンで使用される) を構築します。

  5. 分散リンカーをビルドします。高度なビルド自動化により、分散ビルドや分散処理のリモート エージェント処理が提供されます。

  6. ゲーム/プレーヤーの状態の分散ストレージとユーザー リクエストの分散処理に依存する MMORPG バックエンドを構築します。

于 2012-06-01T04:57:57.077 に答える
15

自分用に、単純なサーバーを作成することを検討してください。たとえば、日付/時刻のリクエストを処理するものや、少し手の込んだものですが、静的コンテンツのみを処理する HTTP デーモンです。

Erlang の最も優れた点は、同時実行性を処理する方法です。それを行使します。

于 2008-12-20T19:06:35.157 に答える
10

Project Eulerですね。

于 2008-12-20T15:58:13.927 に答える
10

私の大量の ToDo リストから、良い学習練習になると同時に、erlang コミュニティ全体に役立ついくつかのことを以下に示します。

  • 使用可能なすべてのキー/バリュー ストアをプロファイリングします。

    • さまざまな K/V ストアの挿入、検索、削除、検索時間をテストするためのライブラリを作成する
    • 人々が実行できるベンチマーク スイートを作成する
    • ets、dets、proplists、gb_trees、dict、orddict、redblack trees、bdb、tokyocabinet などで動作するようにします。
    • きれいなグラフを作成する
    • 誰のマシンでも簡単に更新、貢献、実行できるようにする
  • 名前付きパラメーターを使用する新しい io_lib:format ルーチンを作成します。

    • io_lib:nformat("こんにちは~{名前}様~n.", [{名前, "ボブ"}]).
    • これは、フォーマット文字列の言語が変更されたときにパラメーターの位置が変更された場合の国際化に役立ちます。
  • erl -make を拡張 (make.erl)

    • コード パスの追加を許可します (これにより、erl -pa LibraryPath -make を実行する必要がなくなります)
    • それらの動作を実装するモジュールの前に、動作モジュールをコンパイル/ロードします
    • 階層モジュールを正しく処理する (特に出力パス)
于 2008-12-20T16:24:04.873 に答える
8

これはあなたの質問に正確に答えるものではありませんが、Erlang で書かれた興味深い無料のオープンソース プロジェクトを探しているなら、間違いなく CouchDB をチェックしてください。ウェブサイトから:

Apache CouchDB は、RESTful HTTP/JSON API を介してアクセスできる、フォールト トレラントでスキーマフリーの分散型ドキュメント指向データベースです。他の機能の中でも特に、双方向の競合検出と解決を備えた堅牢な増分レプリケーションを提供し、デフォルトのビュー定義言語として機能する JavaScript を備えたテーブル指向のビュー エンジンを使用してクエリとインデックスを作成できます。

CouchDB は Erlang で記述されていますが、HTTP 要求を行う手段を提供する任意の環境から簡単にアクセスできます。さまざまなプログラミング言語や環境でこれをさらに簡単にするサードパーティのクライアント ライブラリが多数あります。

詳細については、CouchDB の Web サイトを参照してください。ハッピーコーディング!

于 2008-12-20T15:31:25.120 に答える
4

あなたが理解していて気に入っている、erlang にないものを見つけてください。私は etap でそれを行いましたhttps://github.com/ngerakines/etap/現在、ニックが管理を引き継ぎ、EA ゲームで内部的に使用されています。作るのは楽しかったし、以前のポスターのようにリアルなものだったので、それに取り組んで現実世界の問題に対処することを学びました.

于 2009-01-03T21:31:15.467 に答える
3

ファイルのインデックス作成/検索システム。これはイントロプロジェクトで行われていましたが、私は別のものに切り替えました。

動作するようになったら、インデックスをmnesiaに移動し、他のノードに分散してネットワークインデックス全体を作成します。

于 2008-12-22T17:05:50.373 に答える