Engineering Technology

Illuminote: Getting Started

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:
    • Vim:
      • You can update your system’s vim by using Homebrew!

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.

You Might Also Like

No Comments

Leave a Reply