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
フレームワークのソースコードから知識を深める
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tomoki Kawajiri
September 21, 2022
Technology
0
820
フレームワークのソースコードから知識を深める
https://rakus.connpass.com/event/256456/
Tomoki Kawajiri
September 21, 2022
Tweet
Share
More Decks by Tomoki Kawajiri
See All by Tomoki Kawajiri
プロダクトの成長に伴うAWSの利用サービスとアーキテクチャの変遷
weistom
0
830
Other Decks in Technology
See All in Technology
AI駆動開発を事業のコアに置く
tasukuonizawa
1
390
私たち準委任PdEは2つのプロダクトに挑戦する ~ソフトウェア、開発支援という”二重”のプロダクトエンジニアリングの実践~ / 20260212 Naoki Takahashi
shift_evolve
PRO
2
210
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
GitHub Copilot CLI を使いやすくしよう
tsubakimoto_s
0
100
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.6k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
Webhook best practices for rock solid and resilient deployments
glaforge
2
310
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
170
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
93k
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
520
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
It's Worth the Effort
3n
188
29k
Between Models and Reality
mayunak
1
200
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
57
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
Building AI with AI
inesmontani
PRO
1
710
Transcript
フレームワークのソースコードから 知識を深める 株式会社おてつたび 川尻智樹
株式会社おてつたび リードエンジニア 川尻 智樹 @tomoki_kawajiri 前職の楽天のアクセラレーションプログラムを きっかけに代表の永岡と出会い、創業当初か らプロダクト開発全般に携わる。 現在は Rails
と React、楽天時代はバックエンド メインで Java や Python で開発
短期的・季節的な人手不足で困っている地域の方々と、地域に 興味がある方が出会えるマッチングプラットフォーム おてつたび 登録ユーザー数は2.3万人、 受入先は全国47都道府県 700事業者に拡大
こんなこと思ったことありませんか? • 大規模アプリや長期的にアプリを運用するためには、どのよう な設計がベストなのか • 既存システムやフレームワークに慣れて、同じような設計や コーディングスタイルになっている
参考書や記事を読んでも知識は広がるが 実運用をあまりイメージできない。。 こんなこと思ったことありませんか?
フレームワークのコードを追う フレームワークは情報の宝庫 何が得られるのか • 設計パターンの参考になる • 可読性について考えさせられる • フレームワークの知識が深まる •
デバッグスキルが上がる
設計パターンの参考になる • 依存関係 ◦ クラス同士の依存関係から、責務の分離の単位や継承の 関係性を探る • 全体像から把握 ◦ 点ではなく線でデータの受け渡しの流れを追えるので、新
たなレイヤーや概念に出会える • 新しい概念に出会えて実装方法もイメージもつけられる
設計パターンの参考になる 明確な責務の分離 ビジネスロジックのカプセル化 MVCと豊富な機能を提供 最低限の下地で柔軟性が高い おてつたびでは、ビジネスロジックがモデルやコントローラーに散らばっていた り、Fat化により保守性が下がっていた実情をTrailblazerの思想を一部導入する ことで改善しました
可読性について考えさせられる • ワンラインで書けるが、敢えて意味が分かる変数に代入して 複数行にしている • 行数は増えても、使用頻度の低いメソッドよりは高いメソッドを 使っている • 用途が違う場合は共通化していない などなど
フレームワークの知識が深まる • 新たなメソッドや応用パターンの出会い • コメントから正しい使い方を知る • 知らない設定値や継承できるクラス・メソッドが見つかり、選択 の幅が広がる
デバッグスキルが上がる • エラー内容から原因箇所へ早く辿り着けるようになる ◦ エラーメッセージやエラーが発生したクラス名に見覚えが ある ◦ データの流れを把握しているので、最短ルートで追うことが できる
デバッグスキルが上がる ひいてはこれを使うとこのエラーハンドリングも必要だと事前に気 づけるようになり未然に防げるようになる
まとめ 答えは全てソースコードの中にある • フレームワークは大きなソースコードの塊と捉える、スケール できる設計にするために大事な責務の分離や可読性の参考・ 反面教師になる • 将来発生しそうな問題点を知ることができる
まとめ 可読性 • 大規模アプリをチームで運用するにあたり可読性を下げる要因 • 深すぎる継承や依存によるブラックボックス化 保守性 • 最小限でコード修正できる書き方 •
ユースケースが違う場合は冗長を許容する • フレームワークの理解が深まりるので、多くの選択肢からソリューションを 提供できる
おてつたびでは、新しい旅の形を一緒に作っていく仲間を募集中です まずはカジュアルにお話ししましょう! 会社概要 Meety ありがとうございました