テクノロジー

「読みやすいコード」を依存グラフで考える

1: kagehiens 2025/03/10 23:55

DBの中の振る舞いに踏み込まないコードで書かれたアプリは、バグり難くても使う側に有難みが薄いものになりがちなので、読みやすさを追求するあまり及び腰にならないようにしたいもの。ただ不要な複雑性はいらない。

2: bopperjp 2025/03/11 03:40

クソ面白い。KISSだのDRYだのいう説明はこうやるべきだった。抽象度レベルを一定にして読めないコードは、頭の中で強烈なバックトラックを発生させている。

3: nakag0711 2025/03/11 08:30

関数に簡潔にして完全な仕様の記述をつけること。そのような記述を書きにくいときはその関数は分かりにくく設計が問題含みである可能性が高い

4: hase0510 2025/03/11 08:34

「この順番で理解していく必要がある」という関係性を有向グラフで考えると強連結成分はまとめて理解する必要があって成分が大きいと大変。あと弱連結の部分はトポロジカルソート順に書いてあると読みやすいよね。

5: hiroomi 2025/03/11 08:56

OSSで依存グラフの表示するツールってどこらになるのかな。

6: yojik 2025/03/11 09:29

面白い。ただ「mutableの問題点は依存がループするから」の説明はmutable限定では無いので何かおかしい。mutableな変数は静的なソースコードの依存グラフで表せない「過去の状態への依存」が存在するから難しいと思う。

7: qawsklp 2025/03/11 09:31

DBはプロセス、コードの寿命を超える特大変数、これすき..

8: kazuph1986 2025/03/11 09:44

これいいなぁ。コードレビューの時に常にこの図が欲しい。

9: tasukuchan 2025/03/11 10:18

“が身につき、その理由を自信を持って説明できるようになるはずです。 ”

10: jintrick 2025/03/11 10:34

“巨大なスコープを持つ mutable な変数は、依存グラフ上で広範囲を巻き込んだループを作り出します”"宣言的なコードは関連箇所が局所的かつ明示的になるので、読みやすくなる"

11: nemoba 2025/03/11 10:50

参照透過を確保して状態をコード(宣言)から定めるから宣言型なんだけど、みんな"宣言ぽい"で宣言型を書いてる

12: marshi 2025/03/11 11:42

面白い発想

13: dominion525 2025/03/11 13:00

視覚化大事だなー。

14: yarumato 2025/03/11 16:09

“読みやすいコードは、整然とした ○->○ 構造を持つ。この依存グラフでプログラミングを視覚的に理解。疎結合なクラスタは矢印を減。高凝集なクラスタは内部理解が易。 宣言的コードは値を返さないつまり単方向”

15: aike 2025/03/12 10:31

内容に異論はないけど、手続き的な書き方は電卓とかで手計算するメンタルモデルに近く、集合に対する操作の考え方に慣れていない人にとって手続き的が理解しやすい(≒読みやすい)と感じる要因だと思う。

16: mumei-0 2025/03/13 18:55

“一方で immutable な値や logger などはグローバルに公開されていても大して問題はありません。なぜならこれらは単方向の依存関係しか作らないからです。”