SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Scalable Generator: Using Scala in SIer Business 
2014.9.6 
Yugo 
Maede 
! 
TIS 
Inc. 
Copyright © 2014 TIS Inc. All rights reserved.
My profile 
Work 
in 
Strategic 
technology 
center 
of 
TIS 
Inc.! 
have built in-house application framework and tools! 
Evaluating Scala! 
Koka-Ninja! 
Twitter : @yugolf 
• TIS株式会社 戦略技術センター! 
• 社内エンジニアリング基盤の構築! 
• Scalaの活用検証! 
• 甲賀忍者 
自己紹介 
Copyright © 2014 TIS Inc. All rights reserved. 2
My articles 
執筆記事紹介 
-­‐ ITPro “Is it easy to switch the build tool from Maven to Gradle?”! 
-­‐ @IT “Your dream will definitely come true. What is Web Components?”! 
-­‐ CodeZine “Introduction to Play Framework” 
• ITPro 「ビルドツールの移行性 MavenからGradleへの乗り換えは容易か」! 
• @IT 「あなたの知らない超絶便利なWebを叶える仕様Web Componentsとは」! 
• CodeZine 「ScalaのWebアプリケーションフレームワーク「Play Framework」入門」 
TIS技術ブログ 
Tech-­‐Sketch 
http://tech-­‐sketch.jp/ 
Copyright © 2014 TIS Inc. All rights reserved. 3
Agenda 
Background! 
A barriers of using Scala! 
Introduce code generator! 
Demonstration! 
Summary •背景! 
アジェンダ 
•Scala採用の壁! 
•コードジェネレータの紹介! 
•デモ! 
•まとめ 
Copyright © 2014 TIS Inc. All rights reserved. 4
Background : About TIS 
-­‐ TIS 
is 
System 
Integrator 
Entrusted development on various scale! 
! 
-­‐ Our cover fields! 
TISについて 
The enterprise like bank, insurance, credit card, manufacturing 
and so on 
• SIer  大・中・小 受託開発! 
• 主な対象分野 金融・カード・産業! 
! 
Copyright © 2014 TIS Inc. All rights reserved. 5
Background : Our activities in the past 
To 
improve 
the 
efficiency 
of 
development 
これまでの取り組み 
-­‐ In-­‐house 
application 
framework 
(for 
development 
by 
Java)! 
-­‐ Code generator! 
-­‐ Development tools and guide (for test, CI etc)! 
-­‐ Training for developer in my company! 
-­‐ about framework, Jenkins, Maven, JUnit etc 
• 生産性の向上を目指して 
• 社内向けアプリケーション開発基盤 
(=Java)! 
• コードジェネレータ! 
• 開発効率化ツール/ガイド(テスト効率化・CI etc)! 
• 社内教育! 
• フレームワーク・Jenkins・Maven・JUnit etc 
Copyright © 2014 TIS Inc. All rights reserved. 6
More Improvement 
更なる改革 
It’s 
difficult 
to 
improve 
the 
efficiency 
only 
by 
framework, 
generator, 
and 
some 
tools. 
focus on improving of programing itself! 
    Java ▶︎ Scala Generator 
Libraries Java 
Scala 
CI 
Test 
Tool 
Framework 
Libraries 
Libraries 
フレームワーク・ジェネレータ・その他周辺ツールの整備だけでは困難! 
  プログラミングそのものの効率化へ 
Copyright © 2014 TIS Inc. All rights reserved. 7
The barrie of using Scala 
-­‐ A 
shortage 
of 
tools 
and 
libraries 
for 
developing 
enterprise 
applications 
-­‐ Stability-­‐oriented 
customers 
and 
developers! 
-­‐ Difficult to learn and teach Scala! 
! 
-­‐ Can we really improve the efficiency of development by Scala? 
Scalaを採用する壁 
• エンタープライズ向けのライブラリやツールの不足 
• 安定志向の開発現場や顧客! 
• 習得や教育の難しさ! 
!! 
本当にScalaで開発が効率化出来るのか? 
Copyright © 2014 TIS Inc. All rights reserved. 8
How does development change by switching to 
-­‐ The 
number 
of 
codes 
decrease 
compared 
to 
Java. 
-­‐ If 
we 
master 
Scala, 
productivity 
must 
increase. 
-­‐ Can't 
completely 
say 
that 
it 
has 
rapid 
effect, 
but 
it 
has 
high 
potential. 
-­‐ After 
all, 
Does 
it 
depends 
on 
personal 
ability? 
! 
-­‐ Yes. 
I’d 
like 
to 
make 
the 
following; 
Scalaで何が変わる? 
excellent 
developers 
can 
show 
their 
ability. 
• Scalaの簡潔性によりJavaに比べコード量が激減する。 
• Scalaの習熟度があがれば生産性が上がる。 
• 決して、即効性は高いとは言えないが大きな伸びしろを秘めている。 
• 結局プログラマの能力次第? 
• Yes。能力の高いプログラマが力を発揮できる世界を作りたい。 
Copyright © 2014 TIS Inc. All rights reserved. 9
Is that true? The number of steps will decrease. 
If the total amount of source codes decreased, but we need to decrease 
the programing part except framework. 
auto 
Xenlon 
Seasar2 
Java 
Framework Application 
hand 
made 
hand 
made 
hand 
made 
Play2 
全体のコード量が減ったとしても、実装量が減らないと意味がない。 
Copyright © 2014 TIS Inc. All rights reserved. 
Scala 
Framework Application 
the 
previous 
development using 
Scala/Play2 
10 
hand 
made 
本当に実装コードは減る?
hand 
made 
auto 
Xenlon 
Seasar2 
Copyright © 2014 TIS Inc. All rights reserved. 
hand 
made 
auto 
How shall we solve? 
We should automate programing which is able to be automated.! 
  -> need a Code Generator 
