Illuminote, start of a new adventure
So I have an app idea, and I’ve been thinking about it for a while. I’m just writing to solidify my learning, but I welcome anyone who’s reading this and wants to learn alongside with me! Would love to learn with people during this journey.
Anyways, hopefully by writing stuff down I learn things better, and remember them longer (plus I can always refer to what I’ve touched upon before). I hate researching and reading up on topics, forgetting them later, and having to find all the links again to relearn. Blogging is a great way to organize and remember everything, especially with linking and tagging features. Anyways, let’s get started.
Set up general development environment
- Download Xcode and Homebrew. Follow this guide to get everything set up. Homebrew is extremely useful, and correctly creates software paths so you don’t have to manually set everything up yourself. For example, by downloading sublime using Homebrew, you can use the
subl
command in the terminal to open up files from the terminal. Downloading Sublime manually yourself would not have auto-set the necessary paths for that command. - Other useful tools to download and learn how to use:
- Emacs:
- Visit the emacs wiki for in depth information.
- To install emacs on os-x correctly, check out this stackoverflow post.
- Vim:
- You can update your system’s vim by using Homebrew!
- Emacs:
Set up ruby on rails environment on mac
- Download rbenv and ruby-build plugin. Rbenv is a ruby version manager, and lets you use different versions of ruby for different projects. (2)
- Download and initialize git repo locally. Search google to do this yourself 😛
- Set up ssh keys for security.
- Initialize ruby on rails app.
The rails testing environment
Don’t skimp out on this, and actually learn the ropes. I learned about RSpec, Cucumber, Capybara, FactoryGirl in CS 169, but tbh I kind of glossed over major facets of the details, because I just wanted to code. However, I know it’s important to start off right, so I’m going to make a concerted effort to learn it right this time.
So the way I’m writing this, I’m trying to pull from a wide variety of sources and organize info in a meaningful way. I do not claim to know everything about what I write about (won’t keep from trying though… if I make mistakes please be kind to me. I write to learn after all). Read the sources for the details.
Different Software Development Paradigms: (agile vs scrum vs …, bdd vs tdd vs …)
- Waterfall Methodology
- Agile Philosophy
- Kaban Methodology
- Scrum Methodology
Different Testing Paradigms: (bdd vs tdd vs …)
- TDD (Test Driven Development)
- BDD (Behavior Driven Development)
- ATDD (Acceptance Test Driven Development)
- DDD (Domain Driven Development)
Different Types of Test Scopes: (unit vs functional vs …)
- Unit Testing
- Integration Testing
- Functional Testing
- Acceptance Testing
Testing Frameworks for Rails: (Lawrence’s guide to the tools)
- RSpec
- Minitest
- Test::Unit
Testing Tools for Rails: (Lawrence’s guide to the tools)
- Capybara
- Cucumber
- Shoulda
- Flexmock
- Ffaker
- VCR
Managing Test Data: (fixtures vs factories)
- Fixtures
- FactoryGirl (Factories)
- Abstract Factories?
- Seams (term coined by Martin Fowler). A place you can change the app’s behavior without changing the source code. Isolate behaviors of code from other code it depends on. (mocks vs stubs vs ….)
- Dummy:
- Fakes:
- Stubs:
- Mocks:
Okay, I kind of did a lot of research and still need to read up (and actually remember all the terminology). I’ll call it a day, and next time round I’ll set up the testing environment, and sketch out the first steps towards implementing my app.
No Comments