己の限界に挑め!コードライティングRTAを攻略せよ!

己の限界に挑め!コードライティングRTAを攻略せよ!|ANDPAD Advent Calendar 2022こちらは ANDPAD Advent Calendar 2022 の2日目の記事です。
こんにちは、ショートカットおじさん、もとい soe-j です。 アドベントカレンダーらしいライトな記事を書くためにやってきました。

入社してから変わらず、より高い価値をいち早く/長く届けたい思いで試行錯誤する毎日を送っております。 その中で「どのように設計するか」「どのように作業分担するか」など議論することが多いと思います。 チームとしてどう開発するか、長期的に品質を保つにはどうするべきか.... 時間をかけるべき観点です。

さて、いざ開発するとき。ここからは言うなれば個人の戦いです。
要件、タスクをコードに落としていくRTAといっても良いでしょう(本当か?)

今回はこのRTAを、基礎、ウインドウ整理、コーディング、拡張の観点に分けて、どう攻略しているか紹介していこうと思います。

基礎

タイピング速度

とにかくキー入力は早い方が良い。全部のスピードがあがる。全部。 エンジニアだけでなく現代の仕事における基礎体力といっても過言ではないと思っています。 脚速かったらサッカーも野球もテニスも強い。詳しくないけど。 コーディングだけでなく、Slackでのやりとり、ドキュメント化においても効果を発揮するはずです。

タイピング速度をあげるには....もうとにかくいっぱいコードを書いてくださいw
ドキュメントを沢山書くのも良いでしょう。

また、インターネットには沢山タイピングゲームがあるので、お気に入りを見つけるのも良さそうです。 私は学生の頃に Ozawa-ken、クムドールの剣にハマってこの力を手に入れました。 いまならお手軽に寿司打などいかがでしょうか。 sushida.net

なるべくキーボードで片付けること

キーボードとマウスを行ったり来たりする時間がもったいない。 というよりキーボードのホームポジションから手を離してから、またピタッとホームポジションに戻すのは難しいものです。 故にすべてキーボードで済むようにセットアップしましょう。 以下、ショートカットとショートカットで実行できるようにするアプリケーションたちを紹介します。

ウインドウ整理

要件書を見ながらコードを書いたり、更に参考サイトを見ながら、その横にビルド結果を表示してたり、Slackで少々確認したり.... 開くウインドウが沢山ありながら、そのときそのとき見るウインドウは常に入れ替わり続けるため、意外とウインドウの再配置を繰り返すことは多いかと思います。 繰り返しやることはキーボードで出来るようにしましょう。

Rectangle

キーボードでウインドウを左右に配置したり、サイズを変更したり出来ます。 rectangleapp.com

Witch

Mac は cmd + tab でアプリケーションが切り替えられますが、更にウインドウも巡回できるようにするために設定。 manytricks.com

Workona

無限に増えるブラウザタブを整理する拡張。もちろんショートカットも備えています。 workona.com

ブラウザタブ切り替え

もちろんショートカット移動。 以下はChromeの例です。

key 効果
control + tab or command + option + → 次のタブ
control + shift + tab or command + option + ← 前のタブ
cmd + 1~8 n番目のタブ
cmd + 9 最後のタブ

コーディング

エディタ

ひたすらショートカットを使ってホームポジションから手を離さずに生活しましょう。

私は Mac + Visual Studio Code を使って、更に手に馴染むようカスタムもしています。 他のエディタでもあらかた設定は出来るかと思います。

以下はあくまで私のセッティングなのでご参考まで。 良さそうなのがあれば、ショートカット設定画面で Command ID による検索が出来るので試してみてください。

key 効果 command ID
cmd を押しながら k s と入力 ショートカット設定画面を表示 workbench.action.openGlobalKeybindings
cmd + a 行頭、またはインデントの頭に移動 cursorHome
cmd + e 行末に移動 cursorEnd
option + ←/→ 単語の切れ目まで移動 cursorWordLeft / cursorWordEndRight
option + ↑/↓ カーソルのある行、または選択した行を上下と入れ替え editor.action.moveLinesUpAction / editor.action.moveLinesDownAction
option + shift + ↑/↓ カーソルのある行、または選択した行を上下にコピー editor.action.copyLinesUpAction / editor.action.copyLinesDownAction
cmd + option + ↑/↓ カーソルを上下に増やす editor.action.insertCursorAbove / editor.action.insertCursorBelow
cmd + d カーソル位置の単語を選択、同じ単語を選択 editor.action.addSelectionToNextFindMatch
cmd + shift + L ファイル内のすべての同じ単語を選択 editor.action.selectHighlights
cmd + shift + c 開いているファイルパスをコピー copyRelativeFilePath
cmd + j terminal などを開いているパネルを開閉 workbench.action.togglePanel
cmd + control+ j terminal などを開いているパネルを最大化 workbench.action.toggleMaximizedPanel
ctrl + shift + cmd + f 開いているタブを次のウインドウグループに移動 workbench.action.moveEditorToNextGroup
ctrl + shift + cmd + b 開いているタブを前のウインドウグループに移動 workbench.action.moveEditorToPreviousGroup
cmd + p ファイル名で検索して表示 workbench.action.quickOpen
cmd + shift + e ファイルツリーに移動 workbench.view.explorer

Git GUI

私は GitUp を愛用しています。シンプルな表示と豊富なショートカットという至高の組み合わせ。 gitup.co

拡張

上記以外にもパソコンの操作は沢山あるかと思います。 それに対してちょうど良いアプリケーションがないときは作ってしまいましょう。 作るための簡単な手段を紹介します。

Spotlight

各種アプリケーションを呼び出すときに使っています。 いわゆるランチャーアプリは世の中にいっぱいありますが、私はMac標準で事足りてます。

よく使うアプリケーションなら ctrl+space → アプリケーション名の頭文字 だけで起動することが出来るはずです。

Automator

実行したいシェルをアプリケーションとして保存することで Spotlight から呼び出すことが出来ます。 シェルさえ組めればすべてがキーボードの上で完結できます。

Chrome拡張

自動化したいけどAPIがない、認証が複雑などの理由で諦めがちだけど、結局毎日やってる作業ありませんか? Chrome拡張でサクッと解決してしまうのも手かもしれません。 qiita.com

キーボードを拡張

市販のキーボードでは限界?ならば作りましょう! 0から作ることも出来ますし、キットも沢山あります! キーマップをカスタムすれば複雑なコマンドも簡単になりますよ!!! yushakobo.jp

ちなみに愛用のキーボードは Corne Chocolate です。

終わりに

ここまでやるとかなりキーボードの上だけで生活できるようになります。 しかし、まだまだブラッシュアップ出来る点はあると思っているので、あなたの至高のRTAライフを教えてください!

当社アンドパッドでは、コードライティングRTA攻略が大好きなエンジニアもその他の攻略が大好きなエンジニアも積極採用中です。
さまざまなポジションで仲間を募集しています。
詳しくは下記リンクをチェック!

engineer.andpad.co.jp

hrmos.co

さて、カレンダー序盤にゆるい記事を展開しましたが、いかがでしたでしょうか。 明日は開発組織のマネージャー「ごっさん」こと後藤さんの入社エントリー記事が公開されるそうです!お楽しみに!