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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide


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

    View full-size slide

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

    View full-size slide

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

    View full-size 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 full-size slide

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

    View full-size slide

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

    View full-size slide