SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
OCM Java
Developer
美商甲骨文
授權教育訓練中心
講師
張益裕
OCM Java 開發⼈人員認證
與
設計模式
Sun Java Certification
Advanced

Specialty

Sun Certified Enterprise Architect (SCEA)

Sun Certified
Java Developer
(SCJD)

Sun Certified
Web
Component
Developer
(SCWCD)

Sun Certified
Business
Component
Developer
(SCBCD)

Sun Certified
Developer for
Java Web
Service
(SCDJWS)

Foundation

Sun Certified Java Programmer (SCJP)

Entry Level

Sun Certified
Mobile
Application
Developer
(SCMAD)

Sun Certified Java Associate (SCJA)

Java SE

Java EE

Java ME
Oracle Certification Program Categories

Oracle
Certified
Associate

Oracle
Certified
Professional

Oracle
Certified
Master

Oracle
Certified
Expert

Oracle
Certified
Specialist
Oracle Java Certification
Java SE 6 Developer
Java EE 6 Web
Component Developer

Java SE 5 Programmer
Java SE 6 Programmer
Java SE 7 Programmer
Java SE 7 Programmer
Oracle
Certified
Associate

Oracle
Certified
Professional

Oracle
Certified
Master

Oracle
Certified
Expert
Oracle Certified Master

Java SE 6 Developer
Certification Path
Prior Certification
Complete Training
Complete Assignment

Complete Essay
Complete Form
OCM
Get Certified Step 1
Prior Certification
Complete Training
Complete Assignment

Complete Essay
Complete Form
OCM

Oracle Certified Professional
Java SE 5, 6, 7 Programmer
!
Sun Certified Java Programmer
Any Edition
Get Certified Step 2
Prior Certification
Complete Training
Complete Assignment

Complete Essay
Complete Form
OCM

Complete one of approved courses
Instructor-led in class,
Recorded courses
(LWC, LVC, Training On-Demand)
Get Certified Step 3
Prior Certification
Complete Training
Complete Assignment

Complete Essay
Complete Form
OCM

1Z0-855
Java SE 6 Developer Certified Master
Assignment
Get Certified Step 4
Prior Certification
Complete Training
Complete Assignment

Complete Essay
Complete Form
OCM

1Z0-856
Java SE 6 Developer Certified Master Essay
Exam
Get Certified Step 5
Prior Certification
Complete Training
Complete Assignment

Complete Essay
Complete Form
OCM

Complete the Course Submission Form
Oracle Certified Master
Prior Certification
Complete Training
Complete Assignment

Complete Essay
Complete Form
OCM
Step 3 - Assignment
•

Exam Number: 1Z0-855

•

Duration: 6 months from assignment purchase

•

BOTH assignment and essay must be submitted
within 6 months of assignment purchase date. No
exceptions

•

Assignment must be submitted before you can
register for the essay
Assignment Exam Topics
•

A graphical user interface demonstrating good
principles of design

•

A network connection, using a specified protocol, to
connect to an information server

•

A network server, which connects to a previously
specified Java technology database

•

A database, created by extending the functionality of a
previously written piece of code, for which only limited
documentation is available
Step 4 - Essay
•

Exam Number: 1Z0-856

•

Duration: 120 minutes

•

BOTH assignment and essay must be submitted
within 6 months of assignment purchase date. No
exceptions

•

Assignment must be submitted before you can
register for the essay
Essay Exam Topics
•

List some of the major choices you must make
during the implementation of the above.

•

List some of the main advantages and
disadvantages of each of your choices.

•

Briefly justify your choices in terms of the
comparison of design and implementation
objectives with the advantages and disadvantages
of each
Assignment Implementation
Command
Factory Method Decorator
Strategy Observer Composite
Model-View-Controller
Singleton DAO
Breakfast Shop
Domain Object

Breakfast
{abstract}
#name:String
+getName():String
+price():double

Hamburger

Sandwich

EggCake

+price():double

+price():double

+price():double
Breakfast and Sandwich
public abstract class Breakfast {
protected String name = "Unknown";

!

!

public String getName() {
return name;
}
public abstract int price();

}
public class Sandwich extends Breakfast {
public Sandwich() {
name = "三明治";
}

!

@Override
public int price() {
return 15;
}
}
Too Much Subclass
Breakfast
{abstract}
#name:String
+getName():String
+price():double

