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
Shigeki Shoji
April 22, 2025
Technology
0
170
LT Slide 2025-04-22
#kanjava
Shigeki Shoji
April 22, 2025
Tweet
Share
More Decks by Shigeki Shoji
See All by Shigeki Shoji
アジャイルテストで高品質のスプリントレビューを
takesection
0
170
Introduction to kanjava
takesection
0
98
Instructional Designer
takesection
0
150
Zero to Hero
takesection
0
230
Fargateを使った研修の話
takesection
0
330
20240730_kanjava.pdf
takesection
0
160
JavaのJCP会員になろう
takesection
0
110
JAWS-UG Okayama 2024 LT
takesection
0
120
IaCツールのいろいろ
takesection
0
450
Other Decks in Technology
See All in Technology
ローカルVLM OCRモデル + Gemini 3.0 Proで日本語性能を試す
gotalab555
1
120
事業状況で変化する最適解。進化し続ける開発組織とアーキテクチャ
caddi_eng
1
6.1k
ステートレスなLLMでステートフルなAI agentを作る - YAPC::Fukuoka 2025
gfx
8
1.4k
Pandocでmd→pptx便利すぎワロタwww
meow_noisy
1
480
Tomcatが起動しない!?SecureRandomと乱数デバイスの罠
fujikawa8
1
110
大規模モノレポの秩序管理 失速しない多言語化フロントエンドの運用 / JSConf JP 2025
shoota
0
340
FFMとJVMの実装から学ぶJavaのインテグリティ
kazumura
0
160
『星の世界の地図の話: Google Sky MapをAI Agentでよみがえらせる』 - Google Developers DevFest Tokyo 2025
taniiicom
0
170
メッセージ駆動が可能にする結合の最適化
j5ik2o
9
1.4k
Rubyist入門: The Way to The Timeless Way of Programming
snoozer05
PRO
7
540
Progressive Deliveryで支える!スケールする衛星コンステレーションの地上システム運用 / Ground Station Operation for Scalable Satellite Constellation by Progressive Delivery
iselegant
1
210
JJUG CCC 2025 Fall バッチ性能!!劇的ビフォーアフター
hayashiyuu1
1
400
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.6k
[RailsConf 2023] Rails as a piece of cake
palkan
57
6.1k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
11
940
A designer walks into a library…
pauljervisheath
210
24k
Music & Morning Musume
bryan
46
7k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
680
Building a Scalable Design System with Sketch
lauravandoore
463
33k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
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 ありがとうございました