Pythonの型について演習したい?スターいっぱいのGitHubレポにcontributeしたい?デザインパターンも学びたい?それならこれだ

1 min read読了の目安(約1700字

一発ネタ。誰かがやっちゃうともうこの記事の価値は無くなります。早いもの勝ち。

まとめ

この GitHub Issue 解決して。
https://github.com/faif/python-patterns/issues/373

  • 型のない簡単な Python プログラムに型をつけるだけ。
  • 複雑な機能を持った実用のプログラムではなく、学習用のサンプルコード集。
  • スターが 2.7 万とかある。

やったらどんないいことあるの?

  • Python の型についてのいい演習になる。
  • デザインパターンについて詳しくもなる。
  • スターいっぱいのレポジトリにコントリビュートできる。
    • こんな感じで一覧に表示される。今回行数が多いので一気にメインコントリビュータになれるかも。https://github.com/faif/python-patterns/graphs/contributors
    • フォークしたレポを自分の GitHub アカウントページに飾れるよ。
    • こういうのを評価してくれる採用先なども時々あったりする。
    • 少なくとも git/GitHub の操作は慣れてる人だなとは思われる。
    • よく見ない人だと「有名 OSS コントリビュータじゃん!」となる、、、ことはないか。
  • 特に「GitHub の使い方に慣れたい」くらいの感じの人におすすめできる

デザインパターンって何?

1994 年に「オブジェクト指向における再利用のためのデザインパターン」という超有名な書籍が出た。
この書籍では、オブジェクト指向でデカいプログラム書いてると、こういうパターンにするとうまくいくこと多いよね、というようなパターンが紹介されている。
それでこの書籍で紹介されたパターンのことを、デザインパターンとかあるいは著者たちの愛称である GoF(ギャングオブフォー)とか呼ばれたりしている。
またそこから転じて、ソフトウェアにおいて頻出の良いパターンのこともデザインパターンと呼ばれることがある。
"デザイン"部分が何を指してるのかは知らない。僕は勝手にそういう固有名詞なのだと思っている。
英語 Wiki  https://en.wikipedia.org/wiki/Design_Patterns
Qiita 内の参考になる記事 https://qiita.com/i-tanaka730/items/c63c6c22abd1477e0ba0

python-patterns についてもう少し詳しく

  • https://github.com/faif という人が作った python のデザインパターン・イディオム集。
  • 読んだりすることで学びを得てもらうことを目的としている。
  • 最初は GoF のデザインパターンの Python での実装例を示そうとした。
  • そしたら GoF は古い機能の少ない言語だからこういうパターンが示されているだけで、python なら標準パッケージのこれで実現すべきじゃねみたいな議論が起きて
  • GoF のと一対一対応もしてないし、追加で世の中にある GoF 以外のパターンも追加されたりしている。
  • ただ GoF ベースではあって、正直僕もこれ Python でこういう書き方するのアンチパターンだよな、、、とか思うのもある。
  • でも古典として GoF を学ぶのは Python エンジニアにとっても無価値ではように思うので、これはこれで良いと思う。

ということでした。
もし PR 投げるの不安とか、PR 前に見て欲しいとかあればコメントくれれば対応します。
https://github.com/yhay81/python-patterns
このフォークに PR 投げたりしてもらっても大丈夫。

(ソフトウェア界隈における日本人の存在感のなさはなんとかできるし、したい、することで未来変わるよという気持ちがいつもあるので、こういう記事書きました。)