TRANSCENDENCE
WHERE DOES THE BACKEND STOP AND THE
FRONTEND BEGIN?
Jamie Hurst
Slide 2
Slide 2 text
WHY I'M HERE
Specialist web development company
Build web apps, APIs and integrations
Developer for over 8 years
Backend developer, mostly...
Work with a team of multi-talented developers
Slide 3
Slide 3 text
WHERE TO BEGIN...
Slide 4
Slide 4 text
ONCE UPON A TIME...
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
WEB DEVELOPERS
Web and graphic designers handled the actual designing
Everything else was left to the web developer...
Backend logic, HTML, CSS, JavaScript, Flash!
Slide 7
Slide 7 text
WHAT CHANGED?
Devices
Complexity of languages
Need for clear role separation and specialisms
JavaScript's role
Slide 8
Slide 8 text
JAVASCRIPT HAS EVOLVED
Slide 9
Slide 9 text
THEN IT BECOME THIS...
$.ajax({
url: "test.html",
done: function (data) {
// Do something
},
error: function() {
alert("something broke");
}
});
Slide 10
Slide 10 text
NOW, WE HAVE...
A myriad of frameworks and libraries (Angular, React,
Backbone, etc.)
Web applications scripted entirely from JavaScript
ECMAScript 6 - developing JavaScript further
Slide 11
Slide 11 text
JAVASCRIPT IS BLURRING THE
BOUNDARIES
What should a frontend developer know about
JavaScript?
Where does the backend developer need to get involved?
JavaScript now IS a server-side language! (Node.js)
This will continue to change...
Slide 12
Slide 12 text
MY EXPERIENCE
Strictly my opinions only; open for discussion
Slide 13
Slide 13 text
FRONTEND ROLE
NOT DESIGN
HTML
CSS
JavaScript?
Templates?
Slide 14
Slide 14 text
LOGIC
APIs are defined by the backend developer
They can be implemented by the frontend developer
I write stubs and examples
TEMPLATING
Many, many templating languages (raw PHP, Blade, Twig,
etc.)
That's not even mentioning any of the JavaScript based
ones
I write examples and guides where things aren't obvious
Slide 17
Slide 17 text
TEMPLATING EXAMPLE
{{-- Variables available: --}}
{{--
pages - All available pages as array, contains [id, url, name]
currentPage - Current page ID
user - Logged in user object
search - Any previous search (false if not available)
--}}
BACKEND DEVELOPERS
Don't make assumptions
Don't overcomplicate things
A little example goes a long way
Use a templating system, not raw PHP
Do not touch the markup or CSS...
Slide 22
Slide 22 text
FRONTEND DEVELOPERS
Don't be afraid of templating languages
Work with backend developers on the JavaScript
Communication - no person is an island