Hamburger

Sandwich

EggCake

+price():double

+price():double

+price():double

SandwichWithCorn

HamburgerWithEgg

+price():double

+price():double

HamburgerWithLettuce
+price():double
HamburgerWithHam
+price():double

EggCakeWithHam
+price():double
EggCakeWithLettuce

SandwichWithEgg

+price():double

+price():double

SandwichWithHam

SandwichWithLettuce

+price():double

+price():double
Move to Super Class
public abstract class Breakfast {
protected String name = "Unknown";

Breakfast
{abstract}
#name:String
#egg:boolean
#ham:boolean
#corn:boolean
#lettuce:boolean
+getName():String
+price():double

!
!
!

protected
protected
protected
protected

boolean
boolean
boolean
boolean

...
public int price() {
int result = 0;
if (egg) { result += 10; }
else if (ham) { result += 15; }
else if (corn) { result += 10; }
else if (lettuce) { result += 20; }

!

return result;
}
}

egg;
ham;
corn;
lettuce;
Move to Super Class
Breakfast
{abstract}
#name:String
#egg:boolean
#ham:boolean
#corn:boolean
#lettuce:boolean
+getName():String
+price():double

Sandwich
+price():double

public class Sandwich extends Breakfast {
public Sandwich() {
name = "三明治";
}

!

@Override
public int price() {
return super.price() + 15;
}
}
老老闆,我要㆒㈠㊀一個㆔㈢㊂三明治,
加兩兩個蛋,㆔㈢㊂三片㈫㊋火腿,兩兩
份生菜,這樣要多少錢?

...
老老闆

客㆟人
Move to Super Class

Breakfast
{abstract}
...
#chocolateSauce:boolean
#peanutSauce:boolean
#cream:boolean
...

Waffle
+price():double

EggCake
+price():double
java.io
Chaining Stream Together

Reader reader =
new BufferedReader(
new InputStreamReader(
new FileInputStream("Decorator.txt")));
!
int c;
!
while ((c = reader.read()) != -1) {
System.out.print((char)c);
}
Chaining Stream Together

read()

read()

read()
FileInputStream

InputStreamReader
BufferedReader
APP

APP

Hello! Simon!

Intranet

APP
@^*#%!*&

Internet
Java I/O API

InputStream
{abstract}

FileInputStream

FilterInputStream

BufferedInputStream

MyInputStream
Chaining Stream Together
public class MyInputStream extends FilterInputStream {
public MyInputStream(InputStream is) {
super(is);
}
!
@Override
public int read() throws IOException {
int data = super.read();
if (data != -1) {
data = data + myMagicCode();
}
return data;

}

}
...
Chaining Stream Together
InputStream is =
new BufferedInputStream(
new FileInputStream("readme.txt"));
!
// send to intranet
InputStream is =
new BufferedInputStream(
new MyInputStream(
new FileInputStream("readme.txt")));
!
// send to internet
Chaining Stream Together

read()

read()

read()
FileInputStream

MyInputStream
BufferedInputStream
Back to Breakfast Shop
Java I/O and Breakfast
Breakfast
InputStream
{abstract}

Sandwich...

FileInputStream

FilterInputStream

BufferedInputStream

Ham

Ingredient

MyInputStream

Egg
Breakfast Structure
Breakfast
{abstract}
#name:String
+getName():String
+price():double

Hamburger

Sandwich

+price():double

+price():double
Ingredient
+getName():String

Ham
-breakfast:Breakfast
+getName():String
+price():double

Egg
-breakfast:Breakfast
+getName():String
+price():double
Breakfast

public abstract class Breakfast {
!
protected String name = "Unknown";
!
public String getName() {
return name;
}
!
public abstract int price();
}
Sandwich

public class Sandwich extends Breakfast {
public Sandwich() {
name = "三明治";
}
!
public int price() {
return 15;
}
}
Ingredient