add-­‐on 
Play2 
自動化出来るところは自動化する。 ▶ コードジェネレータ 
11 
解決するには? 
Java 
Framework Application 
the 
previous 
development 
Scala 
Framework Application 
using 
Scala/Play2
Automation by the code generator 
コードジェネレータによる自動化 
-­‐ Automate 
simple 
works, 
and 
programers 
focus 
on 
essential 
business 
logics. 
-­‐ The 
automation 
isn't 
100%, 
it's 
important 
to 
develop 
business 
logic 
by 
hand 
-­‐ automate 
-­‐ The 
structure 
of 
code 
does 
not 
depend 
on 
programing 
language. 
-­‐ The 
code 
depends 
on 
a 
framework. 
-­‐ not 
automate 
-­‐ Business 
logic 
• 機械的に実装出来る部分は自動化し、プログラマーは本質的な       ビジネスロジックの実装に注力 
• 100%自動生成ではなく、ビジネスロジックをScalaで実装する事に価値 
<自動化> 
• 実装言語によって構造が変わらない部分(シンプルにならない) 
• フレームワークによって記述が異なる部分(FWの壁) 
<非自動化> 
• ビジネスロジック 
Copyright © 2014 TIS Inc. All rights reserved. 12
Generator features 
-­‐ Based 
on 
Play 
Framework 
and 
Slick 
(Typesafe 
products). 
-­‐ Source 
codes 
are 
generated 
from 
DB 
schema. 
ジェネレータの特徴 
-­‐ Import 
Application 
structures 
into 
the 
Repository 
in 
the 
generating 
process. 
-­‐ Allow 
you 
to 
edit 
the 
application 
structures 
in 
the 
repository. 
-­‐ Don't 
have 
to 
install, 
because 
provided 
by 
"Typesafe 
Activator". 
• Play 
Framework 
/ 
Slick対応のTypesafeプロダクト準拠 
• DBスキーマ情報からソースコードをジェネレート 
• アプリケーション構造をリポジトリ登録 
• アプリケーション構造をリポジトリに格納し編集可能 
• Typesafe 
Activator 
のテンプレートで提供するため環境構築不要 
Copyright © 2014 TIS Inc. All rights reserved. 13
For Play Framework and Slick 
Play Framework と Slick 
-­‐ We 
can 
trust 
and 
use 
them, 
because 
they 
are 
developed 
by 
Typesafe 
who 
develop 
Scala. 
-­‐ De 
facto 
standard(!?) 
-­‐ It 
uses 
Slick 
code 
generator 
and 
follow 
its 
policy. 
• Scala開発企業であるTypesafeが開発/サポートしているため安心 
• 定番フレームワークに!? 
• Slickコードジェネレータを活用し、そのポリシーを踏襲 
Copyright © 2014 TIS Inc. All rights reserved. 14
Generating flow when using the code generator 
1. When 
execute 
Scaffold, 
it 
imports 
information 
for 
generating 
an 
application 
into 
design 
repository, 
and 
generate 
source 
codes. 
(4) edit repository 
Copyright © 2014 TIS Inc. All rights reserved. 
(2) generate source code! 
from database 
Database 
Schema 
Design 
Repository 
Route 
Controller 
View 
Model 
Form 
Dao 
(1) create design repository 
(3) generate source code! 
from repository 
(5) regenerate 
Web Application 
2. Edit 
design 
repository 
and 
re-­‐generate 
source 
code. 
15 
ジェネレート生成のフロー
Design Repository 
The 
table 
structure 
and 
relations 
Screens 
! 
Screen 
ID 
Screen 
Type 
Screen 
Entities 
! 
Screen 
ID 
Entity 
Name 
1 
* 
Screen 
Items 
! 
Screen 
ID 
Item 
No 
Domain 
Code 
Search 
Condition 
Component 
Type 
Domains 
! 
Domain 
Code 
1 
* 
Validations 
* 
0..1 
! 
Domain 
Code 
Validation 
Code 
Validation 
Attribute 
Validation 
Value 
設計リポジトリ 
-­‐ Create 
-­‐ Search 
-­‐ Update 
-­‐ = 
-­‐ != 
-­‐ > 
-­‐ < 
-­‐ contains 
…etc 
-­‐ text 
-­‐ select 
-­‐ checkbox 
-­‐ radio 
…etc 
-­‐ text 
-­‐ bigDecimal 
-­‐ number 
…etc 
1 
1 
Copyright © 2014 TIS Inc. All rights reserved. 16
Edit design repository 
設計リポジトリの変更 
The 
codes 
are 
improved 
into 
a 
practical 
application 
by 
editing 
design 
repository. 
Scalable Generator 
設計リポジトリを編集することで、Scaffoldから実 
用的なアプリケーションへ進化させる。 
Copyright © 2014 TIS Inc. All rights reserved. 17
Generated codes 
When 
you 
edit 
design 
repository, 
generated 
source 
codes 
change 
. 
生成されたコード 
change into partial match by changing Search condition. 
case 
class 
EventSearchData( 
@(== 
@field) 
eventId: 
Option[String], 
@(contains 
@field) 
eventNm: 
Option[String], 
…) 
change into required by checking required. 
val 
eventCreateForm 
= 
Form( 
mapping( 
“eventId” 
-­‐> 
nonEmptyText(maxLength=10), 
“eventNm” 
-­‐> 
optional(text(maxLength=100), 
…)… 
change into select list by changing Component 
@helper.inputText(eventSearchForm(“eventId”)) 
@helper.select(eventSearchForm(“place”), 
…) 
Copyright © 2014 TIS Inc. All rights reserved. 18
Don’t have to install 
環境構築不要 
-­‐ You 
don't 
have 
to 
install, 
because 
it's 
provided 
as 
one 
of 
the 
template 
of 
Typesafe 
Activator. 
-­‐ When 
you 
execute 
a 
command, 
can 
build 
blank 
project. 
$ activator new <application name> skalholt 
Skalholt Template 
Library 
Skalholt 
code 
generator 
Typesafe 
Activatorのテンプレートの1つとして提供するため環境構築不要 
コマンド一つでブランクプロジェクトが出来上がる。 
Copyright © 2014 TIS Inc. All rights reserved. 19
Demonstration 
Required:Typesafe 
Activator 
is 
installed 
https://typesafe.com/platform/getstarted 
! 
デモ 
! 
! 
! 
▶︎ http://localhost:9000/ 
▶︎ http://localhost:9001/ 
▶︎ check the application 
! 
▶︎ check the application 
1. activator new 
2. h2-browser 
3. activator run 
4. skalholt-ui 
5. generate 
6. modify repository 
7. regenerate 
Copyright © 2014 TIS Inc. All rights reserved. 20
What problem is solved by the generator? 
何が解決されたのか? 
-­‐ A 
shortage 
of 
tools 
and 
libraries 
for 
develop 
enterprise 
applications 
-­‐ >The 
number 
of 
codes 
to 
be 
written 
by 
programers 
is 
decreased 
by 
the 
code 
generator. 
-­‐ Stability-­‐oriented 
customers 
and 
developers 
-­‐ >Improve 
the 
basic 
quality 
by 
the 
code 
generator! 
-­‐ Difficult to learn and educate Scala! 
-­‐ >the barrier is minimized by programing based on generated codes. 
• エンタープライズ向けのライブラリやツールの不足 
 ▶ ジェネレータにより実装するコード量の削減 
• 安定志向の開発現場や顧客 
 ▶ ジェネレータによる品質の底上げ! 
• 習得や教育の難しさ! 
 ▶ ジェネレートされたコードをベースとした実装による障壁の軽減 
Copyright © 2014 TIS Inc. All rights reserved. 21
The biggest barrie? Find/Train an engineer of Scala. 
-­‐ Learning 
materials 
are 
already 
prepared 
now. 
-­‐ If 
you 
feel 
a 
barrier 
for 
using 
Scala, 
would 
you 
start 
from 
Play? 
-­‐ If 
you 
feel 
a 
barrier 
for 
using 
Play, 
would 
you 
start 
from 
Skalholt? 
! 
-­‐ I'd 
like 
you 
to 
use 
Skalholt 
not 
only 
for 
improving 
the 
efficiency 
of 
development 
but 
also 
for 
learning 
Scala. 
• 勉強する環境は整っている。 
•Scalaに障壁を感じている人はPlayから始めて見ませんか? 
•Playに障壁を感じている人はSkalholtから始めて見ませんか? 
! 
• 開発を効率化するだけでなく、Scalaを習得するためのツールとして 
活用して欲しい。 
Copyright © 2014 TIS Inc. All rights reserved. 22
Javaエンジニアの私がやったこと 
What I have done as a Java engineer. 
-­‐ Converted 
sample 
application 
on 
a 
Java 
based 
framework 
into 
Scala 
application. 
-­‐ Converted 
some 
of 
the 
features 
of 
the 
framework 
to 
be 
use 
by 
Scala. 
-­‐ Evaluated 
Scala 
on 
real 
project. 
-­‐ Held 
a 
study 
session 
for 
our 
company. 
-­‐ Took 
Typesafe 
training. 
-­‐ Took 
a 
course 
of 
Odersky 
on 
Coursera. 
“Functional 
Programing 
Principles 
in 
Scala” 
• Java製FW上のサンプルアプリをPlay2+Scalaにコンバート 
• Java製FWの持つ機能をScalaから使えるように 
• 実プロジェクトで検証 
• 社内向けの勉強会開催 
• Typesafeのトレーニング受講 
• Coursera受講 
: 
Functional 
Programing 
Principles 
in 
Scala 
Copyright © 2014 TIS Inc. All rights reserved. 23
How to use Skalholt. 
Please 
look 
at 
GitHub 
Pages 
http://tech-­‐sketch.github.io/skalholt/ 
If 
you 
want 
to 
generate 
customized 
code, 
please 
get 
source 
code 
from 
GitHub 
• OSSとして公開しました! 
GitHub 
Pagesをご覧下さい。 
Skalholtは使えるの? 
! 
• 自分向けのコードをジェネレートするにはGitHubから 
-­‐ Have 
released 
it 
!-­‐ 
Copyright © 2014 TIS Inc. All rights reserved. 24
THANK YOU

Weitere ähnliche Inhalte

Was ist angesagt?

Amazon api gatewayで web apiをサーバーレスで構築しよう
Amazon api gatewayで web apiをサーバーレスで構築しようAmazon api gatewayで web apiをサーバーレスで構築しよう
Amazon api gatewayで web apiをサーバーレスで構築しようYoichi Toyota
 
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】DeNA
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devKazuhiro Sera
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかChihiro Ito
 
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Takuya Iwatsuka
 
Aws lambda &amp; amazon api gateway入門
Aws lambda &amp;  amazon api gateway入門Aws lambda &amp;  amazon api gateway入門
Aws lambda &amp; amazon api gateway入門Yutaka Kajiwara
 
Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221Ayumu Inaba
 
Insight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeInsight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeKazuki Takai
 
Java9 and Project Jigsaw
Java9 and Project JigsawJava9 and Project Jigsaw
Java9 and Project Jigsawtakezoe
 
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】DeNA
 
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconSeasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconKazuhiro Sera
 
Java on Microsoft Azure
Java on Microsoft AzureJava on Microsoft Azure
Java on Microsoft AzureYoshio Terada
 
Getting Started With AKS
Getting Started With AKSGetting Started With AKS
Getting Started With AKSBalaji728392
 
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望Yoichi Kawasaki
 
俺のサイジング
俺のサイジング俺のサイジング
俺のサイジングToru Makabe
 
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web  ~ Progressive Web Apps の実装と応用 ~進化する Web  ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~Microsoft Azure Japan
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話KEISUKE KONISHI
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -Yoichi Kawasaki
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】DeNA
 

Was ist angesagt? (20)

Amazon api gatewayで web apiをサーバーレスで構築しよう
Amazon api gatewayで web apiをサーバーレスで構築しようAmazon api gatewayで web apiをサーバーレスで構築しよう
Amazon api gatewayで web apiをサーバーレスで構築しよう
 
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3dev
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
 
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報
 
Aws lambda &amp; amazon api gateway入門
Aws lambda &amp;  amazon api gateway入門Aws lambda &amp;  amazon api gateway入門
Aws lambda &amp; amazon api gateway入門
 
Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221
 
Insight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeInsight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & Scope
 
Java9 and Project Jigsaw
Java9 and Project JigsawJava9 and Project Jigsaw
Java9 and Project Jigsaw
 
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
 
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconSeasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
 
Java on Microsoft Azure
Java on Microsoft AzureJava on Microsoft Azure
Java on Microsoft Azure
 
Getting Started With AKS
Getting Started With AKSGetting Started With AKS
Getting Started With AKS
 
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
 
俺のサイジング
俺のサイジング俺のサイジング
俺のサイジング
 
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web  ~ Progressive Web Apps の実装と応用 ~進化する Web  ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
 

Andere mochten auch

Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介scalaconfjp
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaKazuhiro Sera
 
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...scalaconfjp
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングXitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングscalaconfjp
 
The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論scalaconfjp
 
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!scalaconfjp
 
[ScalaMatsuri] グリー初のscalaプロダクト!チャットサービス公開までの苦労と工夫
[ScalaMatsuri] グリー初のscalaプロダクト!チャットサービス公開までの苦労と工夫[ScalaMatsuri] グリー初のscalaプロダクト!チャットサービス公開までの苦労と工夫
[ScalaMatsuri] グリー初のscalaプロダクト!チャットサービス公開までの苦労と工夫gree_tech
 
GitBucket: The perfect Github clone by Scala
GitBucket: The perfect Github clone by ScalaGitBucket: The perfect Github clone by Scala
GitBucket: The perfect Github clone by Scalatakezoe
 
From Ruby to Scala
From Ruby to ScalaFrom Ruby to Scala
From Ruby to Scalatod esking
 
Weaving Dataflows with Silk - ScalaMatsuri 2014, Tokyo
Weaving Dataflows with Silk - ScalaMatsuri 2014, TokyoWeaving Dataflows with Silk - ScalaMatsuri 2014, Tokyo
Weaving Dataflows with Silk - ScalaMatsuri 2014, TokyoTaro L. Saito
 
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一scalaconfjp
 
Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)Yevgeniy Brikman
 
Use Promise, Future and some functional programing stuff without being a math...
Use Promise, Future and some functional programing stuff without being a math...Use Promise, Future and some functional programing stuff without being a math...
Use Promise, Future and some functional programing stuff without being a math...Quentin Adam
 
Aplicaciones Del Lenguaje Scala
Aplicaciones Del Lenguaje ScalaAplicaciones Del Lenguaje Scala
Aplicaciones Del Lenguaje Scalaguestbc5e8
 
How Scala promotes TDD
How Scala promotes TDDHow Scala promotes TDD
How Scala promotes TDDShai Yallin
 
A Tour Of Scala
A Tour Of ScalaA Tour Of Scala
A Tour Of Scalafanf42
 
Scala: un vistazo general
Scala: un vistazo generalScala: un vistazo general
Scala: un vistazo generalMiguel Pastor
 
芸者東京とScala〜おみせやさんから脳トレクエストまでの軌跡〜
芸者東京とScala〜おみせやさんから脳トレクエストまでの軌跡〜芸者東京とScala〜おみせやさんから脳トレクエストまでの軌跡〜
芸者東京とScala〜おみせやさんから脳トレクエストまでの軌跡〜scalaconfjp
 
Scala@SmartNews_20150221
Scala@SmartNews_20150221Scala@SmartNews_20150221
Scala@SmartNews_20150221Shigekazu Takei
 
Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話Keiji Muraishi
 

Andere mochten auch (20)

Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in Scala
 
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングXitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
 
The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論
 
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
 
[ScalaMatsuri] グリー初のscalaプロダクト!チャットサービス公開までの苦労と工夫
[ScalaMatsuri] グリー初のscalaプロダクト!チャットサービス公開までの苦労と工夫[ScalaMatsuri] グリー初のscalaプロダクト!チャットサービス公開までの苦労と工夫
[ScalaMatsuri] グリー初のscalaプロダクト!チャットサービス公開までの苦労と工夫
 
GitBucket: The perfect Github clone by Scala
GitBucket: The perfect Github clone by ScalaGitBucket: The perfect Github clone by Scala
GitBucket: The perfect Github clone by Scala
 
From Ruby to Scala
From Ruby to ScalaFrom Ruby to Scala
From Ruby to Scala
 
Weaving Dataflows with Silk - ScalaMatsuri 2014, Tokyo
Weaving Dataflows with Silk - ScalaMatsuri 2014, TokyoWeaving Dataflows with Silk - ScalaMatsuri 2014, Tokyo
Weaving Dataflows with Silk - ScalaMatsuri 2014, Tokyo
 
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
 
Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)
 
