ftnext / PyConTalkSummary

PyConで聞いたトークのサマリーをIssueに蓄積(arXivTimesリスペクト)
0 stars 0 forks source link

mini Shizu 2020 自信を持ってコードを書こう 〜「とりあえず動かす」の一歩先へ〜 #25

Open ftnext opened 4 years ago

ftnext commented 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で初期化後に変更されない ←もしかして値オブジェクト?

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 個人的にベストトーク