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

Task Management

Methodology

  • Depends on team's size and structure
  • Tickets / Waterfall (en V) / TDD / SCRUM

Tools

  • Depends on team's size, structure and methodology
    • Trello(/WeKan) / GitLab / GitHub
    • 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

Real life code

  • Tests: code to check your code ;)
    • Automate it !
  • Real users are different from you
    • Click everywhere and break things
    • Notions change worldwide (what's a name ?)
  • New problems occur
    • Server/DB load
    • SSL / HTTPS / Security
    • Logs
    • Hardware differences :/

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

Made with Slides.com