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
LT Slide 2025-04-22
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Shigeki Shoji
April 22, 2025
Technology
210
0
Share
LT Slide 2025-04-22
#kanjava
Shigeki Shoji
April 22, 2025
More Decks by Shigeki Shoji
See All by Shigeki Shoji
アーティファクト管理でサプライチェーン攻撃を回避!!
takesection
0
78
2025-12-19-LT
takesection
0
130
2025-12-11 nakanoshima.dev LT
takesection
0
140
アジャイルテストで高品質のスプリントレビューを
takesection
0
210
Introduction to kanjava
takesection
0
130
Instructional Designer
takesection
0
180
Zero to Hero
takesection
0
260
Fargateを使った研修の話
takesection
0
380
20240730_kanjava.pdf
takesection
0
190
Other Decks in Technology
See All in Technology
AI活用時代の事業判断高度化を導くエンジニアリング基盤 / 20260424 Atsushi Funahashi
shift_evolve
PRO
2
120
QAエンジニアはどうやって プロダクト議論の場に入れるのか?
moritamasami
1
300
Angular Architecture Revisited Modernizing Angular Architectural Patterns
rainerhahnekamp
0
120
20年前の「OSS革命」に学ぶ AI時代の生存戦略
samakada
0
530
巨大プラットフォームを進化させる「第3のROI」
recruitengineers
PRO
2
2.2k
AWS Agent Registry の基礎・概要を理解する/aws-agent-registry-intro
ren8k
3
430
ファインディの事業拡大を支える 拡張可能なデータ基盤へのリアーキテクチャ
hiracky16
0
750
AgentCore×VPCでの設計パターンn選と勘所
har1101
4
370
Digital Independence: Why, When and How
wannesrams
0
230
AgentCore Managed Harness を使ってみよう
yakumo
2
300
知ってた?JavaScriptの"正しさ"を検証するテストが5万以上もあること(Test262)
riyaamemiya
0
120
FessのAI検索モード:検索システムとLLMへの取り組み
marevol
0
170
Featured
See All Featured
Thoughts on Productivity
jonyablonski
76
5.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
360
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
240
Faster Mobile Websites
deanohume
310
31k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
The Pragmatic Product Professional
lauravandoore
37
7.2k
Designing for humans not robots
tammielis
254
26k
Accessibility Awareness
sabderemane
1
110
sira's awesome portfolio website redesign presentation
elsirapls
0
230
Transcript
再帰関数 2025年04月22日 Shigeki Shoji
庄司重樹 Instructional Designer 受賞歴 2024 Japan AWS All Certifications Engineers
2023 Japan AWS Top Engineers
このコードを見て不安になりますか? 3 def hoge: Unit = { val line =
StdIn.readLine("入力(終了したいときは exit と入力): "); if (line != "exit") { hoge; } }
スタックオーバーフローになるのでは? • コードがコンピュータの中でどのように処理されるかを認識し て、コンピュータに寄り添ったコードを書いてませんか? • コードがどういう問題を起こすかを想像して書くよりも、もっと直感 的に人間中心にしたい。もしそれが深刻な問題を起こすのであれば、 コンパイラなり処理系が警告するか、可能な限り自動的に問題が起こ らない動作になるようにしてほしい 4
Scalaなら末尾再帰が使用可能 5 import scala.annotation._; @tailrec def hoge: Unit = {
val line = StdIn.readLine("入力(終了したいときは exit と入力): "); if (line != "exit") { hoge; } } コンパイル後のコードはループに最適化され、繰り返し回数 が原因のスタックオーバーフローは発生しない
6 ありがとうございました