今週はPythonを使用したクローラーの案件のコードリーディングを通して新しく知った知識が多かったです。
Pythonのメソッドも初めて知るものがあったので、しっかり勉強していきたいと思います。
今週学んだこと.
PythonのPydanticについて.
docs.pydantic.dev
案件でPydanticが使われているので、既存の実装を参考にしながらPydanticについても勉強しています。
現時点では型定義の際にPydanticのBaseModelが使えるようだな、ぐらいの理解度です。
Pythonではdataclassなども型定義で使えると思いますので、それぞれどういう場面で使うと効果的なのかを手を動かしながら学んでいって、技術選定の精度を上げることに繋がるような知見も身につけていきたいです。
Pydanticの公式ドキュメントには以下のサンプルコードがありました。
from datetime import datetime from typing import Tuple from pydantic import BaseModel class Delivery(BaseModel): timestamp: datetime dimensions: Tuple[int, int] m = Delivery(timestamp='2020-01-02T03:04:05Z', dimensions=['10', '20']) print(repr(m.timestamp)) #> datetime.datetime(2020, 1, 2, 3, 4, 5, tzinfo=TzInfo(UTC)) print(m.dimensions) #> (10, 20)
ChromeDriverについて.
ChromeDriverはChromeをSeleniumなどのプログラムで動かすために必要になるドライバーとのこと。
PythonのZipFile.extractall()メソッド
docs.python.org
ZipFile.extractall()メソッドでZipファイルの中身を取得することができるらしい。
バッチ処理などではZipを扱う機会も多い印象なのでこういうメソッドもあるということは認識しておきたい。
課題と対応策
課題: フロントエンドのテストについての知見が浅い
Vue3を使ってフロントエンドの実装を行うタスクを担当しているのですが、実装自体はできたもののテストの書き方がよく分からず手間取っています。
対応策
まずは公式ドキュメントを読んだり、YouTubeなどで似たようなフレームワークを使ってテストを書いている動画があれば参考にして、少しずつ手を動かしていきたいと思います。
こういう動画もわかりやすそうです。
来週の目標
- Vue3でテストコードを書けるようにする.
面白かった記事.
クローリングの処理をAirflowで管理しているので、Airflowの仕組みやソースコードは非常に興味があります。
すぐには時間作れそうにないですが、ちょっとずつ読み進めてみたいと思います。