Evolving with Java - How to remain Relevant and Effective

Naresha K
Naresha KDeveloper | Technical Excellence Coach | Consultant | Trainer at Independent
Evolving with Java - How to Remain
Relevant & Effective
Naresha K, Technical Excellence Coach | Consultant |
Agile & Cloud Transformation Catalyst
@naresha_k
https://blog.nareshak.com/
Evolving with Java - How to remain Relevant and Effective
Evolving with Java - How to remain Relevant and Effective
Business
Time to Market |
Speed of Delivery
Economy
Evolving with Java - How to remain Relevant and Effective
About Me
http://nareshak.blogspot.com/
http://nareshak.blogspot.com/
Evolving with Java - How to remain Relevant and Effective
Evolving with Java - How to remain Relevant and Effective
Evolving with Java - How to remain Relevant and Effective
Evolving with Java - How to remain Relevant and Effective
Relevant?
Evolving with Java - How to remain Relevant and Effective
Effective?
public static void main(String[] args) {
List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);
List<Integer> result = numbers.stream()
.map(ParallelStreams::computeHeavyArithmetic)
.collect(Collectors.toList());
System.out.println(result);
}
public static void main(String[] args) {
List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);
List<Integer> result = numbers.parallelStream()
.map(ParallelStreams::computeHeavyArithmetic)
.collect(Collectors.toList());
System.out.println(result);
}
public static void main(String[] args) {
List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);
List<Integer> result = numbers.stream()
.map(ParallelStreams::computeHeavyArithmetic)
.collect(Collectors.toList());
System.out.println(result);
}
public static void main(String[] args) {
List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);
List<Integer> result = numbers.parallelStream()
.map(ParallelStreams::computeHeavyArithmetic)
.collect(Collectors.toList());
System.out.println(result);
}
Evolving with Java - How to remain Relevant and Effective
private static Logger LOGGER =
LoggerFactory
.getLogger(MyClass.class);
Evolving with Java - How to remain Relevant and Effective
All
models are wrong,
but some are useful.
George Box
https://en.wikipedia.org/wiki/All_models_are_wrong
Pain!
Suffering
Pain!
 Pain is the hammer of the gods to break
