SlideShare a Scribd company logo
Andreas Roth
§ Dresden, Germany
§ Development Lead @ esveo
§ We help developers to accelerate their
TypeScript projects
Andreas Roth
@andrewgreenh
andreas.roth@esveo.com
@andrewgreenh
@andrewgreenh
Code, der anderen Code im gleichen
System inspizieren und auch u.U.
auch modifizieren kann.
import java.lang.reflect.Field;
class Person {
int age;
String name;
}
class Main {
public static void main(String args[]) {
Field[] allFields = Person.class.getDeclaredFields();
for (Field field : allFields) {
System.out.println(
field.getName() +
" " +
field.getType()
);
}
}
}
@andrewgreenh
import java.lang.reflect.Field;
class Person {
int age;
String name;
}
class Main {
public static void main(String args[]) {
Field[] allFields = Person.class.getDeclaredFields();
for (Field field : allFields) {
System.out.println(
field.getName() +
" " +
field.getType()
);
}
}
}
@andrewgreenh
import java.lang.reflect.Field;
class Person {
int age;
String name;
}
class Main {
public static void main(String args[]) {
Field[] allFields = Person.class.getDeclaredFields();
for (Field field : allFields) {
System.out.println(
field.getName() +
" " +
field.getType()
);
}
}
}
@andrewgreenh
import java.lang.reflect.Field;
class Person {
int age;
String name;
}
class Main {
public static void main(String args[]) {
Field[] allFields = Person.class.getDeclaredFields();
for (Field field : allFields) {
System.out.println(
field.getName() +
" " +
field.getType()
);
}
}
}
@andrewgreenh
import java.lang.reflect.Field;
class Person {
int age;
String name;
}
class Main {
public static void main(String args[]) {
Field[] allFields = Person.class.getDeclaredFields();
for (Field field : allFields) {
System.out.println(
field.getName() +
" " +
field.getType()
);
}
}
}
@andrewgreenh
@andrewgreenh
@andrewgreenh
class User {
@maxLength(10)
name?: string;
age?: number;
}
@RestController
class UserController {
constructor(private userRepository: UserRepository) {}
@request.POST('/user’)
createUser(body: User) {
this.userRepository.create(body);
}
}
@andrewgreenh
class User {
@maxLength(10)
name?: string;
age?: number;
}
@RestController
class UserController {
constructor(private userRepository: UserRepository) {}
@request.POST('/user’)
createUser(body: User) {
this.userRepository.create(body);
}
}
@andrewgreenh
class User {
@maxLength(10)
name?: string;
age?: number;
}
@RestController
class UserController {
constructor(private userRepository: UserRepository) {}
@request.POST('/user’)
createUser(body: User) {
this.userRepository.create(body);
}
}
@andrewgreenh
class User {
@maxLength(10)
name?: string;
age?: number;
}
@RestController
class UserController {
constructor(private userRepository: UserRepository) {}
@request.POST('/user’)
createUser(body: User) {
this.userRepository.create(body);
}
}
@andrewgreenh
class User {
@maxLength(10)
name?: string;
age?: number;
}
@RestController
class UserController {
constructor(private userRepository: UserRepository) {}
@request.POST('/user’)
createUser(body: User) {
this.userRepository.create(body);
}
}
@andrewgreenh
class User {
@maxLength(10)
name?: string;
age?: number;
}
@RestController
class UserController {
constructor(private userRepository: UserRepository) {}
@request.POST('/user’)
createUser(body: User) {
this.userRepository.create(body);
}
}
@andrewgreenh
class User {
@maxLength(10)
name?: string;
age?: number;
}
@RestController
class UserController {
constructor(private userRepository: UserRepository) {}
@request.POST('/user’)
createUser(body: User) {
this.userRepository.create(body);
}
}
@andrewgreenh
class User {
@maxLength(10)
name?: string;
age?: number;
}
@RestController
class UserController {
constructor(private userRepository: UserRepository) {}
@request.POST('/user’)
createUser(body: User) {
this.userRepository.create(body);
}
}
@andrewgreenh
@andrewgreenh
class Person {
age?: number;
name?: string;
greet(other: Person) {
console.log(`Hello ${other.name}`);
}
}
@andrewgreenh
class Person {
age?: number;
name?: string;
greet(other: Person) {
console.log(`Hello ${other.name}`);
}
}
"use strict";
class Person {
age;
name;
greet(other) {
console.log(`Hello ${other.name}`);
}
}
@andrewgreenh
@andrewgreenh
@andrewgreenh
@andrewgreenh
@andrewgreenh
@andrewgreenh
@andrewgreenh
import zod, { number, object, string } from "zod";
const Person = object({
name: string().min(5),
age: number().int().max(150),
});
type Person = zod.infer<typeof Person>;
function handleRequest(input: unknown) {
const person = Person.parse(input);
console.log(person.age);
}
@andrewgreenh
import zod, { number, object, string } from "zod";
const Person = object({
name: string().min(5),
age: number().int().max(150),
});
type Person = zod.infer<typeof Person>;
function handleRequest(input: unknown) {
const person = Person.parse(input);
console.log(person.age);
}
@andrewgreenh
@andrewgreenh
@andrewgreenh
@andrewgreenh
@andrewgreenh
@andrewgreenh
1. Versuch einen Laufzeitwert als Quelle der Wahrheit zu nehmen
2. Hoffe, dass dein Anwendungsfall so generell ist, dass es Bibliotheken oder Generatoren gibt
3. Versuche Deepkit mit dem Wissen, dass du vom Standard abweichst
4. Finde einen anderen Ansatz J

More Related Content

Similar to Dev Day Andreas Roth.pdf

Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...
Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...
Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...
Codemotion
 
Retour sur la Microsoft //Build 2018
Retour sur la Microsoft //Build 2018Retour sur la Microsoft //Build 2018
Retour sur la Microsoft //Build 2018
Timothé Larivière
 
Lombokの紹介
Lombokの紹介Lombokの紹介
Lombokの紹介
onozaty
 
Embedded Typesafe Domain Specific Languages for Java
Embedded Typesafe Domain Specific Languages for JavaEmbedded Typesafe Domain Specific Languages for Java
Embedded Typesafe Domain Specific Languages for Java
Jevgeni Kabanov
 
Simple class and object examples in java
Simple class and object examples in javaSimple class and object examples in java
Simple class and object examples in java
Harish Gyanani
 
CodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical GroovyCodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical Groovy
Codecamp Romania
 
Cutting through the fog of microservices: lightsabers optional
Cutting through the fog of microservices: lightsabers optionalCutting through the fog of microservices: lightsabers optional
Cutting through the fog of microservices: lightsabers optional
Graham Charters
 
NoSQL Endgame Percona Live Online 2020
NoSQL Endgame Percona Live Online 2020NoSQL Endgame Percona Live Online 2020
NoSQL Endgame Percona Live Online 2020
Thodoris Bais
 
Object Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ ExamsObject Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ Exams
MuhammadTalha436
 
14. Defining Classes
14. Defining Classes14. Defining Classes
14. Defining Classes
Intro C# Book
 
Generic Types in Java (for ArtClub @ArtBrains Software)
Generic Types in Java (for ArtClub @ArtBrains Software)Generic Types in Java (for ArtClub @ArtBrains Software)
Generic Types in Java (for ArtClub @ArtBrains Software)
Andrew Petryk
 
Android Architecture Components - Guy Bar on, Vonage
Android Architecture Components - Guy Bar on, VonageAndroid Architecture Components - Guy Bar on, Vonage
Android Architecture Components - Guy Bar on, Vonage
DroidConTLV
 
Typescript - why it's awesome
Typescript - why it's awesomeTypescript - why it's awesome
Typescript - why it's awesome
Piotr Miazga
 
Clean code _v2003
 Clean code _v2003 Clean code _v2003
Clean code _v2003
R696
 
TechTalk - Dotnet
TechTalk - DotnetTechTalk - Dotnet
TechTalk - Dotnet
heinrich.wendel
 
Green dao 3.0
Green dao 3.0Green dao 3.0
Green dao 3.0
彥彬 洪
 
Writing good code
Writing good codeWriting good code
Writing good code
Ishti Gupta
 
Aprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJSAprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJS
Loiane Groner
 
Codemotion appengine
Codemotion appengineCodemotion appengine
Codemotion appengine
Ignacio Coloma
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
Hans Höchtl
 

Similar to Dev Day Andreas Roth.pdf (20)

Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...
Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...
Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...
 
Retour sur la Microsoft //Build 2018
Retour sur la Microsoft //Build 2018Retour sur la Microsoft //Build 2018
Retour sur la Microsoft //Build 2018
 
Lombokの紹介
Lombokの紹介Lombokの紹介
Lombokの紹介
 
Embedded Typesafe Domain Specific Languages for Java
Embedded Typesafe Domain Specific Languages for JavaEmbedded Typesafe Domain Specific Languages for Java
Embedded Typesafe Domain Specific Languages for Java
 
Simple class and object examples in java
Simple class and object examples in javaSimple class and object examples in java
Simple class and object examples in java
 
CodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical GroovyCodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical Groovy
 
Cutting through the fog of microservices: lightsabers optional
Cutting through the fog of microservices: lightsabers optionalCutting through the fog of microservices: lightsabers optional
Cutting through the fog of microservices: lightsabers optional
 
NoSQL Endgame Percona Live Online 2020
NoSQL Endgame Percona Live Online 2020NoSQL Endgame Percona Live Online 2020
NoSQL Endgame Percona Live Online 2020
 
Object Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ ExamsObject Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ Exams
 
14. Defining Classes
14. Defining Classes14. Defining Classes
14. Defining Classes
 
Generic Types in Java (for ArtClub @ArtBrains Software)
Generic Types in Java (for ArtClub @ArtBrains Software)Generic Types in Java (for ArtClub @ArtBrains Software)
Generic Types in Java (for ArtClub @ArtBrains Software)
 
Android Architecture Components - Guy Bar on, Vonage
Android Architecture Components - Guy Bar on, VonageAndroid Architecture Components - Guy Bar on, Vonage
Android Architecture Components - Guy Bar on, Vonage
 
Typescript - why it's awesome
Typescript - why it's awesomeTypescript - why it's awesome
Typescript - why it's awesome
 
Clean code _v2003
 Clean code _v2003 Clean code _v2003
Clean code _v2003
 
TechTalk - Dotnet
TechTalk - DotnetTechTalk - Dotnet
TechTalk - Dotnet
 
Green dao 3.0
Green dao 3.0Green dao 3.0
Green dao 3.0
 
Writing good code
Writing good codeWriting good code
Writing good code
 
Aprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJSAprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJS
 
Codemotion appengine
Codemotion appengineCodemotion appengine
Codemotion appengine
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
 

More from CarolinaMatthies

Dev-Day-Keynote-Folien Leena Simon.pdf
Dev-Day-Keynote-Folien Leena Simon.pdfDev-Day-Keynote-Folien Leena Simon.pdf
Dev-Day-Keynote-Folien Leena Simon.pdf
CarolinaMatthies
 
Dev Day Philipp Krenn.pdf
Dev Day Philipp Krenn.pdfDev Day Philipp Krenn.pdf
Dev Day Philipp Krenn.pdf
CarolinaMatthies
 
Dev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdfDev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdf
CarolinaMatthies
 
DevDay_Mirko Seifert.pdf
DevDay_Mirko Seifert.pdfDevDay_Mirko Seifert.pdf
DevDay_Mirko Seifert.pdf
CarolinaMatthies
 
DevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdfDevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdf
CarolinaMatthies
 
Dev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdfDev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdf
CarolinaMatthies
 
Vom Umgang mit Fehlern
Vom Umgang mit FehlernVom Umgang mit Fehlern
Vom Umgang mit Fehlern
CarolinaMatthies
 
Dev Day Maksim Gudow.pdf
Dev Day Maksim Gudow.pdfDev Day Maksim Gudow.pdf
Dev Day Maksim Gudow.pdf
CarolinaMatthies
 
Dev Day Jiří Kraml.pdf
Dev Day Jiří Kraml.pdfDev Day Jiří Kraml.pdf
Dev Day Jiří Kraml.pdf
CarolinaMatthies
 

More from CarolinaMatthies (9)

Dev-Day-Keynote-Folien Leena Simon.pdf
Dev-Day-Keynote-Folien Leena Simon.pdfDev-Day-Keynote-Folien Leena Simon.pdf
Dev-Day-Keynote-Folien Leena Simon.pdf
 
Dev Day Philipp Krenn.pdf
Dev Day Philipp Krenn.pdfDev Day Philipp Krenn.pdf
Dev Day Philipp Krenn.pdf
 
Dev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdfDev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdf
 
DevDay_Mirko Seifert.pdf
DevDay_Mirko Seifert.pdfDevDay_Mirko Seifert.pdf
DevDay_Mirko Seifert.pdf
 
DevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdfDevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdf
 
Dev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdfDev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdf
 
Vom Umgang mit Fehlern
Vom Umgang mit FehlernVom Umgang mit Fehlern
Vom Umgang mit Fehlern
 
Dev Day Maksim Gudow.pdf
Dev Day Maksim Gudow.pdfDev Day Maksim Gudow.pdf
Dev Day Maksim Gudow.pdf
 
Dev Day Jiří Kraml.pdf
Dev Day Jiří Kraml.pdfDev Day Jiří Kraml.pdf
Dev Day Jiří Kraml.pdf
 

Recently uploaded

Proposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP IncProposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP Inc
Raheem Muhammad
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
SASi-SPi Science Policy Lab Pre-engagement
SASi-SPi Science Policy Lab Pre-engagementSASi-SPi Science Policy Lab Pre-engagement
SASi-SPi Science Policy Lab Pre-engagement
Francois Stepman
 
2023 Ukraine Crisis Media Center Financial Report
2023 Ukraine Crisis Media Center Financial Report2023 Ukraine Crisis Media Center Financial Report
2023 Ukraine Crisis Media Center Financial Report
UkraineCrisisMediaCenter
 
Data Processing in PHP - PHPers 2024 Poznań
Data Processing in PHP - PHPers 2024 PoznańData Processing in PHP - PHPers 2024 Poznań
Data Processing in PHP - PHPers 2024 Poznań
Norbert Orzechowicz
 
2023 Ukraine Crisis Media Center Annual Report
2023 Ukraine Crisis Media Center Annual Report2023 Ukraine Crisis Media Center Annual Report
2023 Ukraine Crisis Media Center Annual Report
UkraineCrisisMediaCenter
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
Legislation And Regulations For Import, Manufacture,.pptx
Legislation And Regulations For Import, Manufacture,.pptxLegislation And Regulations For Import, Manufacture,.pptx
Legislation And Regulations For Import, Manufacture,.pptx
Charmi13
 
Using-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptxUsing-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptx
kainatfatyma9
 
Gamify it until you make it Improving Agile Development and Operations with ...
Gamify it until you make it  Improving Agile Development and Operations with ...Gamify it until you make it  Improving Agile Development and Operations with ...
Gamify it until you make it Improving Agile Development and Operations with ...
Ben Linders
 
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPEACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
Charmi13
 
AWS User Group Torino 2024 #3 - 18/06/2024
AWS User Group Torino 2024 #3 - 18/06/2024AWS User Group Torino 2024 #3 - 18/06/2024
AWS User Group Torino 2024 #3 - 18/06/2024
Guido Maria Nebiolo
 
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
kekzed
 
Prsentation for VIVA Welike project 1semester.pptx
Prsentation for VIVA Welike project 1semester.pptxPrsentation for VIVA Welike project 1semester.pptx
Prsentation for VIVA Welike project 1semester.pptx
prafulpawar29
 
IEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdfIEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdf
Claudio Gallicchio
 
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
SkillCertProExams
 
2 December UAE National Day - United Arab Emirates
2 December UAE National Day - United Arab Emirates2 December UAE National Day - United Arab Emirates
2 December UAE National Day - United Arab Emirates
UAE Ppt
 
Genesis chapter 3 Isaiah Scudder.pptx
Genesis    chapter 3 Isaiah Scudder.pptxGenesis    chapter 3 Isaiah Scudder.pptx
Genesis chapter 3 Isaiah Scudder.pptx
FamilyWorshipCenterD
 
2023 Ukraine Crisis Media Center Finance Balance
2023 Ukraine Crisis Media Center Finance Balance2023 Ukraine Crisis Media Center Finance Balance
2023 Ukraine Crisis Media Center Finance Balance
UkraineCrisisMediaCenter
 
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
OECD Directorate for Financial and Enterprise Affairs
 

Recently uploaded (20)

Proposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP IncProposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP Inc
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
 
SASi-SPi Science Policy Lab Pre-engagement
SASi-SPi Science Policy Lab Pre-engagementSASi-SPi Science Policy Lab Pre-engagement
SASi-SPi Science Policy Lab Pre-engagement
 
2023 Ukraine Crisis Media Center Financial Report
2023 Ukraine Crisis Media Center Financial Report2023 Ukraine Crisis Media Center Financial Report
2023 Ukraine Crisis Media Center Financial Report
 
Data Processing in PHP - PHPers 2024 Poznań
Data Processing in PHP - PHPers 2024 PoznańData Processing in PHP - PHPers 2024 Poznań
Data Processing in PHP - PHPers 2024 Poznań
 
2023 Ukraine Crisis Media Center Annual Report
2023 Ukraine Crisis Media Center Annual Report2023 Ukraine Crisis Media Center Annual Report
2023 Ukraine Crisis Media Center Annual Report
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
 
Legislation And Regulations For Import, Manufacture,.pptx
Legislation And Regulations For Import, Manufacture,.pptxLegislation And Regulations For Import, Manufacture,.pptx
Legislation And Regulations For Import, Manufacture,.pptx
 
Using-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptxUsing-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptx
 
Gamify it until you make it Improving Agile Development and Operations with ...
Gamify it until you make it  Improving Agile Development and Operations with ...Gamify it until you make it  Improving Agile Development and Operations with ...
Gamify it until you make it Improving Agile Development and Operations with ...
 
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPEACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
 
AWS User Group Torino 2024 #3 - 18/06/2024
AWS User Group Torino 2024 #3 - 18/06/2024AWS User Group Torino 2024 #3 - 18/06/2024
AWS User Group Torino 2024 #3 - 18/06/2024
 
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
 
Prsentation for VIVA Welike project 1semester.pptx
Prsentation for VIVA Welike project 1semester.pptxPrsentation for VIVA Welike project 1semester.pptx
Prsentation for VIVA Welike project 1semester.pptx
 
IEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdfIEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdf
 
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
 
2 December UAE National Day - United Arab Emirates
2 December UAE National Day - United Arab Emirates2 December UAE National Day - United Arab Emirates
2 December UAE National Day - United Arab Emirates
 
Genesis chapter 3 Isaiah Scudder.pptx
Genesis    chapter 3 Isaiah Scudder.pptxGenesis    chapter 3 Isaiah Scudder.pptx
Genesis chapter 3 Isaiah Scudder.pptx
 
2023 Ukraine Crisis Media Center Finance Balance
2023 Ukraine Crisis Media Center Finance Balance2023 Ukraine Crisis Media Center Finance Balance
2023 Ukraine Crisis Media Center Finance Balance
 
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
 

Dev Day Andreas Roth.pdf