Use Promise, Future and some functional programing stuff without being a math...
Use Promise, Future and some functional programing stuff without being a math...Use Promise, Future and some functional programing stuff without being a math...
Use Promise, Future and some functional programing stuff without being a math...
 
Aplicaciones Del Lenguaje Scala
Aplicaciones Del Lenguaje ScalaAplicaciones Del Lenguaje Scala
Aplicaciones Del Lenguaje Scala
 
How Scala promotes TDD
How Scala promotes TDDHow Scala promotes TDD
How Scala promotes TDD
 
A Tour Of Scala
A Tour Of ScalaA Tour Of Scala
A Tour Of Scala
 
Scala: un vistazo general
Scala: un vistazo generalScala: un vistazo general
Scala: un vistazo general
 
芸者東京とScala〜おみせやさんから脳トレクエストまでの軌跡〜
芸者東京とScala〜おみせやさんから脳トレクエストまでの軌跡〜芸者東京とScala〜おみせやさんから脳トレクエストまでの軌跡〜
芸者東京とScala〜おみせやさんから脳トレクエストまでの軌跡〜
 
Scala@SmartNews_20150221
Scala@SmartNews_20150221Scala@SmartNews_20150221
Scala@SmartNews_20150221
 
Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話
 

Ähnlich wie Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)

