Tbpgr Blog

Recruiting Operations tbpgr(てぃーびー) のブログ

Ruby | CLI | Be Easy to Maintain

概要

書籍 Build Awesome Command-Line Applications in Ruby2

Be Easy to Maintain

詳細

どのようにアプリケーションの複雑性の増加を防ぐか?
アプリケーションをわかりやすく保つことは,アプリケーションの開発に協力してくれるくれる人を増やすのに役立つ。

Configuring Code to Find External Files

Rubyではほとんどのコードはlibディレクトリに置かれる。

Rubyは require が呼ばれると、load path を探す。
デフォルトでは lib は含まれていない。
RubyGemsを利用する場合は、gemspecがその問題を解決してくれる。

Developing Locally Without Modifying the Load Path

開発中にbinを直接呼んだりする場合には、ロードパスの設定変更が必要

Namespacing Classes

Rubyではmoduleによってクラスのネームスペースが作成される。
もしネームスペースを作成せずに、他の開発者の名前が重複してしまうと
オープンクラスを使用したことになり、大抵予期せぬ動作の原因となる。

そのため、全てのクラスはネームスペース内に置かれるべき。

Naming Files According to Their Full Classname

ネームスペース配下のクラスは、パスにネームスペース名を含むべき
例えば Hoge::SomeClass1 なら

hoge/some_class1.rb

Hoge::Hige::SomeClass2 なら

hoge/hige/some_class2.rb

のように。

Designing Code for Maintainability

保守性の高いシステムは、拡張や修正が容易。

しかし、整ったファイル構成はただの保守性だけのものではない。
アプリケーションの内部設計として重要なのです。

Encapsulating Data and Code into Classes

隠ぺいの利点について(略)

Using the Factory Method Pattern to Control How Object Are Created

Factory Methodについて(略)

Organizing Multiple Ways of Doing Something with the Strategy Pattern

Strategy Patternについて(略)