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
120
LT Slide 2025-04-22
#kanjava
Shigeki Shoji
April 22, 2025
Tweet
Share
More Decks by Shigeki Shoji
See All by Shigeki Shoji
Instructional Designer
takesection
0
110
Zero to Hero
takesection
0
180
Fargateを使った研修の話
takesection
0
240
20240730_kanjava.pdf
takesection
0
140
JavaのJCP会員になろう
takesection
0
92
JAWS-UG Okayama 2024 LT
takesection
0
88
IaCツールのいろいろ
takesection
0
380
依存ライブラリはどこに?
takesection
0
270
GitHub Actions Runner Controller
takesection
0
370
Other Decks in Technology
See All in Technology
テストコードにはテストの意図を込めよう(2025年版) #retechtalk / Put the intent of the test 2025
nihonbuson
PRO
11
2.1k
スイッチのBMC、つかってますか?
sonic
0
420
計測による継続的なCI/CDの改善
sansantech
PRO
7
2.2k
4月15日の AZ 障害をテクサポの中の人目線で振り返ってみる
kazzpapa3
3
180
ホワイトボックス& SONiC アーキテクチャ(全体像) - SONiC Workshop Japan 2025
ebiken
PRO
1
370
Software Delivery Observability CI・CD , DORA metrics も Datadog で可視化しよう / datadog-ci-cd-observability
parupappa2929
0
160
ITベンダーから見る内製化支援の本質/in-house-dev
slsops
1
170
非同期処理でも分散トレーシングしたい!- OpenTelemetry × Pub/Sub -
phaya72
1
100
RubyKaigi NOC 近況 2025
sorah
3
1.2k
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2025年版)
infiniteloop_inc
14
47k
PythonツールであるpygnmiをSONiCのgNMIに対して使ってみた
sonic
0
260
Lakehouse в Лемана Тех. От архитектуры до оптимизации
emeremyanina1234
0
330
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
137
6.9k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Designing Experiences People Love
moore
142
24k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2k
Why Our Code Smells
bkeepers
PRO
336
57k
Done Done
chrislema
184
16k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
33k
Automating Front-end Workflow
addyosmani
1370
200k
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 ありがとうございました