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
CarbonとMutableオブジェクトの話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ryo Tomidokoro
December 26, 2018
Technology
0
790
CarbonとMutableオブジェクトの話
CarbonでMutableとかImmutableの概念を覚えようねの話。
Ryo Tomidokoro
December 26, 2018
Tweet
Share
More Decks by Ryo Tomidokoro
See All by Ryo Tomidokoro
開発者が知っておきたい複雑さの正体/where-the-complexity-comes-from
hanhan1978
8
3.3k
Spec Driven Development入門/spec_driven_development_for_learners
hanhan1978
2
1.5k
フロントエンドがTypeScriptなら、バックエンドはPHPでもいいじゃない/php-is-not-bad
hanhan1978
8
13k
どうすると生き残れないのか/how-not-to-survive
hanhan1978
17
14k
100分で本番デプロイ!Laravelで作るWebアプリケーション作成/100min_web_app_cicd
hanhan1978
1
240
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
8
3.4k
集中して作業する技術/how_to_work_deeply
hanhan1978
65
54k
PHPでデータベースを作ってみた/create-data-with-php
hanhan1978
11
11k
ADRを一年運用してみた/adr_after_a_year
hanhan1978
8
4.7k
Other Decks in Technology
See All in Technology
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
210
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
160
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
470
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
Context Engineeringの取り組み
nutslove
0
370
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
4
450
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
0
140
1,000 にも届く AWS Organizations 組織のポリシー運用をちゃんとしたい、という話
kazzpapa3
0
100
Tebiki Engineering Team Deck
tebiki
0
24k
配列に見る bash と zsh の違い
kazzpapa3
3
160
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
79
Utilizing Notion as your number one productivity tool
mfonobong
3
220
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
78
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
740
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
330
Transcript
CarbonͱMutableΦϒδΣΫτͷ 1)1ษڧձ
໊લॴ྄ 3ZP5PNJEPLPSP ৬ۀ8FC"QQMJDBUJPO&OHJOFFS ॴଐ*OOPWBUPS+BQBO*OD ࡶ༻୲ झຯόεέοτϘʔϧ؍ઓ
Carbonͱʁ
$BSCPOͱʁ Carbon - A simple PHP API extension for DateTime.
DateTimeΫϥεͷAPI֦ு IUUQTDBSCPOOFTCPUDPN
$BSCPOͱʁ ศར ײతͰ͔Γ͍͢ ๛ͳAPIͱυΩϡϝϯτ
MutableΦϒδΣΫτͱʁ
.VUBCMFΦϒδΣΫτͱʁ MutableΦϒδΣΫτ ͦͷঢ়ଶΛม͑Δ͜ͱ͕ग़དྷΔΦϒδΣΫτ ImmutableΦϒδΣΫτ ͦͷঢ়ଶΛม͑Δ͜ͱ͕ग़དྷͳ͍ΦϒδΣΫτ ࢀর) Πϛϡʔλϒϧ - Wikipedia |
https://ja.wikipedia.org/wiki/Πϛϡʔλϒϧ
ຊͷେࣄͳςʔϚ
ຊͷॏཁࣄ߲ 1. CarbonΛ௨ͯ͡MutableɺImmutableΛ֮͑Α͏ ಛʹImmutableͷ֓೦ͱͯେ 2. CarbonͷίʔυϨϏϡʔྗUP Carbon࣌ʹةݥͳίʔυΛੜΈग़͢ ৯͍ࢭΊ·͠ΐ͏ʂ
ຊͷॏཁࣄ߲ ͔͠͠ɺී௨ʹίʔυྫΛಡΜͰ͖ΔͷͰ… ΫΠζܗࣜͰίʔυϨϏϡʔͯ͠Έ·͠ΐ͏ʂ
CarbonΫΠζ
$BSCPOΫΠζ A܅usersςʔϒϧʹొ͞ΕͨϢʔβσʔλͷத ͔Βɺ࠷ۙ̏ϲ݄Ҏʹొ͞ΕͨϢʔβσʔλΛ நग़͢ΔॲཧΛ࡞Δ͜ͱʹͳΓ·ͨ͠ɻ ͔͠͠ɺA܅͕࡞ͨ͠ϓϩάϥϜʹ͕͋ͬ ͯਖ਼͘͠ϢʔβσʔλΛநग़Ͱ͖·ͤΜͰͨ͠ɻ
$BSCPOΫΠζ ࣍ͷίʔυͷԿߦʹ͕͋ΔͰ͠ΐ͏͔ʁ ͦͯ͠ɺͦΕԿނͰ͠ΐ͏͔ʁ
$BSCPOΫΠζ ࣮ࡍͷϓϩάϥϜʢൈਮʣ 1. Կߦ͕ʁ 2. Կ͕ʁ
CarbonΫΠζ - ղฤ
$BSCPOΫΠζ 1. Կߦ͕ʁ -> 14ߦ 2. Կ͕ʁ -> subMonthϝιουͰ$todayࣗମมߋ͞Εͯ͠·͏
CarbonΫΠζ - ൣղ1
$BSCPOΫΠζ copy()ϝιουΛ͏ $todayͷෳΛ࡞Δ͜ͱͰɺ$todayࣗମͷมߋΛආ͚Δ
CarbonΫΠζ - ൣղ2
$BSCPOΫΠζ Carbon2 CarbonImmutableͳΒɺ$todayImmutableͳͷͰෆม
$BSCPOΫΠζ Carbon2 AliasΛ͑ɺϓϩάϥϜͷมߋແ͠ɻ
·ͱΊ
·ͱΊ ɾCarbonѱ͘ͳ͍ ɾAPI֦ுͷੑ࣭Λ͖ͪΜͱѲ͢Δ͜ͱ ɾMutable, ImmutableΦϒδΣΫτΛ֮͑Α͏
͓·͚
$BSCPOͱ$BSCPO MutableΦϒδΣΫτ ImmutableΦϒδΣΫτ ɾCarbon1ܥ ɾDateTimeΫϥεͷ֦ுAPI ɾCarbon2ܥ ɾDateTimeImmutableΫϥεͷ֦ுAPI
%BUF5JNF*NNVUBCMFΫϥε ࢀর) PHPϚχϡΞϧ | http://php.net/manual/ja/class.datetimeimmutable.php