TalentX Tech Blog

Tech Blog

AI時代でも生きる!効率的な開発環境の紹介

こんにちは、TalentXでバックエンドを担当している桃谷です。

昨今、AIエージェントによる開発が浸透しておりますが、みなさんは生産性が向上している実感はありますでしょうか?
AIエージェントをどのように使うか?という内容は毎日のように記事が更新され、活発に議論がされておりますが、AIに良いアウトプットを出してもらうためには、それを受け取る側の開発環境も整っていることが重要だと感じています。
このようなAIエージェントによる開発が一般的になった時代でも... いやこんな時代だからこそ、効率的な開発環境を作り上げるということがなおさら重要になってきたのではないかと思っています。

ということで今回は私の開発環境で特に気に入っているツールや設定を紹介していきます。
昔から気に入って使っているものもあれば、AIエージェントによる開発と相性の良いということで最近使い出したツールもありますので、ぜひ楽しんでいってもらえたらと思います。

zsh・ターミナル関連

まずはzsh・ターミナル関連の効率化ツール、設定を紹介していきます。

zsh alias の設定

いきなりツールではありませんが、効率化の基本中の基本なのでaliasの設定を含めました。 ~/.zshrcにaliasを設定するだけです。

# よく使用するコマンドをエイリアスに登録
alias tf="terraform"
alias asl="aws sso login"

ポイントは使用する頻度が高いと感じたコマンドは即座にエイリアスとして登録することです。ちりつもで効率化しようというマインドが重要だと思っています。
なので、私は即座にエイリアスが登録できるように、~/.zshrcを開くコマンドもエイリアスにしています。(エイリアスを登録するためのエイリアス)

私はVSCodeで基本的にファイル編集をしているので以下を登録しています。

alias zshconfig="code ~/.zshrc"
alias gitconfig="code ~/.gitconfig" # gitのaliasも設定しやすくしておきましょう

iTerm2の設定

私はターミナルについてはiTerm2を使用していますが、マストで設定しておきたいのがHotKeyです。Settings > Keys > HotKeyから設定ができます。

iTerm - Hotkey
上記のようにしておくことで、option + shiftでiTermの表示・非表示を切り替えることができます。

tmux

ターミナルを分割・セッション管理できるツールです。
AIエージェントでの並列タスクをこなす上でとても相性が良いツールで重宝しています。
最近はtmuxのセッションの中でclaude codeを起動し、並列でタスクを進める場合は、セッションを行き来しながら進めています。
また、同じリポジトリ内で並列に開発する場合は、git worktreeと組み合わせて使用することで効率よく進められます。

tmux

zsh-autosuggestions

zshのプラグインはいくつか入れていますが、まず初めに入れたいのがこのプラグインです。それくらい一度使うとなくてはならない存在になります。
このプラグインを入れることで、過去に打ったコマンドをsuggestしてくれます。

zsh-autosuggestions

Macを使っている方であれば、Homebrewでサクッとインストールできます。私はoh-my-zshを使っていますが、こちらも管理がしやすくおすすめです。

brew install zsh-autosuggestions

ランチャーアプリ

私はランチャーアプリは、AlfredとRaycastを使用していますが、それぞれの私の使い方を紹介します。

HotKeyの設定

上述の通り、iTermではHotkeyを設定しておりますが、その他のアプリでは、Hotkeyがアプリの設定として提供されていないものもあるかと思います。
その場合はAlfredのworkflow機能を利用して、各アプリケーションにHotkeyを割り当てています。(Hotkeyが提供されているアプリもあるかもしれませんが、調べるのも面倒なのでAlfred上でサクッと設定することが多いです)

Hotkey - setting

このように設定しておくことで、よく使用する各アプリケーションをHotkey1発で呼び出すことができるので便利です。

App Hotkey

Alfredのこの機能は有料版を購入する必要があります。Raycast等で代替できるかもしれません。

Search Project Manager(Raycast)

複数のリポジトリで開発する場合、各リポジトリを行ったり来たりすることに手間取ってしまうことはないでしょうか?
この問題を解決してくれるのが、RaycastのプラグインであるSearch Project Managerです。
これを使用することにより、VSCodeであらかじめ登録しておいた対象リポジトリを一発で開くことができます。

search project manager

www.raycast.com

エディタ・開発関連

GitLens(拡張機能)

エディタ上から変更履歴を簡単に確認できる拡張機能です。
変更者やコミットなどを確認できるのですが、私がよく使用するのは、コマンドパレット(⇧ + ⌘ + P)> GitLens: Open File on RemoteからすぐにGitHubの対象ファイルを開くことです。
ソースコードの共有をしたい場合などにすぐにGitHubのリンクが共有できるので重宝しています。

>GitLens: Open File on Remote

Delve(Goデバッガー)

こちらはGoのデバッガーになりますが、ローカルでのデバッグに重宝しています。
以下は、Docker + air + VSCodeでの開発環境の設定例4ステップになります。

  • 1: Dockerfile(delveのinstall)
# --- local ---
FROM builder AS local

WORKDIR /go/src/app

RUN go install github.com/air-verse/air@latest \
    && go install github.com/go-delve/delve/cmd/dlv@latest

CMD ["air"]
  • 2: docker-compose.yaml(デバッグ用のポート設定)
services:
api:
    container_name: api
    build:
      context: .
      dockerfile: ./docker/api/Dockerfile # 上記設定したDockerfile
      target: local
    env_file:
      - .env
    volumes:
      - ./:/go/src/app
    ports:
      - '2345:2345' # デバッグ用のポート番号
      - "8071:8080"
  • 3: .air.tomlの設定ファイル修正
# 必要箇所以外は省略
[build]
  cmd = "go build -gcflags \"all=-N -l\" -o ./tmp/main ."
  full_bin = "dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./tmp/main"
  • 4: .vscode/launch.jsonファイル作成
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Remote",
            "type": "go",
            "request": "attach",
            "mode": "remote",
            "remotePath": "/go/src/app",
            "port": 2345,
            "host": "localhost",
            "cwd": "${workspaceRoot}",
        }
    ]
}

コンテナ起動後、デバッガーがlisten状態になるので、VSCodeのデバッガーを起動することで使用可能

debug

おわりに

いかがだったでしょうか?一つでも皆さんの参考になるものがあれば嬉しいです。

最後にTalentXでは現在新しい仲間を募集中です。

talentx.brandmedia.i-myrefer.jp

またカジュアル面談も実施しておりますので、ぜひお気軽にご応募ください。

i-myrefer.jp