Slide 1

Slide 1 text

FRONTEND OPS THE DARK SIDE OF WEB DEVELOPMENT

Slide 2

Slide 2 text

@cef62 github.com/cef62 Senior frontend engineer @ Staff member of Verona Frontenders Italian React & Angular Communities Maintainer Matteo Ronchi

Slide 3

Slide 3 text

WHY SHOULD YOU TAKE CARE 
 OF YOUR PROJECTS?

Slide 4

Slide 4 text

Several hours spent everyday working on them They are your responsibility You know them and they know you!

Slide 5

Slide 5 text

How you keep… 
 …your source code

Slide 6

Slide 6 text

How you keep… …your projects scaffold

Slide 7

Slide 7 text

FOR YOUR SOURCE CODE

Slide 8

Slide 8 text

Carefully select what dependencies will be used Avoid poorly maintained projects You (should) write tests

Slide 9

Slide 9 text

FOR YOUR AUTOMATION SCRIPTS

Slide 10

Slide 10 text

Use scaffold generator tools Use boilerplates without really understanding them or knowing their dependencies Add 3rd party modules just because they work Declare your dependencies using SemVer ranges (^3.2.1, ~1.0.1) instead of specifying exact versions Don’t write any test

Slide 11

Slide 11 text

IT’S TIME TO TAKE CONTROL BACK

Slide 12

Slide 12 text

GIVE SOME LOVE TO YOUR PROJECTS SCAFFOLD! IT WILL BE PAID BACK TENFOLD!

Slide 13

Slide 13 text

ABSTRACT YOUR AUTOMATION SCRIPTS

Slide 14

Slide 14 text

decouple automation scripts from the underlying tools expose clean APIs, easy to use and understand write automation scripts as plain node modules invoke the modules directly or use npm scripts to do it if you feel fancy you could create your own command prompt

Slide 15

Slide 15 text

Test your commands Your web services are tested Your SPA is tested Why your automation scripts are not tested?

Slide 16

Slide 16 text

THINK ACROSS SYSTEMS

Slide 17

Slide 17 text

Most development teams are distributed across the 3 major OS Use cross-OS tools to avoid unwanted constraints for your projects (cross-env, shelljs, dthree/cash) Point out clearly in your docs when you are using different tools for different OS

Slide 18

Slide 18 text

Document it! Document every command available to your project For small projects a good readme file should be enough For bigger projects create multiple markdown files and use GitBook to compile them Document regularly and from the start of a project life!

Slide 19

Slide 19 text

SOMETIMES IS GOOD TO BE PICKY!

Slide 20

Slide 20 text

Try to use 3rd party tools only when they are really useful If you must have dependencies choose stable and well maintained ones Try to write your automation scripts whenever possible less problems for unmaintained deps lower technical debt of your projects

Slide 21

Slide 21 text

REGULAR MAINTENANCE

Slide 22

Slide 22 text

Your web project is alive, it will always change and evolve Your dependencies are alive too, keep an eye on them A balance between change and stability is required

Slide 23

Slide 23 text

Check and update often your projects dependencies Do it weekly, it’s great and is really unobtrusive In a team of 3 developer every one will spend few hours per month to maintain your projects dependencies updated Improve your team knowledge of projects maintenance

Slide 24

Slide 24 text

Summary Abstract your automation scripts Test your automation scripts Document your automation scripts Keep your dev-dependencies updated

Slide 25

Slide 25 text

Thanks! @CEF62