Why Clarity?

Designing and Maintaining Software (DAMS)
 Louis Rose

Habitable Software Leaner

Avoids Duplication

Less Complex

Clearer

Loosely Coupled

More Extensible

More Cohesive

???

Code is for reading “We want the reading of code to be easy, even it makes the writing harder. (Of course, there’s no way to write code without also reading it, so…)” - Bob Martin
 Clean Code
 Prentice Hall, 2009

User Experience “A person of average (or even below average) ability and experience can figure out how to accomplish something without it being more trouble than it’s worth.” - Steve Krug
 Don’t Make Me Think
 New Riders, 2014

Style Guides

A set of conventions, agreed upon by
 some community, for using a programming
 language or library (in a given context).

Style Guides

https://github.com/bbatsov/ruby-style-guide

Summary Other people (including “future you”)
 will spend much maintenance time
 reading your code, docs, tests, etc. Clear artefacts are designed with
 the developer’s experience in mind:
 don’t make me think!

Designing and Maintaining Software (DAMS) - GitHub

“We want the reading of code to be easy, even it makes the writing harder. (Of course, there's no way to write code without also reading it, so…)” - Bob Martin. Clean Code. Prentice Hall, 2009. Page 5. Page 6. User Experience. “A person of average (or even below average) ability and experience can figure out how to.

417KB Sizes 0 Downloads 116 Views

Recommend Documents

Designing and Maintaining Software (DAMS) - GitHub
ASTs are tree data structures that can be analysed for meaning (following JLJ in SYAC 2014/15) ... More Cohesive. Avoids Duplication. Clearer. More Extensible.

Designing and Maintaining Software (DAMS) - GitHub
%w.rack tilt date INT TERM..map{|l|trap(l){$r.stop}rescue require l};. $u=Date;$z=($u.new.year + 145).abs;puts "== Almost Sinatra/No Version has taken the stage on #$z for development with backup from Webrick". $n=Module.new{extend. Rack;a,D,S,q=Rack

Designing and Maintaining Software (DAMS) - GitHub
Clear Documentation. Designing and Maintaining Software (DAMS). Louis Rose. Page 2. Bad documentation. Misleading or contradictory find_customer(id). CustomerGateway. Used to look up a customer by their customer number. Page 3. Bad documentation. Red

Designing and Maintaining Software (DAMS) - GitHub
R&D: sketch habitable solutions on paper, using UML. 4. Evaluate solutions and implement the best, using TDD. Probably start again at 3. 5. Give to the product owner to validate. Probably start again at 1. 6. Put into production for customers to eval

Designing and Maintaining Software (DAMS) - GitHub
Observers. Designing and Maintaining Software (DAMS). Louis Rose. Page 2. Page 3. Delivery people need to know when pizzas are ready class Pizza def initialize(delivery_person). @delivery_person = delivery_person end def bake cook # blocking call. @d

Designing and Maintaining Software (DAMS) - GitHub
When we are testing the way that a unit behaves when a condition is met, use a stub to setup the condition. Solution: use stubs for queries class Subscription ... def bill(amount) unless payments.exists(subscription_id: id) payments.charge(subscripti