処方箋情報基盤開発チームエンジニアの加藤です。
この記事は カケハシアドベントカレンダー2021 の18日目の記事になります。
まえがき
今年はとくにアウトプットの速度を求められる局面が多い年でした。
そのため、社内の仕事の速いエンジニア(速い人はビビるぐらい速い)から知恵を借りたり、自身で工夫して開発効率を改善する必要がありました。 その中でも、導入が簡単かつテクノロジースタックに依存しないものを紹介します。
なお以下の説明はすべてmacOS Big Sur環境の前提です。 あらかじめご了承ください。
ターミナル & シェル
macOS Catalina からデフォルトのログインシェルがzshになりました。 それまでは惰性で bash を使っていたのですがこれを機に zsh に移行、さらに prezto を導入しています。
~/.zpreztorc
と ~/.zshrc
に追加の設定を加えて自動サジェストや定義済エイリアスを有効にしています。
In ~/.zpreztorc
:
# 標準に加えて git, python, autosuggestions を追加 zstyle ':prezto:load' pmodule \ 'environment' \ 'terminal' \ 'editor' \ 'history' \ 'directory' \ 'spectrum' \ 'utility' \ 'completion' \ 'git' \ 'python' \ 'autosuggestions' \ 'contrib-prompt' \ 'prompt'
In ~/.zshrc
:
bindkey '^ ' autosuggest-accept # Ctrl+Space にサジェスト確定をバインド
定義済エイリアスは alias
コマンドで一覧できるほか、 sa
コマンドで検索もできます。
$ alias 1='cd +1' 2='cd +2' 3='cd +3' 4='cd +4' 5='cd +5' 6='cd +6' 7='cd +7' 8='cd +8' 9='cd +9' _=sudo ack='nocorrect ack' ... $ sa "git add" gCa='git add $(gCl)' giA='git add --patch' gia='git add' giu='git add --update'
さらに Starship を導入することで、プロンプトをオシャレにしています。
starship は一部の表示には Nerd Font を要求するため、 iTerm2 に 白源 フォントの HackGen35Nerd Console
を設定しています。
白源フォントは全角空白を可視化してくれるので、 iTerm2 だけではなく Visual Studio Code にも設定しています。
コマンド
bat
: コードハイライト付きビューワ
bat
はシンタックスハイライト付きのコマンドラインテキストビューワです。
公式より:
ちょっとしたコードをターミナルから読むときに便利です。
sd
: 文字列置き換え & fd
: ファイル検索
sd
と fd
は、それぞれ伝統的な sed
と find
を置き換えるような機能を持っています。
コマンド体系はだいぶ異なりますが、単純な置換の用途ならスッキリかけます。
# sed & find の場合 $ sed -i.bak -e 's/Optional\[int\]/int | None/g' $(find . -name '*.py' -type f) # sd & fd の場合 $ sd "Optional\[int\]" "int | None" $(fd ".*.py")
Rust で実装されているため高速かつ高機能です。
watchexec
: 汎用的なファイルウォッチャー
watchexec
は、名前からも分かる通りファイルの変更を契機として指定したコマンドを実行します。
webpack --watch のように、開発中にファイル保存を契機としてコンパイルや開発サーバの再起動をするようなものは多いのですが、watchexec
は汎用的に使えます。
# ファイル保存を契機としてフォーマッタとチェッカーを走らせてからテスト実行 $ watchexec -- 'isort && black && flake8 && pytest -s'
code
: Visual Studio Code で開く & git open
: ブラウザでGitHubリポジトリを開く
小技ですが、たまに作業しているディレクトリをエディタで開いたり、 リポジトリに対応するGitHubの画面をブラウザで開きたくなることがあります。
そういう場合は、 code
コマンドや git open
コマンドを用います。
# Visual Studio Code でカレントディレクトリを開く # (開いている場合はそのウィンドウをアクティブにする $ code . # カレントディレクトリが GitHub からクローンした Git リポジトリの中にあるなら、そのリポジトリをブラウザで開く $ git open
macOS アプリ
Clipy: クリップボードマネージャ
Clipy はクリップボードへの操作(コピペ)を記録したり、スニペットをコピーしてくれるソフトウェアです。
スニペットも保存可能なので、使用頻度の高い文字列を入れておくと良いことがあるかもしれません。
RunCat: パフォーマンスモニタ
RunCat は、macOSのメニューバーで動くパフォーマンスモニタです。
CPU負荷が高くなるほどアニメーションが速く動くため、負荷がかかっていることがわかりやすいです。
個人的なお気に入りは「虹色のオウム」です。
Karabiner-Elements: キーボードカスタマイザ
Karabiner-Elements は、様々なことができるキーボードカスタマイザです。
個人的にはまだまだ掘り下げる余地があると思っているのですが、 現在使っているのは以下の2つのみです。
- 左CtrlとCapsLockの交換
- ⌘+Q を2回押しにする
私はよく⌘+Wと間違えて⌘+Qを打鍵してしまうことがあり、 Google Chrome はデフォルトで2回押しが有効なので問題ないのですが、 それ以外のアプリケーションは意図せず終了してしまっていました。 この対応でそれが防げるようになって生産性が非常に改善されました。
Visual Studio Code
メジャーどころの GitHub や indent-rainbow はみんな使っていると思うので、ちょっとマイナーなものだけ紹介させてください。
open Junkfile: 書き捨て用のバッファを作る
MTG中に急にメモが取りたくなったり、雑にコードを書いて実行したくなったり、ということはよくあると思います。 そのときにいちいちファイルを指定して開くのは意外と面倒です。
open Junkfile は、一時的なファイルを開くだけの拡張機能ですが、 いちいち場所やファイル名を指定する必要がなく、「決断疲れ」しにくいので重宝しています。
公式より:
Code Spell Checker: スペルチェッカー
株式会社カケハシでは、調剤薬局向けサービスを複数提供しています。 そのため、コード中には 'pharmacy' という単語が頻出するのですが、 非常に間違えやすい単語のため('pharmarcy', 'phamracy' など)にレビュー指摘が頻出します。
これを防ぐため Code Spell Checker を導入してスペルチェックをコーディング中に気づくようにしています。
実際の動作画面:
Google Chrome 拡張機能
GitHub Issue Link Status: GitHub Issue をわかりやすく表示する
GitHub では、 #1
のように Issue や PR へ自動リンクができます。
それだけでも便利ですが、例えば Issue からリンクしている PR がマージ済だったり、関連する Issue が Open か Closed か、をいちいち開かなくても分かると便利ですよね。
GitHub Issue Link Status 1 は、Issue や PR へのオートリンクを、その種別と状態に合わせてハイライトしてくれます。
適用前:
適用後:
Refined GitHub: GitHub を色々便利にする
Refined GitHub は、GitHubの画面を改善するスクリプトを詰め合わせたような拡張です。
本日時点で212項目とかなりの数の改善が入っており、個々に有効化・無効化ができます。
私の気に入っている機能の1つは "quick-review-buttons" で、これはレビューコメント・承認等のUIがラジオボタンで選択+送信ボタンクリックから、個々のボタンに変更してくれます。
公式画像より:
レビューは頻度の多い作業なので、2アクションが1アクションに減るのは非常に助かります。
Url Shortener: 短縮URLやQRコードを作成する
業務中の情報共有や、PCで開発しているページをクイックにモバイル端末で閲覧したいケースはよくあると思います。
Url Shortener は、現在開いているページの短縮URLやそのQRコードを作成してくれます。
モバイル端末で読み込むのはもちろん、Amazonの長い商品リンクを貼るのを回避するのにも便利です。
たとえば、同じ商品へのリンクでも以下のように短縮できます(bit.lyの場合)
https://www.amazon.co.jp/%E6%A0%84%E5%85%89%E3%81%AE%E6%9E%B6%E6%A9%8B/dp/B07P9Y8FM6/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E6%A0%84%E5%85%89%E3%81%AE%E6%9E%B6%E6%A9%8B&qid=1639729766&sr=8-1
↓
https://amzn.to/3GQ8T8i
最後に
小ネタの寄せ集めで恐縮ですが、開発効率改善のために導入したソフトウェアを紹介させていただきました。
明日12/19は渡部桂太さんの「AI在庫管理のなにか」です。 なんでしょうね。楽しみです!
株式会社カケハシは絶賛採用中です!
採用中のポジションは以下を御覧ください。