Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Javaな会社のScalaへの取り組み
Search
株式会社ヌーラボ
PRO
August 01, 2015
Technology
1.7k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Javaな会社のScalaへの取り組み
Presentation slides at
http://summit.scala-kansai.org/
株式会社ヌーラボ
PRO
August 01, 2015
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
製造業の設計・生産技術向け Backlog入門
nulabinc
PRO
0
15
配布資料_ヌーラボの情シスがおすすめする_問い合わせ対応を削減するBacklog活用術.pdf
nulabinc
PRO
0
120
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
3.1k
Getting Started with Bits Agent Builder: Real-World Use Cases
nulabinc
PRO
0
83
The_Evolution_of_Bits_AI_SRE.pdf
nulabinc
PRO
0
420
進化するBits AI SREと私と組織
nulabinc
PRO
4
1.2k
実践 Datadog MCP Server
nulabinc
PRO
4
990
全社横断PjM⽀援チーム “PEaS”の取り組みと プロジェクトマネジメント でのAI活⽤について
nulabinc
PRO
0
250
Datadog の RBAC のすべて
nulabinc
PRO
4
1k
Other Decks in Technology
See All in Technology
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
1
610
IR Today: Theory, Practice, and Agents
dtunkelang
0
350
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
260
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
210
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
360
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
130
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
520
2026-10-01_MagicPod_QAハーネスエンジニアリングとQA組織の未来像
ynisqa1988
1
540
メルペイ 会計システム概要と歴史
mewuto
0
190
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
190
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
510
Incremental HTTP
kazuho
5
2.1k
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
580
Git: the NoSQL Database
bkeepers
PRO
433
67k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
450
Test your architecture with Archunit
thirion
2
2.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Mind Mapping
helmedeiros
1
390
Marketing to machines
jonoalderson
1
5.9k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Technical Leadership for Architectural Decision Making
baasie
3
590
Why Our Code Smells
bkeepers
PRO
340
58k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
520
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
550
Transcript
+BWBͳձࣾͷ 4DBMBͷऔΓΈ גࣜձࣾψʔϥϘɹ០ढ़و
C • – ( • )
Java $ Scala $ $
• Scala $ • $ • Scala
None
• 2004$Backlog$(Java/Seasar/WebWork)$ • 2008$Cacoo$(Java/Seasar/Cubby)$
We— Java
8IZ+BWB • ੩తܕ͚ – ։ൃޮ – อकੑ • ߴͳ࣮ߦ࣮ߦޮ – εϨουϞσϧ – αʔόʔͷ͕গͳͯ͘ࡁΉ
• ࣌ ޮͷྑ͍ϑϨʔϜϫʔΫ – 4FBTBS8FC8PSL – 4%BP4+%#$
+BWBUP4DBMB • 4FBTBSͷ։ൃ͕ࢭ·Δ • ྡͷࣳੜͰ3P3͕Γ্͕Γ • +BWBͳ͔ͳ͔ग़ͳ͍ • )PUSFMPBEJOHΛ͖ͪΜͱಈ͔͢ͷେม – ίʔυमਖ਼ͷͨͼʹ5PNDBU࠶ىಈ
• +BWBͷସΛ୳ͨ͠ʹ
8IZ4DBMB • ݎ࿚ੑ – 0QUJPO – Πϛϡʔλϒϧ WBM ෆมίϨΫγϣϯ
– ϥΠϒϥϦ'80QUJPOΠϛϡʔλϒϧલఏ • ։ൃޮ – ίϨΫγϣϯૢ࡞ – $BTFΫϥε – ύλʔϯϚον • +7.ݴޠ – +BWBࢿ࢈ͷ༗ޮ׆༻ – +7.Ͱͷαʔόʔӡ༻ܦݧ
case$class $case$class$User(id:$Long,$name:$String,$isAdmin:$Boolean)$ $$val$newUser$=$User(1L,$“agata”,$false)$ $$val$updatedUser$=$newUser.copy(name$=$“agaMno”)$ • ߦͰ+BWBͷߦ͙Β͍ • σϑΥϧτͰಡΈऔΓઐ༻ϓϩύςΟ༩ • FRVBMTIBTI$PEFUP4USJOHDPQZϝιουੜ
• DPQZͰݩͷΦϒδΣΫτΛഁյͤͣʹίϐʔ • ύλʔϯϚονʹద༻Մೳ
case$class$AddAccountCommand(name:$String,$password:$String,$email:$String…)$ case$class$UpdateAccountCommand(id:$Long,$name:$String,$email:$String$…)$ $ object$AccountService${$ $def$add(command:$AddAccountCommand):$Account$=$…$ $def$update(command:$UpdateAccountCommand):$Account$=$…$ }$ $ ublic$class$Account${$ $$private$Long$id;$
$$private$String$name;$ $$private$String$password;$ $$private$String$email;$ $$…$ }$ public$class$AccountService${$ $public$void$add(Account$account)${$…$}$ $public$void$update(Account$account)${$…$}$ }$ $ Scala Java
Play2 • $ – DB MigraVon $ – Hot$Reloading$ • $
– Routes$ – View/Template$ – build.scala$
Play$2 develop feature,X 5.sql 5.sql 6.sql 4.sql feature,Y ! #$```$!Ups$
alter$table$post$add$show_link_meta$boolean$not$null$default$true;$ $ #$```$!Downs$ alter$table$post$drop$show_link_meta;$
• 2004$Backlog$(Java/Seasar/WebWork)$ • 2008$Cacoo$(Java/Seasar/Cubby)$ • 2011$Typetalk$(Scala/Play$2)$ • 2013$Backlog$API$v2$(Scala/Play$2)$ • 013$Nulab$Account$(Java/Spring)$
• 2014$ (Scala/Play$2)$ • 014$Nulab$Services$Status(Go)$ • 2015$Backlog$Redmine$Importer(Scala/Akka)
Typetalk ( ) Web/API$ (Scala/Play$2) Streaming$ (Node.js) DB iOS Android
Redis Redis Pub/Sub Socket.IO
API Web (JS) API$ $ OAuth$2$ object$TopicController$exnteds$Controller${$ $$self:$Auth$ $$//$API$Methods$ }$
object$TopicWebController$extends$TopicController$with$WebAuth$ object$TopicAPIController$extends$TopicController$with$APIAuth$
Backlog ( ) Web $ API$ (XML`RPC)$ $(Java/Seasar) API$v2(REST/JSON)$ (Scala/Play$2)
API DB iOS Android DB $
Backlog$APIv2 DB Client Controller$ (Play$2)$ ApplicaVo nService Repository$ PresentaVon$ ApplicaVon$
Domain$ Infrastructure$ Service Value$ Object EnVty SpecificaVon Dao$ Record$
4DBMBΛࣾͰ ීٴͤ͞ΔͨΊͷ औΓΈ
ࣾΞϓϦΛ4DBMBͰ࡞ • $ • $ • $ • Backlog $
• YouTube/SoundCloud/Vimeo Mix $ • Scala
ࣾษڧձ
͓ۚͰղܾ
͓͢͢Ίಋೖϓϥϯ • جຊߏจ֤ࣗݸਓֶशͰԡ͓͑ͯ͘͞ • ·ͣࣾΞϓϦͳͲɺখ͞ΊͷΞϓϦΛ ࠾༻ͯ͠ΈΔɻ • ࣾษڧձॏཁ • ࢥ͍࣮ͬͯҊ݅ʹಋೖ
– ࠷ॳϕλʔ+BWB͔ΒͰ0, – ׳Ε͖ͯͨΒͩΜͩΜ4DBMBؔܕΒ͘͠
• Java Scala $ – cala Scala $ • Scala
$ – $
None