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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Shigeki Shoji
April 22, 2025
Technology
0
190
LT Slide 2025-04-22
#kanjava
Shigeki Shoji
April 22, 2025
Tweet
Share
More Decks by Shigeki Shoji
See All by Shigeki Shoji
2025-12-19-LT
takesection
0
99
2025-12-11 nakanoshima.dev LT
takesection
0
110
アジャイルテストで高品質のスプリントレビューを
takesection
0
200
Introduction to kanjava
takesection
0
120
Instructional Designer
takesection
0
160
Zero to Hero
takesection
0
240
Fargateを使った研修の話
takesection
0
350
20240730_kanjava.pdf
takesection
0
170
JavaのJCP会員になろう
takesection
0
120
Other Decks in Technology
See All in Technology
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
Digitization部 紹介資料
sansan33
PRO
1
6.8k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
220
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
200
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
220
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
650
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.5k
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
230
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
170
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
320
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
590
Speed Design
sergeychernyshev
33
1.5k
Testing 201, or: Great Expectations
jmmastey
46
8k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
100
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
The Pragmatic Product Professional
lauravandoore
37
7.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
Site-Speed That Sticks
csswizardry
13
1.1k
Building Applications with DynamoDB
mza
96
6.9k
Prompt Engineering for Job Search
mfonobong
0
160
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 ありがとうございました