Web components with java by Haijian Wang

GWTcon
GWTcon Firenze, Italy
H A I J I A N W A N G
W E B C O M P O N E N T S
W I T H J A V A
@haijian_wang
Java
Web
E l e m e n t s
C o m m u n i c a t i o n
Vaadin Framework
.1 .2 3 4 5 6 7 8
2001
2002
2002
2007
2008
2009
2013
2017
Vaadin Framework
.1 .2 3 4 5 6 7 8
1
Vaadin Core Elements
Web Components
in Practice 1/2
A new TAG for your browser: ‘<my-ui-
component>’
Based on standard specifications
(no frameworks!)
Goodbye to browser plugins (WC + HTML5)
Isolated from other elements in DOM
Easy to share (npm, yarn)
Easy to integrate
Web Components
in Practice 2/2
<vaadin-date-picker>
</vaadin-date-picker>
Web Components technically
F O U R H T M L 5 S P E C I F I C AT I O N S
1. Custom Elements
2. Templates
3. HTML imports (es6 modules)
4. Shadow DOM
Custom Elements
<my-new-element></my-new-element>
Templates
<template id=“my-template"> 

<style> 

...

</style> 

<div> 

<h1>Web Components</h1> 

<img src="/img/logo.svg"> 

</div> 

</template>





HTML Imports
<link rel="import" href="my-el.html">

S H A D O W D O M
<video src=“video-src.mp4” controls></video>

<video src=“video-src.mp4” controls></video>

• Encapsulation
• Reusability
Benefits of using Web Components
Native browser support
Web components with java by Haijian Wang
G E T S TA R T E D W I T H W E B
C O M P O N E N T S
I ns ta ll a co m pon ent
Us e i n H TM L
Web components with java by Haijian Wang
W E B C O M P O N E N T S W I T H J A V A ( V A A D I N ) ?
Web components with java by Haijian Wang
Ser ver- s id e Java Comp one nt
@Tag("paper-slider")

