LoginSignup
2
7

More than 3 years have passed since last update.

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

Last updated at Posted at 2021-01-28

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

まとめ

この 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投げたりしてもらっても大丈夫。

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

2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7