2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~Takeshi Shinmura
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方dena_study
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
devsami kansai 2012 #c2
devsami kansai 2012 #c2devsami kansai 2012 #c2
devsami kansai 2012 #c2Yushi_Takagi
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーMasaya Ishikawa
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!CData Software Japan
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Shinichiro Arai
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbixsoftlayerjp
 
楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由Rakuten Group, Inc.
 
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」アトラシアン株式会社
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Makoto Haruyama
 
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発GoAzure
 
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~日本マイクロソフト株式会社
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...Rakuten Group, Inc.
 

Ähnlich wie Scalable Generator: Using Scala in SIer Business (ScalaMatsuri) (20)

2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
devsami kansai 2012 #c2
devsami kansai 2012 #c2devsami kansai 2012 #c2
devsami kansai 2012 #c2
 
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
 
Angularreflex20141210
Angularreflex20141210Angularreflex20141210
Angularreflex20141210
 
Force.com開発基礎
Force.com開発基礎Force.com開発基礎
Force.com開発基礎
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
 
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
 
Go azure tfs_service
Go azure tfs_serviceGo azure tfs_service
Go azure tfs_service
 
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
 
Klocworkのご紹介
Klocworkのご紹介Klocworkのご紹介
Klocworkのご紹介
 

Mehr von TIS Inc.

AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現TIS Inc.
 
Reactive Systems that focus on High Availability with Lerna
Reactive Systems that focus on High Availability with LernaReactive Systems that focus on High Availability with Lerna
Reactive Systems that focus on High Availability with LernaTIS Inc.
 
Starting Reactive Systems with Lerna #reactive_shinjuku
Starting Reactive Systems with Lerna #reactive_shinjukuStarting Reactive Systems with Lerna #reactive_shinjuku
Starting Reactive Systems with Lerna #reactive_shinjukuTIS Inc.
 
可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステムTIS Inc.
 
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜TIS Inc.
 
Akkaの並行性
Akkaの並行性Akkaの並行性
Akkaの並行性TIS Inc.
 
JavaからAkkaハンズオン
JavaからAkkaハンズオンJavaからAkkaハンズオン
JavaからAkkaハンズオンTIS Inc.
 
リアクティブシステムとAkka
リアクティブシステムとAkkaリアクティブシステムとAkka
リアクティブシステムとAkkaTIS Inc.
 
Akka in Action workshop #ScalaMatsuri 2018
Akka in Action workshop #ScalaMatsuri 2018Akka in Action workshop #ScalaMatsuri 2018
Akka in Action workshop #ScalaMatsuri 2018TIS Inc.
 
Preparing for distributed system failures using akka #ScalaMatsuri
Preparing for distributed system failures using akka #ScalaMatsuriPreparing for distributed system failures using akka #ScalaMatsuri
Preparing for distributed system failures using akka #ScalaMatsuriTIS Inc.
 
Akkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャAkkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャTIS Inc.
 
akka-doc-ja
akka-doc-jaakka-doc-ja
akka-doc-jaTIS Inc.
 
