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
Development Tools In Scala
Search
Hiraq Citra M
May 27, 2014
Programming
1
67
Development Tools In Scala
Presentation about tools and frameworks in scala world
Hiraq Citra M
May 27, 2014
Tweet
Share
More Decks by Hiraq Citra M
See All by Hiraq Citra M
Functional Programming & Team Development
hiraq
0
150
Laravel 5 - Event & Queue
hiraq
0
3.6k
Golang The Hardway
hiraq
0
690
Introduction Repository, DDD And Unit Test
hiraq
0
920
Git WorkFlow & Best Practice
hiraq
2
120
API - WEB SERVICE - BASIC
hiraq
2
99
TDD - Think First, Code Later, PHP Way
hiraq
5
150
Apache Solr & PHP - Introduction
hiraq
2
170
Other Decks in Programming
See All in Programming
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
27
8.5k
PHPはいつから死んでいるかの調査
chiroruxx
2
410
Polars入門
daikikatsuragawa
1
160
SIMD Parallel Programming with the Vector API
josepaumard
0
220
敵対的ポイフル
futabato
0
120
Hanami and htmx
bkuhlmann
0
220
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
410
Domain-Driven Transformation
hschwentner
2
1.5k
Ruby GitHub Packages
bkuhlmann
0
630
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
960
Snowflakeで眠ったデータを起こそう!
estie
0
130
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
4
320
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
123
39k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
11
1k
Teambox: Starting and Learning
jrom
128
8.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
Debugging Ruby Performance
tmm1
70
11k
Become a Pro
speakerdeck
PRO
12
4.6k
Unsuck your backbone
ammeep
663
57k
Designing on Purpose - Digital PM Summit 2013
jponch
111
6.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
A better future with KSS
kneath
231
16k
Building Applications with DynamoDB
mza
88
5.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
Transcript
Development Tools In Scala Increase Programmer’s Productivity
Me https://facebook.com/hiraq https://twitter.com/_hiraq @_hiraq
Scala Programmer Levels A1 : Beginning Application Programmer A2 :
Intermediate Application Programmer A3 : Expert Application Programmer L1 : Junior Library Designer L2 : Senior Library Designer L3 : Expert Library Designer
Disclaimer 1. My Level -> A1 (Wannabe) 2. Research >
Coding
Why I Choose Scala ? 1. Twitter: From ruby to
scala (backend) 2. Foursquare: From php to scala (all) 3. Mindtalk : From python to scala from dynamic typing to static typing
Problem With Scala 1. Internet Connection 2. Compile 3. SABAR
Companies Using Scala 1. Twitter 2. Foursquare 3. Netflix 4.
Ebay 5. Tumblr 6. AirBnB 7. Mindtalk 8. …………...Apple?
Scala’s Frameworks 1. Lift 2. Play (hello world) 3. Scalatra
4. Finatra (proved) 5. Splay (toolkit)
Scala Web Server 1. Finagle (Twitter) -> Finatra 2. Socko
3. spray-can
Scala NoSQL Framework 1. Casbah (Mongodb) -> proved 2. ReactiveMongo
: Asynchronous Mongodb 3. Sandra : Apache cassandra & Scala 4. Scala-redis 5. Gizzard
Scala Unit Test 1. Scalatest -> proved 2. Scalacheck ->
property based unit test 3. Spec2 -> bdd
For Development 1. sbt (plugins: assembly / pack) 2. conscript
3. g8
SBT - (not so)Simple Build Tools 1. Scala 2. Java
3. c++
SBT - What’s for 1. Choose Scala Version 2. Library
dependency management 3. Compile & package
SBT - Plugins 1. Assembly - Fat jar (Finatra) 2.
Pack - compile, packaging + installing (support unix (linux) & windows), support versioning https://github.com/sbt/sbt-assembly https://github.com/xerial/sbt-pack
Conscript & g8 conscript : install & update g8 :
generate files & directories from templates published in github
g8 example template 1. fayimora/basic-scala-project : simple scala project +
scala test 2. pmandera/basic-scala-project : simple scala project + spec2 3. scalatra/scalatra-sbt : basic scalatra template
Installation - Conscript curl https://raw.githubusercontent.com/n8han/conscript/master/setup.sh | sh
Installation - g8 curl https://raw.githubusercontent.com/n8han/conscript/master/setup.sh | sh
Command line 1. g8 fayimora/basic-scala-project 2. sbt
Setup sbt pack packSettings packMain := Map("shorten" -> "api.hiraq. google.shortenurl.Shorten")
Demo - Google ShortenURL API 1. g8 -> fayimora/basic-scala-project 2.
Basic scala project 3. Scalatest 4. sbt pack https://github.com/hiraq-scala/google-shorten-url