はじめに
皆さんこんにちは、こんばんは
メリークリスマス 🎄
そう、今日は12月25日クリスマスの日です。
皆さんはいかがお過ごしですか?
今日Qiitaを見ているということは現実逃避しているのではないでしょうか?笑
(私も現実逃避をしています。今日は塾です。)
まあそんなことはさておき
サンタクロースがエンジニアだということを知っていますか?
何を言ってるんだと思うかもしれません。
いや、、、
サンタクロースはエンジニアです。
この記事は[gakuseibotのアドベントカレンダー最終日]25日の記事となります。
ぜひ最後までお読みください!!
サンタクロースは、実は超一流のエンジニア
まずはサンタクロースを、
エンジニア視点でシステム運用者として見てみます。
[サンタのシステム要件]
-
利用ユーザー:全世界の子ども
-
稼働日:年1回(12/24〜25)
-
SLA:失敗不可
-
ダウンタイム:0
-
障害対応:その場で即解決
-
クレーム対応:基本なし(でも一生覚えられる)
冷静に考えると、地獄みたいな本番運用です。
しかもサンタは、、、
-
マニュアルを配らない
-
使い方を説明しない
-
UIも表示しない
-
ログイン画面すら存在しない
それでもユーザーは迷わない。
これ、つまり設計が極限まで洗練されているということです。
プレゼント = UX(ユーザー体験) 論
サンタの仕事の本質は「物を配る」ことではありません。
「誰に」
「何を」
「どのタイミングで」
「どんな形で渡すか」
→ これは完全に UX設計です。
エンジニアに置き換えると
「ユーザーは何をしたいのか」
「どこで迷うのか」
「説明を読まずに使えるか」
「ミスしたとき、どう感じるか」
↓↓ たとえばこんな違い ↓↓
「エラーが発生しました」
と
「通信に失敗しました。数秒待ってから再度お試しください。」
後者のほうが、圧倒的に「やさしい」。
サンタがもし、
「在庫不足のため配布できませんでした」
なんて紙を置いていったら、たぶん炎上します。
年末はなぜバグが増えるのか
エンジニアあるあるですが、
12月はバグが増えがちです。
理由はだいたいこれです↓
「今年中に出したい」
「スケジュールが詰まる」
「気持ちが焦る」
「レビューが浅くなる」
その結果、生まれるコード
// TODO: あとで直す(←来年の自分へ)
未来の自分への負債プレゼントです。
「未来の自分」は最大のユーザー
ここで大事なのが、
一番そのコードを読むのは誰か?
という話。
多くの場合、それは
数週間〜数か月後の自分です。
[やさしくないコードの例]
-
変数名が短すぎる
-
なぜそうしたかコメントがない
-
マジックナンバーだらけ
-
処理が1関数に詰め込まれている
[やさしいコードの例]
-
名前を見れば意味がわかる
-
処理が小さく分かれている
-
「なぜ」をコメントで残している
-
変更しやすい構造になっている
これは技術力というより、
思いやりの問題だと思っています。
gakuseiBOTと「やさしさ」
gakuseiBOTも、学生向けという性質上、
-
専門用語を減らす
-
コマンド名を直感的にする
-
失敗しても怖くない設計にする
こういった「やさしさ」を意識しています。
初心者が使って、
「なんか分からないけど、使えた」
と思えるのは、実はかなり難しい設計です。
でもそれができたとき、
技術以上の価値が生まれると思っています。
クリスマス精神 = エンジニア精神?
クリスマスに大切なのは、
-
完璧さ
-
速さ
-
かっこよさ
よりも、
-
相手の立場を考えること
-
失敗しにくくすること
-
安心して使えること
これって、そのまま
良いエンジニアの条件じゃないでしょうか。
まとめ|今年最後に伝えたいこと
-
コードは人に読まれる
-
ツールは人に使われる
-
一番のユーザーは未来の自分
だからこそ、
少しだけ、やさしく設計する
それが、
来年の自分への最高のクリスマスプレゼントかもしれません。
これからコードを書く予定がある皆さんは、わかりやすい設計を心がけて来年のクリスマスこそゆっくり過ごしましょう。
2025年の gakuseiBOT Advent Calendar これにて終了したいと思います。
最後まで読んでいただきありがとうございました。