public interface PaperSlider extends Element{

static PaperSlider create() {

return Elements.create(PaperSlider.class);

}



void setValue(double value);



@UpdatedBy(“value-change")

double getValue();



}
Clien t- s i de I mple me ntation
( i n t e n t i o n a l l y l e f t b l a n k )
Using a s er ver- s id e co mp one nt
PaperSlider paperSlider = PaperSlider.create();
paperSlider.setValue(50);
paperSlider.addEventListener("change", arguments->{
Notification.show(
"Value changed to"+paperSlider.getValue());
});
Demo
H O W T O C R E AT E YO U R
O W N W E B C O M P O N E N T ?
Web components with java by Haijian Wang
Polymer
J A V A S C R I P T L I B R A R Y F O R W E B C O M P O N E N T S
• Vaadin Core Elements are built with Polymer 2.0
• Mentally for Vaadin Developer Polymer is new GWT
• Developed by Google
• Helps building re-usable Web Components
• Utilises new emerging Web Component standards
• Polyfills missing features for browsers
Polyfills
M A K E S TA N D A R D S W O R K T O D A Y
• Implementations making older browsers support new standards
• Will eventually be out powered by Browser standards
ES6-Class definition
class Shape {
constructor (id, x, y) {
this.id = id
this.move(x, y)
}
move (x, y) {
this.x = x
this.y = y
}
}
ES6-Class Inheritance
class Rectangle extends Shape {
constructor (id, x, y, width, height) {
super(id, x, y)
this.width = width
this.height = height
}
}
class Circle extends Shape {
constructor (id, x, y, radius) {
super(id, x, y)
this.radius = radius
}
}
ES6-Static Members
class Rectangle extends Shape {
static defaultRectangle () {
return new Rectangle("default", 0, 0, 100, 100)
}
}
class Circle extends Shape {
static defaultCircle () {
return new Circle("default", 0, 0, 100)
}
}
var defRectangle = Rectangle.defaultRectangle();
var defCircle = Circle.defaultCircle();
ES6-Arrow Functions
odds = evens.map(v => v + 1)
pairs = evens.map(v => ({ even: v, odd: v + 1 }))
nums = evens.map((v, i) => v + i)
nums.forEach(v => {
if (v % 5 === 0)
fives.push(v)
})
ES6-Method Properties
obj = {
foo (a, b) {
…
},
bar (x, y) {
…
}
}
Demo: How to create a web
component with Polymer
and Integrate with Vaadin
Vaadin Framework
.1 .2 3 4 5 6 7 8
1
Vaadin Core Elements
Vaadin Framework
.1 .2 3 4 5 6 7 8
1
Vaadin Core Elements
2
x
Unified
platform
Web components with java by Haijian Wang
Web components with java by Haijian Wang
Web components with java by Haijian Wang
Web components with java by Haijian Wang
Web components with java by Haijian Wang
https://bakery-flow.demo.vaadin.com/
Web components with java by Haijian Wang
Summary
• My talk has nothing to do with GWT :(
• Web components is the future of web
• Catch the train before it’s too late
• Vaadin provides pure client side web components as
Vaadin Elements
• Vaadin provides Java integration with Web
components
T H A N K YO U !
@haijian_wang
https://vaadin.com/blog/-/blogs/framework-roadmap-connecting-the-dots
https://vaadin.com/directory#!addon/elements-add-on
1 of 49

Recommended

"Xapi-lang For declarative code generation" By James Nelson by
"Xapi-lang For declarative code generation" By James Nelson"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James NelsonGWTcon
833 views23 slides
"Migrate large gwt applications - Lessons Learned" By Harald Pehl by
"Migrate large gwt applications - Lessons Learned" By Harald Pehl"Migrate large gwt applications - Lessons Learned" By Harald Pehl
"Migrate large gwt applications - Lessons Learned" By Harald PehlGWTcon
1.9K views42 slides
React by
React React
React 중운 박
6.8K views67 slides
Angular beans by
Angular beansAngular beans
Angular beansBessem Hmidi
5.1K views41 slides
Mobile Day - React Native by
Mobile Day - React NativeMobile Day - React Native
Mobile Day - React NativeSoftware Guru
1.1K views62 slides
GQuery a jQuery clone for Gwt, RivieraDev 2011 by
GQuery a jQuery clone for Gwt, RivieraDev 2011GQuery a jQuery clone for Gwt, RivieraDev 2011
GQuery a jQuery clone for Gwt, RivieraDev 2011Manuel Carrasco Moñino
6.5K views41 slides

More Related Content

What's hot

React Vs AnagularJS by
React Vs AnagularJSReact Vs AnagularJS
React Vs AnagularJSdeepakpatil84
1.1K views17 slides
GWT Introduction and Overview - SV Code Camp 09 by
GWT Introduction and Overview - SV Code Camp 09GWT Introduction and Overview - SV Code Camp 09
GWT Introduction and Overview - SV Code Camp 09Fred Sauer
1.6K views54 slides
Micronaut For Single Page Apps by
Micronaut For Single Page AppsMicronaut For Single Page Apps
Micronaut For Single Page AppsZachary Klein
3.4K views61 slides
Room with a Vue - Introduction to Vue.js by
Room with a Vue - Introduction to Vue.jsRoom with a Vue - Introduction to Vue.js
Room with a Vue - Introduction to Vue.jsZachary Klein
820 views45 slides
Geotalk presentation by
Geotalk presentationGeotalk presentation
Geotalk presentationEric Palakovich Carr
1.2K views14 slides
An Introduction To Testing In AngularJS Applications by
An Introduction To Testing In AngularJS Applications An Introduction To Testing In AngularJS Applications
An Introduction To Testing In AngularJS Applications Rohan Chandane
1.1K views26 slides

What's hot(20)

GWT Introduction and Overview - SV Code Camp 09 by Fred Sauer
GWT Introduction and Overview - SV Code Camp 09GWT Introduction and Overview - SV Code Camp 09
GWT Introduction and Overview - SV Code Camp 09
Fred Sauer1.6K views
Micronaut For Single Page Apps by Zachary Klein
Micronaut For Single Page AppsMicronaut For Single Page Apps
Micronaut For Single Page Apps
Zachary Klein3.4K views
Room with a Vue - Introduction to Vue.js by Zachary Klein
Room with a Vue - Introduction to Vue.jsRoom with a Vue - Introduction to Vue.js
Room with a Vue - Introduction to Vue.js
Zachary Klein820 views
An Introduction To Testing In AngularJS Applications by Rohan Chandane
An Introduction To Testing In AngularJS Applications An Introduction To Testing In AngularJS Applications
An Introduction To Testing In AngularJS Applications
Rohan Chandane1.1K views
Gwt.Create Keynote San Francisco by Ray Cromwell
Gwt.Create Keynote San FranciscoGwt.Create Keynote San Francisco
Gwt.Create Keynote San Francisco
Ray Cromwell8.7K views
Using VueJS in front of Drupal 8 by Brian Ward
Using VueJS in front of Drupal 8Using VueJS in front of Drupal 8
Using VueJS in front of Drupal 8
Brian Ward7.5K views
Ember.js - A JavaScript framework for creating ambitious web applications by Juliana Lucena
Ember.js - A JavaScript framework for creating ambitious web applications  Ember.js - A JavaScript framework for creating ambitious web applications
Ember.js - A JavaScript framework for creating ambitious web applications
Juliana Lucena9.7K views
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees) by Stephen Chin
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
Stephen Chin190.7K views
The Past Year in Spring for Apache Geode by VMware Tanzu
The Past Year in Spring for Apache GeodeThe Past Year in Spring for Apache Geode
The Past Year in Spring for Apache Geode
VMware Tanzu230 views
React Native: JS MVC Meetup #15 by Rob Gietema
React Native: JS MVC Meetup #15React Native: JS MVC Meetup #15
React Native: JS MVC Meetup #15
Rob Gietema729 views
Building a Startup Stack with AngularJS by FITC
Building a Startup Stack with AngularJSBuilding a Startup Stack with AngularJS
Building a Startup Stack with AngularJS
FITC32K views
Introduction to VueJS & Vuex by Bernd Alter
Introduction to VueJS & VuexIntroduction to VueJS & Vuex
Introduction to VueJS & Vuex
Bernd Alter856 views
React Facebook JavaScript Library by Takami Kazuya
React Facebook JavaScript LibraryReact Facebook JavaScript Library
React Facebook JavaScript Library
Takami Kazuya4.4K views
Turducken - Divide and Conquer large GWT apps with multiple teams by Robert Keane
Turducken - Divide and Conquer large GWT apps with multiple teamsTurducken - Divide and Conquer large GWT apps with multiple teams
Turducken - Divide and Conquer large GWT apps with multiple teams
Robert Keane6.3K views
Gradle - time for another build by Igor Khotin
Gradle - time for another buildGradle - time for another build
Gradle - time for another build
Igor Khotin2.4K views
Java(ee) mongo db applications in the cloud by Shekhar Gulati
Java(ee) mongo db applications in the cloud Java(ee) mongo db applications in the cloud
Java(ee) mongo db applications in the cloud
Shekhar Gulati3.7K views

Similar to Web components with java by Haijian Wang

Svcc 2013-d3 by
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3Oswald Campesato
1.2K views44 slides
SVCC 2013 D3.js Presentation (10/05/2013) by
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)Oswald Campesato
2.1K views44 slides
Backbone js by
Backbone jsBackbone js
Backbone jsRohan Chandane
3.2K views54 slides
SVGD3Angular2React by
SVGD3Angular2ReactSVGD3Angular2React
SVGD3Angular2ReactOswald Campesato
859 views61 slides
React js by
React jsReact js
React jsOswald Campesato
3.9K views79 slides
Vue js for beginner by
Vue js for beginner Vue js for beginner
Vue js for beginner Chandrasekar G
562 views34 slides

