Open ftnext opened 4 years ago
ほぼろさんが小さなCLIツールを作る過程をトレース(擬似的なペアプロ)。 これまでの独学で出会わなかった考え方との出会いがあり、非常に勉強になった。 熟練したPython使いの暗黙知の共有といった趣
ほぼろさん https://shizuoka.pycon.jp/session/rhoboro/
2020/02/29
気づいたことをメモ
http://gitignore.io にて「PythonとVirtualenv」を指定 https://twitter.com/ftnext/status/1233658505438957568?s=20
main()のシンプルなテンプレートからスタート。 blackはよく使うので仮想環境の外側にインストール https://twitter.com/ftnext/status/1233658856485486592?s=20
テンプレートを使って、動作確認できる機能をまず作る https://twitter.com/ftnext/status/1233659117933223936?s=20
main.pyの分離!ユーザとのやり取りの部分に限る ファイルの切り分け CSVを作る処理は別のパッケージに https://twitter.com/ftnext/status/1233659424629092353?s=20
パッケージ外に見せるものという発想(外からどう使うかが見える) https://twitter.com/ftnext/status/1233659642703515649?s=20
セッション情報はdataclassを使う frozen=Trueで初期化後に変更されない ←もしかして値オブジェクト?
frozen=True
scrape()関数はfor文で使える形で要素1のリストを返す(モック) https://twitter.com/ftnext/status/1233659967934210050?s=20
dataclassにas_dictメソッドを追加。 辞書に変換することでmain. pyでは辞書のまま使える https://twitter.com/ftnext/status/1233660400450732032?s=20
「リストよりジェネレータを優先的に使う」 リストが必要なら呼び出し側で変えればいい。ジェネレータがオススメ https://twitter.com/ftnext/status/1233660700867739648?s=20
外部パッケージを入れたらrequirements.txtを作る(インストールを手動で書く。ここを更新すればいい) pip freezeでrequirements.lockで依存パッケージも含めて固定する 2つ作る https://twitter.com/ftnext/status/1233661149347901440?s=20
対話モードで手を動かし、スクレイピング処理を書いていく https://twitter.com/ftnext/status/1233661517205143552?s=20
定数をまとめるconstants.py https://twitter.com/ftnext/status/1233661621647491072?s=20
_get_sessionsはパッケージ外に見せないメソッド https://twitter.com/ftnext/status/1233662062594670594?s=20
課題:フィールド名を覚えていて都度指定する。またtypoは未指定と同義 →デフォルト値! さらにargparseならchoiceでいけますね https://twitter.com/ftnext/status/1233662431492071424?s=20
質問に対して:https://twitter.com/rhoboro/status/1233666505054674945?s=20
この規模ならテストを作らないことが多いですが、業務コードだとアプリケーションコードよりも前にCI/CDとセットでテスト環境を作ることが多いです!
[以下はオプション]
擬似的なペアプロのトークが成立するということに衝撃を受けた(始めて聞いたタイプのトークだった) ペアプロ同様、暗黙知の共有にうってつけだと思う
2周は写経する!共有いただいたことを自分のものにしたい
PyCon mini Shizuoka 個人的にベストトーク
一言でいうと
ほぼろさんが小さなCLIツールを作る過程をトレース(擬似的なペアプロ)。 これまでの独学で出会わなかった考え方との出会いがあり、非常に勉強になった。 熟練したPython使いの暗黙知の共有といった趣
発表資料リンク
発表者/所属
ほぼろさん https://shizuoka.pycon.jp/session/rhoboro/
発表日付
2020/02/29
概要
気づいたことをメモ
http://gitignore.io にて「PythonとVirtualenv」を指定 https://twitter.com/ftnext/status/1233658505438957568?s=20
main()のシンプルなテンプレートからスタート。 blackはよく使うので仮想環境の外側にインストール https://twitter.com/ftnext/status/1233658856485486592?s=20
テンプレートを使って、動作確認できる機能をまず作る https://twitter.com/ftnext/status/1233659117933223936?s=20
main.pyの分離!ユーザとのやり取りの部分に限る ファイルの切り分け CSVを作る処理は別のパッケージに https://twitter.com/ftnext/status/1233659424629092353?s=20
パッケージ外に見せるものという発想(外からどう使うかが見える) https://twitter.com/ftnext/status/1233659642703515649?s=20
セッション情報はdataclassを使う
frozen=True
で初期化後に変更されない ←もしかして値オブジェクト?scrape()関数はfor文で使える形で要素1のリストを返す(モック) https://twitter.com/ftnext/status/1233659967934210050?s=20
dataclassにas_dictメソッドを追加。 辞書に変換することでmain. pyでは辞書のまま使える https://twitter.com/ftnext/status/1233660400450732032?s=20
「リストよりジェネレータを優先的に使う」 リストが必要なら呼び出し側で変えればいい。ジェネレータがオススメ https://twitter.com/ftnext/status/1233660700867739648?s=20
外部パッケージを入れたらrequirements.txtを作る(インストールを手動で書く。ここを更新すればいい) pip freezeでrequirements.lockで依存パッケージも含めて固定する 2つ作る https://twitter.com/ftnext/status/1233661149347901440?s=20
対話モードで手を動かし、スクレイピング処理を書いていく https://twitter.com/ftnext/status/1233661517205143552?s=20
定数をまとめるconstants.py https://twitter.com/ftnext/status/1233661621647491072?s=20
_get_sessionsはパッケージ外に見せないメソッド https://twitter.com/ftnext/status/1233662062594670594?s=20
課題:フィールド名を覚えていて都度指定する。またtypoは未指定と同義 →デフォルト値! さらにargparseならchoiceでいけますね https://twitter.com/ftnext/status/1233662431492071424?s=20
質問に対して:https://twitter.com/rhoboro/status/1233666505054674945?s=20
[以下はオプション]
新規性・差分
擬似的なペアプロのトークが成立するということに衝撃を受けた(始めて聞いたタイプのトークだった) ペアプロ同様、暗黙知の共有にうってつけだと思う
トークで知って試したいこと
2周は写経する!共有いただいたことを自分のものにしたい
感想
PyCon mini Shizuoka 個人的にベストトーク