A dead resistance in the mortal’s heart
https://dhavaldalal.wordpress.com/2006/08/02/pain-and-suffering/
public static String concatWithPlus(String[]
values) {
String result = "";
for (int i = 0; i < values.length; i++) {
result += values[i];
}
return result;
}
public static String
concatWithStringBuffer(String[] values) {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < values.length; i++) {
buffer.append(values[i]);
}
return buffer.toString();
}
Java 1.4
Java 5
Evolving with Java - How to remain Relevant and Effective
Maintainability?
‘+’ vs StringBuffer
Level of Abstraction
API Contract
Concatenation Concatenation
Thread Safety
Favour higher level
of abstraction
Premature
optimisation is the
root of all evil
~ Donald Knuth
Rule 1: Don’t
Rule 2: Don’t, yet
Rule 3: Profile before
optimising
http://wiki.c2.com/?RulesOfOptimization
YAGNI
http://wiki.c2.com/?MakeItWorkMakeItRightMakeItFast
Make it work
Make it Right
Make it Fast
http://wiki.c2.com/?MakeItWorkMakeItRightMakeItFast
Red Green
Refactor
TDD
Java 11
public static void main(String[] args) {
List numbers = Arrays.asList(1, 2, 3, 4, 5);
Iterator iterator = numbers.iterator();
while (iterator.hasNext()) {
Number number =
(Number) iterator.next();
System.out.println(number);
}
}
Java 1.4
public static void main(String[] args) {
List numbers = Arrays.asList(1, 2, 3, 4, 5);
Iterator iterator = numbers.iterator();
while (iterator.hasNext()) {
Number number =
(Number) iterator.next();
System.out.println(number);
}
} List<Number> numbers =
Arrays.asList(1, 2, 3, 4, 5);
for(Number number : numbers) {
System.out.println(number);
}
Java 1.4
Java 5
Syntactic Sugar
Minimise Moving Parts
Imperative -> Declarative
Fail fast
Runtime -> Compile time
/**
*
* @param customer
* @return This method returns orders
* of customer
*/
public List getOrdersOfCustomer(Customer
customer);
/**
* This method returns orders of customer
* @param customer Customer whose orders to be fetched
* @return List containing Order objects of the
* specified Customer
*/
public List getOrdersOfCustomer(Customer customer);
public List<Order>
getOrdersOfCustomer(Customer customer);
public List<OrderSummary>
getOrdersOfCustomer(Customer customer);
Self Documenting Code
DRY Principle
List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);
int sumOfSquaresOfEvenNumbers = 0;
for (Integer number : numbers) {
if(number % 2 == 0) {
sumOfSquaresOfEvenNumbers += number * number;
}
}
System.out.println(sumOfSquaresOfEvenNumbers);
List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);
int sumOfSquaresOfEvenNumbers = 0;
for (Integer number : numbers) {
if(number % 2 == 0) {
sumOfSquaresOfEvenNumbers += number * number;
}
}
System.out.println(sumOfSquaresOfEvenNumbers);
Predicate<Integer> isEven = (number) -> number % 2 == 0;
Function<Integer, Integer> square = (number) -> number *
number;
List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);
Integer sum = numbers.stream()
.filter(isEven)
.map(square)
.collect(Collectors.
summingInt(Integer::intValue));
System.out.println(sum);
Java 8
Declarative Code
Smaller Units
Improved Readability
Easy to Modify
Are you confident enough to
refactor?
Tests give courage
Predicate<Integer> isEven = (number) -> number % 2 == 0;
Function<Integer, Integer> square = (number) ->
number * number;
List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);
Integer result = numbers.stream()
.filter(isEven)
.map(square)
.findFirst().orElse(-1);
System.out.println(result);
Java 8
Predicate<Integer> isEven = (number) -> number % 2 == 0;
Function<Integer, Integer> square = (number) ->
number * number;
List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);
Integer result = numbers.stream()
.filter(isEven)
.map(square)
.findFirst().orElse(-1);
System.out.println(result);
List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);
int suqareOfFirstEvenNumber = -1;
for (Integer number : numbers) {
if(number % 2 == 0) {
suqareOfFirstEvenNumber += number * number;
break;
}
}
System.out.println(suqareOfFirstEvenNumber);
Java 8
What you see is not what
you get
Lazy Evaluation
Understand one level
below the abstraction
you deal with
Food pizza = new Pizza();
Person friend = new Person("Ravi");
friend.getMouth().setFood(pizza);
Food pizza = new Pizza();
Person friend = new Person("Ravi");
friend.getMouth().setFood(pizza);
Person friend = new Person("Ravi");
Edible food = new Pizza();
friend.offer(food);
Encapsulation
public static String readTemplate(String path) {
Path templatePath = Paths.get(path);
BufferedReader bufferedReader =
Files.newBufferedReader(templatePath);
// read from bufferedReader
return "";
}
public static String readTemplate(String path) {
Path templatePath = Paths.get(path);
try {
BufferedReader bufferedReader =
Files.newBufferedReader(templatePath);
} catch (IOException e) {
e.printStackTrace();
}
// read from bufferedReader
return "";
}
Use checked exceptions
Judiciously
Evolving with Java - How to remain Relevant and Effective
Evolving with Java - How to remain Relevant and Effective
Most people talk about Java the language, and this
may sound odd coming from me, but I could hardly
care less. At the core of the Java ecosystem is the
JVM.
- James Gosling,
Creator of the Java Programming Language(2011, TheServerSide)
http://zeroturnaround.com/rebellabs/the-adventurous-developers-guide-to-jvm-languages-java-scala-groovy-
fantom-clojure-ceylon-kotlin-xtend/
Evolving with Java - How to remain Relevant and Effective
https://www.tiobe.com/tiobe-index/
https://www.jetbrains.com/research/devecosystem-2018/
https://www.jetbrains.com/research/devecosystem-2018/
Evolving with Java - How to remain Relevant and Effective
Evolving with Java - How to remain Relevant and Effective
Evolving with Java - How to remain Relevant and Effective
Evolving with Java - How to remain Relevant and Effective
package com.nareshak.demo
data class Person(val firstName: String, val
lastName: String)
package com.nareshak.demo;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Person {
private String firstName;
private String lastName;
}
package com.nareshak.demo;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Person {
private String firstName;
private String lastName;
}
package com.nareshak.demo;
import lombok.Data;
@Data
public class Person {
private String firstName;
private String lastName;
}
Overcoming the paradigm
inertia
Move beyond Syntax
Feel the pain and act upon it
I have not experienced the
pain, yet.
Evolving with Java - How to remain Relevant and Effective
JPMS - Java Modules
Automatic Resource
Management
Evolving with Java - How to remain Relevant and Effective
Thank You
1 of 93

