---
# System prepended metadata

title: 'ちょうぜつ本_読書py[11] みんなのメモ'
tags: [ちょうぜつ本]

---

# ちょうぜつ本_読書py [11]みんなのメモ
###### tags: `ちょうぜつ本`

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

## ちょうぜつ本

- [ちょうぜつソフトウェア設計入門 ――PHPで理解するオブジェクト指向の活用](https://gihyo.jp/book/2022/978-4-297-13234-7)
- [サポートページ](https://gihyo.jp/book/2022/978-4-297-13234-7/support)（正誤表）

## お願い事項

(1) 今を楽しもう（録画はしないでね）

(2) 本メモは**インターネット上に公開されています。**
そのため、文章の丸写し（!=引用）や、書籍を読まずに内容が詳細に分かる表現は行わないようにしましょう。

参考記事:

- [Qiita ヘルプ 著作物を引用する際の注意点
](https://help.qiita.com/ja/articles/about-copylight)
- [Qiitaで記事を公開するときに気を付けるべきマナーについて 〜無断でネットや書籍の内容を丸写しするのはやめよう〜
](https://qiita.com/jnchito/items/215c2d51599eb29adabc)
- [文化庁 著作物が自由に使える場合
](https://www.bunka.go.jp/seisaku/chosakuken/seidokaisetsu/gaiyo/chosakubutsu_jiyu.html)

## このメモについて

このメモは ちょうぜつ本_読書py[10]のメモです

https://pythonista-books.connpass.com/event/305417/

読む範囲：8.7, 8.8


## 読書会の流れ

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

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

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

### 第8章 デザインパターン

_章よりも細かい目次は公開されていないようですが、読書会運営都合により見出し番号だけ記載しています_

章全体への書き出しはこちらに

- 
- 
- 


### 8-7

- Compositeパターン、言われたらこれは結構ありそうだしパターンとして定義されるよな〜とちょっと納得（？）
    - とはいえ例外ではあるみたいなのだけど
- 自己再帰的！
    - 自然界の事象を指す「フラクタル」（自己相似）ってやつを思い出しました
    - そういえば、無限という概念は無限自身を含みえますよね
- OSSのコードを読んでいて、「組み合わせる」ときにCompositeの考え方を使うと思われます
    - イメージ：前処理パッケージ（文字列の正規化）
        - 前処理A（半角スペースの除去）
        - B（Unicode正規化）
        - C
        - 前処理の集合を適用する前処理
            - AとBを渡した前処理を作れる！
- 

### 8-8

- 思い込みしていた
    - これが今回の一番の学びだな
- Python文法のデコレータも高階関数
    - クロージャを返してるってことだと思います
- クロージャ概念を知った人がやりがちなのが、関数内に関数を書く
    - それはクロージャではない（変数を束縛せよ）
    - とにかく再利用しづらいので、関数内の関数は真似しないほうがいいやつだとnikkieは思います（それはクロージャではないから。2回め）
    - 参考：「項目21 クロージャが変数スコープとどう関わるかを把握しておく」（『[Effective Python 第2版](https://www.oreilly.co.jp/books/9784873119175/)』）
- Pythonに無名クラスはないですね（ここ写経できない）
- 

```python
def g(fuga):
    def closure():
        return fuga + 1

    return closure

def f(hoge):
    def not_closure():  # 上位のスコープに書いて再利用しやすくしては
        # 変数を束縛していない
        return 42
    
    return not_closure() + 1
    # return not_closure  # これはあまり嬉しくない
```

