Site cover image
ライブコーディングを開催しました

12月17日に先日お知らせしたライブコーディングを実施しました。

この記事では配信中に紹介したツール類をまとめつつ、実際に開催してみた感想を書いてみたいと思います。

配信は下記からご覧ください。

参加した方が早速ブログを書いてくださいました。

紹介したツール類

iTerm2

Mac にはデフォルトでターミナルアプリがインストールされていますが、色の表現が豊富、ホットキーウィンドウが非常に便利という点で私は iTerm2 を愛用しています。

ホットキーウィンドウについては下記の記事にGIFアニメがあるので見ていただくとその良さがわかっていただけると思います。

tmux

tmux はターミナルマルチプレキサーと呼ばれるソフトウェアで、ターミナルの中に複数のターミナルを作成することができます。

最大の特長はターミナルへの接続が切れたとしてもセッションを維持し続けてくれることで、例えばリモートのサーバーにSSHログインして時間のかかるコマンドを実行しているときにSSHコネクションが失われても実行中のコマンドを維持してくれます。

サーバーエンジニアの方には馴染みのあるソフトウェアでしょう。

私は普段の開発でも使っていて、tmux で作成したターミナル(ペインやウィンドウと呼ぶ)の間でクリップボードを共有できるところや、他のウィンドウに即座に移動できるところが便利です。

開発中の複数のリポジトリがある場合に、各リポジトリごとに tmux セッションを作っておくという使い方をしています。

tmux はそのままでも十分便利ですが、少しカスタマイズしてあげることでさらに便利になります。

下記では私の自作のツールを紹介しているのでぜひご覧ください。

また、私の tmux の設定は公開しているのでよかったら参考にしてください。

ripgrep

全文検索ツールとして私は ripgrep を使っています。

rg '検索したいワード' とすると今いるディレクトリ以下の全ファイルからワードが含まれているファイルを検索することができます。

Mac で Homebrew をお使いの場合は簡単にインストールできるのでぜひ使ってみてください。

fzf

fzf はターミナルで動作するファジーファインダで、今いるディレクトリ以下のファイルをあいまい検索することができます。

非常に便利なのでぜひ使ってみてください。こちらも Homebrew があれば簡単にインストールできます。

fzf-git

fzf-git は私が自作したGit管理のファイルを簡単に選べるようにするためのツールです。

fzf のインストールが必要になりますが、ファイル選択と履歴からのコミットハッシュ選択が便利になるので興味のある方はぜひ使ってみてください。

エディタ関連

NeoVim

私はエディタとして長年 NeoVim を愛用しています。もし興味のある方は下記の記事やこのブログの Vim カテゴリをご覧ください。

とはいえ、配信でも話している通り最近はVSCodeを使う人が圧倒的に増えてきていますし、無理にVimを使う理由はないかなとも思っています。

どうしても自分がVimがいいんだ!という人は使ってみてください。

押さえておくと良いテクニック

下記の操作をお使いのエディタで扱えるようにしておくと良いと思います。

  • 複数行のインデント
  • 複数行の入力・削除
    • // で一気に複数行コメントアウトしたり、逆に複数行に渡る先頭の // を消したり
  • カーソル上のワードでの全ファイル検索
  • 型・メソッド定義のヒント
  • 定義・参照ジャンプ
    • メソッドの定義箇所を開く、メソッドが使用されている箇所を調べる
  • 自動補完
  • コードフォーマット

コードフォーマットは Prettier がおすすめです。VSCode のプラグインもあるのでまだの方はぜひ導入してください。

Git関連

現在の差分を1つ前のコミットに混ぜる

差分を add した上で git commit --amend で1つ前のコミットに差分を混ぜることができます。

2つ以上過去のコミットに混ぜる

git rebase -i <コミットID> を使えば歴史を自由に改変することができます。

詳しい使い方は git rebase で調べてみてください。

エイリアス

cherry-pick などのよく使うのに長いGitコマンドはエイリアス(別名)をつけて使いやすくしておくのがおすすめです。

その他話したこと

コードは書くよりも読まれることの方が圧倒的に多い・・!

コードは書くよりも読まれる機会の方が圧倒的に多いので、読み手にとってわかりやすい、説明的なコードを書きましょうという話をしました。

例えば配信の中で /blog/[slug] のパスを判定するロジックをわざわざ変数 isSlugPath に代入してから使用しているのがそうです。

また、コードの読み手というのは他人だけでなく、3ヶ月後の自分もそうです。

3ヶ月前に書いたコードを振り返ってみて意味がわからないとならないように、普段から読み手にわかりやすいコード、コミットメッセージ、コミットの分け方(コミットメッセージ以外の差分を含めない)ことを意識しましょう。

💡
と言いつつも、3ヶ月前の自分のコードを見て拙さを感じるのは成長している証でもあります。

開催を振り返って

初の開催ということもあり至らぬところが多々あったな思います。

例えば下記のようなことです。

  • 配信開始時の音声が入力できないトラブル
    • Shibaoさん、分解ちゃんねるさん、ありがとうございました 🙏
  • 息の音がかなり入ってしまっていた
    • もし継続するなら風防のついたマイクを用意したほうが良さそう
  • 配信のバナーが邪魔でコマンドが見えなかった
  • BGMをオンにするのを忘れていた
  • 予定していた終了時刻を大幅にオーバーしてしまった

一方で、楽しかった、ためになったというポジティブなコメントをいただけたのは非常に嬉しかったです。

また機会があれば配信しても良いかもしれませんね。

見てくださった方、ありがとうございました。

Thank you!
Thank you!
URLをコピーしました

コメントを送る

コメントはブログオーナーのみ閲覧できます