Recommended

Java 8 - Nuts and Bold - SFEIR Benelux by
Java 8 - Nuts and Bold - SFEIR BeneluxJava 8 - Nuts and Bold - SFEIR Benelux
Java 8 - Nuts and Bold - SFEIR Beneluxyohanbeschi
617 views126 slides
Java practice programs for beginners by
Java practice programs for beginnersJava practice programs for beginners
Java practice programs for beginnersishan0019
958 views29 slides
Is java8 a true functional programming language by
Is java8 a true functional programming languageIs java8 a true functional programming language
Is java8 a true functional programming languageSQLI
911 views28 slides
Is java8a truefunctionallanguage by
Is java8a truefunctionallanguageIs java8a truefunctionallanguage
Is java8a truefunctionallanguageSamir Chekkal
710 views28 slides
What is new in Java 8 by
What is new in Java 8What is new in Java 8
What is new in Java 8Sandeep Kr. Singh
315 views23 slides
Indexing and Query Optimizer (Aaron Staple) by
Indexing and Query Optimizer (Aaron Staple)Indexing and Query Optimizer (Aaron Staple)
Indexing and Query Optimizer (Aaron Staple)MongoSF
3.7K views40 slides

More Related Content

What's hot

The Ring programming language version 1.5.1 book - Part 75 of 180 by
The Ring programming language version 1.5.1 book - Part 75 of 180The Ring programming language version 1.5.1 book - Part 75 of 180
The Ring programming language version 1.5.1 book - Part 75 of 180Mahmoud Samir Fayed
13 views10 slides
Java Generics by
Java GenericsJava Generics
Java GenericsZülfikar Karakaya
3.1K views23 slides
DCN Practical by
DCN PracticalDCN Practical
DCN PracticalNiraj Bharambe
522 views18 slides
Core java pract_sem iii by
Core java pract_sem iiiCore java pract_sem iii
Core java pract_sem iiiNiraj Bharambe
859 views24 slides
Java Generics for Dummies by
Java Generics for DummiesJava Generics for Dummies
Java Generics for Dummiesknutmork
2.9K views38 slides
Optimizing queries MySQL by
Optimizing queries MySQLOptimizing queries MySQL
Optimizing queries MySQLGeorgi Sotirov
820 views51 slides

What's hot(20)

The Ring programming language version 1.5.1 book - Part 75 of 180 by Mahmoud Samir Fayed
The Ring programming language version 1.5.1 book - Part 75 of 180The Ring programming language version 1.5.1 book - Part 75 of 180
The Ring programming language version 1.5.1 book - Part 75 of 180
Java Generics for Dummies by knutmork
Java Generics for DummiesJava Generics for Dummies
Java Generics for Dummies
knutmork2.9K views
The Ring programming language version 1.8 book - Part 37 of 202 by Mahmoud Samir Fayed
The Ring programming language version 1.8 book - Part 37 of 202The Ring programming language version 1.8 book - Part 37 of 202
The Ring programming language version 1.8 book - Part 37 of 202
Extracting Executable Transformations from Distilled Code Changes by stevensreinout
Extracting Executable Transformations from Distilled Code ChangesExtracting Executable Transformations from Distilled Code Changes
Extracting Executable Transformations from Distilled Code Changes
stevensreinout436 views
Simple API for XML by guest2556de
Simple API for XMLSimple API for XML
Simple API for XML
guest2556de1.7K views
The Ring programming language version 1.3 book - Part 23 of 88 by Mahmoud Samir Fayed
The Ring programming language version 1.3 book - Part 23 of 88The Ring programming language version 1.3 book - Part 23 of 88
The Ring programming language version 1.3 book - Part 23 of 88
The Ring programming language version 1.6 book - Part 11 of 189 by Mahmoud Samir Fayed
The Ring programming language version 1.6 book - Part 11 of 189The Ring programming language version 1.6 book - Part 11 of 189
The Ring programming language version 1.6 book - Part 11 of 189
Grammatical Optimization by adil raja
Grammatical OptimizationGrammatical Optimization
Grammatical Optimization
adil raja379 views
Works Applications Test - Chinmay Chauhan by Chinmay Chauhan
Works Applications Test - Chinmay ChauhanWorks Applications Test - Chinmay Chauhan
Works Applications Test - Chinmay Chauhan
Chinmay Chauhan1.2K views
The Ring programming language version 1.5.1 book - Part 30 of 180 by Mahmoud Samir Fayed
The Ring programming language version 1.5.1 book - Part 30 of 180The Ring programming language version 1.5.1 book - Part 30 of 180
The Ring programming language version 1.5.1 book - Part 30 of 180
SeaJUG March 2004 - Groovy by Ted Leung
SeaJUG March 2004 - GroovySeaJUG March 2004 - Groovy
SeaJUG March 2004 - Groovy
Ted Leung591 views
Final JAVA Practical of BCA SEM-5. by Nishan Barot
Final JAVA Practical of BCA SEM-5.Final JAVA Practical of BCA SEM-5.
Final JAVA Practical of BCA SEM-5.
Nishan Barot8.5K views
The Ring programming language version 1.5.4 book - Part 32 of 185 by Mahmoud Samir Fayed
The Ring programming language version 1.5.4 book - Part 32 of 185The Ring programming language version 1.5.4 book - Part 32 of 185
The Ring programming language version 1.5.4 book - Part 32 of 185
ESNext for humans - LvivJS 16 August 2014 by Jan Jongboom
ESNext for humans - LvivJS 16 August 2014ESNext for humans - LvivJS 16 August 2014
ESNext for humans - LvivJS 16 August 2014
Jan Jongboom3.6K views

