CSC322.01 2015F, Class 04: Mentor Meetings (Tentative)
Overview
- Preliminaries.
- Admin.
- Upcoming Work.
- Extra Credit.
- Questions.
Preliminaries
Admin
Questions
Tell Us About Yourself
IY
Indepndent contracter, with knowledge of Ruby on Rails
Highlights: Passing on interesting things to students. not knowing
Written books.
Managed plans.
Run and bikes.
AL
Independent contractor doing Web development with Ruby on Rails.
Really likes doing this stuff.
Working on a project that lots of people work on is cool, particularly
when you get to deal withs calability.
Bikes and plays tennis and travels.
CS
Works for consulting company. Lead developer. Work on PD site for teachers
Does Rails and lots of other things. A highlight is a start up they did that
runs more or less what they do.
WB
Works at cloud hosting platform. Has worked on cloud stuff for many
ears. Hasn't worked on rails in like six years. Does much more behind
the scenes. Deals much more with bigger picture than day-to-day programming
issues, with the junior programmers do. Cares a lot about API design.
Has had a long involvement with open source software. Gave him exposure
to lots of different kinds of things. Wrote cool Ruby tool that let him
meet lots of people, do lots of things, etc.
What are key tools in your work?
- Everyone needs a program development environment - vi emacs IDE
- Everyone needs a high-level understanding of a version control system.
- Everyone needs to be used to running a testing framework.
- Production pathway
- Dev/Prod parity
- Common developer terms: The Development Environment vs. The
Production Environment. E.g., You will be firing up a
little Rails environment to do your tsting and development.
But at some time, you will be putting your code out on another
machine that's out there somewhere (Cloud, Server Racket,
our Closet)
- "There's a lot you can do to screw up your code."
- The development copy is the pristine copy that no one will touch.
You make your changes on your own copy.
- Docker and Vagrant and such let you set up copies of the Production
Environment on your dev machine.
- Use a similar model for your development in this. Don't put on production
until you're really confident.
- Continuous integration - Every time you check in code.
- Write tests - There is a quality to your tests.
- Communication tools - Group chat as a way to communicate and to
get notification from your various toolsa
- Code review
- Keeping track of outstanding tasks - Pivotal, Trello, etc.
- "You spend a lot of time in your terminal; be confident/comfortable."
- Browser tools
- Testing Web page in every browser.
- Capibara Web Kit
Do you use scaffolding?
- It can be nice for getting set up.
- But it can put in a lot of cruft
- Look at things like
rails generate, but use it carefully
- Bundler is good for doing dependencies in rails app
Additional
- We're here to help you with the overwhelming stuff
- And because while we learned it incrementally, we understand the
bigger picture.
Things to discuss in your small groups
- Big picture - How should we arrange the parts of the system
- Big picture - Where are you now? Where do you want to be at the
end of the semester? Where do you want the project to be at the end
of the semester. What's our plan to get from the start to the end?
- What are good ways for you to get and find help?
- How should we communicate?
- How do we start looking at the bigger projec?
- What gems are there that will be usefl to our project?
- What do the mentors want out of the the larger project?