public abstract class Ingredient extends Breakfast {
!
public abstract String getName();
!
}
Breakfast and Ingredient
public abstract class Breakfast {
!
protected String name = "Unknown";
!
public String getName() {
return name;
}
!
public abstract int price();
}
public abstract class Ingredient extends Breakfast {
!
public abstract String getName();
!
}
Ingredient - Egg
public class Egg extends Ingredient {
Breakfast breakfast;
!
public Egg(Breakfast breakfast) {
this.breakfast = breakfast;
}
!
public String getName() {
return breakfast.getName() + "加蛋";
}
!
public int price() {
return 10 + breakfast.price();
}
}
Ingredient - Ham
public class Ham extends Ingredient {
Breakfast breakfast;
!
public Ham(Breakfast breakfast) {
this.breakfast = breakfast;
}
!
public String getName() {
return "⽕火腿" + breakfast.getName();
}
!
public int price() {
return 15 + breakfast.price();
}
}
Chaining Breakfast Together

+

Breakfast breakfast = new Sandwich();
breakfast = new Ham(breakfast);

+

breakfast = new Egg(breakfast);
Chaining Breakfast Together

getPrice()

getPrice()

getPrice()
Sandwich

Ham
Egg
老老闆,我要㆒㈠㊀一個㆔㈢㊂三明治,
加兩兩個蛋,㆔㈢㊂三片㈫㊋火腿,兩兩
份生菜,這樣要多少錢?

ok!這樣
是110元

老老闆

客㆟人
A Sandwich with many Ingredients

X2
X3
X2

Breakfast
!
!
breakfast
breakfast
!
breakfast
breakfast
breakfast
!
breakfast
breakfast

breakfast = new Sandwich();
= new Egg(breakfast);
= new Egg(breakfast);
= new Ham(breakfast);
= new Ham(breakfast);
= new Ham(breakfast);
= new Lettuce(breakfast);
= new Lettuce(breakfast);
Decorator Pattern
•

⺫⽬目的!
•

•

別名!
•

•

提供附加的功能給物件,不⽤用修改原來的程式碼就可以增加功能

Wrapper

時機!
•
•

希望增加物件的功能時,仍然可以保留物件原來的特性

•

不希望繼承架構過於龐⼤大

•
•

想要在執⾏行時期增加物件額外的功能,但是不會影響到其它物件

不希望⼦子類別繼承⼀一些不會使⽤用到的特性

效果!
•

⽐比繼承架構更靈活。繼承是「編譯時期」的作法;Decorator是「執⾏行時期」的作法

•

在應⽤用程式運作的時候物件可能會太多
Decorator Pattern
Component
{abstract}
operation()

ConcreteComponent
+operation()

Decorator
{abstract}
+operation()

ConcreteDecorationA
addedState
+operation()

ConcreteDecorationB
addedState
+operation()
Note
* Design pattern好像不不是那麼難
* 如果因為物件會㈲㊒有許多不不同的樣子而讓繼承架構太大的話,就

