Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
バックエンドエンジニアから見たReact #react_fukuoka
Search
Transnano
June 05, 2019
Technology
2
130
バックエンドエンジニアから見たReact #react_fukuoka
バックエンドエンジニアがReactに入門する際に敷居を下げるための発表資料
Transnano
June 05, 2019
Tweet
Share
More Decks by Transnano
See All by Transnano
ヤフーのデータ入出稿を支えるSRE
transnano
0
630
2019/07/11 ふくばねてす node-2 コンテナ移行におけるアレコレと使えるアレコレ(仮)
transnano
0
430
Consulって何だろう
transnano
0
120
PrometheusExporterを作ってみた+α
transnano
0
260
Other Decks in Technology
See All in Technology
いま注目のAIエージェントを作ってみよう
supermarimobros
0
360
20250913_JAWS_sysad_kobe
takuyay0ne
2
250
Oracle Cloud Infrastructure IaaS 新機能アップデート 2025/06 - 2025/08
oracle4engineer
PRO
0
110
エンジニアが主導できる組織づくり ー 製品と事業を進化させる体制へのシフト
ueokande
1
100
Modern Linux
oracle4engineer
PRO
0
160
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
22
12k
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
470
LLMを搭載したプロダクトの品質保証の模索と学び
qa
0
1.1k
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
190
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.8k
Snowflake Intelligence × Document AIで“使いにくいデータ”を“使えるデータ”に
kevinrobot34
1
120
RSCの時代にReactとフレームワークの境界を探る
uhyo
10
3.5k
Featured
See All Featured
Designing for Performance
lara
610
69k
Building an army of robots
kneath
306
46k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
Context Engineering - Making Every Token Count
addyosmani
3
61
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
113
20k
Navigating Team Friction
lara
189
15k
Making Projects Easy
brettharned
117
6.4k
The Language of Interfaces
destraynor
161
25k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Transcript
バックエンドエンジニアか ら見たReact Ryota Suginaga
Agenda • Self-introduction • Back-end engineer worries • Want to
create a small web-app • My understanding of React • React beyond my understanding • Work efficiency tool • Summary 話さないこと • 他ライブラリやフレームワークとの比較 • Reactの機能詳細
Self-introduction 杉永良太(@transnano) ヤフー株式会社 バックエンドエンジニア(SRE) YAML > Shell > (超えられない壁) >
TypeScript > Ruby, Python, Perl, Java 以前:業務システム・アプリ、Java > C# > JavaScript 興味:クラウドネイティブ、Go > React (Reactについての理解が間違っていたら優しく教えてください)
Anai OMG!!
Back-end engineer worries CLIとかWebAPI、監視は得意 CUI(CLI)でもいいけど、GUI(Web)の方がやっぱり便利! ⇒Webアプリならインストールも要らないしね ⇒Push->デプロイの自動化・運用は任せて〜
Want to create a small web-app バックエンドAPIは秒で作るから、結果を表示する部分だけ作れれば。。。 ⇒そう、Reactならね
Try to start sample react-app $ npm i -g create-react-app
$ create-react-app myapp $ cd myapp $ yarn start
My understanding of React • React = Viewライブラリ ◦ 見た目の部分がやりたいから、今回の要件に合いそう
• component = class、state = instance variable、property = initialize value ◦ Java脳には理解しやすく、書きやすかった(後述) • Component Life-cycle ◦ これのおかげでビューの扱いが超絶簡単になっている(後述) • Styled component ◦ デザインとロジックをまとめられる、部品化しやすい、変数化されていたりもして改造できる ◦ Material-UIがあればコピペでビューができる
Compare React and Java class Parent extends React.Component { static
propTypes = { name: PropTypes.string.isRequired, age: PropTypes.int.isRequired, }; // コンストラクタで初期値をセット constructor(props) { super(props); // stateの初期値を設定 this.state = { name: this.props.name, age: this.props.age, }; } } class Human { String name; int age; // コンストラクタで初期値をセット Human(String name, int age) { super(); // クラス変数の初期値を設定 this.name = name; this.age = age; } }
Component life-cycle • componentDidMount() ◦ DOM構築後に走るイベントなので、ここで初回の API通信したり • componentDidUpdate(prevProps, prevState,
snapshot) ◦ propertyまたはstateが変わった時なので、 2回目以降のAPI通信したり ◦ prevPropsが前回の値でthis.propsが現在の値として比較可能 • componentWillUnmount() ◦ コンポーネントが使われなくなる時なので、終了処理したり • shouldComponentUpdate(nextProps, nextState) ◦ コンポーネントを再描画すべきかどうかの判定処理を入れたり
Next challenges • TypeScript(TSX) ◦ TSXだとProperty以外も型までしっかりと書けるため • SSR ◦ サーバサイドでもReactが使える嬉しい機能。
BFFやる時までには習得したい • Hooks ◦ Reactの新しい概念・機能で、簡潔に書ける /テストしやすくなるため
Work efficiency tool <画像を貼る> 1. 左テキストエリアのstateが変わったら APIにその内容を送信 2. レスポンスを右テキストエリアに表示 3.
コピー! で終わって、社内用ドキュメントに貼り付ける
Summary • ちょっと作るくらいならcreate-react-appで8割終わる ◦ 余談:裏がGoならgo-staikとかでReactの静的ファイル固めれば 1バイナリで配布できる • Java脳からはcomponent, state, propertyは理解しやすい
• propertyは型があって良い ◦ TSXはもっと良さそう • Styled componentだと1ファイルで済むから楽ちん(JSONで書けるし) Javaを噛ったことあるバックエンドエンジニアでも抵抗感少なく触れた