2019/03/30
redis-termというnpmモジュールを作成しました。
開発にあたって使用したモジュールや背景等について書かせていただきます。
$ npm install -g redis-term
$ redis-term
ターミナルで動作するという点を活かすため、可能な限りキーボードだけで操作できるようにすることを目標に開発しました。
コネクション情報は~/.cache/redis-term/connections.json
に保存されます。
darkとblueの2種類のテーマを用意しました。
設定は~/.config/redis-term/settings.json
から変更できます。
{
"colortheme": "dark" // or "blue"
}
Redisクライアントです。
Promiseを標準でサポートしている点に魅力を感じたため採用しました。
blessedのfork版です。
UIの構築に利用しています。
blessed向けのReactレンダラ。
状態管理用です。
ディレクトリ構成は、Ducksやre-ducksパターンを参考にさせていただきました。
ルーティングライブラリ。
MemoryRouterを使っています。
SSHクライアント/サーバライブラリです。
SSHトンネル接続をサポートするために使用しました。
パスワード管理のために使用しました。
テスト用です。
testdouble.jsは、JavaScript向けのモック/スタブライブラリです。
個人的にSinon.jsよりシンプルで使いやすい印象を受けました。
HyperとUbuntu標準のターミナルで動作確認をしました。
MacとWindowsについては、手元に環境がないため確認できていません。
Node.jsについては、v8, v10, v11で動作確認しました。
等...
個人的に経験の薄い分野であるため、使いやすいUIを考えながら開発していくことは想像以上に大変だった。
react-blessed及びblessedに関する情報が少なく、度々ソースコードを見る必要があり、大変だった。
やる気を持続させること。
最低でも毎日30分~1時間程度はコードを触るようにして、やる気の低下を避けるようにしました。
ターミナルで動作するデータベースクライアント。
UI等を参考にさせていただきました。
Electron製のRedisクライアントです。