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
- 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/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"
- Naming Convention => NC
- 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
- You'll probably fail ;)
- 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
filename: product-name.plugin-ver.sion.filetype.css
Beyond code @ THP 2019
By Guillaume Faure-Dumont
Beyond code @ THP 2019
- 651