Date post: | 11-Jul-2015 |
Category: |
Technology |
Upload: | nils-breunese |
View: | 496 times |
Download: | 6 times |
Java 7 Director’s Cut
Tomas Nilsson (Product Manager Java SE, Oracle)
Oracle heeft veel regels
Over security bugs wordt niet gesproken, niet changelogs
In tegenstelling tot Sun: veel bereikt, actually shipping
Oracle heeft 100.000+ manjaar geïnvesteerd in Java
dinsdag 8 november 11
Java EE 7: for the cloudArun Gupta (Java EE & GlassFish Evangelist, Oracle)
IaaS, PaaS, SaaS? Vendor lock-in!
Java EE 6 provides services, Java EE 7 is a service
Service provisioning op basis van annotaties
Dynamic service provisioning, auto-scaling, high availability
Demo: http://glassfish.org/javaone2011
dinsdag 8 november 11
Don’t call us, we’ll pushLucas Jellema (Technical Architect, AMIS)
Comet (AJAX push, reverse AJAX, streaming, etc.)
Push: realtime en lagere systeembelasting
Oplossing: Websockets (HTML5, nieuwe spec)
Niet alleen naar browser, ook sommige DB’s kunnen pushen
Gebruik een framework, dat zal t.z.t. wel overstappen
dinsdag 8 november 11
Java op Windows Azure
Virtuele Windows Server 2008 instanties
Failover, high availability, maar geen sticky sessions
Zelf Java runtime en servlet container meeleveren
Eigenlijk dus geen specifieke ondersteuning voor Java
Remote desktop toegang voor de liefhebber
dinsdag 8 november 11
iOS, HTML5 en Andriod CI
Robert van Loghem (Mobile Development Consultant, Xebia)
Gebruik Unit en UI tests
Realistisch testomgevingen zijn lastig, veldtesten belangrijk
Jenkins met Android Emulator plugin, Jasmine, Selenium Web Driver, Robotium, GHUnit (test op device), KIF, WaxSim
iOS: onsamenhangende tooling, Testflight is wel te gek
dinsdag 8 november 11
Looking at Groovy 1.8
Hubert Klein Ikkink a.k.a. mrhaki (VX Company)
GPars, closures, JSON, command chain expressions, AST transformations
dinsdag 8 november 11
GParsGParsPool.withPool { def selfPortraits = images.findAllParallel { it.contains me } .collectParallel { it.resize() }
// a map-reduce functional style def smallestSelfPortrait = images.parallel .filter{ it.contains me } .map{ it.resize() } .main{ it.sizeInMB }}
dinsdag 8 november 11
Closures
Closures als annotation parameters
Closure composition (closures samenstellen tot nieuwe)
Closure trampoline (voorkom stack overflow)
Closure memoization (caching van resultaten)
dinsdag 8 november 11
JSON: JsonSlurper
import groovy.json.*
def payload = new URL(“http://example.com/commits”).textdef slurper = new JsonSlurper()def doc = slurper.parseText(payload)
doc.commits.message.each { println it }
dinsdag 8 november 11
JSON: JsonBuilderimport groovy.json.*def json = new JsonBuilder()json.person { name “Guillaume” age 33 pets “Hector”, “Felix”}println json.toString()// {“person”:{“name”:”Guillaume”,”age”:33,”pets”:[“Hector”,”Felix”]}}
dinsdag 8 november 11
Command chainsshow = { println it }square_root = { Math.sqrt(it) }def please(action) { [the: { what -> [of: { n -> action(what(n)) }] }]}
please show the square_root of 100// equivalent: please(show).the(square_root).of(100)
dinsdag 8 november 11
AST Transformations
Injecteer logger: @Log, @Commons, @Log4j, @Slf4j
Maak variabele in script beschikbaar in methodes: @Field
@ToString, @EqualsAndHashCode, @TupleConstructor
Of alledrie tegelijk: @Canonical
En nog véél meer: @AutoClone, @InheritConstructors, @WithReadLock, @WithWriteLock, @ListenerList, etc.
dinsdag 8 november 11
String to Enum coercion
String to Enum coercion:
enum Color { red, green, blue }
def r = “red” as Color
Color b = “blue”
dinsdag 8 november 11
MiscDiamond operator (Java 7):
List<List<String>> list1 = new ArrayList<>()
assert [2,4,2,1,3,5,2,4,3].count({ it % 2 == 0}) == 5
assert [1,2,2,2,3].toSet() == [1,2,3] as Set
Slashy strings, dollar slashy strings (multi-line regex)
Er is meer, maar dit is wel even genoeg...
dinsdag 8 november 11
Java Tuning PuzzlersGebruik AppDynamics Lite!
Findbugs heeft altijd gelijk!
Checkstyle, PMD, etc. is vaak een beetje gezeur
HotSpot profiler, voor simpele applicaties: -Xprof
VisualVM
Gratis Java-monitoring: http://java-monitor.com/
dinsdag 8 november 11