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'S BUSINESS NEED
    • The dev adapts to the client
    • The client doesn't become a dev

 

  • Real users are different from you
    • Click everywhere and break things
    • Notions change worldwide (what's a name ?)

 

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

Fils unique mais c'est important quand même

COM with colleagues (1/3)

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

COM with colleagues (2/3)

  • 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 !

COM ... how ? (3/3)

  • Start with the big picture
  • Go towards the finer grains
    • Decreasingly ;)
  • Usable in all circumstances
    • Clients
    • Colleagues
    • Family & friends ;)
    • INTERNET !
  • Be honest !
    • Impostor syndrome
       

Task Management

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

Trello / Pivotal Tracker / Jira / else ?

Choose a tool you (will) like to use !

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, ParisRubyWorkshop
  • WomenOnRails, MentorsOnRails
  • ZikMe

Q & A

Guillaume FAURE-DUMONT

@guillaume_fd

Se tenir informé:

  • RubyWeekly
    • & StatusCode ?

 

Continuer à coder:

  • CodeWars
  • Repl.it

 

Explorer de nouveaux rivages:

  • ES6 (Javascript mais en bien)
    • THP Next ?
  • Autres langages ?

## 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

L'histoire des noms :
    https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/

Amy Cuddy "Fake it until you make it" :
    https://www.youtube.com/watch?v=Ks-_Mh1QhMc

Beyond code @ THP Winter 2022

By Guillaume Faure-Dumont

Beyond code @ THP Winter 2022

  • 309