Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
クリぼっちの自分が信じられるのはもはや型のみである
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ryota Sakaguchi
December 25, 2018
Technology
490
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クリぼっちの自分が 信じられるのは もはや型のみである
Ryota Sakaguchi
December 25, 2018
More Decks by Ryota Sakaguchi
See All by Ryota Sakaguchi
大切なことは全てLintが教えてくれた
kuluna
0
61
時間を意識する推しツールたち / Time-aware tools
kuluna
1
660
DroidKaigi2020 - Data Bindingのイロハ
kuluna
1
1.5k
チームでつくる RESTful API
kuluna
1
12k
Other Decks in Technology
See All in Technology
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
sanghyuk
0
260
[2026 Oracle Technical Deep Dive] オンプレミスDBのCloud移行アプローチ:移行計画に基づくメソッドとツールの選択 (2026年9月17日開催)
oracle4engineer
PRO
0
110
The seven pitfalls of AI (revised version)
ufried
0
220
AI臭い文章とは何なのか
nasuvitz
38
77k
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
230
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
1
160
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
350
Amazon Bedrock Agents ClassicからAmazon Bedrock AgentCoreへ移行した際、ガードレール設定が2箇所に割れた話
matsunobu
0
170
Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤
kitagawaz
0
390
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
480
DAMOS - The Smart Cruise Control for RAM
ennael
PRO
1
110
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
380
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
560
Exploring anti-patterns in Rails
aemeredith
4
520
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
380
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
520
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
Building Flexible Design Systems
yeseniaperezcruz
330
41k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
260
Agile that works and the tools we love
rasmusluckow
331
22k
Transcript
{ "shop": { "id": 1, "name": "", "employees": [ {
"id": 1, "job_id": 1, "name": "kuluna" } ] } }
import Foundation struct Employee: Decodable { let id: Int let
job_id: Int let name: String } struct Shop: Decodable { let id: Int let name: String let employees: [Employee] } struct ShopResponse: Decodable { let shop: Shop }
let response = try! JSONDecoder().decode( ShopResponse.self, from: json.data(using: .utf8)! )
print(response.shop.name) // “”
☺
let shop = response.shop shop.id == shop.employees.first?.job_id
let newEmployee = Employee( id: shop.id, job_id: 0, name: "Sakaguchi"
)
!
-
!
struct ShopId: Codable, Equatable { let value: Int init(_ value:
Int) { self.value = value } public init(from decoder: Decoder) throws { self.value = try decoder.singleValueContainer().decode(Int.self) } public func encode(to encoder: Encoder) throws { var c = encoder.singleValueContainer() try c.encode(self.value) } }
struct Shop: Decodable { let id: ShopId let name: String
let employees: [Employee] }
☺ ☺ Comparable