Knowing it all
Rachel Andrew | Web Summer Camp
Hello
Progressive Web Apps, React, ES6, the
Web of Things, Browser APIs, PSR-7,
Functional Programming, Symfony,
ElasticSearch, Varnish, research, UX,
adaptive content, interaction design ...
Business development, business finance,
systems adminstration, Puppet,
Docker, Apache and MySQL, Perl, PHP,
JavaScript, CSS, HTML ...
What is CSS today?
What is it to be a front-
end developer today?
Burnout
We want to know what is
the right thing to do
We want absolute answers.
How would I get started
today?
It's 1989
Dancers do not need to use
computers
The web gave me a
community
“Knowing HTML” was a
marketable skill
Learning something one
day
Teaching it to someone else the next
The web gave me a new
career.
The web was accessible, and
had a culture of sharing
knowledge.
Font tags and nested tables
What does this do?
function MM_reloadPage(init) {
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==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);
The “Netscape Resize Fix”
If the user resized their browser window positioned
elements lost their positioning values.
The “fix” was to reload the browser window on resize.
… basic support of existing W3C
standards has been sacrificed in
the name of such innovation,
needlessly fragmenting the Web
and helping no one.
1
http://archive.webstandards.org/mission.html
Our goal is to support these core
standards and encourage browser
makers to do the same, thereby
ensuring simple, affordable access
to Web technologies for all.
1
http://archive.webstandards.org/mission.html
Encouraging designers to
care about web standards
Front-end developer
2005?
Browser bugs expert
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.
1
http://www.webstandards.org/2013/03/01/our-work-here-is-done/
Browser vendors are
implementing standard
things in a standard way
Innovation happens
through the standards
process
Creating a better layout
system for the web
A story that begins in 1996
"Traditional page-layout authoring tools
for desktop publishing allow you to create
and move and resize document frames.
You can then view and alter properties of
these frames, e.g. the background color
and the style of borders if any."
- https://www.w3.org/TR/NOTE-
layout
"these policies cause an element to
define an invisible grid, in which
descendant element will be placed."
- https://www.w3.org/TR/
2005/WD-css3-
layout-20051215/
Interoperability means
browser vendors work
together on the standards
that form the web
Show stopping browser
bugs when doing
straightforward things in
modern browsers are rare
The industry has grown up
Studies show that a todo list is
the most complex JavaScript app
you can create before a newer,
better framework is invented.
1
http://www.allenpike.com/2015/javascript-framework-fatigue/
We’re creating complexity
Hiding the simple languages of the web
behind tooling and process
How do I learn all this
stuff?!
You don't
Not every tool /
technique / "best" practice
is for you
Learn the skill of assessing
what is useful for you
Learn the core skills
Learn these first
4 HTML
4 CSS
4 JavaScript fundamentals
4 Accessibility fundamentals
4 Basics of HTTP
Understand the
foundations
and you'll find everything else much
easier
Learn how to Learn
Learn the key things
properly
Don't fall into the habit of skimming
the surface and copying & pasting
What problems do we have?
Does this address an actual
problem?
Is the person evangelizing
this working on projects
like ours?
Collect ideas
Learn enough so you will recognise
when you have the problem that they
solve
Collect experts
When you do need to learn they can
point you to real-world tested
experience
New is not always better
Beware shiny object syndrome
There is a lot of great work
being developed on very
simple stacks
We all end up with
4 HTML
4 CSS
4 JavaScript
... how you get there is just process.
That said ...
Leave a little space to play with cool
stuff
(because it's fun)
Knowing your core skills
brings opportunity to
contribute
Giving back
If you have been doing this
for a year, there is someone
6 months in who you are
ideally placed to help.
You will learn by teaching
Contribute to the
standards that make up the
web
The CSS Working Group
What do authors think?
Making a difference to a
CSS Specification
can be as straightforward as writing
about how you want to use it
Learn how the modern
standards process works
To make an impact on a
specification you need to do
so while it is still
experimental
Vendor Prefixes are going
away
The Path of Flexbox vs.
Grid Layout
Flexbox - developed using
Vendor Prefixes
Vendor prefixes don't know
an author from an end-user
Browsers implemented and
then the spec changed
and changed again
How do we create a flex container?
display: box
display: flexbox
display: flex
Flex shorthand for the flex items?
box-flex: 1
flex: 1
Defining a Grid the old way
#grid {
display: grid;
grid-definition-columns: 150px 1fr;
grid-definition-rows: 50px 1fr 50px
}
The new way
#grid {
display: grid;
grid-template-columns: 150px 1fr;
grid-template-rows: 50px 1fr 50px
}
The problem with feature
flags
Developing behind flags
means authors need to be
proactive in testing
It's a feature not a bug
If authors do not offer
feedback
the final specification will reflect our
needs as understood by people who do
not build websites.
Contributing to the open
web platform
is like giving future you a gift
Contribute to CSS Specifications
4 Specifications are discussed on GitHub at https://
github.com/w3c/csswg-drafts
Contribute to
interoperability
Raise bugs with browsers
GridBugs
https://github.com/rachelandrew/
gridbugs
Learn to create a reduced
test case
This is a skill that will save time in
your own work and also in logging
issues with any project
Keep learning
Learning. Contributing
Excited about the future.
Thank you!
Slides and links at
https://rachelandrew.co.uk/speaking/
event/web-summer-camp-2017
@rachelandrew

Web Summer Camp Keynote