Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SLAPを覚えてリファクタリングに方針を/we learn slap for refactoring

kirimaru
November 03, 2020

SLAPを覚えてリファクタリングに方針を/we learn slap for refactoring

kirimaru

November 03, 2020
Tweet

More Decks by kirimaru

Other Decks in Programming

Transcript

  1. を覚えて
    リファクタリングに方針を
    座駆動LT大会オンライン20201103
    きり丸(水上 皓登)@nainaistar

    View Slide

  2. 名前:きり丸(水上 皓登)
    年齢:28歳(1992/02/04)
    twitter: nainaistar
    ブログ:きり丸の日記
    https://nainaistar.hatenablog.com/
    2
    サーバーサイドエンジニア
    勉強会はフロントエンド
    ばっかり行く

    View Slide

  3. リファクタリングってどうやるの?
    リファクタリングで困ったことは無いでしょうか。
    リファクタリングの定義では、「外部からから見たコードの振る舞いを変
    えずに、コード内部の構造を改善する技法」です。
    大事なのは分かるけれど、どうやればいいかわからない。
    そんな人にとって踏み出す第一歩になればと思います。

    View Slide

  4. SLAPとは
    SLAPとはSingle Level of Abstraction Principleの略です。
    日本語では、「抽象化レベルの統一」と言われています。
    プログラムにて、記載している内容のレベルを揃えることを意味しま
    す。

    View Slide

  5. SLAPを守ると何が良くなるか
    ● 閲覧性
    ○ コードの目次のようになる。
    ● 要約性
    ○ 小さなコードの塊になって、見やすくなる。

    View Slide

  6. SLAPを守ると何が良くなるか
    ● 処理としてやりたいこと。
    ● やりたいことを達成するために、条件やループを使う。
    上記が混ざっていると、コードが読みづらくなってしまいます。

    View Slide


  7. あなたは学園の生徒です。
    あなたの学年の出身県ごとに何人在籍しているかを調べてくださ
    い。

    View Slide

  8. 例を分解
    1. パラメータにあなた(生徒)を指定する。
    2. あなたの学年を取得する。
    3. あなたの学年から、生徒たちを取得する。
    4. 生徒たちから出身を取得する。
    5. 出身からどの県に何人いるかを数える。

    View Slide

  9. 例を図示
    あなた
    (長崎県)
    生徒1
    (長崎県)
    生徒2
    (福岡県)
    学年

    View Slide

  10. プログラミング
    ※スライドに収まらないので、ブログより。
    https://nainaistar.hatenablog.com/entry/2020/06/22/SLAP%E3%82%92%E
    8%A6%9A%E3%81%88%E3%81%A6%E3%83%AA%E3%83%95%E3%8
    2%A1%E3%82%AF%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B
    0%E3%82%92%E3%81%97%E3%82%88%E3%81%86?_ga=2.19891063
    3.702104572.1603876745-744934094.1532527446

    View Slide

  11. まとめ
    SLAPを守ってプログラミングすると、以下の効果が得られる
    ● 閲覧性
    ● 要約性

    View Slide

  12. 参考資料
    ● プリンシプル オブ プログラミング
    以下、プリンシプル オブ プログラミングの参考資料
    ● プロダクティブ・プログラマー プログラマのための生産性向上術
    ● ケント・ベックのSmalltalkベストプラクティス・パターン
    ● 実践パターン
    ● パターン指向リファクタリング入門
    ● Code Craft

    View Slide