Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Engineering Software is Different from Hardware
Introduction
Product Lifetimes: Independent Products vs. Continuous Improvement
Development Processes: Waterfall versus Agile
Assurance: Testing and Formal Methods
Productivity: Conciseness, Synthesis, Reuse, and Tools
Software as a Service
Service Oriented Architecture
Cloud Computing
Fallacies and Pitfalls
Guided Tour of the Book
How NOT to Read this Book
Concluding Remarks: Engineering Software is More Than Programming
To Learn More
Exercises
SaaS Architecture
100,000 Feet: Client-Server Architecture
50,000 Feet: Communication—HTTP and URIs
10,000 feet: Representation—HTML and CSS
5,000 Feet: 3-Tier Architecture & Horizontal Scaling
1,000 Feet: Model-View-Controller Architecture
500 Feet: Active Record for Models
500 feet: Routes, Controllers, and REST
500 feet: Template Views
Fallacies and Pitfalls
Concluding Remarks: Patterns, Architecture, and Long-Lived APIs
To Learn More
Exercises
Ruby & Rails Basics
Overview and Three Pillars of Ruby
Everything is an Object
Every Operation is a Method Call
Classes, Methods, and Inheritance
All Programming is Metaprogramming
Blocks: Iterators, Functional Idioms, and Closures
Mix-ins and Duck Typing
Make Your Own Iterators Using Yield
Rails Basics: From Zero to CRUD
Databases and Migrations
Models: Active Record Basics
Controllers and Views
Debugging: When Things Go Wrong
Form Submission: New and Create
Redirection and the Flash
Finishing CRUD: Edit/Update and Destroy
Fallacies and Pitfalls
Concluding Remarks: Designing for SOA
To Learn More
Exercises
Validating Requirements: BDD and User Stories
Introduction to Behavior-Driven Design and User Stories
SMART User Stories
Introducing Cucumber and Capybara
Running Cucumber and Capybara
Lo-Fi User Interface Sketches and Storyboards
Enhancing Rotten Potatoes
Explicit vs. Implicit and Imperative vs. Declarative Scenarios
Fallacies and Pitfalls
Concluding Remarks: Pros and Cons of BDD
To Learn More
Exercises
Verification: Test-Driven Development
Background: A RESTful API and a Ruby Gem
FIRST, TDD, and Getting Started With RSpec
The TDD Cycle: Red–Green–Refactor
More Controller Specs and Refactoring
Fixtures and Factories
TDD for the Model
Stubbing the Internet
Coverage Concepts and Unit vs. Integration Tests
Other Testing Approaches and Terminology
Fallacies and Pitfalls
Concluding Remarks: TDD vs. Conventional Debugging
To Learn More
Exercises
Improving Productivity: DRY and Concise Rails
Software Maintenance: Using Agile Methods on Legacy Software
Working In Teams vs. Individually
Software Design Patterns for SaaS
Operations: Performance, Scaling, and Practical Security
Looking Backwards and Looking Forwards
Looking Backwards
Perspectives on SaaS and SOA
It Takes Time
Evaluating the Book in the Classroom
Last Words
To Learn More
Using the Bookware
Alpha Edition Guidance
Overview of the Bookware
Using the Bookware VM With VirtualBox
Working With Code: Editors and Unix Survival Skills
Getting Started With Git for Version Control
Getting Started With GitHub or ProjectLocker
Deploying to the Cloud Using Heroku
Fallacies and Pitfalls
To Learn More
← Prev
Back
Next →
← Prev
Back
Next →