Similar to Evolving with Java - How to remain Relevant and Effective

Evolving with Java - How to Remain Effective by
Evolving with Java - How to Remain EffectiveEvolving with Java - How to Remain Effective
Evolving with Java - How to Remain EffectiveNaresha K
243 views74 slides
Mixing functional and object oriented approaches to programming in C# by
Mixing functional and object oriented approaches to programming in C#Mixing functional and object oriented approaches to programming in C#
Mixing functional and object oriented approaches to programming in C#Mark Needham
940 views127 slides
Mixing Functional and Object Oriented Approaches to Programming in C# by
Mixing Functional and Object Oriented Approaches to Programming in C#Mixing Functional and Object Oriented Approaches to Programming in C#
Mixing Functional and Object Oriented Approaches to Programming in C#Skills Matter
702 views127 slides
Working effectively with legacy code by
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy codeShriKant Vashishtha
3.6K views27 slides
Java 8 revealed by
Java 8 revealedJava 8 revealed
Java 8 revealedSazzadur Rahaman
203 views52 slides
Functional Programming by
Functional ProgrammingFunctional Programming
Functional ProgrammingOlexandra Dmytrenko
121 views27 slides

Similar to Evolving with Java - How to remain Relevant and Effective(20)

Evolving with Java - How to Remain Effective by Naresha K
Evolving with Java - How to Remain EffectiveEvolving with Java - How to Remain Effective
Evolving with Java - How to Remain Effective
Naresha K243 views
Mixing functional and object oriented approaches to programming in C# by Mark Needham
Mixing functional and object oriented approaches to programming in C#Mixing functional and object oriented approaches to programming in C#
Mixing functional and object oriented approaches to programming in C#
Mark Needham940 views
Mixing Functional and Object Oriented Approaches to Programming in C# by Skills Matter
Mixing Functional and Object Oriented Approaches to Programming in C#Mixing Functional and Object Oriented Approaches to Programming in C#
Mixing Functional and Object Oriented Approaches to Programming in C#
Skills Matter702 views
Problem 1 Show the comparison of runtime of linear search and binar.pdf by ebrahimbadushata00
Problem 1 Show the comparison of runtime of linear search and binar.pdfProblem 1 Show the comparison of runtime of linear search and binar.pdf
Problem 1 Show the comparison of runtime of linear search and binar.pdf
Can you fix my code for this question The first project involves be.pdf by andreaplotner1
Can you fix my code for this question The first project involves be.pdfCan you fix my code for this question The first project involves be.pdf
Can you fix my code for this question The first project involves be.pdf
andreaplotner12 views
RxJava applied [JavaDay Kyiv 2016] by Igor Lozynskyi
RxJava applied [JavaDay Kyiv 2016]RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]
Igor Lozynskyi514 views
Tech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn Tới by Nexus FrontierTech
Tech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn TớiTech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn Tới
Tech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn Tới
Nexus FrontierTech383 views
Beyond Java: 자바 8을 중심으로 본 자바의 혁신 by Sungchul Park
Beyond Java: 자바 8을 중심으로 본 자바의 혁신Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Sungchul Park10.3K views
PHP and MySQL Tips and tricks, DC 2007 by Damien Seguy
PHP and MySQL Tips and tricks, DC 2007PHP and MySQL Tips and tricks, DC 2007
PHP and MySQL Tips and tricks, DC 2007
Damien Seguy2.1K views
関数潮流(Function Tendency) by riue
関数潮流(Function Tendency)関数潮流(Function Tendency)
関数潮流(Function Tendency)
riue409 views
JDI 2.0. Not only UI testing by COMAQA.BY
JDI 2.0. Not only UI testingJDI 2.0. Not only UI testing
JDI 2.0. Not only UI testing
COMAQA.BY 160 views

