Weekly Selection 2021-02-12

Pythonの拡張正規表現とTokenizer

Slack Botを作成しているときに,オリジナルのコマンドを実装したくなった.正規表現によるパースを思いつき,Python公式ドキュメントの正規表現モジュールを読んでみた.

re — 正規表現操作 — Python 3.9.1 ドキュメント

ドキュメントから2つの学びがあった.1つ目はPythonに拡張正規表現があることだ.Perlの拡張正規表現は知っていたが,Pythonにもあることは初めて知った.(?P<name>...)は特に便利なので使っていきたい.2つ目はTokenizerを実装したことだ.自然言語処理や自作プログラミング言語に興味がなかったので,授業で軽く触れた程度の知識だった.Python公式ドキュメントにあったTokenizerの実装をもとにSlack Bot用のTokenizerを実装してみた.パターンマッチの要領で入力に対して一致する正規表現を順番にチェックしていく.正規表現の優先度(順序)も重要であることが学びだった.

slackbot/tokenizer.py at master · cdsl-research/slackbot

ソフトウェアテスト

SEShopがセールしていたので,ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方を予約してみた.テストのことは素人なので、テストパターンの設計やテスト実装の優先度付けを知りたい.

シェルスクリプトでのIFと条件式

testコマンドのオプションをmanで見れば比較演算子が見れる.メモを書き起こした.

ShellScriptのIF文チートシート・スニペット – Qiita

余談

  • Kubernetesクラスタに使う分散ストレージをCeph, GlusterFS, Longhornで比較した.Cephのハードウェア要件(メモリ64GB, ネットワーク 10Gbps, CPU 4core)が高すぎて驚いた.
  • AmazonのCEOであるジェフ・ベゾスが退任するらしい.
  • 情熱大陸に登大遊さんが出演していた.けしからん.
  • KubernetesのConfigMapは,Kubernetes以外では使えないのでイマイチだと思った.サイドカーコンテナで設定ファイルを取得して,Volumeを共有して設定ファイルを配置するほうが良いと思った.
  • ゆるキャン△をはじめて見た.なんて素敵なアニメなんだ.

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です