Similar to Web components with java by Haijian Wang(20)

SVCC 2013 D3.js Presentation (10/05/2013) by Oswald Campesato
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
Oswald Campesato2.1K views
Big Data for each one of us by OSCON Byrum
Big Data for each one of usBig Data for each one of us
Big Data for each one of us
OSCON Byrum2.1K views
Django Rest Framework and React and Redux, Oh My! by Eric Palakovich Carr
Django Rest Framework and React and Redux, Oh My!Django Rest Framework and React and Redux, Oh My!
Django Rest Framework and React and Redux, Oh My!
JavaCro 2014 Scala and Java EE 7 Development Experiences by Peter Pilgrim
JavaCro 2014 Scala and Java EE 7 Development ExperiencesJavaCro 2014 Scala and Java EE 7 Development Experiences
JavaCro 2014 Scala and Java EE 7 Development Experiences
Peter Pilgrim2.1K views
Understanding backbonejs by Nick Lee
Understanding backbonejsUnderstanding backbonejs
Understanding backbonejs
Nick Lee2.6K views
How to Mess Up Your Angular UI Components by cagataycivici
How to Mess Up Your Angular UI ComponentsHow to Mess Up Your Angular UI Components
How to Mess Up Your Angular UI Components
cagataycivici842 views
J Query The Write Less Do More Javascript Library by rsnarayanan
J Query   The Write Less Do More Javascript LibraryJ Query   The Write Less Do More Javascript Library
J Query The Write Less Do More Javascript Library
rsnarayanan1.9K views
Web Components Everywhere by Ilia Idakiev
Web Components EverywhereWeb Components Everywhere
Web Components Everywhere
Ilia Idakiev1.3K views
Learn D3.js in 90 minutes by Jos Dirksen
Learn D3.js in 90 minutesLearn D3.js in 90 minutes
Learn D3.js in 90 minutes
Jos Dirksen3.8K views
J query b_dotnet_ug_meet_12_may_2012 by ghnash
J query b_dotnet_ug_meet_12_may_2012J query b_dotnet_ug_meet_12_may_2012
J query b_dotnet_ug_meet_12_may_2012
ghnash1.1K views
Scala @ TechMeetup Edinburgh by Stuart Roebuck
Scala @ TechMeetup EdinburghScala @ TechMeetup Edinburgh
Scala @ TechMeetup Edinburgh
Stuart Roebuck1.1K views
Opencast Admin UI - Introduction to developing using AngularJS by buttyx
Opencast Admin UI - Introduction to developing using AngularJSOpencast Admin UI - Introduction to developing using AngularJS
Opencast Admin UI - Introduction to developing using AngularJS
buttyx556 views