More from Naresha K

The Groovy Way of Testing with Spock by
The Groovy Way of Testing with SpockThe Groovy Way of Testing with Spock
The Groovy Way of Testing with SpockNaresha K
240 views40 slides
Take Control of your Integration Testing with TestContainers by
Take Control of your Integration Testing with TestContainersTake Control of your Integration Testing with TestContainers
Take Control of your Integration Testing with TestContainersNaresha K
268 views50 slides
Implementing Resilience with Micronaut by
Implementing Resilience with MicronautImplementing Resilience with Micronaut
Implementing Resilience with MicronautNaresha K
343 views20 slides
Take Control of your Integration Testing with TestContainers by
Take Control of your Integration Testing with TestContainersTake Control of your Integration Testing with TestContainers
Take Control of your Integration Testing with TestContainersNaresha K
281 views21 slides
Favouring Composition - The Groovy Way by
Favouring Composition - The Groovy WayFavouring Composition - The Groovy Way
Favouring Composition - The Groovy WayNaresha K
229 views48 slides
Effective Java with Groovy - How Language Influences Adoption of Good Practices by
Effective Java with Groovy - How Language Influences Adoption of Good PracticesEffective Java with Groovy - How Language Influences Adoption of Good Practices
Effective Java with Groovy - How Language Influences Adoption of Good PracticesNaresha K
294 views75 slides

More from Naresha K(20)

