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
41
0
Share
Ruby + Rails使いが、PHP + Laravelで新規プロダクトMVPを開発してみた
phpカンファレンス2021 事前勉強会にてLTさせて頂きました。
hayapee
September 24, 2021
Other Decks in Business
See All in Business
経営管理について / About Corporate Planning
loglass2019
1
33k
merpay-overview_en
mercari_inc
1
29k
採用ピッチ資料_耳川広域森林組合
mimirin
0
190
株式会社リバイブル 会社説明資料
rebible
0
500
Codexを安心して業務活用するには?──「権限・接続・実行」の考え方
hima2b4
0
270
AIを意識した経営・執行の設計と実行
kan
4
3.8k
税理士法人チェスター_事務所紹介資料
mabhr
0
3.4k
Global Vascular株式会社_会社紹介資料
globalvascular
0
210
RecruitingGuide(KR)
kakaojapan
0
650
コミュニケーション術を強化するのにオススメな本9冊
zashii
0
330
01_全社_FLUX採用ピッチ資料_Ver.5.3
flux
PRO
8
210k
ITが何の略なのかも知らないままエンジニアになっちゃったのでインターネットに生き恥を晒してみた話
m_k__77
0
240
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
11
38k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
The untapped power of vector embeddings
frankvandijk
2
1.7k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
390
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
820
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.8k
We Are The Robots
honzajavorek
0
240
The SEO Collaboration Effect
kristinabergwall1
1
470
30 Presentation Tips
portentint
PRO
1
310
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