Slide 1

Slide 1 text

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

Slide 15

Slide 15 text

LOGIC EXAMPLE
    $(document).ready(function () { fetchPages(); // Defined elsewhere // Handle changing page $('.pagination') .on('click', 'a', function () { $('form input[name=page]').val($(this).text()); fetchPages(); return false; }); });

    Slide 16

    Slide 16 text

    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) --}}

    Slide 18

    Slide 18 text

    SHARE THE LOAD... Especially with testing

    Slide 19

    Slide 19 text

    WHAT CAN YOU DO?

    Slide 20

    Slide 20 text

    No content

    Slide 21

    Slide 21 text

    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

    Slide 23

    Slide 23 text

    No content