[[📒Productivityを上げるために大切な100のこと]] No5. 🥉
----
[[ステートレス]]とはIT用語であり、以下の意味合いをもつ。
> ステートレスとは、システムが現在の状態を表すデータなどを保持せず、入力の内容によってのみ出力が決定される方式。同じ入力に対する出力は常に同じになる。
この延長でここでは、**ステートレスな操作**は『ある前提において、ある操作をすると、状態によらず同じ結果になること』と定義している。**できる限りステートレス**とはその前提が緩い状態を指す。
一例としてお気に入りのサイトを開く操作を考えてみる。これらの方法にはそれぞれ前提がある。
| 操作 | 前提 |
| ---------------------------------- | ------------------------------------ |
| [[ランチャー]]から検索する | [[ランチャー]]が起動している |
| お気に入りバーからクリックする | ブラウザがアクティブ |
| ブラウザ初期ページからクリックする | ブラウザで空タブがアクティブ |
| Slack botを使う | Slackがアクティブで対応channelが表示 |
上にいくほど**できる限りステートレス**な操作だ。
`ランチャーから検索する`が一番ステートレスな理由は、どのような画面であってもショートカットキー1発で[[ランチャー]][^1]を起動できるからだ。今の状態を考えずに毎回同じ操作をすれば必ず目的を果たせる。
[^1]: [[Windows]]なら[[Keypirinha]]、[[macOS]]なら[[Alfred]]がオススメ
一方、`Slack botを使う`場合はクリアしなければいけない前提条件が多い。運良く該当のchannelを表示していれば容易いが、数多くのWindowが開かれている状態だとそこに辿り着くのは大変だろう。頑張れば操作はステートレスにできるかもしれないが、`ランチャーから検索する`と比較して手数は増えるだろう。
**できる限りステートレス**な操作にすることで考えるよりも速く操作ができるようになる。参考までに[[TeamSpirit]]を開くまでに私が行っている操作を比較してみた。ステートレスでない操作や判断には💀マークをつけている。
- [[ランチャー]]から検索する
1. `Ctrl + q`
2. `team`と入力して`Enter`
- お気に入りバーからクリックする
1. 💀ブラウザがアクティブでない場合
- 💀`Alt + Tab`を **何回か** 押してブラウザをアクティブにする (ない場合は起動)
2. お気に入りバーから`TeamSpirit`を探してクリック
- ブラウザ初期ページからクリックする
1. 💀ブラウザがアクティブでない場合
- 💀`Alt + Tab`を **何回か** 押してブラウザをアクティブにする (ない場合は起動)
2. 新しいタブを開く
3. `TeamSpirit`を探してクリック
- Slack botを使う
1. 💀[[Slack]]がアクティブでない場合
- 💀`Alt + Tab`を **何回か** 押して[[Slack]]をアクティブにする (ない場合は起動)
- `; -> Shift + S`で[[Slack]]をアクティブにすることもできる (要カスタマイズ)
2. 💀該当のchannelが表示されていなければ
- `Ctrl + k`でchannel検索画面を開く
- 該当のchannelを入力して`Enter`
3. `/bookmark teamspirit`のようにSlack botコマンドを打つ
4. botが返却したリンクをクリック
ここでは紹介しなかったが、最もステートレスな操作はグローバルショートカットキーの割り当てだろう。`Ctrl + Shift + S`を押したらどの画面からでも[[TeamSpirit]]が開けば最高だ。
## 2025/11/16 追記
現在は[[macOS]]なので、ランチャーは[[Raycast]]を使用している。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://www.raycast.com/favicon-production.png" />
<span class="link-card-v2-site-name">www.raycast.com</span>
</div>
<div class="link-card-v2-title">
Raycast - Your shortcut to everything
</div>
<div class="link-card-v2-content">
A collection of powerful productivity tools all within an extendable launcher.
</div>
<img class="link-card-v2-image" src="https://www.raycast.com/opengraph-image-pwu6ef.png?7385e23163a01717" />
<a href="https://www.raycast.com/"></a>
</div>