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
220
0
Share
LT Slide 2025-04-22
#kanjava
Shigeki Shoji
April 22, 2025
More Decks by Shigeki Shoji
See All by Shigeki Shoji
OpenID Connectによるサービス間連携
takesection
0
140
アーティファクト管理でサプライチェーン攻撃を回避!!
takesection
0
110
2025-12-19-LT
takesection
0
150
2025-12-11 nakanoshima.dev LT
takesection
0
160
アジャイルテストで高品質のスプリントレビューを
takesection
0
220
Introduction to kanjava
takesection
0
140
Instructional Designer
takesection
0
190
Zero to Hero
takesection
0
270
Fargateを使った研修の話
takesection
0
400
Other Decks in Technology
See All in Technology
はじめてのDatadog
kairim0
0
220
食べログのサーキットブレーカー導入を振り返って
atpons
1
150
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
4
150
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.8k
海外カンファレンス「JavaOne」参加レポート ユーザー系IT企業における目的・成果/JavaOne Report Purpose and Results in the User IT Company
muit
0
110
AI時代から振り返るTerraform drift運用の歴史 / AI Age Reflections on the History of Terraform Drift Operations
aeonpeople
0
590
個人AIからチームAIへ:開発における品質と生産性の再設計
moongift
PRO
0
310
基礎から解説!Icebergで紐解くSnowflake×Databricks連携の現在地
cm_yasuhara
0
390
速さだけじゃない! VoidZero ツールが移行先に選ばれる理由
mizdra
PRO
6
680
layerx-fde-practices
cipepser
6
2.9k
イベントで大活躍する電子ペーパー名札 〜その3〜 / ビジュアルプログラミングIoTLT vol.23
you
PRO
0
160
Kaggle未経験社員をメダリストに育てる「AIドラゴン桜」
lycorptech_jp
PRO
0
660
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
210
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
140
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
180
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
How to Ace a Technical Interview
jacobian
281
24k
Utilizing Notion as your number one productivity tool
mfonobong
4
310
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Prompt Engineering for Job Search
mfonobong
0
320
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
810
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
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 ありがとうございました