2016-07-01から1ヶ月間の記事一覧

Chapter 9 - Practical Object Oriented Design in Ruby

Combining Object with Composition まとめ 1つのオブジェクトを複数のオブジェクトで構成するという話。 自転車オブジェクトがPartsオブジェクト持つという例で、sparesのようなPartsオブジェクトが返答すべきメッセージは内部でPartsオブジェクトへ処理を…

Chapter 7 - Practical Object Oriented in Ruby

Sharing Role Behavior with Modules まとめ dock typeの章で説明したような共通の振る舞いを発見した際に、それをモジュール化することで、コードを1つの箇所に置くことができる。 シーケンス図の各ノードに、具体的なクラス名を書くのではなく、求められて…

Chapter 6 - Practical Object Oriented Design in Ruby

Acquiring Behavior Through Inheritance まとめ 継承とはメッセージを自動的に転送すること。 継承を用いると、クラスの構造が複雑になるので、必要な情報が揃った時に行うのがいい。 具体的には、2つの似たような種類のクラスがあって、1つの親クラスと、2…

Chapter 5 - Object Oriented Design in Ruby

Duck Typing まとめ あるオブジェクトを、どのクラスのオブジェクトか?という視点で見るのではなく、どういったインターフェースを持っているか?という視点で見ること。 あるオブジェクトに対して、kind_of? 等で分岐させて、それぞれ異なるメソッドを呼び…

Chapter4 - Practical Object Orient Design in Ruby

Creating Flexible Interfaces 抜粋 第3章で頻繁に変更が起こるクラスに依存するのは危険という話があったが、この考え方はクラス内の範囲でも同じように適応できる。 クラスの持つパブリックなインターフェースは、そのクラスが持つ責任をドキュメントの役…

Chapter3 - Practical Object Orient Design in Ruby

Managing Dependencies 抜粋 デザインのやるべきことは、それぞれのクラスが仕事をこなすために必要な最低限のことだけを知っているように、依存性を管理すること dependency injection クラスが知っていることを減らすという視点で、クラスの名前と初期化方…

Chapter 2 - Practical Object Oriented Design in Ruby

Designing Classes with a Single Responsibility 抜粋 クラスは一つの責任しか持つべきではない。 そのクラスを一文で簡潔に説明できるかどうかが一つのバロメーター。 andやorが入る場合は、2つ以上の責任を持ってしまっている可能性が高い。 designの決…

Chapter 1 - Practical Object Oriented Design in Ruby

いい本だと紹介されていたのと英語の勉強など。 第1章はオブジェクト指向デザインの基本的な紹介。 概要 ソフトウェア開発に変更は付き物。なぜなら顧客は自分が求めているものが最初の段階で解っていない。 なので、変更を容易にするのがOOD(Object Oriente…

React,Reduxのキャッチアップ

フロントエンド周りの技術が少し落ち着いてきたという風潮があるので、キャッチアップ。 やったこと React Tutorial https://facebook.github.io/react/docs/tutorial.html React自体は結構シンプルでわかりやすく、メリットも感じられた。 state周りが、flu…

ActionDispatch::Http::UploadedFileのコードリーデイング

概要 ActionDispatch::Http moduleに class UploadedFile が定義されている。 サーバーにアップロードされたtime fileを扱うクラス。 pickup initialize以外の処理は@tempfileに対するショートカット。 initializeでは、ファイルの有無チェックとファイル名…

ActionDispatch::Http::URLのコードリーディング

概要 ActionDispatch::Http::URLモジュールに諸々追加している。 pickup class << self でクラスメソッドをまとめて定義している。 hostからドメインを取得する。 Array#last は要素数を指定できる。 def extract_domain_from(host, tld_length) host.split(…

ActionDispatch::Http::Headers のコードリーディング

なぜ? CakePHPを長く使っていて、Railsを趣味でちょいちょい触ってみている状態で、 その差として思いつくのが、 標準のコンポーネント、機能の知識 有用なプラグイン知識 言語自体の経験 この標準機能の知識と言語の慣れを埋めるために、railsのコードを読…

Atcoder Beginner Contest 041

Tasks - AtCoder Beginner Contest 041 | AtCoder AtcoderBeginnerContest/041 at master · kitabatake/AtcoderBeginnerContest · GitHub リアルタイム参加 A - Cは問題なし。 いつもより簡単気味。 D リアルタイム 部分点しか取れなかった。 DFSでパターン…