可以試試Decorator
ast
Breakf act}
{abstr

* 套用Decorator
1. 先不不考慮那些「不不同的樣子」,

把簡單的架構設計出來來

ge
Hambur

r

Sa

ndwich

2. 為那些「不不同的樣子」設計㆒㈠㊀一個

父類類別,加入㆖㊤上面的繼承架構㆗㊥中,

這個類類別就是Decorator
3. 為「不不同的樣子」設計Decorator

的子類類別
* 好像會㈲㊒有很多物件...

EggCak

e

Ingredient
{abstract}

Ham

Egg
Corn

Lettuce
...
macdidi5@gmail.com

張益裕

Mais conteúdo relacionado

Mais procurados

PRG 421 Extraordinary Life/newtonhelp.com 
PRG 421 Extraordinary Life/newtonhelp.com PRG 421 Extraordinary Life/newtonhelp.com 
PRG 421 Extraordinary Life/newtonhelp.com myblue41
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Lars Thorup
 
Integration testing with spring @snow one
Integration testing with spring @snow oneIntegration testing with spring @snow one
Integration testing with spring @snow oneVictor Rentea
 
Automate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAutomate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAnand Bagmar
 
So What Do Cucumbers Have To Do With Testing
So What Do Cucumbers Have To Do With TestingSo What Do Cucumbers Have To Do With Testing
So What Do Cucumbers Have To Do With Testingsjmarsh
 
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...Simplilearn
 
Building Quality with Foundations of Mud
Building Quality with Foundations of MudBuilding Quality with Foundations of Mud
Building Quality with Foundations of Mudseleniumconf
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemAndres Almiray
 
Python Debugging Fundamentals
Python Debugging FundamentalsPython Debugging Fundamentals
Python Debugging Fundamentalscbcunc
 
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019Evolving a Clean, Pragmatic Architecture at JBCNConf 2019
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019Victor Rentea
 
Practical Patterns for Developing a Cross-product Cross-version App
Practical Patterns for Developing a Cross-product Cross-version AppPractical Patterns for Developing a Cross-product Cross-version App
Practical Patterns for Developing a Cross-product Cross-version AppAtlassian
 
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten ZiegelerOSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegelermfrancis
 
Testing business-logic-in-dsls
Testing business-logic-in-dslsTesting business-logic-in-dsls
Testing business-logic-in-dslsMayank Jain
 
Invoke dynamite in Java EE with invoke dynamic
Invoke dynamite in Java EE with invoke dynamicInvoke dynamite in Java EE with invoke dynamic
Invoke dynamite in Java EE with invoke dynamicAntoine Sabot-Durand
 
Java script Examples by Som
Java script Examples by Som  Java script Examples by Som
Java script Examples by Som Som Prakash Rai
 
10 sample questions about Dynamic Attributes (CX-310-083)
10 sample questions about Dynamic Attributes (CX-310-083)10 sample questions about Dynamic Attributes (CX-310-083)
10 sample questions about Dynamic Attributes (CX-310-083)Maarten Storm
 
Justmeans power point
Justmeans power pointJustmeans power point
Justmeans power pointjustmeanscsr
 

Mais procurados (19)

PRG 421 Extraordinary Life/newtonhelp.com 
PRG 421 Extraordinary Life/newtonhelp.com PRG 421 Extraordinary Life/newtonhelp.com 
PRG 421 Extraordinary Life/newtonhelp.com 
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)
 
Integration testing with spring @snow one
Integration testing with spring @snow oneIntegration testing with spring @snow one
Integration testing with spring @snow one
 
Automate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAutomate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaS
 
So What Do Cucumbers Have To Do With Testing
So What Do Cucumbers Have To Do With TestingSo What Do Cucumbers Have To Do With Testing
So What Do Cucumbers Have To Do With Testing
 
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...
 
Building Quality with Foundations of Mud
Building Quality with Foundations of MudBuilding Quality with Foundations of Mud
Building Quality with Foundations of Mud
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX Ecosystem
 
Python Debugging Fundamentals
Python Debugging FundamentalsPython Debugging Fundamentals
Python Debugging Fundamentals
 
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019Evolving a Clean, Pragmatic Architecture at JBCNConf 2019
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019
 
Unit testing - A&BP CC
Unit testing - A&BP CCUnit testing - A&BP CC
Unit testing - A&BP CC
 
Practical Patterns for Developing a Cross-product Cross-version App
Practical Patterns for Developing a Cross-product Cross-version AppPractical Patterns for Developing a Cross-product Cross-version App
Practical Patterns for Developing a Cross-product Cross-version App
 
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten ZiegelerOSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
 
Testing business-logic-in-dsls
Testing business-logic-in-dslsTesting business-logic-in-dsls
Testing business-logic-in-dsls
 
Invoke dynamite in Java EE with invoke dynamic
Invoke dynamite in Java EE with invoke dynamicInvoke dynamite in Java EE with invoke dynamic
Invoke dynamite in Java EE with invoke dynamic
 
Java script Examples by Som
Java script Examples by Som  Java script Examples by Som
Java script Examples by Som
 
10 sample questions about Dynamic Attributes (CX-310-083)
10 sample questions about Dynamic Attributes (CX-310-083)10 sample questions about Dynamic Attributes (CX-310-083)
10 sample questions about Dynamic Attributes (CX-310-083)
 
Justmeans power point
Justmeans power pointJustmeans power point
Justmeans power point
 
JavaFX Pitfalls
JavaFX PitfallsJavaFX Pitfalls
JavaFX Pitfalls
 

Semelhante a OCM Java 開發人員認證與設計模式

