とある事情により産業用のプロトコルを喋るコードを書く必要があり、そのライブラリがPython向けにしか提供されていないというケースに出くわした。普段はPerlとTypeScriptのみで生きていて、ときどきGoを触ったりRubyを触ったりシェルスクリプトを触ったり……という感じでPythonは数年前にVimのプラグインを書くのにちょろっと触ったくらい。記憶としてはなんかインデントに意味があったはず、くらいが残っている状態。
教科書的にいうと公式ドキュメントのチュートリアルなどから入って書き方を学びつつREPLで試しましょう、GitHubなどで公開されているコードを読みましょう、といったコースが王道だし丁寧にやっていくならそうなるでしょうと思う。しかしだらだらと勉強から始めていたら成果を出せない、品質はホットモックレベルでいいからとにかく高速に物を作りたい、といったときにこれをなぞっていると足が遅い。そういうケースでこうやったぜ的なTipsを書いてみる。主に作りたいものが決まっている人向けRTAテクといえる。
今回はPythonにフォーカスしているので必ずしも普遍的ではないが、まあまあ他のオブジェクト指向っぽい言語でも流用できるのではないかとは思う。どうでしょう。他の言語を学んでいるかとかのバックグラウンドにもよりそうなのでかなり限定的なポジショントークかもしれない。
依存モジュールの管理方法を学ぶ
- ローカルのディレクトリに依存を閉じ込める方法を最初に学んでおけるといい
- ミスってグローバルな領域を汚染するとあとで面倒なことになるケースがある
- どうせ何らかのモジュールを使わないと開発できないのだから初手で学んでおく
printデバッグの方法を確認する
- とにかく変数の状態を見られればなんとでもなる
- Hello, Worldぽいけど必ずしもテキストを出力したいわけではない
- なんかオブジェクトっぽいものの内部状態とかを出力できると便利
- メソッドの一覧出す方法とか知っておくと役立つこともある
github/gitignoreを眺める
- リポジトリに混ぜてはいけないものを学ぶために便利
- まあパクってきたらいい
- どういうツールが存在するのかを見るのに便利
作りたいもので使う依存モジュールのコードを読みまくる
- ドキュメントになくてもサンプルコードがあったりテストを読むとなんとなく使い方がわかる
- 言語としての文化もなんとなく分かる
- それが必ずしも一般とは限らないけど……
というわけでこまごま書いてみた。みんなやっとるで、というものばかりだけど、最低限これくらいおさえたらあとは流れで物を作ることはできた。他の人は新しい言語で爆速に物を作りたいときにどこを見ているのかはやや気になる。