読者です 読者をやめる 読者になる 読者になる

「実践 Erlang」講義用資料 まとめ

たけまるさんにご推薦いただき、とあるところで Erlang の講師をやることになったので資料を作るメモ

講義について

# 明日にでもまとめます

以下での補助事業の一部で「実践 Erlang」の講師を担当させていただくことになりました。

コミュニティから広島に Erlang を広めたいという話を伺い、
少しでもお役に立てればと言うことで快諾させていただきました。

平成21年度「地域経済情報化基盤整備補助事業」
ビジネスベースひろしま−3ESC−コンソーシアム(中国)
http://www.meti.go.jp/information/data/c90810dj.html

地域製造業に求められる「エレクトロニクス 化」を促進するために、高機能や新しいサービス を実現するソフトウェア開発を担う地域の中小 IT ベンダおよび係わる人材を育成する。また、 高度化・高付加価値のソフトウェアを提供する体 制を構築する事で、地域ものづくり産業との相互 連携を実現化する。

広島以外でも講義を考えているとのことでしたので、その時はよろしくお願いします。

# 一応講演料が頂けるらしいですが、会社の仕事としていくので自分には入りません:-P

講義日程等

講義時間は 3時限(4.5時間(270分))という中々ハードな内容です。
それを2回やるとのこと。

第一回目は 11/6 (金曜日)、第二回目は 12/4 を予定しているとのこと。

講義内容

資料公開の許可を頂きました。また実際の参加者からこんなのが聞きたい等の情報も頂きました。

以下の URL から取得可能です。Sphinx を使用しております。
http://bitbucket.org/voluntas/practice-main/overview/

Sphinx ? というかたは http://sphinx.shibu.jp/ をご覧ください。

タイトルは「実践 ErlangErlang in Practice)」で。

  • 実践 Erlang (1:30)
    • Erlang 勉強法
    • 4 つのモジュール
    • エラーはクラッシュさせる
    • サンプル Erlang コード解説
  • 実践 OTP デザイン (1:30)
    • OTP 勉強法
    • loop から gen_server
    • supervisor
    • サンプル OTP アプリコード解説
    • simple_one_for_one の使いどころ
    • proc_lib を使いこなす
    • Application と起動スクリプト
    • RelTool って何?
    • オリジナル behaviour の作り方
  • Erlang とコスト (1:30)
    • Spec/Type 活用方法
    • 動的カバレッジ取得
    • EUnit の使い方
    • Sphinx によるドキュメント作成
    • Mercurial によるバージョン管理

講義内容の候補

実践向きということで、自分が今までプロダクトを書いてきた経験を資料に落とそうと考えています。

いくらでも書けるのですが、実際使ってみて便利かな?って思ったのを出してみました。
ここからいくつか選んで資料を作ろうと思います。

分散系に明るくないので分散系の会話が出来ないのが申し訳ないなぁ。

  • オススメ Erlang 勉強法
  • オススメ OTP 勉強法
  • simple_one_for_one の使いどころ
  • proc_lib を使いこなす
  • gen_fsm と supervisor の temporary で状態管理
  • gen_server と gen_server2 の違い
  • オリジナル behaviour の作り方
  • おすすめの Makefile (GNU Make)
  • OMake はいかが
  • 動的カバレッジ取得
  • 気軽な EUnit と 堅牢な CommonTest
  • Spec と Type は常識
  • Application と起動スクリプト
  • R13B02-1 をなぜ使うのか
  • RelTool って何?
  • prim_inet を使う理由
  • フックシステムは便利
  • コントロールコマンドを作る
  • モジュールの仕組み
  • コンフィグファイルの管理
  • オススメログサーバ実装法
  • アンドキュメントライブラリ紹介
  • MochiWeb と RabbitMQ のコードリーディング方法
  • Mnesia と Transaction
  • gen_tcp や gen_udp や gen_sctp を OTP を組み合わせる
  • proplists は便利
  • 今なぜ JSON なのか
    • JSON は RFC 4627
    • mochijson2 の使い方
  • os_mon のススメ (出来たら)
    • memsup
    • alarm_handler
  • codegen.py の紹介 (出来たら)
  • snmp は使えるのか
  • unicode モジュールの使い方

Erlang とは関係ないけどオススメしてくるつもり