Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Javaはレガシーではない!
Search
Naka Sho
December 12, 2023
Technology
0
320
Javaはレガシーではない!
Javaはレガシーではない!
Naka Sho
December 12, 2023
Tweet
Share
More Decks by Naka Sho
See All by Naka Sho
Spring Shellの使い方
shogonakao
0
11
robocodeの戦闘情報を記録する.pdf
shogonakao
0
21
型安全性で考えること
shogonakao
0
60
OSS公開までの流れ
shogonakao
0
300
SpringBootでAPI開発
shogonakao
0
110
エキサイトブログ刷新に向けて
shogonakao
0
58
【エキサイトブログリビルド】Spring Boot × MyBatis × FreeMarker を使って、データベースの接続先を安全に変更します。
shogonakao
1
600
Other Decks in Technology
See All in Technology
複雑なCI/CDから脱却したアーキテクチャ:NTTグループの内製プラットフォーム事例を通して / An Architecture Achieving Simplified CI/CD: Insights from NTT Group's In-House Platform Case Study
nttcom
0
180
セキュリティベンダー/ユーザー双方の視点で語る、 Attack Surface Managementの実践 - Finatextパート / cloudnative-architecture-of-asm
stajima
0
2.6k
プロダクトマネージャーは 事業責任者の夢をみるのか pmconf2024
gimupop
0
460
システムリプレイスプロジェクト発足から7年、改めてコスト最適化に向き合う / replace and cost optimization
takumi
1
240
出前館アプリにおけるFlutterアプリ設計とそれを支えるCICD環境の進化
demaecan
0
130
日本全国・都市3D化プロジェクト「PLATEAU」とデータ変換OSS「PLATEAU GIS Converter」の公開
nokonoko1203
2
300
Amazon ECSとCloud Runの相互理解で広げるクラウドネイティブの景色 / Mutually understanding Amazon ECS and Cloud Run
iselegant
18
2.3k
140年の歴史あるエンタープライズ企業の内製化×マイクロサービス化への航海
yussugi
0
3.7k
累計2500万着電を支える大規模 電話自動応答サービスのアーキテクチャ / Architecture of a Large-Scale Automated Phone Response Service Supporting 25 Million Cumulative Calls
ymachida
8
4.3k
ポストモーテムレビューをブレームレスに運営し有効な改善アクションを引き出すために必要だったこと / What is needed to operate postmortem blamelessly and elicit improvement actions
yamaguchitk333
0
140
GDGoC開発体験談 - Gemini生成AI活用ハッカソン / GASとFirebaseで挑むパン屋のフードロス解決 -
hotekagi
1
470
間違いだらけのポストモーテム - ホントに役立つレビューはこうだ!
jacopen
5
890
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
24k
Optimizing for Happiness
mojombo
376
70k
Adopting Sorbet at Scale
ufuk
73
9.1k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.3k
The Pragmatic Product Professional
lauravandoore
32
6.3k
A Tale of Four Properties
chriscoyier
156
23k
Code Reviewing Like a Champion
maltzj
520
39k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
A Philosophy of Restraint
colly
203
16k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Transcript
Java はレガシーではない!
なんで今どきJavaなんて古い言語使ってるの? pythonでしょ?Goでしょ? TypeScriptでしょ? 目的 なぜかいつも人気がないJava... 採用活動をやっていると 「なんでJavaなんですか?」 と、ほぼ高確率で言われる。 -> そのイメージを変えたい!
自己紹介 PayPayカード株式会社 プロダクト本部 プロダクト開発部 プロダクト開発1グループ 中尾正剛 趣味:登壇、ロードバイク、ボルダリング 2011/04 中小SES(ずっとSIだと思っていた 2015/01
株式会社セレス 2020/10 エキサイト株式会社 2023/11 PayPayカード株式会社 ... 今に至る
本日の プレゼンテーション 主要トピック Javaはレガシーなのか? Javaの良いところ Javaの悪いところ 最後に
Java はレガシーなのか?
こんなこと思ってないですか? ビルドが遅い。 記述量が多い。 Hello Would出すまでに時間がかかる。 ぬるぽ!
Java は人気がないのか?
Java はレガシーなのか? そんなことはない 現在は半年に一度という頻度で急激に進歩しています。 最新の長期サポートリリースであるJava 21ではVirtual Threadsによりスケーラビリティがさ らに向上しました。 Virtual Threadsとは、ざっくり概要だけ説明すると今までのスレッドは実行環境に依存してい
たのですが、21以降はJVMがスレッドを管理してくれるようになり、リソースの消費が軽減さ れました。 もっともっとざっくり説明すると、たくさんリクエストがさばけるようになりました。 詳しくは櫻庭さんの記事を参考にしてください https://speakerdeck.com/skrb/virtual-thread-dao-ru-nobei-jing-to-xiao-guo-de-nashi- ifang-372a94a6-b5dc-448d-b1d1-e8750efdafcb?slide=14
Java は面白くないのか? 確かに面白くないことはある 起動が遅いとか、Hello world出すだけでpublic static void main(String[] args)ほにゃららが 必要だとか、JDKにパスを通さないといけないとか、コンパイルしないといけないとか、、
ぬるぽ!が!とか、、、 昔は大変でした! 大変->触りたくない!やりたくない!->pythonサイコー! わかります。
それは昔の話。。。 今はそんなことはない。
そもそも言語によって 面白い、面白くないが決まるのか?
どんな業務につくかが一番重要。 使っている技術(Java) 、設計(DDD) 、 手法( スクラム) など枝葉の話。
業務にコミットしやすい技術、支える フレームワーク、柔軟な設計を理解す ることが一番重要じゃないか?
Java の良いところ Java の悪いところ
Java の良いところ 静的型付け言語 オブジェクト指向 関数型プログラミング バージョンアップ比較的に容易 すぐにセキュリテイアップデートしてくれ る プラットフォーム依存がない 求人たくさん
LTSのサポート ドキュメントが豊富 SpringBootが簡単すぎる Java の悪いところ 単調的なコード public static void main(String[] args)ほにゃ ららと魔法の言葉 エディタに頼らないと開発できない ビルドが遅い 起動が遅い 環境構築大変 メモリたくさん使う ぬるぽ エラー文が読みにくい ファイルが多くなりがち
Java の最高に良いところ JavaというよりSpring Boot DIが簡単 アノテーションで簡単にDIできる Controller,Service,Repository すでに層ごとのアノテーションが用意されていて、開発し やすい。 gradleを使ってmodule化を行えば、それぞれの依存関係を制御し開発者の品質を上げ
てくれる 無料で強力すぎるIDEのサポート(有料にすると更にパワーアップ) ある意味AIですよね? DB接続ツール、redis接続ツール、非同期処理、認証、jibでdockerfileもいらない。 ライブラリが豊富すぎる。
https://engineering.linecorp.com/ja/blog/spring-boot-job-report
Java はレガシーではない! レガシーではない、安定している言語 学校で教えるようなメモ帳で開発するJavaのイメージがあるかもしれないですが、 実際の業務ではIDEを使った開発がメインになるので、簡単です。 SpringBootを使えば、より簡単にWebアプリケーションを作ることが可能です。 Java、使ってみてはいかがでしょうか?
None