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
Ruby + Rails使いが、PHP + Laravelで新規プロダクトMVPを開発...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
hayapee
September 24, 2021
Business
39
0
Share
Ruby + Rails使いが、PHP + Laravelで新規プロダクトMVPを開発してみた
phpカンファレンス2021 事前勉強会にてLTさせて頂きました。
hayapee
September 24, 2021
Other Decks in Business
See All in Business
The STORY OF M5STACK 2026年 名古屋Station AI M5Stack名古屋ミートアップにて #M5JPTOUR2026
takasumasakazu
0
140
SORAJIMA 2026
sorajima
0
4.4k
株式会社BFM_フィットネス事業部(BEST FIT ME) Recruit Deck
bfm
0
180
introduce_backoffice_coordinate
yuki_yano
PRO
1
520
Claudeの基本と税理士事務所での使い方_202604
shinxtanaka
0
150
涅槃へGO!〜わたしの世界は、全てわたしの認識でできている〜
doiko123
0
560
Rakus Career Introduction
rakus_career
0
510k
Brush Company Deck ver1.0
brush2026
0
260
「愛するということ」がAI時代のマネジメントの教科書だった件
yukiusa7991
0
480
30代のリアルと直感:プロドラマーからEMへ繋がった「点」
kkun_22
PRO
2
240
記帳の手前に何を見るか - 業務設計士の視点 -
shunsuke_takeuchi
PRO
1
550
ログラス会社紹介資料 / Loglass Company Deck
loglass2019
17
540k
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
550
Automating Front-end Workflow
addyosmani
1370
200k
Between Models and Reality
mayunak
4
290
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
300
Code Review Best Practice
trishagee
74
20k
Unsuck your backbone
ammeep
672
58k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.4k
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
Optimizing for Happiness
mojombo
378
71k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.9k
Facilitating Awesome Meetings
lara
57
6.8k
Transcript
Ruby + Rails使いが、PHP + Laravel で新規プロダクトMVPを開発してみた by 早川康平(hayapee)
CONTENTS CHAPTER1 自己紹介 CHAPTER2 初めての プロダクト開発 CHAPTER3 Rails vs. Laravel
CHAPTER4 まとめ
CONTENTS CHAPTER1 自己紹介 CHAPTER2 初めての プロダクト開発 CHAPTER3 Rails vs. Laravel
CHAPTER4 まとめ
CHAPTER 1 自己紹介 ・早川 康平(hayapee) ・宮城県 仙台市出身 ・1994年生まれ(大谷翔平世代) @kou0525 @kou0525
@早川康平
CHAPTER 1 自己紹介 2017/04 ~ 2019/06 2019/06 ~ 2019/07 2019/08
~ # 新卒入社 # 金融系勘定系システム # PM # 同期400人 # バイクで日本一周 # ドラッグスター400C # 計画〜決行まで2日 # 彼女にフラれる # 夢のベンチャー # プログラミング初心者 # 最初は落ち込む日々 # 社内システム開発 # (New!)新規事業開発
None
CHAPTER 1 自己紹介
CONTENTS CHAPTER1 自己紹介 CHAPTER2 初めての プロダクト開発 CHAPTER4 まとめ CHAPTER3 Rails
vs. Laravel
CHAPTER 2 初めてのプロダクト開発 Mission 2営業日でプロトタイプを完成させよ!
CHAPTER 2 初めてのプロダクト開発 Slackをインターフェイスとした、プロダクトを企画
CHAPTER 2 初めてのプロダクト開発 Webアプリケーションで作る意味あるの?
CHAPTER 2 初めてのプロダクト開発 今ではゴリゴリServerless Architecture
CHAPTER 2 初めてのプロダクト開発 当時の開発チームは、 サーバーレスアーキテクチャの開発経験が乏しく Webアプリケーションの方が得意だった
開発チームの経験年数 私 Rails(Ruby):1年6ヶ月 Python(Django):1ヶ月 PHP(Laravel):未経験 学生インターン Rails(Ruby):1年4ヶ月 Python(Django):4ヶ月 PHP(Laravel):未経験 CHAPTER
2 初めてのプロダクト開発
CHAPTER 2 初めてのプロダクト開発
選定理由 = 好奇心 CHAPTER 2 初めてのプロダクト開発
CONTENTS CHAPTER1 自己紹介 CHAPTER2 初めての プロダクト開発 CHAPTER4 まとめ CHAPTER3 Rails
vs. Laravel
CHAPTER 3 Rails vs. Laravel VS. 比較その1 Migration機能
CHAPTER 3 Rails vs. Laravel class CreateAirlines < ActiveRecord::Migration def
change create_table :airlines do |t| t.string :name t.integer :airline unique: true t.timestamps end end end
CHAPTER 3 Rails vs. Laravel class CreateAirlines < ActiveRecord::Migration def
change create_table :airlines do |t| t.string :name t.integer :airline unique: true t.timestamps end end end 直感的に理解しづらい 変更の度に、migrationファイルを作成 記述量が少なく、慣れれば理解が早い
CHAPTER 3 Rails vs. Laravel public function up() { Schema::create('flights',
function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('airline')->unique(); $table->timestamps(); }); } public function down() { Schema::drop('flights'); } }
CHAPTER 3 Rails vs. Laravel public function up() { Schema::create('flights',
function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('airline')->unique(); $table->timestamps(); }); } public function down() { Schema::drop('flights'); } } SQLに近い書き方ができる UP/DOWNメソッドが標準搭載(Railsは外部ライブラリ) 論理削除が標準搭載(Railsは外部ライブラリ) $tableなど、冗長な書き方(記述量増)
CHAPTER 3 Rails vs. Laravel VS. 比較その2 Validation機能
CHAPTER 3 Rails vs. Laravel class User < ApplicationRecord validates
:name, presence: true end
CHAPTER 3 Rails vs. Laravel class User < ApplicationRecord validates
:name, presence: true end Controller Model View DB Modelでのバリデーション が推奨されている
CHAPTER 3 Rails vs. Laravel public function store(Request $request) {
$validated = $request->validate([ 'title' => 'required|unique:posts|max:255', 'body' => 'required', ]);
CHAPTER 3 Rails vs. Laravel public function store(Request $request) {
$validated = $request->validate([ 'title' => 'required|unique:posts|max:255', 'body' => 'required', ]); Controller Model View DB Controllerでの バリデーションが推奨されている
CHAPTER 3 Rails vs. Laravel CHAPTER 3 Rails vs. Laravel
VS. 比較その3 Service container機能
CHAPTER 3 Rails vs. Laravel class A { public function
hogeMethod() { $b =new B(); $b->fugaMethod(); } }
CHAPTER 3 Rails vs. Laravel class A { public function
hogeMethod() { $b =new B(); $b->fugaMethod(); } } DI(依存性の注入)パターンに反 している
CHAPTER 3 Rails vs. Laravel class A { public function
hogeMethod(B $b) { b->fuga(); } } $b = new B(); $a = new A(); $a ->fugaMethod($b); Service Container クラス間の依存が解消
CHAPTER 3 Rails vs. Laravel サービスコンテナ機能が存在しない
CHAPTER 3 Rails vs. Laravel サービスコンテナ機能が存在しない そもそも、Rubyには必要ない
CHAPTER 3 Rails vs. Laravel class A def new_client client.new
end def client B end end class B end class C end DI(依存性の注入)パターンに反 している?
CHAPTER 3 Rails vs. Laravel class A def new_client client.new
end def client B end end class B end class C end 動的にメソッドを書き換える事ができる def A.new.client C end Railsは意図してサービスコンテナを用意し ていない
CONTENTS CHAPTER1 自己紹介 CHAPTER2 初めての プロダクト開発 CHAPTER4 まとめ CHAPTER3 Rails
vs. Laravel
CHAPTER 4 まとめ 細かな違いはあるが、基本的な構造は似ている
CHAPTER 4 まとめ その違いは、言語特性や思想の違い
CHAPTER 4 まとめ Rubyしか勝たん ww こっち見んな
CHAPTER 4 まとめ 個人個人、お気に入りの言語・フレームワークを使い 互いに切磋琢磨していく。それが、OSSを使う上で大事なことではないか
ご静聴ありがとうございました! Rubyも楽しいよ
参考 Better Software Developer https://blog.hiko1129.com/2019/09/rubydi.html TECH×GAME COLLEGE#21 https://logmi.jp/tech/articles/321496 SOLID Principles
#5 - Dependency Inversion Principle https://www.netguru.com/blog/solid-5-dip