10分で分かるリアクティブシステム
10分で分かるリアクティブシステム10分で分かるリアクティブシステム
10分で分かるリアクティブシステムTIS Inc.
 
Typesafe Reactive Platformで作るReactive System入門
Typesafe Reactive Platformで作るReactive System入門Typesafe Reactive Platformで作るReactive System入門
Typesafe Reactive Platformで作るReactive System入門TIS Inc.
 
Typesafe Reactive Platformで作るReactive System
Typesafe Reactive Platformで作るReactive SystemTypesafe Reactive Platformで作るReactive System
Typesafe Reactive Platformで作るReactive SystemTIS Inc.
 
Effective Akka読書会2
Effective Akka読書会2Effective Akka読書会2
Effective Akka読書会2TIS Inc.
 
再帰で脱Javaライク
再帰で脱Javaライク再帰で脱Javaライク
再帰で脱JavaライクTIS Inc.
 
甲賀流Jenkins活用術
甲賀流Jenkins活用術甲賀流Jenkins活用術
甲賀流Jenkins活用術TIS Inc.
 

Mehr von TIS Inc. (18)

AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
 
Reactive Systems that focus on High Availability with Lerna
Reactive Systems that focus on High Availability with LernaReactive Systems that focus on High Availability with Lerna
Reactive Systems that focus on High Availability with Lerna
 
Starting Reactive Systems with Lerna #reactive_shinjuku
Starting Reactive Systems with Lerna #reactive_shinjukuStarting Reactive Systems with Lerna #reactive_shinjuku
Starting Reactive Systems with Lerna #reactive_shinjuku
 
可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム
 
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
 
Akkaの並行性
Akkaの並行性Akkaの並行性
Akkaの並行性
 
JavaからAkkaハンズオン
JavaからAkkaハンズオンJavaからAkkaハンズオン
JavaからAkkaハンズオン
 
リアクティブシステムとAkka
リアクティブシステムとAkkaリアクティブシステムとAkka
リアクティブシステムとAkka
 
Akka in Action workshop #ScalaMatsuri 2018
Akka in Action workshop #ScalaMatsuri 2018Akka in Action workshop #ScalaMatsuri 2018
Akka in Action workshop #ScalaMatsuri 2018
 
Preparing for distributed system failures using akka #ScalaMatsuri
Preparing for distributed system failures using akka #ScalaMatsuriPreparing for distributed system failures using akka #ScalaMatsuri
Preparing for distributed system failures using akka #ScalaMatsuri
 
Akkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャAkkaで実現するステートフルでスケーラブルなアーキテクチャ
Akkaで実現するステートフルでスケーラブルなアーキテクチャ
 
akka-doc-ja
akka-doc-jaakka-doc-ja
akka-doc-ja
 
10分で分かるリアクティブシステム
10分で分かるリアクティブシステム10分で分かるリアクティブシステム
10分で分かるリアクティブシステム
 
Typesafe Reactive Platformで作るReactive System入門
Typesafe Reactive Platformで作るReactive System入門Typesafe Reactive Platformで作るReactive System入門
Typesafe Reactive Platformで作るReactive System入門
 
Typesafe Reactive Platformで作るReactive System
Typesafe Reactive Platformで作るReactive SystemTypesafe Reactive Platformで作るReactive System
Typesafe Reactive Platformで作るReactive System
 
Effective Akka読書会2
Effective Akka読書会2Effective Akka読書会2
Effective Akka読書会2
 
再帰で脱Javaライク
再帰で脱Javaライク再帰で脱Javaライク
再帰で脱Javaライク
 
甲賀流Jenkins活用術
甲賀流Jenkins活用術甲賀流Jenkins活用術
甲賀流Jenkins活用術
 

