Explore core web-development principles and best-practices while seeing them in action at Roost, presented by Bocoup. Part training, part conference, Roost combines the best of both experiences in a comprehensive narrative about the real-world application of core programming principles.
This fall, you can complete your Roost experience with the jQuery Conference. We've partnered with our friends at the jQuery Foundation to bring you four days of developer-focused events. Follow up two days of immersive, fast-paced teaching at Roost with the latest in jQuery, jQuery projects, code architecture and organization, best practices and emerging browser technologies at jQuery Conference.
Ben Alman is the author of numerous jQuery plugins and open source projects such as Grunt, the popular task-based command line build tool for JavaScript projects. He also writes and presents at conferences around the world.
Irene is a JavaScript developer, occasionally venturing into the lands of Ruby on Rails and node.js. When she isn’t contributing or writing about Backbone.js, she’s working on projects that focus on creating engaging interactive visual displays of information.
Mike Pennisi is a contributor to a number of open source projects, including JSHint, Socket.io, and Backbone.LayoutManager. His primary interests at Bocoup are user interface design, privacy and peer to peer networking on the Open Web.
Ashley is a former NYC Teaching Fellow, former lead instructor of the Flatiron School’s NYC Web Development Fellowship, and current instructor at Bocoup. Ashley pairs a wealth of education background with a passion and prowess for web development.
So you've learned a good amount about JavaScript, jQuery, HTML, CSS and how it all works together. At Roost, you'll see how to apply that knowledge in a sane workflow that takes advantage of coding, testing, and code-organization best practices. We'll walk you through the steps of assessing application structure, working with revision control, creating tests for your application, writing modularized and testable code, organizing your project and working collaboratively with others.
You can expect to be guided through the process of architecting, testing, and collaboratively building a web-application. Along the way, we'll dive into some of the complexities in JavaScript, software libraries like jQuery and Backbone.js, writing good unit tests and more. The focus, however, will be on the application of this knowledge - by the end of Roost, you'll have an application template that we'll have built together over the course of two days. While it's helpful to have prior programming experience with JavaScript, don't worry if you aren't already building web applications from scratch - seeing what you need to learn in action is a great jumping off point for further learning.
We're always improving our materials - as such, the schedule below is subject to change.
8:00 – 9:00
9:00 – 9:45
An overview of architectural principles in building web applications. We'll also talk about how the Model-View-Controller (MVC) pattern translates to web applications.
Ashley Williams
9:45 – 10:15
We'll receive requirements for our application from our client. But before we dive into coding, we'll show how we break those requirements down in to discrete tasks, impose engineering standards on ourselves, and translate all of those requirements into something a developer can understand.
Mike Pennisi
10:15 – 10:45
10:45 – 11:45
We'll take what we've learned from our requirements and what we know about application architecture to set up our project folders and core files, automated task runner (Grunt), and source control (Git).
Ben Alman
11:45 – 12:30
We have chosen Backbone as the framework to express the application we will build. We'll talk about how Backbone conforms to and/or alters the MVC pattern we discussed earlier.
Irene Ros
12:30 – 1:30
1:30 – 2:00
We'll create a model, and set it up to communicate with our API endpoint.
Irene Ros
2:00 – 2:30
We'll create a view, set connect it to our model, and see how it all looks together on the page!
Ashley Williams
2:30 – 3:00
Large JavaScript applications can quickly
become unwieldy if we keep all of our code in a single file. On
the other hand, juggling dozens of <script>
tags leads to what is commonly known as "dependency hell." We'll
show how we can prevent both of these outcomes with a healthy dose
of vitamin AMD.
Mike Pennisi
3:00 – 3:30
3:30 – 4:45
We've pulled a single piece of data into our app, but we're often going to want to pull in a number of objects. We'll talk about the things we need to consider when rendering an entire collection of data to the page. We also need a way to move between all of these pages we've created, so we'll wire up our client-side URL routing.
Ashley Williams
4:15 – 5:00
Ask us your burning questions!
8:00 – 9:00
9:00 – 10:00
At this point, we're successfully getting data into our application and rendering our pages, but we've created some redundant code. We'll finish up the day by refactoring our current codebase to keep things DRY (Don't Repeat Yourself).
Irene Ros
10:00 – 10:30
Our designer gave us a ton of great styles for our app! How do we use a modular approach in creating our style sheets, handle browser differences, and keep from repeating code? We'll use a framework (Stylus) to keep ourselves in line!
Ben Alman
10:30 – 11:00
11:00 – 11:30
So far, our app reads data from the server pretty nicely. How do we get data from the user into the server? We'll talk about form input and how to handle that in our application.
Irene Ros
11:30 – 12:00
Form data is great and all, but what if we
want to use snazzy new browser features? We'll talk about how we
use HTML5 APIs like navigator.getUserMedia
, and
how to implement graceful degradation in browsers that do not
support features we may want to use.
Mike Pennisi
12:00 – 1:00
1:00 – 2:15
Unit testing is an integral part of writing stable software. We'll talk about why it's important, when to test, and how we do it in JavaScript using Mocha, Chai, and Sinon.
Mike Pennisi
2:15 – 3:00
Sometimes unit testing just isn't enough, particularly in the browser environment. We'll start test-driving using browser automation with Selenium, and learn how to write tests that navigate through the connected pieces of our app.
Mike Pennisi
3:00 – 3:30
3:30 – 4:15
Our app can read and write data, but now we want to let our users delete it. If we follow the principles we've learned up to this point, it should be a piece of cake…
Ashley Williams
4:15 – 4:45
Even if our application completely works, we're not done yet. We need to optimize our application for the production environment and transfer over the Internet. We'll cover some simple things we can do to improve performance and the deployment process.
Ben Alman
4:45 – 5:00
We've got a fast, stable application that we can be proud of. But what now? Now that we have something we're happy with, how does that inform our next application? And the next one after that? What are the biggest things from the last two days that you can take home and implement in your own projects?
Ashley Williams
In the heart of the city, Sheraton Chicago Hotel & Towers puts you within reach of some of the best restaurants and attractions Chicago has to offer.
Sheraton Chicago Hotel & Towers
301 East North Water Street
Chicago, IL 60611
Deluxe Room Price: $309 $269/night + free Wi-Fi for Roost attendees for a limited time
Bocoup believes that everyone deserves a thoroughly pleasant conference experience, regardless of who they are. We adhere to the Bocoup Code of Conduct and expect that all of our speakers, attendees, and volunteers will do the same. Please take the time to read the full document.
Bocoup is dedicated to providing a harassment-free experience for everyone, regardless of gender, sexual orientation, disability, physical appearance, body size, race, or religion. We do not tolerate harassment of event participants in any form. Sexual language and imagery is not appropriate for any venue, including talks. Participants violating these rules may be sanctioned or expelled from the event without a refund at the discretion of the event organizers.
If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of conference staff.
If the matter is especially urgent, please call/contact one of these individuals:
Conference staff will be happy to help participants contact local law enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe for the duration of the conference. We value your attendance.