swiftを勉強してrubyの コードが変化した3つの事

37
@kkkyouhei swift ruby

Upload: karino-kyohei

Post on 21-Jan-2018

1.327 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Swiftを勉強してrubyの コードが変化した3つの事

@kkkyouhei

swift ruby

Page 2: Swiftを勉強してrubyの コードが変化した3つの事

swiftを勉強してRubyのコードが変化した3つの事

Page 3: Swiftを勉強してrubyの コードが変化した3つの事

1つ目

Page 4: Swiftを勉強してrubyの コードが変化した3つの事

Structを使うようになった

Page 5: Swiftを勉強してrubyの コードが変化した3つの事

メソッドの戻り値としてhashを受け取る例

Page 6: Swiftを勉強してrubyの コードが変化した3つの事

before

Page 7: Swiftを勉強してrubyの コードが変化した3つの事
Page 8: Swiftを勉強してrubyの コードが変化した3つの事

after

Page 9: Swiftを勉強してrubyの コードが変化した3つの事
Page 10: Swiftを勉強してrubyの コードが変化した3つの事

メリット

Page 11: Swiftを勉強してrubyの コードが変化した3つの事

hashは無い要素にアクセスするとnil

structは例外が発生

Page 12: Swiftを勉強してrubyの コードが変化した3つの事

戻り値に変更があった場合に呼び出し元のコードを修正漏れが合っても見つけやすい

Page 13: Swiftを勉強してrubyの コードが変化した3つの事

2つ目

Page 14: Swiftを勉強してrubyの コードが変化した3つの事

メソッドの引数にブロックを活用するようになった

Page 15: Swiftを勉強してrubyの コードが変化した3つの事

外部APIを実行する例

Page 16: Swiftを勉強してrubyの コードが変化した3つの事

before

Page 17: Swiftを勉強してrubyの コードが変化した3つの事
Page 18: Swiftを勉強してrubyの コードが変化した3つの事

after

Page 19: Swiftを勉強してrubyの コードが変化した3つの事
Page 20: Swiftを勉強してrubyの コードが変化した3つの事

メリット

Page 21: Swiftを勉強してrubyの コードが変化した3つの事

メソッドの戻り値が配列やハッシュだとコード上からは

読み取りにくい

Page 22: Swiftを勉強してrubyの コードが変化した3つの事

ブロックの引数を単純な値にすることで理解しやすい

Page 23: Swiftを勉強してrubyの コードが変化した3つの事

3つ目

Page 24: Swiftを勉強してrubyの コードが変化した3つの事

抽象クラスabstract class

Page 25: Swiftを勉強してrubyの コードが変化した3つの事

HTMLをパースしてデータを取り出す例

Page 26: Swiftを勉強してrubyの コードが変化した3つの事

before

Page 27: Swiftを勉強してrubyの コードが変化した3つの事
Page 28: Swiftを勉強してrubyの コードが変化した3つの事

×クロールするドメイン分

Page 29: Swiftを勉強してrubyの コードが変化した3つの事

after

Page 30: Swiftを勉強してrubyの コードが変化した3つの事
Page 31: Swiftを勉強してrubyの コードが変化した3つの事

共通処理は抽象クラスに残す

Page 32: Swiftを勉強してrubyの コードが変化した3つの事
Page 33: Swiftを勉強してrubyの コードが変化した3つの事

具体的な処理は実装クラスに移動

Page 34: Swiftを勉強してrubyの コードが変化した3つの事

メリット

Page 35: Swiftを勉強してrubyの コードが変化した3つの事

DRY

Page 36: Swiftを勉強してrubyの コードが変化した3つの事

ただし呼び出し元のクラスによってテンプレートメソッドの挙動を変えるような事があれば意味がなくなる

Page 37: Swiftを勉強してrubyの コードが変化した3つの事

おわり