The Why And How of Front-End Architecture. Feel the rhythm, feel the rhyme, get on up, it s front-end time

Similar documents
This tutorial has been prepared for beginners to help them understand the basic functionalities of Gulp.

THE GREAT CONSOLIDATION: ENTERTAINMENT WEEKLY MIGRATION CASE STUDY JON PECK, MATT GRILL, PRESTON SO

What is Standard APEX? TOOLBOX FLAT DESIGN CARTOON PEOPLE

Build Powerful FrontEnd Workflows with PostCSS. Guide to writing/generating cutting edge CSS

niyaaz parker Summary Experience front end developer at Dstv digital media

Chapter 2 Web Development Overview

<?php function preprocess_drupalcon($presentation) { if ($drupal && $ionic) { if ($ionic[ app ] = Megalomaniac ) { create $presentation } } }?

The main website for Henrico County, henrico.us, received a complete visual and structural

ANGULAR 2.0 READY? STACK UP YOUR STACK...

Webpack. What is Webpack? APPENDIX A. n n n

Introduction to Web Concepts & Technologies

Web Development for Dinosaurs An Introduction to Modern Web Development

EmberJS A Fitting Face for a D8 Backend. Taylor Solomon

TOP DEVELOPERS MINDSET. All About the 5 Things You Don t Know.

WebApp development. Outline. Web app structure. HTML basics. 1. Fundamentals of a web app / website. Tiberiu Vilcu

Your essential APEX companion. Marko apexbyg.blogspot.com

The vision provider. The vision provider. The newbie. The newbie. The vision provider is often a creative director for a digital team.

The Visual Studio 2015 Checklist

A hitchhiker s guide to technical SEO auditing

Adding content to your Blackboard 9.1 class

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

Adapt Learning: Adapt Framework Concept and Vision

Tools. SWE 432, Fall Design and Implementation of Software for the Web

Weebly 101. Make an Affordable, Professional Website in Less than an Hour

DrupalGovcon July 20th, 2016

Challenge: Working with the MIS2402 Template

Close Your File Template

Introduction to Using NPM scripts as a Build Tool. 1. 1

DESIGNING RESPONSIVE DASHBOARDS. Best Practices for Building Responsive Analytic Applications

We aren t getting enough orders on our Web site, storms the CEO.

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE.

Free Web Development Tools: The Accessibility Toolbar

Java FX 2.0. Dr. Stefan Schneider Oracle Deutschland Walldorf-Baden

Sass. The Future of Stylesheets.

Web Host. Choosing a. for Your WordPress Site. What is web hosting, and why do you need it?

style type="text/css".wpb_animate_when_almost_visible { opacity: 1; }/style

Chapter 1 - Development Setup of Angular

CREATING WEBSITES. What you need to build a website Part One The Basics. Chas Large. Welcome one and all

Automated Testing of Tableau Dashboards

One of the fundamental kinds of websites that SharePoint 2010 allows

DrupalCon Barcelona Preston So September 22, 2015

Drupal 8 THE VIDER ITY APPR OACH

Seema Sirpal Delhi University Computer Centre

Webpack 2 The last bundler you would need in Vijay Dharap, Principal Architect, Infosys

The Structure of the Web. Jim and Matthew

7+ GRAPHICS LIBRARIES TO ENHANCE YOUR EMBEDDED ANALYTICS

MOBILIZE YOUR ENTERPRISE WITH TELERIK SOLUTIONS

Summer Assignment for AP Computer Science. Room 302

International Research Journal of Engineering and Technology (IRJET) e-issn: Volume: 05 Issue: 05 May p-issn:

Going Agile. UK TMF April 2011

Audience: Info Workers, Dev

AJAX Programming Overview. Introduction. Overview

Interactive XML Visualization - using XSLT 2.0 on the Browser. Phil Fearon - Saxonica

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015

Brunch Documentation. Release Brunch team

