Beyond code

Work in teams, companies

and... real life ;)

Guillaume FAURE-DUMONT

@guillaume_fd

Learning

vs.

Team / Company

  • Chain of command
  • History (code lives!)
    • Legacy code
    • Future of code

COMMUNICATION

IS

KEY

COM with the client

  • Always work for the CLIENT BUSINESS NEED
    • The dev adapts to the client
    • The client doesn't become a dev

 

 

  • Code reflects business
  • Tests titles are comprehensible to the client!

Fils unique mais c'est important quand même

COM with colleagues (1/2)

  • Including
    • Past ones (they already left)
    • Futur ones
      • Some you'll never meet (but who knows)

COM with colleagues (2/2)

  • Code comments (very debatable !)
  • Agree on COMMON GROUNDS
    • Naming Convention => NC
      • Languages have constrainsts
      • You'll end up with the same NC as everybody !
      • "Convention over configuration"
  • Workflow common ground too !

Task Management

  • Increase motivation
  • Reduce chaos
    • but sometime chaos is good !
  • Dependency of work between people

Trello / Pivotal Tracker / Jira / else ?

GIT

Branches branches branches ...

https://danielkummer.github.io/git-flow-cheatsheet/

Do NOT use git flow for now !!

  • Never lose a line of code
  • Never erase your colleague's work
  • GO BACK IN TIME!
    • Get rid of commented out code!

GIT

git status
git checkout -b 06951_my_incredible_feature
git push  => HELL YEAH !!
...
git status
git add ###
git commit -m "[#06951] Adds validation to m..."
git status
git push
git checkout master
git pull --prune
git checkout -
git merge master
...
git push

Continuous Integration - CI

  • Code (almost) only forward

CircleCI / GitLab / Travis, etc...

TESTS

DEPLOY NOW !

  • Going live is the only (real) way to test your code
  • PROD environment is different from your laptop
    • "It works on my laptop"
  • Understand your new problems
    • DNS
    • Logs
    • Database updates
    • Backups
    • SSL
    • ...
  • ReDeploy as often as possible !

Continuous Delivery - CD

Probably only for companies but ... who knows ? ;)

  • Automatically deploy code based on prerequisites
    • Easy testing
    • Quality confidence
  • Beware of costs !!
    • Especially with services...

Final words

  • DO SOMETHING !
    • You'll probably fail ;)
      • That's how you LEARN
    • Improve
  • REPEAT
  • About real final projects
  • ParisRB, workshops, WoR
  • MentorsOnRails, ZikMe

Q & A

Guillaume FAURE-DUMONT

@guillaume_fd

## Ruby

Module & Classes:     UpperCamelCase
methodes:                   snake_case
variable:                       snake_case
constantes:                  UPPER_CASE

## JS

Module & Classes:     UpperCamelCase
methodes:                   camelCase
variable:                       camelCase
constantes:                  UPPER_CASE
filename:                      product-name.plugin-ver.sion.filetype.js

## CSS

BEM !         http://getbem.com/            .block__element--modifier
             NO NESTING !
filename:                      product-name.plugin-ver.sion.filetype.css

Beyond code @ THP 2018

By Guillaume Faure-Dumont

Beyond code @ THP 2018

  • 732