Kürzlich hochgeladen

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Kürzlich hochgeladen (8)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)

  • 1. Scalable Generator: Using Scala in SIer Business 2014.9.6 Yugo Maede ! TIS Inc. Copyright © 2014 TIS Inc. All rights reserved.
  • 2. My profile Work in Strategic technology center of TIS Inc.! have built in-house application framework and tools! Evaluating Scala! Koka-Ninja! Twitter : @yugolf • TIS株式会社 戦略技術センター! • 社内エンジニアリング基盤の構築! • Scalaの活用検証! • 甲賀忍者 自己紹介 Copyright © 2014 TIS Inc. All rights reserved. 2
  • 3. My articles 執筆記事紹介 -­‐ ITPro “Is it easy to switch the build tool from Maven to Gradle?”! -­‐ @IT “Your dream will definitely come true. What is Web Components?”! -­‐ CodeZine “Introduction to Play Framework” • ITPro 「ビルドツールの移行性 MavenからGradleへの乗り換えは容易か」! • @IT 「あなたの知らない超絶便利なWebを叶える仕様Web Componentsとは」! • CodeZine 「ScalaのWebアプリケーションフレームワーク「Play Framework」入門」 TIS技術ブログ Tech-­‐Sketch http://tech-­‐sketch.jp/ Copyright © 2014 TIS Inc. All rights reserved. 3
  • 4. Agenda Background! A barriers of using Scala! Introduce code generator! Demonstration! Summary •背景! アジェンダ •Scala採用の壁! •コードジェネレータの紹介! •デモ! •まとめ Copyright © 2014 TIS Inc. All rights reserved. 4
  • 5. Background : About TIS -­‐ TIS is System Integrator Entrusted development on various scale! ! -­‐ Our cover fields! TISについて The enterprise like bank, insurance, credit card, manufacturing and so on • SIer  大・中・小 受託開発! • 主な対象分野 金融・カード・産業! ! Copyright © 2014 TIS Inc. All rights reserved. 5
  • 6. Background : Our activities in the past To improve the efficiency of development これまでの取り組み -­‐ In-­‐house application framework (for development by Java)! -­‐ Code generator! -­‐ Development tools and guide (for test, CI etc)! -­‐ Training for developer in my company! -­‐ about framework, Jenkins, Maven, JUnit etc • 生産性の向上を目指して • 社内向けアプリケーション開発基盤 (=Java)! • コードジェネレータ! • 開発効率化ツール/ガイド(テスト効率化・CI etc)! • 社内教育! • フレームワーク・Jenkins・Maven・JUnit etc Copyright © 2014 TIS Inc. All rights reserved. 6
  • 7. More Improvement 更なる改革 It’s difficult to improve the efficiency only by framework, generator, and some tools. focus on improving of programing itself!     Java ▶︎ Scala Generator Libraries Java Scala CI Test Tool Framework Libraries Libraries フレームワーク・ジェネレータ・その他周辺ツールの整備だけでは困難!   プログラミングそのものの効率化へ Copyright © 2014 TIS Inc. All rights reserved. 7
  • 8. The barrie of using Scala -­‐ A shortage of tools and libraries for developing enterprise applications -­‐ Stability-­‐oriented customers and developers! -­‐ Difficult to learn and teach Scala! ! -­‐ Can we really improve the efficiency of development by Scala? Scalaを採用する壁 • エンタープライズ向けのライブラリやツールの不足 • 安定志向の開発現場や顧客! • 習得や教育の難しさ! !! 本当にScalaで開発が効率化出来るのか? Copyright © 2014 TIS Inc. All rights reserved. 8
  • 9. How does development change by switching to -­‐ The number of codes decrease compared to Java. -­‐ If we master Scala, productivity must increase. -­‐ Can't completely say that it has rapid effect, but it has high potential. -­‐ After all, Does it depends on personal ability? ! -­‐ Yes. I’d like to make the following; Scalaで何が変わる? excellent developers can show their ability. • Scalaの簡潔性によりJavaに比べコード量が激減する。 • Scalaの習熟度があがれば生産性が上がる。 • 決して、即効性は高いとは言えないが大きな伸びしろを秘めている。 • 結局プログラマの能力次第? • Yes。能力の高いプログラマが力を発揮できる世界を作りたい。 Copyright © 2014 TIS Inc. All rights reserved. 9
  • 10. Is that true? The number of steps will decrease. If the total amount of source codes decreased, but we need to decrease the programing part except framework. auto Xenlon Seasar2 Java Framework Application hand made hand made hand made Play2 全体のコード量が減ったとしても、実装量が減らないと意味がない。 Copyright © 2014 TIS Inc. All rights reserved. Scala Framework Application the previous development using Scala/Play2 10 hand made 本当に実装コードは減る?
  • 11. hand made auto Xenlon Seasar2 Copyright © 2014 TIS Inc. All rights reserved. hand made auto How shall we solve? We should automate programing which is able to be automated.!   -> need a Code Generator add-­‐on Play2 自動化出来るところは自動化する。 ▶ コードジェネレータ 11 解決するには? Java Framework Application the previous development Scala Framework Application using Scala/Play2
  • 12. Automation by the code generator コードジェネレータによる自動化 -­‐ Automate simple works, and programers focus on essential business logics. -­‐ The automation isn't 100%, it's important to develop business logic by hand -­‐ automate -­‐ The structure of code does not depend on programing language. -­‐ The code depends on a framework. -­‐ not automate -­‐ Business logic • 機械的に実装出来る部分は自動化し、プログラマーは本質的な       ビジネスロジックの実装に注力 • 100%自動生成ではなく、ビジネスロジックをScalaで実装する事に価値 <自動化> • 実装言語によって構造が変わらない部分(シンプルにならない) • フレームワークによって記述が異なる部分(FWの壁) <非自動化> • ビジネスロジック Copyright © 2014 TIS Inc. All rights reserved. 12
  • 13. Generator features -­‐ Based on Play Framework and Slick (Typesafe products). -­‐ Source codes are generated from DB schema. ジェネレータの特徴 -­‐ Import Application structures into the Repository in the generating process. -­‐ Allow you to edit the application structures in the repository. -­‐ Don't have to install, because provided by "Typesafe Activator". • Play Framework / Slick対応のTypesafeプロダクト準拠 • DBスキーマ情報からソースコードをジェネレート • アプリケーション構造をリポジトリ登録 • アプリケーション構造をリポジトリに格納し編集可能 • Typesafe Activator のテンプレートで提供するため環境構築不要 Copyright © 2014 TIS Inc. All rights reserved. 13
  • 14. For Play Framework and Slick Play Framework と Slick -­‐ We can trust and use them, because they are developed by Typesafe who develop Scala. -­‐ De facto standard(!?) -­‐ It uses Slick code generator and follow its policy. • Scala開発企業であるTypesafeが開発/サポートしているため安心 • 定番フレームワークに!? • Slickコードジェネレータを活用し、そのポリシーを踏襲 Copyright © 2014 TIS Inc. All rights reserved. 14
  • 15. Generating flow when using the code generator 1. When execute Scaffold, it imports information for generating an application into design repository, and generate source codes. (4) edit repository Copyright © 2014 TIS Inc. All rights reserved. (2) generate source code! from database Database Schema Design Repository Route Controller View Model Form Dao (1) create design repository (3) generate source code! from repository (5) regenerate Web Application 2. Edit design repository and re-­‐generate source code. 15 ジェネレート生成のフロー
  • 16. Design Repository The table structure and relations Screens ! Screen ID Screen Type Screen Entities ! Screen ID Entity Name 1 * Screen Items ! Screen ID Item No Domain Code Search Condition Component Type Domains ! Domain Code 1 * Validations * 0..1 ! Domain Code Validation Code Validation Attribute Validation Value 設計リポジトリ -­‐ Create -­‐ Search -­‐ Update -­‐ = -­‐ != -­‐ > -­‐ < -­‐ contains …etc -­‐ text -­‐ select -­‐ checkbox -­‐ radio …etc -­‐ text -­‐ bigDecimal -­‐ number …etc 1 1 Copyright © 2014 TIS Inc. All rights reserved. 16
  • 17. Edit design repository 設計リポジトリの変更 The codes are improved into a practical application by editing design repository. Scalable Generator 設計リポジトリを編集することで、Scaffoldから実 用的なアプリケーションへ進化させる。 Copyright © 2014 TIS Inc. All rights reserved. 17
  • 18. Generated codes When you edit design repository, generated source codes change . 生成されたコード change into partial match by changing Search condition. case class EventSearchData( @(== @field) eventId: Option[String], @(contains @field) eventNm: Option[String], …) change into required by checking required. val eventCreateForm = Form( mapping( “eventId” -­‐> nonEmptyText(maxLength=10), “eventNm” -­‐> optional(text(maxLength=100), …)… change into select list by changing Component @helper.inputText(eventSearchForm(“eventId”)) @helper.select(eventSearchForm(“place”), …) Copyright © 2014 TIS Inc. All rights reserved. 18
  • 19. Don’t have to install 環境構築不要 -­‐ You don't have to install, because it's provided as one of the template of Typesafe Activator. -­‐ When you execute a command, can build blank project. $ activator new <application name> skalholt Skalholt Template Library Skalholt code generator Typesafe Activatorのテンプレートの1つとして提供するため環境構築不要 コマンド一つでブランクプロジェクトが出来上がる。 Copyright © 2014 TIS Inc. All rights reserved. 19
  • 20. Demonstration Required:Typesafe Activator is installed https://typesafe.com/platform/getstarted ! デモ ! ! ! ▶︎ http://localhost:9000/ ▶︎ http://localhost:9001/ ▶︎ check the application ! ▶︎ check the application 1. activator new 2. h2-browser 3. activator run 4. skalholt-ui 5. generate 6. modify repository 7. regenerate Copyright © 2014 TIS Inc. All rights reserved. 20
  • 21. What problem is solved by the generator? 何が解決されたのか? -­‐ A shortage of tools and libraries for develop enterprise applications -­‐ >The number of codes to be written by programers is decreased by the code generator. -­‐ Stability-­‐oriented customers and developers -­‐ >Improve the basic quality by the code generator! -­‐ Difficult to learn and educate Scala! -­‐ >the barrier is minimized by programing based on generated codes. • エンタープライズ向けのライブラリやツールの不足  ▶ ジェネレータにより実装するコード量の削減 • 安定志向の開発現場や顧客  ▶ ジェネレータによる品質の底上げ! • 習得や教育の難しさ!  ▶ ジェネレートされたコードをベースとした実装による障壁の軽減 Copyright © 2014 TIS Inc. All rights reserved. 21
  • 22. The biggest barrie? Find/Train an engineer of Scala. -­‐ Learning materials are already prepared now. -­‐ If you feel a barrier for using Scala, would you start from Play? -­‐ If you feel a barrier for using Play, would you start from Skalholt? ! -­‐ I'd like you to use Skalholt not only for improving the efficiency of development but also for learning Scala. • 勉強する環境は整っている。 •Scalaに障壁を感じている人はPlayから始めて見ませんか? •Playに障壁を感じている人はSkalholtから始めて見ませんか? ! • 開発を効率化するだけでなく、Scalaを習得するためのツールとして 活用して欲しい。 Copyright © 2014 TIS Inc. All rights reserved. 22
  • 23. Javaエンジニアの私がやったこと What I have done as a Java engineer. -­‐ Converted sample application on a Java based framework into Scala application. -­‐ Converted some of the features of the framework to be use by Scala. -­‐ Evaluated Scala on real project. -­‐ Held a study session for our company. -­‐ Took Typesafe training. -­‐ Took a course of Odersky on Coursera. “Functional Programing Principles in Scala” • Java製FW上のサンプルアプリをPlay2+Scalaにコンバート • Java製FWの持つ機能をScalaから使えるように • 実プロジェクトで検証 • 社内向けの勉強会開催 • Typesafeのトレーニング受講 • Coursera受講 : Functional Programing Principles in Scala Copyright © 2014 TIS Inc. All rights reserved. 23
  • 24. How to use Skalholt. Please look at GitHub Pages http://tech-­‐sketch.github.io/skalholt/ If you want to generate customized code, please get source code from GitHub • OSSとして公開しました! GitHub Pagesをご覧下さい。 Skalholtは使えるの? ! • 自分向けのコードをジェネレートするにはGitHubから -­‐ Have released it !-­‐ Copyright © 2014 TIS Inc. All rights reserved. 24