ソフトウェアを作りたかった私へ 〜変更しやすいコードを書くコツが見えてきた今伝えられること〜 by nikkie

Object-Oriented Conference 2024
採択
2024/03/24 13:00〜
Track D(共1-301)
ロングセッション(40分)

ソフトウェアを作りたかった私へ 〜変更しやすいコードを書くコツが見えてきた今伝えられること〜

nikkie ftnext

2016年から仕事で、また2017年からは趣味でもプログラミングをしてきた私にとって、変更しやすいコードというのはずっと憧れでした。
自分の書くコードはとにかく変更しづらくて、ハードウェアと呼称していました。
変更しやすいコードを書きたくてオブジェクト指向に興味を持ちましたし、OOC 2020では道中のアウトプットとしてプロポーザルにも挑戦しています。
2020では採択はされませんでしたが、その後も設計についてのインプットは継続し、オンラインで『ミノ駆動本』や『ちょうぜつ本』の読書会も共同主催してきました。

このインプットが多少は結実し、変更しやすいコードを書くコツがいくつか見えてきています。
このトークでは、過去の私に知の高速道路を提供するように、変更しやすいコードを書くコツを共有していきます。

聞く方のイメージは、変更しやすいコードを書きたいと思っているのになぜか書けない、"わからん殺し"されている状況の方です。
私が食らってきたわからん殺しを共有して、何が起こっているかが見えるきっかけになればと思います。
私が習熟しているPythonでコード例を示しますが、ここで話す内容はPython固有ではなく、他の言語でも当てはまると思います

  • シンプルさによる変更しやすさ
    • レゴブロックのイメージ(Clojure)
    • 小さなクラスを組み合わせる
  • これが、クラス
    • 入門書で見かける文法説明のクラスとのギャップを埋める
    • データとメソッドをまとめた例
    • 悪しき構造:データクラスに注意(私はよくやってました)
  • 小さいは、正義!
    • 単一責任と恣意性
    • 入出力と計算を分ける
    • 作ると使うを分ける(依存性の注入)
  • インターフェースという概念
    • インターフェースとは、利用時の関心
    • インターフェースに依存させる(依存性逆転)
  • 継承
    • 気軽に継承を使うんじゃねえ、そいつは重税だ
    • 継承より委譲
  • いま見えてきていること:変更しやすいコードをチームで書く
    • ソフトウェアは一人で作るのではないという(次の壁への)気付き
    • この発表も次の壁への取り組みの1つかなと思います