More from GWTcon

"Jclays, A global solution for application design and automatic GWT code gene... by
"Jclays, A global solution for application design and automatic GWT code gene..."Jclays, A global solution for application design and automatic GWT code gene...
"Jclays, A global solution for application design and automatic GWT code gene...GWTcon
1.2K views19 slides
In defense of GWT-RPC By Colin Alworth by
In defense of GWT-RPC By Colin AlworthIn defense of GWT-RPC By Colin Alworth
In defense of GWT-RPC By Colin AlworthGWTcon
1.7K views47 slides
DIY: Split GWT Applications using TURDUCKEN approach By Alberto Mancini by
DIY: Split GWT Applications using TURDUCKEN approach By Alberto ManciniDIY: Split GWT Applications using TURDUCKEN approach By Alberto Mancini
DIY: Split GWT Applications using TURDUCKEN approach By Alberto ManciniGWTcon
2K views29 slides
Unirex Lean tools By Dario Carotenuto by
Unirex Lean tools By Dario CarotenutoUnirex Lean tools By Dario Carotenuto
Unirex Lean tools By Dario CarotenutoGWTcon
868 views27 slides
The future of GWT 2.x - By Colin Alworth by
The future of GWT 2.x - By Colin AlworthThe future of GWT 2.x - By Colin Alworth
The future of GWT 2.x - By Colin AlworthGWTcon
3.1K views20 slides
UI Framework Development using GWT and HTML Canvas - By Iarosla Kobyliukh by
UI Framework Development using GWT and HTML Canvas - By Iarosla KobyliukhUI Framework Development using GWT and HTML Canvas - By Iarosla Kobyliukh
UI Framework Development using GWT and HTML Canvas - By Iarosla KobyliukhGWTcon
1.6K views22 slides

More from GWTcon (13)

