ちんぱんの雑記

チラシの裏

Docker Tutorial の記録1

今までなんとなくわかったような気はしていたが、絶対にわかっていない。

次のプロジェクトで使うし、いつか理解を深めたいと思っていたので取り組んでみた。

始め方 - Get started — Docker-docs-ja 24.0 ドキュメント

 

チュートリアルに取り組む中で気になったことを書いていこうと思う。

 

$ docker run -dp 127.0.0.1:3000:3000 getting-started

オプションの d は detach で、切り離すという意味。

このオプションを付けるとバックグラウンド実行してくれます。

d を付けない場合の実行結果は次のようになりました。

PS C:\Users\UserName\Workspace\docker\getting-started\app>  docker run -p 127.0.0.1:3000:3000 getting-started
Using sqlite database at /etc/todos/todo.db
Listening on port 3000

当然、フォアグラウンドでの動作となりますね。

プロンプトが1つ塞がるのは嫌なので、基本的に d オプションはつけたいなあ。

 

Part4 以降で気になったことはまた別の記事に書いていこうと思う。

明日は仕事なので今日は寝よう。

pytest のアンチパターン

環境やデータの整備をした後に、整備ができていることを確認する assert はやってはいけないということ。

 

基本的なあるべき流れとしては「準備→実行→確認」の順だが、

「準備→準備できていることの確認→実行→確認→後始末→後始末できていることの確認」という流れでやってしまっていた。

もう一つのダメなやり方は「準備→実行→確認→実行→確認」らしい。これもやっている気がする…。

 

これの何が問題かというと、他の開発者がテストを見たときに何を確認したいのかがわかりづらくなる、ということ。

 

この話って pytest に限らないと思うので、厳密には単体テスト共通のアンチパターンなのかもしれないな…。

LeetCode に取り組んで気づいたこと

世界一流のエンジニアの思考法を読んでから LeetCode に取り組んでいる。

無料会員は WEB 上でデバッグができないが、

ローカル環境を整えればよいので、気が変わるまでは無課金で遊ぼうと思う。

 

ローカル環境では mypy を使っており、理解していなければ適切な型ヒントが書けず、

自分の理解が弱い部分が浮き彫りとなるのがありがたい。

876 番の連結リストの問題では、最初から定義されている連結リストクラスの意味があまりわからなかった。

理解しないまま進むことはできたが、mypy の警告は解消したいし、

ローカル環境で pytest を書きたいし、何より理解しておきたかった。

 

LeetCode は他の人の解法を見られるのが結構勉強になって楽しい。

色んな解法を見て思うけど、組み込みのライブラリーを知っているか否かは結構大事だなあ。

四角い車輪の再発明をついついやりがち…。