Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The business of front-end development

Rachel Andrew
September 04, 2015

The business of front-end development

Rachel Andrew

September 04, 2015
Tweet

More Decks by Rachel Andrew

Other Decks in Business

Transcript

  1. Full Stack Fest The business of front-end development "This is

    for Everyone" by Nick Webb - Flickr: DSC_3232. Licensed under CC BY 2.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:This_is_for_Everyone.jpg#mediaviewer/File:This_is_for_Everyone.jpg
  2. Rachel Andrew Co-founder of Perch CMS: http://grabaperch.com and founder of

    edgeofmyseat.com Web developer, writer and speaker Find me at rachelandrew.co.uk On Twitter: @rachelandrew
  3. The web is an accessible medium. We can protect that,

    or we can break it. I choose to protect it.
  4. My tasks include … • bookkeeping • completing baffling forms

    from the government • writing Puppet Manifests • coding PHP • writing documentation • writing and giving presentations & workshops • front-end development
  5. The “Netscape Resize Fix” <script type="text/javascript"> <!-- function MM_reloadPage(init) {

    if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(ap pVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth! =document.MM_pgW || innerHeight! =document.MM_pgH) location.reload(); } MM_reloadPage(true); //--> </script>
  6. http://www.webstandards.org/2013/03/01/our-work-here-is-done/ “Thanks to the hard work of countless WaSP members

    and supporters (like you), Tim Berners- Lee’s vision of the web as an open, accessible, and universal community is largely the reality. While there is still work to be done, the sting of the WaSP is no longer necessary. And so it is time for us to close down The Web Standards Project.”
  7. http://www.allenpike.com/2015/javascript-framework-fatigue/ “Studies show that a todo list is the most

    complex JavaScript app you can build before a newer, better framework is invented.”
  8. Replacing divs … <div class="header"> <h1>My website</h1> <div class="nav"> </div>

    </div> <div class="article"> </div> <div class="sidebar"> </div> <div class="footer"> </div>
  9. … with new semantic elements. <header> <h1>My website</h1> <nav> </nav>

    </header> <article> </article> <aside> </aside> <footer> </footer>
  10. Web Video Text Tracks Format (WebVTT) WEBVTT 1 00:00:22.230 -->

    00:00:24.606 This is the first subtitle. 2 00:00:30.739 --> 00:00:34.074 This is the second. 3 00:00:34.159 --> 00:00:35.743 Third https://developer.mozilla.org/en/docs/ Web/API/Web_Video_Text_Tracks_Format
  11. Time-dimensional Pseudo-classes :current :past :future :current(p, li, dt, dd) {

    background: yellow; } :past(p, li, dt, dd) { background: transparent; color: #999999; }
  12. CSS Grid Layout .sidebar { grid-area: sidebar; } .content {

    grid-area: content; } .header { grid-area: header; } .wrapper { display: grid; grid-template-columns: 100px 10px 100px 10px 100px; grid-template-rows: auto; grid-template-areas: "header header header header header" "sidebar . content content content"; }
  13. Using the Susy Mixins. .ag1 { @include span(2 of 10);

    } .ag2 { @include span(6 of 10); @include clearfix; } .ag3 { @include span(2 of 10 last); }
  14. Grid Layout lets you place elements on the Grid without

    calculations. /* declare a grid and set up a 10 column grid with gutters */ .container { width: 90%; margin: 0 auto 0 auto; display: grid; grid-template-columns: [col] 4.25fr repeat(9, [gutter] 1fr [col] 4.25fr ) [gutter]; grid-template-rows: auto repeat(5, 100px); } /* boxes positioned like so */ /* heading in row 1 full width */ h1 { grid-column: col / span col 10; grid-row: 1 / 2; } /* left hand sidebar */ .ag1 { grid-column: col / span gutter 2; grid-row: 2 / 3; }
  15. My fear is that due to our reliance on frameworks

    we will stop pushing for better solutions.
  16. Standardising on tools should not be at the expense of

    learning HTML, CSS and JavaScript.
  17. Use your tools and frameworks lightly. Be ready to put

    them aside when they don’t suit a project.
  18. Don’t become an expert in one brand of hammer. Become

    a master carpenter. Develop timeless skills.
  19. Is it responsible to use a brand new framework on

    a site you will complete then hand over?
  20. Who is the audience? • Internal or External? • Can

    we make any assumptions about technology used to access?
  21. http://aaron-gustafson.com/notebook/who-should-pay/ “When I look around, I see our community spending

    a lot of time coming up with new tools and techniques to make our jobs easier. To ship faster. And it’s not that I’m against efficiency, but I think we need to consider the implications of our decisions. And if one of those implications is making our users suffer—or potentially suffer—in order to make our lives easier, I think we need to consider their needs above our own.”
  22. Will this tool … • Save me time? • Cause

    accessibility issues? • Slow the site down on mobile? • Limit the user agents that will be able to use the core experience?
  23. This is for everyone "This is for Everyone" by Nick

    Webb - Flickr: DSC_3232. Licensed under CC BY 2.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:This_is_for_Everyone.jpg#mediaviewer/File:This_is_for_Everyone.jpg
  24. http://www.bbc.co.uk/guidelines/futuremedia/accessibility/ html/progressive-enhancement.shtml “a robust site or application in the more

    traditional sense minimises its dependencies. The minimum dependency for a web site should be an internet connection and the ability to parse HTML.”
  25. What is the minimum that I need to ship? How

    can I ensure that minimum protects the core experience for everyone?
  26. http://mortoray.com/2015/02/25/invented-here-syndrome/ “Are you afraid to write code? Does the thought

    linger in your brain that somewhere out there somebody has already done this? Do you find yourself trapped in an analysis cycle where nothing is getting done? Is your product mutating to accommodate third party components? If yes, then perhaps you are suffering from invented-here syndrome.”
  27. http://www.objectmentor.com/resources/articles/dip.pdf “High level modules should not depend upon low-level modules.

    Both should depend upon abstractions. Abstractions should never depend upon details. Details should depend upon abstractions.”
  28. Progressively enhanced UI • JavaScript implementation based on the regular

    HTML5 Video element • Static maps that become draggable and zoomable - avoiding creating a dependency on one maps provider or library • Ordering items via a form input - that become drag and drop if the user has JavaScript
  29. http://sixtwothree.org/posts/the-practical-case-for- progressive-enhancement “A 100% pure progressively-enhanced website may not be

    practical on every single project you will ever encounter. While that sort of purity can exist, it’s unlikely in many business scenarios. Budgets, timelines: these things exist. Progressive enhancement isn’t a zero sum game; it’s a continuum, just like the Web.”
  30. • Learn (and teach!) core skills. HTML, CSS, JavaScript •

    Maintain an interest in emerging specifications • Take care that you are not clinging to outdated or unhelpful abstractions • We are no longer browser bug wranglers, instead we should be experts in performance especially as the web becomes ever more mobile
  31. • Choose your tools and frameworks on a case by

    case basis • Understand the compromises • Don’t reinvent wheels … • … but beware “invented here syndrome” • Use progressive enhancement to protect the core experience while shipping quickly, build from there.
  32. George Bernard Shaw “We don’t stop playing because we grow

    old; we grow old because we stop playing”