The Groovy Way of Testing with Spock by Naresha K
The Groovy Way of Testing with SpockThe Groovy Way of Testing with Spock
The Groovy Way of Testing with Spock
Naresha K240 views
Take Control of your Integration Testing with TestContainers by Naresha K
Take Control of your Integration Testing with TestContainersTake Control of your Integration Testing with TestContainers
Take Control of your Integration Testing with TestContainers
Naresha K268 views
Implementing Resilience with Micronaut by Naresha K
Implementing Resilience with MicronautImplementing Resilience with Micronaut
Implementing Resilience with Micronaut
Naresha K343 views
Take Control of your Integration Testing with TestContainers by Naresha K
Take Control of your Integration Testing with TestContainersTake Control of your Integration Testing with TestContainers
Take Control of your Integration Testing with TestContainers
Naresha K281 views
Favouring Composition - The Groovy Way by Naresha K
Favouring Composition - The Groovy WayFavouring Composition - The Groovy Way
Favouring Composition - The Groovy Way
Naresha K229 views
Effective Java with Groovy - How Language Influences Adoption of Good Practices by Naresha K
Effective Java with Groovy - How Language Influences Adoption of Good PracticesEffective Java with Groovy - How Language Influences Adoption of Good Practices
Effective Java with Groovy - How Language Influences Adoption of Good Practices
Naresha K294 views
What's in Groovy for Functional Programming by Naresha K
What's in Groovy for Functional ProgrammingWhat's in Groovy for Functional Programming
What's in Groovy for Functional Programming
Naresha K275 views
Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo... by Naresha K
Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo...Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo...
Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo...
Naresha K208 views
Effective Java with Groovy & Kotlin How Languages Influence Adoption of Good ... by Naresha K
Effective Java with Groovy & Kotlin How Languages Influence Adoption of Good ...Effective Java with Groovy & Kotlin How Languages Influence Adoption of Good ...
Effective Java with Groovy & Kotlin How Languages Influence Adoption of Good ...
Naresha K162 views
Eclipse Collections, Java Streams & Vavr - What's in them for Functional Pro... by Naresha K
Eclipse Collections, Java Streams & Vavr - What's in them for  Functional Pro...Eclipse Collections, Java Streams & Vavr - What's in them for  Functional Pro...
Eclipse Collections, Java Streams & Vavr - What's in them for Functional Pro...
Naresha K499 views
Implementing Cloud-Native Architectural Patterns with Micronaut by Naresha K
Implementing Cloud-Native Architectural Patterns with MicronautImplementing Cloud-Native Architectural Patterns with Micronaut
Implementing Cloud-Native Architectural Patterns with Micronaut
Naresha K402 views
Groovy - Why and Where? by Naresha K
Groovy  - Why and Where?Groovy  - Why and Where?
Groovy - Why and Where?
Naresha K79 views
Leveraging Micronaut on AWS Lambda by Naresha K
Leveraging Micronaut on AWS LambdaLeveraging Micronaut on AWS Lambda
Leveraging Micronaut on AWS Lambda
Naresha K310 views
Groovy Refactoring Patterns by Naresha K
Groovy Refactoring PatternsGroovy Refactoring Patterns
Groovy Refactoring Patterns
Naresha K514 views
Implementing Cloud-native Architectural Patterns with Micronaut by Naresha K
Implementing Cloud-native Architectural Patterns with MicronautImplementing Cloud-native Architectural Patterns with Micronaut
Implementing Cloud-native Architectural Patterns with Micronaut
Naresha K667 views
Effective Java with Groovy by Naresha K
Effective Java with GroovyEffective Java with Groovy
Effective Java with Groovy
Naresha K501 views
Effective Java with Groovy - How Language can Influence Good Practices by Naresha K
Effective Java with Groovy - How Language can Influence Good PracticesEffective Java with Groovy - How Language can Influence Good Practices
Effective Java with Groovy - How Language can Influence Good Practices
Naresha K311 views
Beyond Lambdas & Streams - Functional Fluency in Java by Naresha K
Beyond Lambdas & Streams - Functional Fluency in JavaBeyond Lambdas & Streams - Functional Fluency in Java
Beyond Lambdas & Streams - Functional Fluency in Java
Naresha K186 views
GORM - The polyglot data access toolkit by Naresha K
GORM - The polyglot data access toolkitGORM - The polyglot data access toolkit
GORM - The polyglot data access toolkit
Naresha K523 views
Rethinking HTTP Apps using Ratpack by Naresha K
Rethinking HTTP Apps using RatpackRethinking HTTP Apps using Ratpack
Rethinking HTTP Apps using Ratpack
Naresha K433 views

Recently uploaded

360 graden fabriek by
360 graden fabriek360 graden fabriek
360 graden fabriekinfo33492
37 views25 slides
Navigating container technology for enhanced security by Niklas Saari by
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariMetosin Oy
13 views34 slides
Tridens DevOps by
Tridens DevOpsTridens DevOps
Tridens DevOpsTridens
9 views28 slides
A first look at MariaDB 11.x features and ideas on how to use them by
A first look at MariaDB 11.x features and ideas on how to use themA first look at MariaDB 11.x features and ideas on how to use them
A first look at MariaDB 11.x features and ideas on how to use themFederico Razzoli
45 views36 slides
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the... by
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...Deltares
6 views22 slides
AI and Ml presentation .pptx by
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptxFayazAli87
11 views15 slides

Recently uploaded(20)

360 graden fabriek by info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info3349237 views
Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy13 views
Tridens DevOps by Tridens
Tridens DevOpsTridens DevOps
Tridens DevOps
Tridens9 views
A first look at MariaDB 11.x features and ideas on how to use them by Federico Razzoli
A first look at MariaDB 11.x features and ideas on how to use themA first look at MariaDB 11.x features and ideas on how to use them
A first look at MariaDB 11.x features and ideas on how to use them
Federico Razzoli45 views
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the... by Deltares
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
Deltares6 views
AI and Ml presentation .pptx by FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8711 views
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols by Deltares
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - DolsDSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
Deltares7 views
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko... by Deltares
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
Deltares14 views
Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Fleet Management Software in India by Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable11 views
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... by Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri795 views
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h... by Deltares
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...
Deltares5 views
Headless JS UG Presentation.pptx by Jack Spektor
Headless JS UG Presentation.pptxHeadless JS UG Presentation.pptx
Headless JS UG Presentation.pptx
Jack Spektor7 views
Dapr Unleashed: Accelerating Microservice Development by Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski10 views
Copilot Prompting Toolkit_All Resources.pdf by Riccardo Zamana
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana8 views

Evolving with Java - How to remain Relevant and Effective