Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nstockの認知負荷へのアプローチ@CHUO_TECH_20240619

mashi
June 20, 2024
66

 Nstockの認知負荷へのアプローチ@CHUO_TECH_20240619

mashi

June 20, 2024
Tweet

Transcript

  1. 自己紹介 Make the startup ecosystem AWESOME 02 © Nstock Yuki

    SHIMA Nstock 株式会社のソフトウェアエンジニア 最近上野に引っ越しました。富山県出身。 先週末に2人で韓国行く予定だったんですが 友達の寝坊で一人旅になりました。 参鶏湯美味しかった。
  2. いろいろやってます Make the startup ecosystem AWESOME 07 © Nstock 生産性を上げる努b

    u ドメイン勉強 u ユビキタス言語の整‚ u モブプロ、ペアプロの利V u GitHub CopilotやChat GPTな どLLMの利V u 読書 u 各自の得意な領域の共有会 生産性を下げない努b u 言語やライブラリの定期的な バージョンアッ} u 技術的Issueの洗い出x u Toilの解ˆ u Design DocやFigmaを使った図 式化
  3. Make the startup ecosystem AWESOME 10 © Nstock プログラマー脳 出版社:秀和システム

    ページ数:288ページ コードを「読む」ときの認知プロセス について記載されている書籍 ガチおすすめ
  4. 認知負荷へのアプローチ Make the startup ecosystem AWESOME 11 © Nstock VT

    課題内在性負H ET 課題外在性負H CT 学習関連負荷
  5. 認知負荷へのアプローチ Make the startup ecosystem AWESOME 12 © Nstock IG

    課題内在性負荷 取り組むタスク自体の難しさ これ自体を大きく減らすことはできない事が多い。分割するのが効果的。 例)ドメイン知識が求められるもの(Nstockでいうとストックオプション そのものの知識)
  6. 認知負荷へのアプローチ Make the startup ecosystem AWESOME 13 © Nstock IG

    課題外在性負荷 タスクそのものとは別の難しさ 各々の習熟度や手順の複雑さからくるもの。 読み手が持っている知識によって大きく異なる!! 例)Java初心者。なんでこのテーブルだけ他と違って非正規化してあるん だ?など
  7. 認知負荷へのアプローチ Make the startup ecosystem AWESOME 14 © Nstock HG

    学習関連負荷 学習やタスクを遂行するために必要な負荷 この負荷を高くしても問題ないように、課題内在性負荷と課題外在性負荷 を小さく保つ必要がある 例)新機能の開発。セキュリティ知識の習得。(シチュエーションによって かわる)
  8. あるとおもいます Make the startup ecosystem AWESOME 17 © Nstock コードは読む時間が7割〜8…

    b スタートアップであれば相対的に書く時間が長e b しかし、時間が経ってメンバーが増えて利用しているお客様が増えれh b 自分が書いていないコードを読C b 自分が書いた記憶のないコードを読む(!)
  9. Nstockの認知負荷を分類 Make the startup ecosystem AWESOME 19 © Nstock 課題外在性負‘

    y 直感的でない命Y y 実装の妥協† y 不慣れなJav„ y 仕様や機能の妥協† y バイテンポラルデータモデ• y 使われていないフィールドやカラム 課題内在性負‘ y 株式報酬にまつわる用| y ストックオプションの計算ロ ジッ~ y 「ほふり」や証券会社との連携 スキーw y 株式分割の効力発揮タイミング
  10. Nstockの認知負荷を分類 Make the startup ecosystem AWESOME 20 © Nstock 課題外在性負‘

    y 直感的でない命Y y 実装の妥協† y 不慣れなJav„ y 仕様や機能の妥協† y バイテンポラルデータモデ• y 使われていないフィールドやカラム 課題内在性負‘ y 株式報酬にまつわる用| y ストックオプションの計算ロ ジッ~ y 「ほふり」や証券会社との連携 スキーw y 株式分割の効力発揮タイミング 課題内在性負荷を直接 減らすのは難しい コメントでのアプローÑ Ð 用語をJavaDocで説明す× Ð 計算ステップを自然言語でも説明す× Ð ドキュメントへのリンクを置Ö y コードに近いと参照しやすい
  11. Nstockの認知負荷を分類 Make the startup ecosystem AWESOME 03 © Nstock 課題外在性負‘

    y 直感的でない命Y y 実装の妥協† y 不慣れなJav„ y 仕様や機能の妥協† y バイテンポラルデータモデ• y 使われていないフィールドやカラム 課題内在性負‘ y 株式報酬にまつわる用| y ストックオプションの計算ロ ジッ~ y 「ほふり」や証券会社との連携 スキーw y 株式分割の効力発揮タイミング 課題外在性負荷は 減らしやすい(人や習熟度にもよる) コメントでのアプローf d TODOやFIXMEなどのタグをいれB y VS CodeならExtensionがありま d Why not、「なぜそうしなかったか」を書p d ドキュメントへのリンクを置p y コードに近いと参照しやすい
  12. すまぬ・・・ Make the startup ecosystem AWESOME 23 © Nstock 未来へのメッセージ(TODO

    / FIXMEu q あと何が必要かを記載していQ q 仕様上の前提を明記することで、「分岐足りてるんだっけ?」の疑問を 解決できる
  13. わかっていたのよ Make the startup ecosystem AWESOME 24 © Nstock なぜそうしなかったのか(Why

    nots q あえてこの実装にしたことを記載していP q 標準とは違うコンポーネントを使っている理由を説明
  14. いわゆるコメントって2つあるよね? Make the startup ecosystem AWESOME 27 © Nstock ドキュメンテーションとしてのコメントとコード中のコメンp

    ˜ ドキュメンテーショ† ˜ JavaDocとか、IDEやEditorでいい感じに見れU ˜ コード中のコメンv ˜ デバッグやコードを追加・修正するときによく分かる 自分はIDE上にどう表示させたいかどうかで使い分けています メソッドのスコープ内で要注意 or メソッドを使うときの事前条件
  15. 働きたくないでござる Make the startup ecosystem AWESOME 28 © Nstock LLMにやってもらƒ

    d 単純な説明やJavaDoc(体感7w d 固有名詞もコメントを書いていけばかなりの精度がでY d 複雑な仕様やWhy notの記載(体感2w d 完全に任せるのは難しいが書きっぷりとかは合わせやすい 単調な説明はGitHub Copilotに任せっ切り Copilotが不正確な説明をするということは怪しい
  16. 子曰く Make the startup ecosystem AWESOME 29 © Nstock 一方f

    ‘ 「コードそのものがドキュメントであるべきt ‘ 「コメントを書く必要性を感じたらまずはリファクタリングしましょ うt ‘ “When you feel the need to write a comment, first try to refactor the code so that any comment becomes superfluous.” — Martin Fowler
  17. ※諸説あります Make the startup ecosystem AWESOME 30 © Nstock いいから!!!かけ!!!

    ※1 個人の意見です ※2 もちろん書くべきでないコメントもあります
  18. コードコメント Make the startup ecosystem AWESOME 32 © Nstock コメントを使った認知負荷へのアプローx

    v 課題内在性負荷は難しいので助ける精w u ややこしいドメインロジックや固有名詞の説e v 課題外在性負荷は下げやすい(ときもあるS u 過去経緯の説明、Why noD u 将来必要になることや留意点、TODO
  19. Nstockにおける開発生産性 Make the startup ecosystem AWESOME 33 © Nstock コメントを効果的に使って

    2つの認知負荷を下げるようにしている 認知負荷の増大による生産性の低下のダメージを最小限 に抑えるテクニックの一つ
  20. Make the startup ecosystem AWESOME 35 © Nstock みんなもコメント書こうぜ!バグらないから! ※3

    あまりに間違ったコメントはバグの要因になります Nstockにおける開発生産性