SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
testdrevet javautvikling
på objektorienterte
                           skinner

        Anders Sveen og Truls Jørgensen
                             JavaZoneX
Java er ikke morsomt eller sexy
Java7 er ikke morsomt eller sexy
hva du gjør   er viktigere
rask oppstart
           kjapp feedback
     mindre kompleksitet
lett å integrere med tester
lite påtrengende
  enkelt å utvide
enkelt å gå rundt
    open source
en følelse av å være

produktiv
enkelt å legge til nye

   features
endringsdyktig
objektorientert
               kode
isolasjon
ansvarsdeling
if (soknad.getStatus().equals(VENTER)) {
  soknad.setGodkjentDato(new Date());
  soknad.setStatus(GODKJENT);
}

                 VS
if (soknad.kanGodkjennes()) {
  soknad.godkjenn();
}
@Test
public skalTesteGodkjenning() {




}
@Test
public skalTesteGodkjenning() {
   PersonRepository personRepo =
       mock(PersonRepository.class);
   when(personRepo)
      .getPerson(any(Long))
      .returnValue(TestDataProvider
        .standardPerson().build());




}
@Test
public skalTesteGodkjenning() {
   PersonRepository personRepo =
       mock(PersonRepository.class);
   when(personRepo)
      .getPerson(any(Long))
      .returnValue(TestDataProvider
        .standardPerson().build());
   SoknadService service =
       new SoknadServiceImpl(personRepo);

    Soknad soknad = TestDataProvider
       .standardSoknad()
       .status(GODKJENT).build();


}
@Test
public skalTesteGodkjenning() {
   PersonRepository personRepo =
       mock(PersonRepository.class);
   when(personRepo)
      .getPerson(any(Long))
      .returnValue(TestDataProvider
        .standardPerson().build());
   SoknadService service =
       new SoknadServiceImpl(personRepo);

    Soknad soknad = TestDataProvider
       .standardSoknad()
       .status(GODKJENT).build();

    assertFalse(service.godkjennSoknad(soknad));
}
@Test
public void skalTesteGodkjenning() {
   Soknad soknad =
      TestDataProvider
        .standardSoknad()
        .godkjent().build();

    assertFalse(soknad.kanGodkjennes());
}
public class OrganizationNumber {

    @NotBlank
    @Digits(integer=9, fraction=0)
    @Min(value=100000000)
    @ValidOrganizationNumber
    private String value;
}



@Valid
private OrganizationNumber organizationNumber;
public class OrganizationNumber {

    @NotBlank
    @Digits(integer=9, fraction=0)
    @Min(value=100000000)
    @ValidOrganizationNumber
    private String value;
}


@Valid
@NotNull(groups=GodkjennSoknadContext.class)
private OrganizationNumber organizationNumber;
@RequestMapping(method =
RequestMethod.POST)
public String registerOrganization(
   @Valid @ModelAttribute
   Organization organization,
   Errors errors) {
   ...
}
trygghet
 til å gjøre endringer
lett
å skrive tester
Organization org =
  OrganizationTestDataProvider
    .defaultOrganization();