Using DRY (Don't Repeat Yourself) Principle in Drupal 8 Site Life Cycle

Making Sling Grunt Or How to Integrate Modern Front-End Development with Sling. Philip Hornig (Publicis Pixelpark), Michael Sunaric (Netcentric)

Wordpress 101. Christy Costello & Becca Sayre

Last modification of document: by Tomasz Dobrzyński

Selecting Your Wordpress Theme

Guide to buying a better. build create

CREATE SASSY WEB PARTS. Developer Guide to SASS usage in SPFx

What Is React Native?

Deep Dive on How ArcGIS API for JavaScript Widgets Were Built

Web Designer vs Web Developer What s the Difference?

A Motivating Example: Building a Static Website

Modern Web Application Development. Sam Hogarth

The Essence of Node JavaScript on the Server Asynchronous Programming Module-driven Development Small Core, Vibrant Ecosystem The Frontend Backend

Build & Launch Tools (BLT) Automating best practices for enterprise sites

learn programming the right way

Hello, welcome to creating a widget in MyUW. We only have 300 seconds, so let s get going.

Jason Rundell. Full stack development: Genesis Land. Full Stack Developer: Portfolio

WordPress Crash Course

DELIZIOSO RESTAURANT WORDPRESS THEME

How to Read AWStats. Why it s important to know your stats

Installing VS Code. Instructions for the Window OS.

Simple AngularJS thanks to Best Practices

State of jquery Fall John Resig

How To Get Your Word Document. Ready For Your Editor

RESPONSIVE WEB DESIGN IN 24 HOURS, SAMS TEACH YOURSELF BY JENNIFER KYRNIN

JavaScript Fundamentals_

What Are CSS and DHTML?

termite Release 0.0.2

SEO Tips for WordPress/ WooCommerce

Unifer Documentation. Release V1.0. Matthew S

Think like an Elm developer

Sucuri Webinar Q&A HOW TO IDENTIFY AND FIX A HACKED WORDPRESS WEBSITE. Ben Martin - Remediation Team Lead

The first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below.

EXPLORE MODERN RESPONSIVE WEB DESIGN TECHNIQUES

Etanova Enterprise Solutions

Documentation And Collaborating With Developers

Contents at a Glance

Contents. The Mobile Delivery Gap The Choice to Go Hybrid What is a Hybrid App? Comparing Hybrid vs. Native Why Hybrid?...

Scalable and Modular Architecture for CSS. A flexible guide to developing sites small and large. by Jonathan Snook

Quick.JS Documentation

University of North Dakota

Biocomputing II Coursework guidance

Frontend UI Training. Whats App :

how about a combination of self-service bi and guided analytics for your customers? become a partner be part of our jomash success

Transcription:

The Why And How of Front-End Architecture Feel the rhythm, feel the rhyme, get on up, it s front-end time

Who are you people anyway? Wes Ruvalcaba @wesruv Carwin Young @carwin Sally Young @justafish

Strategy, Design and Development

Front End Architecture [frənt end ˈärkəˌtek(t)SHər] noun The design for how to work on the Front End of a project. A strategy that helps developers implement and collaborate; and what standards, libraries and tools are being used.

The Byproduct is (something like) Coding standards Documentation, Style Guides, etc. Implementation Guidelines File Organization Tools for Building/Testing/Processing Included Libraries, Plugins, etc

Organization & Planning

There is no logic in this place

Some kind of plan is better than no plan at all.

Where should I put: This fancy new template file? This Sass code? Custom JavaScript? JS Library?

So organized

How to plan

Things to organize: Templates Preprocessor files (Sass / Less) CSS Properties (masochists only) JavaScript libraries, helper functions, etc Literally whatever else you have going on

EVERYTHING.

HTML, Templates, and preprocess You can organize this!

Do these functions or files rely on code provided by a module? On a large project, you should probably keep it with that module On a really small project, it might be better all in one place like the theme

Small Decisions Eat Lots of Time

while $decisions < $over_engineering { } $developer_sanity++;

JavaScript You already know this

CSS As front-endy as it gets

Some kind of plan is better than no plan at all. Me, earlier in this talk

CSS Methodology Types Component - highly modular, discrete chunks of CSS / Markup Utility - the lego version of CSS, individual classes that do very few things (think.underline, or.red) Hybrid - a mix of the two (good for the environment)

WOULD YOU RATHER MODIFY MARKUP? Utility Methodologies++ WOULD YOU RATHER MODIFY STYLES? Component Methodologies++ WANT TO PLAY IT SAFE? Drupal 8 already has standards. Use those.

There is still no logic in this place

Set aside time for architectural decisions & keep them simple

Some kind of plan is better than no plan at all. Someone Great, earlier in this talk

Build tools

Why Adopt Build Tools? What are the advantages?

Adds a layer of abstraction Work in compiled languages How you work how code is delivered Code can be DRYer and compartmentalized Can help bridge gap between skill levels

Automate tasks Computers love repetitive menial tasks!

Linting Repetitive command line tasks Minification Compiling Browser-prefixing Reloading the browser when a file changes

Task Runners e.g. Grunt & Gulp

Common front End Task Might be Compile Autoprefix Minify Save the end product Reload browser

Caution all who enter

If you re new to build tools There s a learning curve Getting your first setup will come with bumps The documentation for some isn t great, look for articles

General Warnings There will be (some) maintenance cost Don t Over-engineer Beware long build times! (But this can almost always be addressed) Front End Build Tools are still young, there will be change, but it is calming down Can increase developer specialization

How do we decide when we should (not) use Build tools

Small teams / Projects Set up time can be prohibitive It can hamper make cross-functional team members BUT if you have a common set of problems that build tools can solve, it can be really helpful

Larger Teams / Projects Build tools really help building for scale in team and code base Helpful to have a point person for maintenance Make sure it s adding value, not frustration Watch for long build times Requiring a lot of command line knowledge Document, Document, Document!

Package Managers

What does this do? Where does it come from? What version is it?

Package Managers Used for external dependencies e.g. JavaScripts, CSS Frameworks

Downsides

Testing Visual Testing including Regression Testing Unit tests Code sniffing, linting etc

Front End Frameworks e.g. Bootstrap, Susy Grids, Yeti, Foundation

Benefits A lot of testing, grunt work, and coding already done Great Documentation done A lot of support Built to help devs of all Front End skill levels build interfaces A lot of FE Arch decisions made for you

Downsides Stick to the design they give you or else! Code bloat could be an issue Specificity wars A lot of FE Arch decisions made for you

When might you adopt a framework? Pragmatism over idealism; crunches in time, team abilities, QA or other factors Supporting a lot of other devs that aren t as front end savvy

TL;DL Some kind of plan is better than no plan at all Build tools are good (probably?) Package managers yes please! Testing is good but people are good too! Frameworks - use at your own risk

Q & A