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
hayapee
September 24, 2021
Business
0
27
Ruby + Rails使いが、PHP + Laravelで新規プロダクトMVPを開発してみた
phpカンファレンス2021 事前勉強会にてLTさせて頂きました。
hayapee
September 24, 2021
Tweet
Share
Other Decks in Business
See All in Business
Findy PEOPLE BOOK
findyinc
1
52k
Delivering More With Less: An Introduction to Value Streams
helenjbeal
3
240
【採用サイト公開用】ファーマイノベーション事業部_紹介資料
ubie
0
280
エムスリーキャリア エンジニア採用資料 / M3C Engineer Guide
m3c
1
76k
goooods 株式会社 事業概要説明資料 / company deck
syo
3
7.2k
Value Driven DevOps Team
kakehashi
12
2.4k
東大放射線科2025年度入局者向け資料
utrad
0
420
VISASQ: ABOUT DEV TEAM
eikohashiba
1
14k
matsuri technologies株式会社 会社紹介資料2024
matsuritechnologies
0
640
会社紹介資料_株式会社ペイルド
paild
PRO
0
8.5k
おひさぽ ご説明資料
trinitytechnology
0
51k
アシスト 会社紹介資料
ashisuto_career
3
61k
Featured
See All Featured
Practical Orchestrator
shlominoach
182
9.7k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Navigating Team Friction
lara
178
13k
Optimizing for Happiness
mojombo
370
69k
KATA
mclloyd
15
12k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
30
6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
17
1.4k
Embracing the Ebb and Flow
colly
80
4.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
2
1.3k
The Brand Is Dead. Long Live the Brand.
mthomps
49
28k
The Pragmatic Product Professional
lauravandoore
25
5.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