Java ecosystem offers lots of different ways to architect, develop, and deploy a distributed Web application. The parallel ecosystem known as HTML5 offers lots of different ways to design, develop, and deploy the cross-platform UI that works on multiple Web browsers and variety of devices.
This online training class will give you a practical knowledge of developing front and back end components by immersing into an environment similar to a real-world enterprise setup. Be prepared to download, install and master lots of various software packages that will be used at different stages of training.
The title of this course reads Web Development, and we’ll spend about 40% of the time developing User Interface in HTML5 and about 60% working on the server-side Java code. During the first three sessions we’ll be working only with HTML and related JavaScript libraries. The server side Java programming starts on session 4, when the UI is ready.
-
Unit1. Creating a wireframe of the UI of the online auction. Developing and Debugging in HTML/JavaScript. Fast pace introduction to JavaScript. Intro to GIT/Github. Think mobile: Intro to Responsive Web Design. Mocking up the UI. Creating the first prototype of the auction in pure HTML/JavaScript/CSS. Configuring the auction project in IntelliJ IDEA. Hello World in Grunt.
-
Unit2. Becoming productive with JavaScript: Intro TypeScript. Overview of JavaScript cross-browser frameworks. Creating the Web project with AngularJS framework. Configuring libraries in IntelliJ IDEA. Styling with Bootstrap. Mocking up server side with Angular. Developing first two pages of the auction app.
-
Unit3. AngularJS framework in depth. Introducing Test-Driven Development in JavaScript. Test-driven is not test-first. Creating test scripts for models, views, controllers with Jasmine.js. Creating the second prototype of the UI. Build automation with Grunt. Package Management with Bower.
One week break for self study and catching up.
-
Unit4. AJAX. JSON. REST, HATEOAS. Creating the third prototype of the UI (consuming JSON from the server via HTTP protocol).
-
Unit5. Java SE 8: major upgrade. Java EE 7: boost in developers' productivity. Configuring Java EE application server. Creating the Java EE version of the server-side app. Integration with UI.
-
Unit6. Intro to WebSockets. Creating the forth prototype of the UI (Server pushes data to the client via WebSocket).
One week break for self study and catching up.
-
Unit7. Test-Driven Development in Java. JUnit and Spock. Creating data storage for online auction. Configuring Oracle DBMS server. JDBC vs JPA. SQL mapping framework MyBatis. Build scripts with Gradle. Database versioning and migration (Dev → QA → Prod).
-
Unit8. Intro to Java Messaging. Configuring Messaging Server (mocking a bidding engine). Testing communication between the Java EE application and messaging servers. Load testing with JMeter.
-
Unit9. Spring Framework 4 (core, security, MVC, JdbcTemplate). Creating the Spring version of the server-side app. Integration with the auction UI.
-
Unit10. Code review and discussing the final version of the online auction Web application.
Attendees should plan on committing about 15-20 hours a week for studying and working on the assignments from this course. We’ll split the class into small teams to work on the assignments during the week, so your contribution is required.
Attendees must have a working knowledge of core Java, and understanding of Java EE technologies.
Each attendee has to have a modern computer with plenty of disk space (4+ GB of RAM is recommended).
Having a decent Internet connection (more than 2Mbps) is a must.
This class will be a a mix of theory (40%) and practical work (60%). During this training attendees will develop an online auction. This auction should look good and be functional on desktops, tablets and smartphones.
This training will consist of 10 weekly 3-hour online live sessions on Sundays and 9 optional one-hour meetings in between. We’ll use screen-sharing software. Attendees will be able to hear and see the instructors and will communicate with them via a chat room.
The upcoming training class (in Russian) will start on February 23rd, 2014 at 8AM New York time.
The next training class (in English) will start in early April of 2014. We’ll run it on Saturdays. Become a Watcher of this project to get further notifications.
Here’s the current list of the software that we’ll use in this course.
-
HTML
-
CSS
-
Responsive Web Design principles
-
JavaScript
-
JSON
-
Google Chrome Web Browser
-
WebSockets on the client
-
Grunt (The JavaScript task runner)
-
SQL: JDBC or MyBatis
-
Spring 4 Framework (some modules)
-
JBoss Wildfly Application Server
-
WebSockets on the server (JSR-356)
-
JBoss HornetQ(Java Messaging)
-
JAX-RS (Java API for RESTful Web services)
-
Gradle (build automation)
-
Spock or JUnit (unit testing and mocking)
-
Load testing with jMeter.
Three instructors will teach this course. All of them are practitioners employed by Farata Systems:
-
Yakov Fain (USA) - Co-founder of Farata Systems, the IT consultancy. Java Champion. Organizer of the Princeton Java Users Group. Authored and co-authored a number of technical books on programming. Yakov presented on various international conferences on Java and JavaScript related topics.
-
Viktor Gamov (USA) - Lead software developer in Farata Systems. Helps financial companies with various Java and HTML5 projects. Co-organizer of the Princeton Java Users Group. Co-author of the O’Reilly book on Enterprise Web Development. Viktor presented on various international conferences on Java and JavaScript related topics.
-
Anton Moiseev (Russia) - Lead software developer in Farata Systems. Specializes in developing e-Commerce applications. Enjoys everything HTML5-related. Authored and taught trainings on developing Web applications with Ext JS framework.
Other professionals from Farata Systems may also be invited to share their experience in developing and deploying complex enterprise systems.