0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

pf-tuiをGoに書き換え

Posted at

Gemini CLIに作ってもらったpf-tui.pyはすでに2600行ほど。
https://qiita.com/self-learner/items/b4afb631958f6ecab4e5

このコードにGemini CLIで機能追加をしようとすると、他の機能がデグレする事象が目立つようになってきました。
一つのファイルをコピーすれば使えるようにしたいので、機能ごとにファイルを分けるのはできれば避けたい。

ソースコードは複数あっても実行ファイルが一つならOKなので、Goに書き換えてもらうことにしました。TUIフレームワークには、前から興味のあったBubble Teaを採用。

Python版だとデグレが目立つようになった反省を踏まえて、Go版ではまず仕様書みたいな機能を説明したfeatures.mdを作ってもらい、実装する時にやったことはtodo.mdに記録しながら進めました。

UIはなるべく移植元のPythonに似せた関係であまりBubble Teaの良さを活かせてないかもしれないけれど、3週間ほどかけてこんなのが出来上がりました。
https://github.com/kh813/pf-tui-go

メインメニューpf-tui.pyとほぼ同じだけど少しだけおしゃれになってます。
image.png

パケットフィルター設定画面もこんな感じでちょっとおしゃれになりました。
image.png

結局コードは2460行でPython版と同じくらいになりましたが、デグレしてしまうことをあまり心配せずに実装が進められた感覚があります。

% wc -l *.go
     424 firewall.go
     107 logging.go
      89 main.go
     312 pf.go
    1528 tui.go
    2460 total

features.mdとtodo.mdを作ったのが良かったのか、それともBubble Teaが優秀なのでデグレを起こしにくいのか、引き続き検証していきたいですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?