---
# System prepended metadata

title: リーダブルコード輪読会 第12章

---

リーダブルコード輪読会 第12章
===


# ディスカッションをより豊かにするためのグランドルール

- 参加者は毎回任意
    - 途中参加・聞くだけでもOK！

- ページ数と同時に、節のタイトルやキーワードを記入してもらえると探す手間を省けて嬉しいです

- ファシリテーターや話している人は集中しがちなので、話していない人に議論内容をメモ:pencil:してもらえると嬉しいです 

- 気になる質問や同感するものには :+1: を末尾につけてください。

- 社外秘情報は書かないこと!!!
    - オープン設定で誰でも見れてしまうので


# タイムテーブル


| 時間 | 所要時間 | 内容 |備考 |
| --------  | -------- | -------- | -------- |
| 15:00  | 5-10分?   | (書いてなければ)感想記入&書かれた感想・気づき・疑問をもっと掘り下げたいものを、 :+1: 付けていく  |      |
| 15:10?   | 40-45分  | 本の節ごとにディスカッション     |    |
|15:55? | 5分 | 次回読む範囲決めてクローズ | |

## 下に感想などを書いていって下さい。どんな些細なことでもOKです。


---


# 序章、12.1 ロジックを明確に説明する

## 感想・気づき
- > 誰かに複雑な考えを伝えるときには、細かいことまで話しすぎると相手を混乱させてしまう。
    - これの匙加減はなかなか難しいと感じる。個人的に説明しなくていいと思ったことを質問で深掘りされたり、その逆パターンもあったりする
    - 正直人によるところなので正解はない気がする
    - 実例があれば細かいところまで説明しても理解してもらえやすいが、なければ混乱させるだけになりがち

### 実践してる人
#### 書籍通りのやり方をしているか。または、何か違う点はあるか。
 - 自分ならこの改善の書き方ではなく、説明変数と早期リターンを考えるかな:+1::+1::+1:
     - 改善の書き方だと、自分が管理者か > ドキュメントがある&所有者って思考の流れだけど、粒度が違う思考が混ざって好みじゃない
     - 自分の書き方だと、何者かを定義 > 該当するかなので、思考の粒度を統一していて読みやすいと思ってる
```
$is_admin = is_admin_request();
$is_owner = $document && $document['username'] != $_SESSION['username']
if !($is_admin || $is_owner) {
    return not_authorized();
}
// 引き続きページのレンダリング
```

### 実践してない人
#### 簡単に導入できそうか。難しいと感じた場合は、何が引っ掛かりそうか。
 

## 疑問
 

# 12.2 ライブラリを知る

## 感想・気づき
- 元のコードの中身を咀嚼できてなかったので、解決策を見てもそんなもんかなとなってしまった
    - 解決策の`cur_tip`に`hide`操作が混ざっていて何の値になるのか分からないが、jQuery知ってる人は読みやすいと感じるのか気になり
- jQueryは今でも使ってるプロジェクト多いんだろうか…

### 実践してる人
#### 書籍通りのやり方をしているか。または、何か違う点はあるか。
 

### 実践してない人
#### 簡単に導入できそうか。難しいと感じた場合は、何が引っ掛かりそうか。
 

## 疑問
 
 
# 12.3 この手法を大きな問題に適用する

## 感想・気づき
- わかりやすくなってると思うが、イテレータのインデックスが呼び元と`AdvancedToMatchingTime()`の両方で変わるからわかりづらいのは変わってない印象受ける
    - メソッド抽出したことで、何の時間か意識する必要がなくなって、説明変数を簡略化できたのは改善かも
    - 副作用が強い関数でロジック的には何一つ改善してないのは同意見
- > これらのデータはどういうわけか 3 つのテーブルに散らばっている。
    - これ見た瞬間に脳が理解を拒否してしまったが、世の中にはこういうのあるんだろうか()

### 実践してる人
#### 書籍通りのやり方をしているか。または、何か違う点はあるか。
 

### 実践してない人
#### 簡単に導入できそうか。難しいと感じた場合は、何が引っ掛かりそうか。
 

## 疑問
 
 
# まとめ

## 感想・気づき
- ラバーダッキングは効果的
    - 1人で考えてる時は、局所的な部分に着目して視野が狭いことがあるが、他人に説明する時は背景も伝えようと視野が広がるので、結果的に自己解決することもあるある話
- 抽象化する時の粒度が歪になっていると、問題解決できなかったりするのは設計でも同じなので、しっかり意識したいところ
- 達人プログラマー第２版を積読してることを思い出した

## 疑問
 