  • 2. § Dresden, Germany § Development Lead @ esveo § We help developers to accelerate their TypeScript projects Andreas Roth @andrewgreenh andreas.roth@esveo.com
  • 4. @andrewgreenh Code, der anderen Code im gleichen System inspizieren und auch u.U. auch modifizieren kann.
  • 5. import java.lang.reflect.Field; class Person { int age; String name; } class Main { public static void main(String args[]) { Field[] allFields = Person.class.getDeclaredFields(); for (Field field : allFields) { System.out.println( field.getName() + " " + field.getType() ); } } } @andrewgreenh
  • 6. import java.lang.reflect.Field; class Person { int age; String name; } class Main { public static void main(String args[]) { Field[] allFields = Person.class.getDeclaredFields(); for (Field field : allFields) { System.out.println( field.getName() + " " + field.getType() ); } } } @andrewgreenh
  • 7. import java.lang.reflect.Field; class Person { int age; String name; } class Main { public static void main(String args[]) { Field[] allFields = Person.class.getDeclaredFields(); for (Field field : allFields) { System.out.println( field.getName() + " " + field.getType() ); } } } @andrewgreenh
  • 8. import java.lang.reflect.Field; class Person { int age; String name; } class Main { public static void main(String args[]) { Field[] allFields = Person.class.getDeclaredFields(); for (Field field : allFields) { System.out.println( field.getName() + " " + field.getType() ); } } } @andrewgreenh
  • 9. import java.lang.reflect.Field; class Person { int age; String name; } class Main { public static void main(String args[]) { Field[] allFields = Person.class.getDeclaredFields(); for (Field field : allFields) { System.out.println( field.getName() + " " + field.getType() ); } } } @andrewgreenh
  • 11. @andrewgreenh class User { @maxLength(10) name?: string; age?: number; } @RestController class UserController { constructor(private userRepository: UserRepository) {} @request.POST('/user’) createUser(body: User) { this.userRepository.create(body); } }
  • 12. @andrewgreenh class User { @maxLength(10) name?: string; age?: number; } @RestController class UserController { constructor(private userRepository: UserRepository) {} @request.POST('/user’) createUser(body: User) { this.userRepository.create(body); } }
  • 13. @andrewgreenh class User { @maxLength(10) name?: string; age?: number; } @RestController class UserController { constructor(private userRepository: UserRepository) {} @request.POST('/user’) createUser(body: User) { this.userRepository.create(body); } }
  • 14. @andrewgreenh class User { @maxLength(10) name?: string; age?: number; } @RestController class UserController { constructor(private userRepository: UserRepository) {} @request.POST('/user’) createUser(body: User) { this.userRepository.create(body); } }
  • 15. @andrewgreenh class User { @maxLength(10) name?: string; age?: number; } @RestController class UserController { constructor(private userRepository: UserRepository) {} @request.POST('/user’) createUser(body: User) { this.userRepository.create(body); } }
  • 16. @andrewgreenh class User { @maxLength(10) name?: string; age?: number; } @RestController class UserController { constructor(private userRepository: UserRepository) {} @request.POST('/user’) createUser(body: User) { this.userRepository.create(body); } }
  • 17. @andrewgreenh class User { @maxLength(10) name?: string; age?: number; } @RestController class UserController { constructor(private userRepository: UserRepository) {} @request.POST('/user’) createUser(body: User) { this.userRepository.create(body); } }
  • 18. @andrewgreenh class User { @maxLength(10) name?: string; age?: number; } @RestController class UserController { constructor(private userRepository: UserRepository) {} @request.POST('/user’) createUser(body: User) { this.userRepository.create(body); } }
  • 20. @andrewgreenh class Person { age?: number; name?: string; greet(other: Person) { console.log(`Hello ${other.name}`); } }
  • 21. @andrewgreenh class Person { age?: number; name?: string; greet(other: Person) { console.log(`Hello ${other.name}`); } } "use strict"; class Person { age; name; greet(other) { console.log(`Hello ${other.name}`); } }
  • 28. @andrewgreenh import zod, { number, object, string } from "zod"; const Person = object({ name: string().min(5), age: number().int().max(150), }); type Person = zod.infer<typeof Person>; function handleRequest(input: unknown) { const person = Person.parse(input); console.log(person.age); }
  • 29. @andrewgreenh import zod, { number, object, string } from "zod"; const Person = object({ name: string().min(5), age: number().int().max(150), }); type Person = zod.infer<typeof Person>; function handleRequest(input: unknown) { const person = Person.parse(input); console.log(person.age); }
  • 35. @andrewgreenh 1. Versuch einen Laufzeitwert als Quelle der Wahrheit zu nehmen 2. Hoffe, dass dein Anwendungsfall so generell ist, dass es Bibliotheken oder Generatoren gibt 3. Versuche Deepkit mit dem Wissen, dass du vom Standard abweichst 4. Finde einen anderen Ansatz J