Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
1つのレビューコメントがブログ記事になった話
Search
Tatsuhiko Sakaguchi
June 16, 2025
Programming
280
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
1つのレビューコメントがブログ記事になった話
Tatsuhiko Sakaguchi
June 16, 2025
Other Decks in Programming
See All in Programming
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
3
450
気持ちぃ〜角丸 Squircle
ryu1013
0
320
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
190
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
contenteditable と日本語入力に向き合う
colorful12
0
200
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
180
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
140
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
570
Bash Introduction
62gerente
615
220k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Thoughts on Productivity
jonyablonski
76
5.4k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Deep Space Network (abreviated)
tonyrice
0
380
How to train your dragon (web standard)
notwaldorf
96
6.9k
4 Signs Your Business is Dying
shpigford
187
23k
Transcript
© 2025 Dinii Inc. 1つのレビューコメントが ブログ記事になった話 noren.ts #2 13 Jun,
2025 ta21cos
株式会社 ダイニー © 2025 Dinii Inc. ※こちらの枠内に詳細や、画像を記載/貼り付けしてください。 白枠は、必要に応じて消していただいても大丈夫です。 1つのレビューコメントがブログ記事になった話 自己紹介
所属 • 株式会社ダイニー • プロダクトエンジニア • ファイナンス事業本部 @ta21cos (坂口 達彦) 趣味 • ゲーム • コーヒー
株式会社 ダイニー © 2025 Dinii Inc. ダイニーの事業・技術・プロダクトについて 00 1つのレビューコメントがブログ記事になった話
株式会社 ダイニー © 2025 Dinii Inc. オペレーションなしで 売上UP! AIと専属スタッフにお任せ お客様を
自動で会員化 自動販促 メッセージ アンケート 自動回収 店員への チップ/投げ銭 圧倒的な 使いやすさで 客単価UP ロイヤルティ プログラム 顧客情報を 接客に活用 株式会社ダイニー | 1つのレビューコメントがブログ記事になった話
ダイニーが目指すのは、 ダイニーについて 株式会社ダイニー | 1つのレビューコメントがブログ記事になった話 © 2025 Dinii Inc.
TypeScript, React による言語・フレームワークの統一 ダイニーについて 複数プロダクトを跨った機能修正でも、一つのチームで担当することができる © 2025 Dinii Inc. 株式会社ダイニー
| 1つのレビューコメントがブログ記事になった話
本日のテーマ
株式会社 ダイニー © 2025 Dinii Inc. サブタイトル 資料名を記載
株式会社 ダイニー © 2025 Dinii Inc. サブタイトル 資料名を記載
株式会社 ダイニー © 2025 Dinii Inc. 01 なぜコンポーネントの中で コンポーネントを定義するのは良くないのか? 1つのレビューコメントがブログ記事になった話
02 03 ブログという形でレビューでの学びを活かす まとめ
株式会社 ダイニー © 2025 Dinii Inc. なぜコンポーネントの中で コンポーネントを定義するのは良くないの か? 01
1つのレビューコメントがブログ記事になった話
株式会社 ダイニー © 2025 Dinii Inc. 1つのレビューコメントがブログ記事になった話 きっかけ ある日の開発で…
株式会社 ダイニー © 2025 Dinii Inc. ダイアログを書きたい(よくある例) 1つのレビューコメントがブログ記事になった話 render 関数を
用意する
株式会社 ダイニー © 2025 Dinii Inc. ダイアログを書きたい(今回書いたコード) 1つのレビューコメントがブログ記事になった話 こうすれば コンポーネントっぽ
く書けるのでは…?
株式会社 ダイニー © 2025 Dinii Inc. レビューのやり取り 1つのレビューコメントがブログ記事になった話 レビューコメントをいただいた 基本的には
「よく見る書き方」で 書いたほうが良いという コメント
株式会社 ダイニー © 2025 Dinii Inc. レビューのやり取り 1つのレビューコメントがブログ記事になった話 レビューコメントをいただいた
株式会社 ダイニー © 2025 Dinii Inc. レビューのやり取り 1つのレビューコメントがブログ記事になった話
株式会社 ダイニー © 2025 Dinii Inc. React がコンポーネントを解釈する 仕組みが関わっている 1つのレビューコメントがブログ記事になった話
株式会社 ダイニー © 2025 Dinii Inc. React が Component を解釈する仕組み
1つのレビューコメントがブログ記事になった話 React は ReactElement という形でコンポーネントを保持する ※こちらの枠内に詳細や、画像を記載/貼り付けしてください。 白枠は、必要に応じて消していただいても大丈夫です。
株式会社 ダイニー © 2025 Dinii Inc. 1つのレビューコメントがブログ記事になった話 2つの Dialog のコード
<Component /> の場合 {renderComponent()} の場合
株式会社 ダイニー © 2025 Dinii Inc. 1つのレビューコメントがブログ記事になった話 <Dialog /> と書いた場合
<Dialog /> の場合
株式会社 ダイニー © 2025 Dinii Inc. 1つのレビューコメントがブログ記事になった話 {renderDialog()} と書いた場合 先に
renderDialog 関数が 評価される {renderDialog()} の場合
株式会社 ダイニー © 2025 Dinii Inc. もし state が変わったら… 1つのレビューコメントがブログ記事になった話
株式会社 ダイニー © 2025 Dinii Inc. 1つのレビューコメントがブログ記事になった話 <Dialog /> と書いた場合
state が変わったので Dialog 関数も新しくなる 全く新しい関数になったので、 全く新しいコンポーネントと みなされる <Dialog /> の場合
株式会社 ダイニー © 2025 Dinii Inc. 1つのレビューコメントがブログ記事になった話 {renderDialog()} と書いた場合 DialogContent
自体は Component の外 → Component 目線は常に同じ参照 DialogContent 側で適切に 再描画される (強制的な全体再描画にならない) {renderDialog()} の場合
株式会社 ダイニー © 2025 Dinii Inc. 1つのレビューコメントがブログ記事になった話 {renderDialog()} と書いた場合 {renderDialog()}
の場合(極端な例) 再描画されない! 再描画される
株式会社 ダイニー © 2025 Dinii Inc. { type: Component, //
コンポーネントは関数で表現 される props: {...}, key: null, childern: ..., ... } 1つのレビューコメントがブログ記事になった話 まとめ { type: "p", key: null props: { ... children: "Hello! }, ... } props が変わるたびに Dialog 全体が再描画される <Component /> の場合 先に関数が評価され、返り値が使われる props が変わった場所だけが再描画される (実際は DialogContent の実装に依存する) {renderComponent()} の場合
株式会社 ダイニー © 2025 Dinii Inc. { type: Component, //
コンポーネントは関数で表現 される props: {...}, key: null, childern: ..., ... } 1つのレビューコメントがブログ記事になった話 まとめ { type: "p", key: null props: { ... children: "Hello! }, ... } props が変わるたびに Dialog 全体が再描画される <Component /> の場合 先に関数が評価され、返り値が使われる props が変わった場所だけが再描画される (実際は DialogContent の実装に依存する) {renderComponent()} の場合 再描画が抑制できる! コンポーネントの中で コンポーネントを定義
動的に要素を置きたい場合 {render()} を使おう!
株式会社 ダイニー © 2025 Dinii Inc. 02 1つのレビューコメントがブログ記事になった話 ブログという形で レビューでの学びを活かす
株式会社 ダイニー © 2025 Dinii Inc. TL;DR 専門性の高いレビュー 学びの深堀り ブログ委員会
1つのレビューコメントがブログ記事になった話 レビューで得た学びをブログ化するために重要だった要素
株式会社 ダイニー © 2025 Dinii Inc. その1 1つのレビューコメントがブログ記事になった話 専門性の高いレビュー +
活発な議論 • コードオーナーが「Platform チーム」と いう技術のプロフェッショナルチーム • 再描画の仕組みについて 適切な指摘をもらえた 重要な指摘をもらえた + 何がわからないかを理解できた • PR 上・Slack・対面での質疑応答・議論
株式会社 ダイニー © 2025 Dinii Inc. その2 1つのレビューコメントがブログ記事になった話 興味 +
学びの深堀り • SNS で見た本を読んでみる • 解説記事を読む https://learning.oreilly.com/library/cover/9781098138707/250w/ 学びを確かなものにできた
株式会社 ダイニー © 2025 Dinii Inc. その3 1つのレビューコメントがブログ記事になった話 ブログ委員会 •
偶然自分もそのメンバーに選ばれた • 基本は月1回、ブログを書く活動をしている • ブログのネタを探していたとき、 レビューの内容を提案してもらえた 書かざるを得ない環境に立てた
株式会社 ダイニー © 2025 Dinii Inc. まとめ レビューは学びの宝庫 活発な議論も大事 専門性の高いレビュー
+ 議論 自分で深ぼってこそ知識になる エンジニアの醍醐味 興味 + 学びの深堀り 書かざるを得ない状況は後押しをしてくれる アウトプットで知識をさらに深める ブログ委員会 1つのレビューコメントがブログ記事になった話
株式会社 ダイニー © 2025 Dinii Inc. まとめ 03 1つのレビューコメントがブログ記事になった話
株式会社 ダイニー © 2025 Dinii Inc. ▪ 自分が得た学びをコミュニティに共有できた ▪ ブログを書くモチベーションが上がった
▪ 成果物として ▪ (会社の広報にもなった?) 1つのレビューコメントがブログ記事になった話 アウトカム ブログを書いて得られたもの
レビューには学びの種がたくさんある!
株式会社 ダイニー © 2025 Dinii Inc. ▪ React では、コンポーネントの中では コンポーネントを定義しない
1つのレビューコメントがブログ記事になった話 まとめ 本発表のまとめ ▪ アウトプットによって、様々なアウトカムを得られた ▪ レビューでの学びをブログ化する際、次が大切だった • 専門性の高いレビュー + 議論 • 興味 + 学びの深堀り • ブログ委員会