Organization org =
  OrganizationTestDataProvider
    .defaultOrganization()
      .name(”¤Invalid")
      .build();
Organization org =
  OrganizationTestDataProvider
    .defaultOrganization()
      .withoutEmployees()
      .build();
Organization org =
  OrganizationTestDataProvider
    .defaultOrganization ()
      .withoutEmployees()
      .build(entityManager);
@RequestMapping(method = RequestMethod.POST)
public String registerRequestInformation(
   @Valid @ModelAttribute
   InformationRequest informationRequest,
   Errors errors) {




}
@RequestMapping(method = RequestMethod.POST)
public String registerRequestInformation(
   @Valid @ModelAttribute
   InformationRequest informationRequest,
   Errors errors) {




    this.orgRepo
      .addInformationRequest(informationRequest);


}
@RequestMapping(method = RequestMethod.POST)
public String registerRequestInformation(
   @Valid @ModelAttribute
   InformationRequest informationRequest,
   Errors errors) {

    if (errors.hasErrors()) {
      return VIEW_INFORMATION_REQUEST_FORM;
    }

    this.orgRepo
      .addInformationRequest(informationRequest);


}
@RequestMapping(method = RequestMethod.POST)
public String registerRequestInformation(
   @Valid @ModelAttribute
   InformationRequest informationRequest,
   Errors errors) {

    if (errors.hasErrors()) {
      return VIEW_INFORMATION_REQUEST_FORM;
    }

    this.orgRepo
      .addInformationRequest(informationRequest);

    return redirectTo(URL_INFORMATION_REQUEST);
}
@RequestMapping(method = RequestMethod.GET,
   value = ”ir/{requestId}/received”)
public String registerRequestAsReceived(
   @PathVariable Long requestId ) {

    InformationRequest informationRequest =
    this.orgRepo
      .getInformationRequest( requestId );
    informationRequest.received();

    return redirectTo(
      url("/", URL_INFORMATION_REQUEST));
}
@RequestMapping(method = RequestMethod.GET,
   value = ”ir/{requestId}/received”)
public @ResponseBody InformationRequest
   registerRequestAsReceived(
     @PathVariable Long requestId) {

    InformationRequest informationRequest =
    this.orgRepo
      .getInformationRequest(requestId);

    return informationRequest;
}
oppsummert:
github.com/anderssv/jzx-weboo
Testdata builders               http://nat.truemesh.com/archives/000714.html


Object mother                  http://martinfowler.com/bliki/ObjectMother.html


Jetty embedded      http://docs.codehaus.org/display/JETTY/Embedding+Jetty


JSR 303                                      http://jcp.org/en/jsr/detail?id=303


Spring MVC             http://static.springsource.org/spring/docs/3.0.x/spring-
                               framework-reference/html/mvc.html
14.-15. november
Radisson Blu Plaza, Oslo
http://smidig2011.no
Testdrevet javautvikling på objektorienterte skinner

Weitere ähnliche Inhalte

Was ist angesagt?

dotSwift - From Problem to Solution
dotSwift - From Problem to SolutiondotSwift - From Problem to Solution
dotSwift - From Problem to Solutionsoroushkhanlou
 
Rapid development tools for java ee 8 and micro profile [GIDS]
Rapid development tools for java ee 8 and micro profile [GIDS] Rapid development tools for java ee 8 and micro profile [GIDS]
Rapid development tools for java ee 8 and micro profile [GIDS] Payara
 
Architecture Components
Architecture ComponentsArchitecture Components
Architecture ComponentsSang Eel Kim
 
Devoxx 2012 hibernate envers
Devoxx 2012   hibernate enversDevoxx 2012   hibernate envers
Devoxx 2012 hibernate enversRomain Linsolas
 
Creating, Updating and Deleting Document in MongoDB
Creating, Updating and Deleting Document in MongoDBCreating, Updating and Deleting Document in MongoDB
Creating, Updating and Deleting Document in MongoDBWildan Maulana
 
Pragmatic unittestingwithj unit
Pragmatic unittestingwithj unitPragmatic unittestingwithj unit
Pragmatic unittestingwithj unitliminescence
 
The uniform interface is 42
The uniform interface is 42The uniform interface is 42
The uniform interface is 42Yevhen Bobrov
 
Oleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoCOleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoCOleksandr Valetskyy
 
Test and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 AppTest and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 AppMichele Capra
 
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!JS Fest 2019. Glenn Reyes. With great power comes great React hooks!
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!JSFestUA
 
09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WP09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WPNguyen Tuan
 

Was ist angesagt? (20)

dotSwift - From Problem to Solution
dotSwift - From Problem to SolutiondotSwift - From Problem to Solution
dotSwift - From Problem to Solution
 
Rapid development tools for java ee 8 and micro profile [GIDS]
Rapid development tools for java ee 8 and micro profile [GIDS] Rapid development tools for java ee 8 and micro profile [GIDS]
Rapid development tools for java ee 8 and micro profile [GIDS]
 
Clean Test Code
Clean Test CodeClean Test Code
Clean Test Code
 
Architecture Components
Architecture ComponentsArchitecture Components
Architecture Components
 
Devoxx 2012 hibernate envers
Devoxx 2012   hibernate enversDevoxx 2012   hibernate envers
Devoxx 2012 hibernate envers
 
Struts2 - 101
Struts2 - 101Struts2 - 101
Struts2 - 101
 
Servlets intro
Servlets introServlets intro
Servlets intro
 
Creating, Updating and Deleting Document in MongoDB
Creating, Updating and Deleting Document in MongoDBCreating, Updating and Deleting Document in MongoDB
Creating, Updating and Deleting Document in MongoDB
 
Pragmatic unittestingwithj unit
Pragmatic unittestingwithj unitPragmatic unittestingwithj unit
Pragmatic unittestingwithj unit
 
The uniform interface is 42
The uniform interface is 42The uniform interface is 42
The uniform interface is 42
 
A Test of Strength
A Test of StrengthA Test of Strength
A Test of Strength
 
Functions
FunctionsFunctions
Functions
 
Javascript 2
Javascript 2Javascript 2
Javascript 2
 
Oleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoCOleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoC
 
Easy Button
Easy ButtonEasy Button
Easy Button
 
Test and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 AppTest and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 App
 
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!JS Fest 2019. Glenn Reyes. With great power comes great React hooks!
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!
 
Developer Testing Tools Roundup
Developer Testing Tools RoundupDeveloper Testing Tools Roundup
Developer Testing Tools Roundup
 
09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WP09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WP
 
Drupal7 dbtng
Drupal7  dbtngDrupal7  dbtng
Drupal7 dbtng
 

Ähnlich wie Testdrevet javautvikling på objektorienterte skinner

Андрей Слободяник "Test driven development using mockito"
Андрей Слободяник "Test driven development using mockito"Андрей Слободяник "Test driven development using mockito"
Андрей Слободяник "Test driven development using mockito"Anna Shymchenko
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotationjavatwo2011
 
Multi Client Development with Spring - Josh Long
Multi Client Development with Spring - Josh Long Multi Client Development with Spring - Josh Long
Multi Client Development with Spring - Josh Long jaxconf
 
Paintfree Object-Document Mapping for MongoDB by Philipp Krenn
Paintfree Object-Document Mapping for MongoDB by Philipp KrennPaintfree Object-Document Mapping for MongoDB by Philipp Krenn
Paintfree Object-Document Mapping for MongoDB by Philipp KrennJavaDayUA
 
Implementing CQRS and Event Sourcing with RavenDB
Implementing CQRS and Event Sourcing with RavenDBImplementing CQRS and Event Sourcing with RavenDB
Implementing CQRS and Event Sourcing with RavenDBOren Eini
 
async/await in Swift
async/await in Swiftasync/await in Swift
async/await in SwiftPeter Friese
 
Тарас Олексин - Sculpt! Your! Tests!
Тарас Олексин  - Sculpt! Your! Tests!Тарас Олексин  - Sculpt! Your! Tests!
Тарас Олексин - Sculpt! Your! Tests!DataArt
 
Building Smart Async Functions For Mobile
Building Smart Async Functions For MobileBuilding Smart Async Functions For Mobile
Building Smart Async Functions For MobileGlan Thomas
 
Beacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsBeacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsJeff Prestes
 
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo Ali Parmaksiz
 
Bare-knuckle web development
Bare-knuckle web developmentBare-knuckle web development
Bare-knuckle web developmentJohannes Brodwall
 
Spring MVC Annotations
Spring MVC AnnotationsSpring MVC Annotations
Spring MVC AnnotationsJordan Silva
 

Ähnlich wie Testdrevet javautvikling på objektorienterte skinner (20)

Андрей Слободяник "Test driven development using mockito"
Андрей Слободяник "Test driven development using mockito"Андрей Слободяник "Test driven development using mockito"
Андрей Слободяник "Test driven development using mockito"
 
Requery overview
Requery overviewRequery overview
Requery overview
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotation
 
Multi Client Development with Spring - Josh Long
Multi Client Development with Spring - Josh Long Multi Client Development with Spring - Josh Long
Multi Client Development with Spring - Josh Long
 
Paintfree Object-Document Mapping for MongoDB by Philipp Krenn
Paintfree Object-Document Mapping for MongoDB by Philipp KrennPaintfree Object-Document Mapping for MongoDB by Philipp Krenn
Paintfree Object-Document Mapping for MongoDB by Philipp Krenn
 
Implementing CQRS and Event Sourcing with RavenDB
Implementing CQRS and Event Sourcing with RavenDBImplementing CQRS and Event Sourcing with RavenDB
Implementing CQRS and Event Sourcing with RavenDB
 
async/await in Swift
async/await in Swiftasync/await in Swift
async/await in Swift
 
Тарас Олексин - Sculpt! Your! Tests!
Тарас Олексин  - Sculpt! Your! Tests!Тарас Олексин  - Sculpt! Your! Tests!
Тарас Олексин - Sculpt! Your! Tests!
 
Building Smart Async Functions For Mobile
Building Smart Async Functions For MobileBuilding Smart Async Functions For Mobile
Building Smart Async Functions For Mobile
 
Jersey
JerseyJersey
Jersey
 
Dropwizard
DropwizardDropwizard
Dropwizard
 
Beacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsBeacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.js
 
Intro to Parse
Intro to ParseIntro to Parse
Intro to Parse
 
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo
 
What's new in Liferay Mobile SDK 2.0 for Android
What's new in Liferay Mobile SDK 2.0 for AndroidWhat's new in Liferay Mobile SDK 2.0 for Android
What's new in Liferay Mobile SDK 2.0 for Android
 
Bare-knuckle web development
Bare-knuckle web developmentBare-knuckle web development
Bare-knuckle web development
 
Spring MVC Annotations
Spring MVC AnnotationsSpring MVC Annotations
Spring MVC Annotations
 
Vaadin7
Vaadin7Vaadin7
Vaadin7
 
SPARQLing cocktails
SPARQLing cocktailsSPARQLing cocktails
SPARQLing cocktails
 
Jason parsing
Jason parsingJason parsing
Jason parsing
 

Mehr von Truls Jørgensen

Optimising for Fast Flow in Norway's Largest Bureaucracy04042022.pdf
Optimising for Fast Flow in Norway's Largest Bureaucracy04042022.pdfOptimising for Fast Flow in Norway's Largest Bureaucracy04042022.pdf
Optimising for Fast Flow in Norway's Largest Bureaucracy04042022.pdfTruls Jørgensen
 
Open source all the offentlig things
Open source all the offentlig thingsOpen source all the offentlig things
Open source all the offentlig thingsTruls Jørgensen
 
From 4 releases a year to once every other minute
From 4 releases a year to once every other minuteFrom 4 releases a year to once every other minute
From 4 releases a year to once every other minuteTruls Jørgensen
 
Alignment in the age of autonomy
Alignment in the age of autonomyAlignment in the age of autonomy
Alignment in the age of autonomyTruls Jørgensen
 
The systems behind the best welfare state in the world
The systems behind the best welfare state in the worldThe systems behind the best welfare state in the world
The systems behind the best welfare state in the worldTruls Jørgensen
 
Systemene bak verdens beste velferdsstat
Systemene bak verdens beste velferdsstatSystemene bak verdens beste velferdsstat
Systemene bak verdens beste velferdsstatTruls Jørgensen
 
Android101 : Introduksjon til Android
Android101 : Introduksjon til AndroidAndroid101 : Introduksjon til Android
Android101 : Introduksjon til AndroidTruls Jørgensen
 
Produktive Utviklere Smidig2009
Produktive Utviklere Smidig2009Produktive Utviklere Smidig2009
Produktive Utviklere Smidig2009Truls Jørgensen
 

Mehr von Truls Jørgensen (12)

Optimising for Fast Flow in Norway's Largest Bureaucracy04042022.pdf
Optimising for Fast Flow in Norway's Largest Bureaucracy04042022.pdfOptimising for Fast Flow in Norway's Largest Bureaucracy04042022.pdf
Optimising for Fast Flow in Norway's Largest Bureaucracy04042022.pdf
 
Smidig i coronakrise
Smidig i coronakriseSmidig i coronakrise
Smidig i coronakrise
 
Continuous monitoring
Continuous monitoringContinuous monitoring
Continuous monitoring
 
Open source all the offentlig things
Open source all the offentlig thingsOpen source all the offentlig things
Open source all the offentlig things
 
Software er politikk
Software er politikkSoftware er politikk
Software er politikk
 
From 4 releases a year to once every other minute
From 4 releases a year to once every other minuteFrom 4 releases a year to once every other minute
From 4 releases a year to once every other minute
 
Alignment in the age of autonomy
Alignment in the age of autonomyAlignment in the age of autonomy
Alignment in the age of autonomy
 
The systems behind the best welfare state in the world
The systems behind the best welfare state in the worldThe systems behind the best welfare state in the world
The systems behind the best welfare state in the world
 
Systemene bak verdens beste velferdsstat
Systemene bak verdens beste velferdsstatSystemene bak verdens beste velferdsstat
Systemene bak verdens beste velferdsstat
 
Git datamodell
Git datamodellGit datamodell
Git datamodell
 
Android101 : Introduksjon til Android
Android101 : Introduksjon til AndroidAndroid101 : Introduksjon til Android
Android101 : Introduksjon til Android
 
Produktive Utviklere Smidig2009
Produktive Utviklere Smidig2009Produktive Utviklere Smidig2009
Produktive Utviklere Smidig2009
 

Kürzlich hochgeladen

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Kürzlich hochgeladen (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

Testdrevet javautvikling på objektorienterte skinner

Hinweis der Redaktion

  1. A
  2. A -> T
  3. T
  4. T
  5. T
  6. T
  7. A
  8. T
  9. T Eiappserveren
  10. A
  11. A & T
  12. A
  13. T
  14. A
  15. T
  16. A
  17. T
  18. T
  19. A
  20. A
  21. T
  22. T
  23. A
  24. A
  25. A
  26. A
  27. T
  28. T
  29. A
  30. AVis app med 2 forhåndsinnlagterequestsSteng den eneVis kjøring av tester (påpek Jetty)Endre controllerVis kjøring med plugin (JUnitMax og Infinitest)Vis applikasjon med å legge innVis at close ikke fungererFiks closeKjør grønt
  31. T
  32. T
  33. T
  34. T
  35. T
  36. T -> A
  37. A
  38. A
  39. A
  40. A
  41. T
  42. A
  43. A & T
  44. T
  45. A