"Jclays, A global solution for application design and automatic GWT code gene... by GWTcon
"Jclays, A global solution for application design and automatic GWT code gene..."Jclays, A global solution for application design and automatic GWT code gene...
"Jclays, A global solution for application design and automatic GWT code gene...
GWTcon 1.2K views
In defense of GWT-RPC By Colin Alworth by GWTcon
In defense of GWT-RPC By Colin AlworthIn defense of GWT-RPC By Colin Alworth
In defense of GWT-RPC By Colin Alworth
GWTcon 1.7K views
DIY: Split GWT Applications using TURDUCKEN approach By Alberto Mancini by GWTcon
DIY: Split GWT Applications using TURDUCKEN approach By Alberto ManciniDIY: Split GWT Applications using TURDUCKEN approach By Alberto Mancini
DIY: Split GWT Applications using TURDUCKEN approach By Alberto Mancini
GWTcon 2K views
Unirex Lean tools By Dario Carotenuto by GWTcon
Unirex Lean tools By Dario CarotenutoUnirex Lean tools By Dario Carotenuto
Unirex Lean tools By Dario Carotenuto
GWTcon 868 views
The future of GWT 2.x - By Colin Alworth by GWTcon
The future of GWT 2.x - By Colin AlworthThe future of GWT 2.x - By Colin Alworth
The future of GWT 2.x - By Colin Alworth
GWTcon 3.1K views
UI Framework Development using GWT and HTML Canvas - By Iarosla Kobyliukh by GWTcon
UI Framework Development using GWT and HTML Canvas - By Iarosla KobyliukhUI Framework Development using GWT and HTML Canvas - By Iarosla Kobyliukh
UI Framework Development using GWT and HTML Canvas - By Iarosla Kobyliukh
GWTcon 1.6K views
Best Practices - By Lofi Dewanto by GWTcon
Best Practices - By Lofi DewantoBest Practices - By Lofi Dewanto
Best Practices - By Lofi Dewanto
GWTcon 1.2K views
GWT Development for Handheld Devices by GWTcon
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld Devices
GWTcon 674 views
GWT vs CSS3 by GWTcon
GWT vs CSS3GWT vs CSS3
GWT vs CSS3
GWTcon 1.2K views
WebTram: una WebApp GWT per l'editing di dati cartografici e topologici di un... by GWTcon
WebTram: una WebApp GWT per l'editing di dati cartografici e topologici di un...WebTram: una WebApp GWT per l'editing di dati cartografici e topologici di un...
WebTram: una WebApp GWT per l'editing di dati cartografici e topologici di un...
GWTcon 987 views
GWT Web Socket and data serialization by GWTcon
GWT Web Socket and data serializationGWT Web Socket and data serialization
GWT Web Socket and data serialization
GWTcon 6.5K views
GWTcon 2014 - Apertura by GWTcon
GWTcon 2014 - AperturaGWTcon 2014 - Apertura
GWTcon 2014 - Apertura
GWTcon 699 views
GWT videocall: power-up your mobile & web app with WebRTC by GWTcon
GWT videocall:  power-up your mobile & web app with WebRTCGWT videocall:  power-up your mobile & web app with WebRTC
GWT videocall: power-up your mobile & web app with WebRTC
GWTcon 1.9K views

Recently uploaded

Perth MeetUp November 2023 by
Perth MeetUp November 2023 Perth MeetUp November 2023
Perth MeetUp November 2023 Michael Price
15 views44 slides
PharoJS - Zürich Smalltalk Group Meetup November 2023 by
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023Noury Bouraqadi
120 views17 slides
The Research Portal of Catalonia: Growing more (information) & more (services) by
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)CSUC - Consorci de Serveis Universitaris de Catalunya
73 views25 slides
Melek BEN MAHMOUD.pdf by
Melek BEN MAHMOUD.pdfMelek BEN MAHMOUD.pdf
Melek BEN MAHMOUD.pdfMelekBenMahmoud
14 views1 slide
Attacking IoT Devices from a Web Perspective - Linux Day by
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day Simone Onofri
15 views68 slides
20231123_Camunda Meetup Vienna.pdf by
20231123_Camunda Meetup Vienna.pdf20231123_Camunda Meetup Vienna.pdf
20231123_Camunda Meetup Vienna.pdfPhactum Softwareentwicklung GmbH
28 views73 slides

Recently uploaded(20)

Perth MeetUp November 2023 by Michael Price
Perth MeetUp November 2023 Perth MeetUp November 2023
Perth MeetUp November 2023
Michael Price15 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi120 views
Attacking IoT Devices from a Web Perspective - Linux Day by Simone Onofri
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day
Simone Onofri15 views
Black and White Modern Science Presentation.pptx by maryamkhalid2916
Black and White Modern Science Presentation.pptxBlack and White Modern Science Presentation.pptx
Black and White Modern Science Presentation.pptx
maryamkhalid291614 views
6g - REPORT.pdf by Liveplex
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdf
Liveplex9 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst470 views
Data-centric AI and the convergence of data and model engineering: opportunit... by Paolo Missier
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...
Paolo Missier34 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker26 views
AMAZON PRODUCT RESEARCH.pdf by JerikkLaureta
AMAZON PRODUCT RESEARCH.pdfAMAZON PRODUCT RESEARCH.pdf
AMAZON PRODUCT RESEARCH.pdf
JerikkLaureta15 views
Lilypad @ Labweek, Istanbul, 2023.pdf by Ally339821
Lilypad @ Labweek, Istanbul, 2023.pdfLilypad @ Labweek, Istanbul, 2023.pdf
Lilypad @ Labweek, Istanbul, 2023.pdf
Ally3398219 views
HTTP headers that make your website go faster - devs.gent November 2023 by Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn19 views
handbook for web 3 adoption.pdf by Liveplex
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdf
Liveplex19 views
1st parposal presentation.pptx by i238212
1st parposal presentation.pptx1st parposal presentation.pptx
1st parposal presentation.pptx
i2382129 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院

Web components with java by Haijian Wang