【ツクリンク勉強会レポート】効率爆上げ!開発環境ツールとエイリアスの共有会
こんにちは、ツクリンクでエンジニアやっております、てつです。
ツクリンクでは毎週金曜日に「華金勉強会」を開催しています。
フルリモート環境で働く弊社エンジニアにとって、エンジニア同士が技術的な知識を共有できる貴重な機会となっています。
先日の勉強会では、メンバーの「開発環境」をテーマにしたセッションを実施しました。エディタはほぼ全員がVisual Studio Code(VSCode)を使っていましたが、それ以外のツールやエイリアス、ワークフローには個性が出る結果となりました。
今回の記事では、そんな当社エンジニアたちの開発環境の一部を紹介します。
開発者におすすめのターミナルツール
ターミナルにおいてはiTerm2とWarpに分かれました。
どちらが優れているか、と比較するものではありませんが、tmuxなどのターミナルサーバーを使用している場合は、WarpのUIが干渉することがあるためiTerm2が便利だと思います。一方で、デフォルトのターミナルをそのまま使用している方にとってはWarpを使うと開発体験が向上すると思います。
iTerm2
macOSユーザーの間で広く使われている高機能ターミナル。分割ウィンドウ、スライドインパネル、検索機能などが標準のTerminal.appよりも便利で、テーマやフォントのカスタマイズ性も高く各個人にとって快適な環境を作りやすいターミナルです。
Warp
従来のターミナルの欠点を補うUIやコマンド入力補助機能を搭載しており、コマンドの履歴を共有したり、出力を簡単にコピー&ペーストする機能も備えています。AIでコマンド生成やコマンド予測も従来のターミナルよりも強化されており非常に便利です。
データベース管理を効率化するツール
TablePlus
MySQL、PostgreSQL、SQLiteなど多数のデータベースを1つのアプリで操作できる便利ツールです。GUIが直感的で、テーブルのクエリやデータ操作が簡単に行えます。データのフィルタリングや変更履歴のトラッキング機能も備えており、データベース作業を快適にします。一定の制限下では無料で使用できます。
APIリクエスト
Insomnia
REST APIやGraphQLの開発に使える強力なツール。リクエストの送信、レスポンスの確認が簡単で、API設計からテストまで一貫して行えます。特にOpenAPIドキュメントを活用して、モックサーバーをすぐに立ち上げられる機能が便利で、APIの設計・開発がスムーズに進みます。
私はPostmanを使っており、Postmanはユーザー登録をしなくても使える点で優位ですが、OpenAPIからモックサーバーを立てられる点ではInsomniaの方が魅力的なので、最近はInsomniaも並行して使うことが出てきました。
ディレクトリ移動
autojump
j proj
と入力すれば「projects」ディレクトリへ一瞬で移動可能です。設定には少し手間がかかりますが、使ってみるとcd ~~~
に結構時間使っていたんだなと実感します。
エイリアス
特に各メンバーの個性が出ていたのはエイリアスの設定でした。
印象に残ったエイリアスの一部を紹介します。
ディレクトリ移動関連
back='cd $OLDPWD'
前のディレクトリに戻る。
home='cd $HOME'
ホームディレクトリに移動。
..='cd ..'
親ディレクトリに移動。
1='cd -1', 2='cd -2', ...
ディレクトリ履歴に基づいて移動。
数字のみをコマンドで打つことはないので、確かにこの使い方は便利ですね。
ファイル操作関連
cp='cp -i'
コピー操作を確認付きで実行。
mv='mv -i'
ファイル移動を確認付きで実行。
rm='rm -i'
ファイル削除を確認付きで実行。
la='ls -la -G'
, ll='ls -l -G'
詳細表示でファイルリストを確認。
ducks='du -chs'
ディレクトリやファイルのサイズを合計表示。
強制的に-iオプションをつけるのは、誤って移動、削除、上書きしてしまうなどの誤操作を防ぐには便利ですね。
また、llコマンドは広く使われていますが、よりグラフィカルに見える-Gオプションを付けることでさらに出力結果が見やすくなります。
Git操作関連
gl='git log --all --oneline --graph'
履歴をグラフ表示。
gca='git commit -v -a'
変更をステージングしてコミット。
gp='git push'
リモートリポジトリにプッシュ。
grm='git rebase $(git_main_branch)'
メインブランチにリベース。
gcl='git clone --recurse-submodules'
サブモジュールを含めてクローン。
gsta='git stash push'
変更を一時保存。
gitコマンドはg
とエイリアス設定しているメンバーが多かった印象です。
こうやって見るとgit push
, git pull
は間違えてはいけない重要なコマンドですが、略するとどちらもgp
になるので、もうちょっと別のワードにしてほしかったとも思います...
Docker関連
dd='docker ps -aq -f "status=exited" | xargs docker rm -v && docker images -q -f "dangling=true" | xargs docker rmi && docker volume ls -qf dangling=true | xargs docker volume rm'
不要なDockerコンテナ、イメージ、ボリュームを削除。
dup='docker compose up'
Docker Composeでサービスを立ち上げ。
ddown='docker compose down'
サービスを停止。
dca='docker compose -f compose.dev.yml exec app bash'
開発用Composeファイルのアプリコンテナ内に接続。
Dockerコマンドもgit同様にd
と一文字でエイリアスを設定しているメンバーが多い印象でした。
ツクリンクではcomposeファイルを別ファイルで指定する環境もあるので、-fコマンド付きでエイリアスを設定している人もいました。
Rails操作関連
ra='bundle exec rails'
Railsコマンドを簡略化。
rc='bundle exec rails c'
Railsコンソールを起動。
rs='bundle exec rails s'
Railsサーバーを起動。
rk='bundle exec rake'
Rakeタスクを実行。
Rails系のコマンドのエイリアスです。Railsはbin/rails
で比較的短く実行できますが、それでも長いと感じるメンバーがおり、2文字にまとめていたメンバーがいました。
その他システムユーティリティ
ipv4='ifconfig | grep inet '
IPv4アドレスを確認。
ipv6='ifconfig | grep inet6'
IPv6アドレスを確認。
topcpueater='ps -eo pcpu,pid,user,args | sort -rk1 | head'
CPU使用率の高いプロセスを表示。
python_http_server='python -m SimpleHTTPServer'
簡易HTTPサーバーを立ち上げ。
SimpleHTTPServerはライブラリやサードパーティサービスの都合でHTTPSでしか動かない機能を試すときに便利ですね。それをエイリアスにしているメンバーもいます。
ifconfig
は開発マシンのIPアドレスを確認する機会がほぼなくなった現在では使う人がいないと思っていましたので、「まだ使っているオジサンいるんだな」と思ったら私が設定しているエイリアスでした。
検索・フィルタリング関連
grep='grep --color'
カラー付きgrep。
fgrep='find app --type f | xargs grep '
アプリケーション内で文字列を検索。
afind='ack -il'
ファイル内の特定文字列を検索。
grepコマンドにデフォルトで色をつけるエイリアスはみなさん一般的に設定されていることかもしれませんが、私はまだ設定していなかったので新鮮でした。
勉強会を通じて
今回のセッションを通じて、ツクリンクのエンジニアの開発環境を共有することで、お互いに新しい発見や学びがありました。「そこをエイリアスにすればたしかに便利!」といった発見があったり、「実はもっと楽になるツールがあるのでは?」と自分の環境を見直すきっかけにもなりました。
これからも華金勉強会を通じて、開発に関するTipsや各メンバーがインプットしたことについて楽しく学びながら、お互い技術的に高め合う環境を目指していきます!
こちらはツクリンク株式会社のアドベントカレンダーの記事でした。
ぜひ他の記事も読んでいただけると嬉しいです!
Discussion