---
# System prepended metadata

title: 'ミノ駆動本_読書py[4] みんなのメモ'
tags: [ミノ駆動本]

---

# ミノ駆動本_読書py[4] みんなのメモ

###### tags: `ミノ駆動本`

- このメモはWebに公開されています（HackMDチーム）
- リンクを知っている人は見られます
- HackMDにログインして編集できます

## お願い事項

https://twitter.com/MinoDriven/status/1541334416622256130

> 【お願い】
拙著『良いコード／悪いコードで学ぶ設計入門』に関する情報発信について。
ブログ等で発信の際は、引用の範囲を超え、著作権侵害となる場合は勿論のこと、拙著の詳細内容が分かるような表現での公開はお控え頂けると助かります。
ご感想や拙著に基づく試行錯誤は歓迎です。 #ミノ駆動本

> 拙著引用の際は、Qiitaさんの『著作物を引用する際の注意点』が参考になります。適切な引用のもと、情報発信していただけると嬉しいです。https://help.qiita.com/ja/articles/about-copylight #ミノ駆動本

とのことなので勉強会そのもので詳細内容がわかるような記述はしないように気をつけていきましょう。

## このメモについて

このメモは ミノ駆動本_読書py[4] のメモです
https://pythonista-books.connpass.com/event/254917/

読む範囲：10章

ミノ駆動本のサポートページより、Javaのサンプルコードが見られます。
https://gihyo.jp/book/2022/978-4-297-12783-1/support

## 読書会の流れ

* 20:00〜20:30 **自由参加**のもくもく会（個人作業）
    - 事前に読む時間がとれなかった方はここで読んじゃいましょう（ざっとで大丈夫です）
    - 合わせて、この**HackMD**に話したいことを各自書いてください
        - ログインすれば書ける設定にしています
        - ここがわからん、ここはわかった　お気軽に書き込んでみてください
        - HackMDの書き込みに投票し、みんなが気になるところをわいわい読み解いていきます
* 20:30〜22:00 読書会本編（みんなでわいわい）
    * Discordでスライド共有して別途案内します
    * 20時30分開始の本編では、「わたしこれ気になる！」という話題に `:+1:` と書いて投票します。
        * :+1: する上限はありません。気になる話題に全部 :+1: しちゃいましょう。ただし1つの話題には1個だけ:+1:でお願いします
    * 票数が多い話題から話していきます。

## 以下、もくもく会ワークゾーン

### 感想、気付き

- 日本語で良い名前をつけても、英語名変換するときにバグる
    - Qiitaにそんな時用の記事をストックしていた事を思い出した！
        - [初心者プログラマーのための英語命名法](https://qiita.com/YutaManaka/items/62dda256bb7ba6c08399):+1: :+1: :+1:
        - 調子に乗って英語の名前をつけて後で自分がわからなくなることが。。
- 

以下は各節で「これってどういうことなんだろう」「ここからこういう気付きがあった」などを書き出すゾーンです。

### 10章 名前設計 ―あるべき構造を見破る名前―

- 冒頭のところ、目的駆動名前設計はビジネス目的を考えるとある
    - ビジネス目的を考える、大事そう、わかる
    - ビジネス目的の学び方って？（技術を学ぶのとちょっと違いそう）
    - というかビジネスって何？
        - 「お金を得る方法」のことではないでしょうか？（個人的にはその文脈で使ってる）
        - ビジネス＝事業？
            - そうともいう
- 今、クラスの命名で大変迷走しているので、誰かの智恵を借りたい！って考えてた
    - 目的が混乱しているのかもしれない
- 日本語の命名を英語にするのでバグるのもある

#### 10.1 悪魔を呼び寄せる名前

- 商品クラス 「やめてくれーーー」
    - （たぶんモデリングの章にある）「クソコード動画 Userクラス」を思い出しました
- 同じ名前だけど色々な側面を持つ、ありますよね
- いきなり「目的不明オブジェクト」が無いように設計するのは難しい
    - 一度意味範囲を大きく取ってから細かくしていく方が考えやすいかも？ :+1: :+1:
    - 名前もリファクタリングしていくみたいなことを増田さんのツイートで見かけた記憶あります :+1: 

#### 10.2 名前を設計する―目的駆動名前設計

- リーダブルコードとこの本は違うとミノ駆動さんが言うのは、名前設計のスタンスがあるからか！（可読性だけではない）
    - ビジネス目的を分析する、名前設計に重要そうだけど、レベルが高そうな印象もある :+1: :+1:
    - ビジネス面をよく知っている人と話すはできそう（エンジニアだけでやろうとしないのよさそう）:+1: :+1:
        - その辺り、アジャイル開発だったり、DDDだったりで取り組もうとしていることですよね
        - やっぱりビジネス（業務）を分かっているかどうか、で具体的に出来る幅も異なってくるし、バグも減らせる気がする
            - 誰が名前設計するんだろう？現場のプログラマではないよーな？？
- 目的ベースで考えた命名の例、存在ベースの名前はこうできると示されていて分かりやすい 
- 利用規約を読むはよさそう
- 

#### 10.3 設計時の注意すべきリスク

- 書かれている例、確かにありそうだなと思った
- とはいえ、コメントの追加でカバー（？）されちゃいそうな気もするので、やっぱりちゃんとした設計のルールっていうのは大事かな？:+1: 
- コードを読んで分かるようにしようってことなんですかね？（会話で使う名前をコードにする）
- 形容詞を元にヒットポイントクラスの設計を変える例、分かりやすい！
-


---

10.4から先は今回はスコープアウトとさせてください。
10.3までを読んでいきましょう！！

- 10.4 意図がわからない名前
- 10.5 構造を大きく歪ませてしまう名前
- 10.6 名前的に居場所が不自然なメソッド
- 10.7 名前の省略
