BT

InfoQ ホームページ ニュース Effective Scala - Twitterのベストプラクティス

Effective Scala - Twitterのベストプラクティス

ブックマーク

原文(投稿日:2012/02/15)へのリンク

Twitterは、彼らのEffective Scala ガイドをオープンソースにした。ドキュメントは、GitHubにあり、そのGitリポジトリURLは https://github.com/twitter/effectivescala.git. である。ドキュメントは CC-BY 3.0の下でライセンスされる。

Scalaは、Twitterで使われている主要なプログラミング言語の1つで、TwitterのインフラのほとんどがScalaで書かれている。 Effective Scalaガイドは、短いエッセイのシリーズで、Twitter内でScalaを使っていることから学んだ「ベストプラクティス」セットである。TwitterではScalaを使って、主に大容量の分散システムを作っているが、ガイドのほとんどは、他のドメインに当てはまることであろう。

このドキュメントの中核的な考えは、

  • 正しく書いたら、常に読み手のことを考えてください。いつも可読性を大事にしてください。
  • 一般的なコードを書いてください。しかし明快さを犠牲にしてはいけません。
  • 素晴らしいパワーを提供する単純な言語フィーチャを利用しよう。しかし難解なものは避けなさい。
  • Scalaでプログラムしなさい、JavaやHasKellやPythonではありません。
  • 洗練された言語には、複雑な実装が必要です。複雑さが複雑さを生みます。こうして、複雑さは洗練さの代償です。いつも有用性がコストに勝ることを確認してください。

 

Effective Scalaの様々なトピックをここに上げる。目次からの引用である。

  • 書式: 空白、ネーミング、Import、中カッコ、パターンマッチ、コメント
  • 型とジェネリックス:返り値型アノテーション、変位、型エイリアス、暗黙の型変換
  • コレクション:階層、利用法、スタイル、パフォーマンス、Javaのコレクション
  • 並列性: Future、コレクション
  • 制御構造:再帰、return, forループと内包表記、 require と assert
  • 関数型プログラミング:代数データ型(ADT)としてのCaseクラス、Option、パターンマッチ、部分関数、バインディングの分解、遅延評価、名前渡し、flatMap
  • オブジェクト指向プログラミング:依存性注入、trait, 可視性、構造的型付け(structural typing)
  • ガーベッジコレクション
  • Javaとの互換性

 

ガイドは読者がすでにScalaに馴染んでいることを想定している。Scalaの新人用には、Scala Schoolという書き物があり、TwitterプログラマにScalaを紹介する助けとなる、講義のシリーズである。公式のLearning Scala ページがscala-lang.orgwebサイトで利用できる。別の良い入門用としては、Learning Scala in small bitesという小さな例のシリーズがあり、それぞれがScalaの1つか2つの特徴を良く説明している。

Effective Scalaは、生きたドキュメントでTwitterにおける現在の「ベストプラクティス」を反映して、絶えず変わっていく。ユーザーは、Effective Scala issuesページで課題を発行して、ガイドの改善に役立つことができる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。