Intro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiIntro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiRan Mizrahi
 
Performance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-MechanizePerformance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-Mechanizecoreygoldberg
 
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QAFest
 
Unit testing with Spock Framework
Unit testing with Spock FrameworkUnit testing with Spock Framework
Unit testing with Spock FrameworkEugene Dvorkin
 
Testing ASP.NET - Progressive.NET
Testing ASP.NET - Progressive.NETTesting ASP.NET - Progressive.NET
Testing ASP.NET - Progressive.NETBen Hall
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileElias Nogueira
 
Testing for fun in production Into The Box 2018
Testing for fun in production Into The Box 2018Testing for fun in production Into The Box 2018
Testing for fun in production Into The Box 2018Ortus Solutions, Corp
 
Altitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopAltitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopFastly
 
Top Ten Java Defense for Web Applications v2
Top Ten Java Defense for Web Applications v2Top Ten Java Defense for Web Applications v2
Top Ten Java Defense for Web Applications v2Jim Manico
 
InterConnect2016: WebApp Architectures with Java and Node.js
InterConnect2016: WebApp Architectures with Java and Node.jsInterConnect2016: WebApp Architectures with Java and Node.js
InterConnect2016: WebApp Architectures with Java and Node.jsChris Bailey
 
Mutation testing Bucharest Tech Week
Mutation testing Bucharest Tech WeekMutation testing Bucharest Tech Week
Mutation testing Bucharest Tech WeekPaco van Beckhoven
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptdavejohnson
 
Unit testing of spark applications
Unit testing of spark applicationsUnit testing of spark applications
Unit testing of spark applicationsKnoldus Inc.
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
Test Driven Development with JavaFX
Test Driven Development with JavaFXTest Driven Development with JavaFX
Test Driven Development with JavaFXHendrik Ebbers
 
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...Future Processing
 
Improve unit tests with Mutants!
Improve unit tests with Mutants!Improve unit tests with Mutants!
Improve unit tests with Mutants!Paco van Beckhoven
 

Semelhante a OCM Java 開發人員認證與設計模式 (20)

Intro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiIntro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran Mizrahi
 
Performance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-MechanizePerformance and Scalability Testing with Python and Multi-Mechanize
Performance and Scalability Testing with Python and Multi-Mechanize
 
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
 
Unit testing with Spock Framework
Unit testing with Spock FrameworkUnit testing with Spock Framework
Unit testing with Spock Framework
 
Testing ASP.NET - Progressive.NET
Testing ASP.NET - Progressive.NETTesting ASP.NET - Progressive.NET
Testing ASP.NET - Progressive.NET
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 
Testing for fun in production Into The Box 2018
Testing for fun in production Into The Box 2018Testing for fun in production Into The Box 2018
Testing for fun in production Into The Box 2018
 
Altitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopAltitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly Workshop
 
Top Ten Java Defense for Web Applications v2
Top Ten Java Defense for Web Applications v2Top Ten Java Defense for Web Applications v2
Top Ten Java Defense for Web Applications v2
 
Defensive Apex Programming
Defensive Apex ProgrammingDefensive Apex Programming
Defensive Apex Programming
 
InterConnect2016: WebApp Architectures with Java and Node.js
InterConnect2016: WebApp Architectures with Java and Node.jsInterConnect2016: WebApp Architectures with Java and Node.js
InterConnect2016: WebApp Architectures with Java and Node.js
 
Mutation testing Bucharest Tech Week
Mutation testing Bucharest Tech WeekMutation testing Bucharest Tech Week
Mutation testing Bucharest Tech Week
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScript
 
Unit testing of spark applications
Unit testing of spark applicationsUnit testing of spark applications
Unit testing of spark applications
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Test Driven Development with JavaFX
Test Driven Development with JavaFXTest Driven Development with JavaFX
Test Driven Development with JavaFX
 
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
 
Full Stack Scala
Full Stack ScalaFull Stack Scala
Full Stack Scala
 
Certifications Java
Certifications JavaCertifications Java
Certifications Java
 
Improve unit tests with Mutants!
Improve unit tests with Mutants!Improve unit tests with Mutants!
Improve unit tests with Mutants!
 

Último

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

OCM Java 開發人員認證與設計模式