Giter Site home page Giter Site logo

moyo's Introduction

moyo

概要

MOYOはErlang用のユーティリティモジュール集です。

依存関係

  • OTPのバージョンが18.0以上である必要があります。

ビルド方法

ビルドツールには rebar3 を使用しています。 ※ ただし通常はmakeコマンド経由でrebarが実行されるので、自分で叩く機会は少ないです。

# リポジトリ取得
$ git clone [email protected]:dwango/moyo.git
$ cd moyo

# コンパイル
$ make compile

# ユニットテスト
$ make eunit

# 型チェック
$ make dialyze

# reloader(更新モジュールの自動読み込み)付きでErlangシェルを起動する
# => Erlangシェルを立ち上げた状態で, ソースの修正&コンパイルを行うと, 該当モジュールが自動で更新されます
$ make start
> moyo_binary:to_hex(<<"abc">>).
<<"616263">>

他のプロジェクトに組み込む方法

rebar3を使った一般的なライブラリと同様の方法で組み込みが可能です。

具体的にはプロジェクトのrebar.configに以下のようなエントリを追加すると、moyoが依存関係に追加され、リポジトリの取得やビルドがrebar3コマンド経由で行えるようになります。

{deps,
 [
   {moyo, ".*", {git, "[email protected]:dwango/moyo.git", {tag, "対象バージョン"}}}
 ]}.

モジュール/関数ドキュメント

各モジュール、各関数に関するドキュメントについては以下のURLより参照して下さい。

doc/README.md

運用方針

  • コード規約 は以下を参照
  • 修正はプルリクで 反映させる。
    • 修正した場合はプルリクを投げてリポジトリに反映させることとする。
    • 修正時は修正用ブランチfeature/XXXを作成して, そのブランチで作業をする。 (XXXには作業内容を入れる。複数単語の場合-で繋ぐ)。
    • merge先はmasterブランチにする。
  • テストを書く。
    • カバレッジが100%になるように
      • Erlangにはユニットテストフレームワークとして EUnit が存在する。 (実行: % make eunit)
      • EUnitを実行するとカバレッジページ(htmlフォーマット)が生成される。 プルリクはこのカバレッジを100%にして投げるようにする。
        • ただし100%にすることが困難な場合はプルリクに明記すればその限りではない。
    • dialyzerのチェックをパスするように
      • dialyzerはErlangの型の静的解析を行ってくれるツール (リストを期待する関数に整数を渡してたりすると怒ってくれる)
      • make dialyze を実行してエラーがでないことを確認する。
  • ドキュメントは必須
    • exportしている関数には必ずドキュメントを付ける。
      • edoc準拠(詳細は後に記述予定)
      • 例外あり(callback関数等)

バージョン管理方法

  • バージョンはv1.2.3という形でtagを付けることにより管理する。
    • v: 接頭辞として固定
    • 1: メジャバージョン
    • 2: マイナバージョン
    • 3: ビルドバージョン
  • masterに 修正が加えられる毎に ビルドバージョンを増加させる。
    • 後方互換性がない修正が入る場合には マイナバージョン を増加させて、ビルドバージョンは0にリセットする。

その他

  • 特になし

MOYOは、アフリカ東部で使われるスワヒリ語で、心、魂、精神などを意味します。

Copyright (c) 2013-2014 DWANGO Co., Ltd. All Rights Reserved.

moyo's People

Contributors

sile avatar kouchangdw avatar kyos3 avatar kitowadaa avatar kojingharang-dw avatar takahiro-yachi avatar dw-y-kubota avatar shokoss avatar yao2525 avatar

Watchers

James Cloos avatar Shohei Yasutake avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.