code stock

51
Bootcamp Babies Can Make Apps Too Erin Page Web Application Developer at Reax @ErinMPage

Upload: erin-page

Post on 11-Feb-2017

71 views

Category:

Software


0 download

TRANSCRIPT

Bootcamp Babies Can Make Apps Too

Erin PageWeb Application Developer at Reax

@ErinMPage

Leaving Bootcamp

• MVC

• CRUD

• Small Apps

• Small teams/projects

Employers hire bootcamp grads for their potential

What to Expect When You are Programming

Tools of the Trade

✦ User Stories

✦ Pair Programming

✦ Code Reviews

New Concepts

✦ State Machines

✦ Presentation Layer

✦ Data Modeling

User Stories

Template

Types of User Stories

• Features

• Improvements

• Bugs

Who Writes User Stories?

• Business Analysts

• Developers

• Designers

• Product Managers

• Whoever finds the bug

Estimation

• Broader == Less Accurate estimates

• Estimation is hard

• Estimation is even harder as a junior engineer

Acceptance Criteria

KanBan Boards

https://trello.com/b/SDiioiGj/bootcamp-babies-job-application-app

Tools of the Trade

• Pivotal Tracker

• Jira

• Team Foundation Server (TFS)

• Trello

Pair Programming

When? Why?

• Troubleshooting

• Instructing

• New Features

• White boarding

• Intro to new project

Keys to Success

• Start typing!!

• Communicate a LOT

• Pair with different people

• Healthy Debate

• Take Breaks

What to Avoid

• Observing ONLY

• Assuming silence == understanding

Tools of the Trade

• ScreenHero

• TeamViewer

• Google Hangouts

• Apple Screen Sharing

• AppleTV

Pairing with a Senior Engineer

• Patience

• Be prepared

• Be respectful of time

• Local environment

Code Reviews

Who reviews code?

• EVERYONE!

Junior Recaps Concepts

Senior Reviews Junior

Best Practices

• Critique, don’t criticize

• Before implementation

• Teaching moments

• Review often

• Ask questions

Conceptually Going Beyond CRUD

Presentation Layer

Task

• Reduce logic in views

https://github.com/drapergem/draper

Presentation Layer improves the “V” in MVC

• View Partials: Code reuse

• Remove view logic from models

• Remove business logic from views

Remove View Logic from Model

Conditionally Show a Header

Put them together…

Sometimes what we present is JSON, not HTML

API Entity

https://github.com/ruby-grape/grape-entity

State Machines

Task

• I want applicants to see where they are in the application process

• I want admins to be able to perform some actions based on other actions

Junior Dev Solution

• multiple boolean fields

• long conditionals

State Machine Solution

https://github.com/aasm/aasm

Business Logic

Implement Business LogicAdmin can reject anytime during the process

Can only be hired IF have been interviewed

https://github.com/aasm/aasm

Applicant Views State

Admin Views State

Data Modeling

Task

• Geocode the address

Junior Dev Solution

Thought about…

Refactor

Normalized

Other concepts

• Ternary Operators

• Inheritance

• Composition

• Asynchronous tasks

• Continuous Integration

• Session variables

• Unit Testing

• Test Driven Development

Summary

• Stimulate or Stagnate

• Always Be Learning