Skip to Content
Lean Architecture for Agile Software Development
book

Lean Architecture for Agile Software Development

by James Coplien, Gertrud Bjørnvig
August 2010
Intermediate to advanced
376 pages
10h 6m
English
Wiley
Content preview from Lean Architecture for Agile Software Development

Appendix F. Account Example in Squeak

This is a fileout of Trygve Reenskaug's Squeak implementation of the BankTransfer example. The standard Squeak text format is somewhat unreadable, so the file has been hand edited to simplify reading. (Actual program statements are numbered, all other lines are comments.)

The appendix is broken up into sections that correspond to the views of the program supported.

A method in one object is triggered by a message that is sent from a method in the same or another object. The Squeak syntax is simple, if unusual. In each example below, a corresponding Java-like expression is added below it.

Assignment to a variable is done with :=

foo := 6.
foo = 6;

Comments are enclosed in double quotes: "This is a comment"

There are three kinds of messages: Unary, binary, and keyword. Unary messages are executed first, then binary, and finally keyword messages.

Unary message:

account balance
account.balance()

Binary message:

a + b

Here, a is an object, + is a message selector, b is an argument. In Java we would just say a+b.

Keyword message:

ctx transfer: 500 fromAccount: 1111 toAccount: 2222
ctx.transfer:fromAccount:toAccount:
(500, 1111, 2222).

Colon is a permissible character in message selectors (method names). A class is created by sending a message to its superclass:

Object subclass: #BB5Testing
    instanceVariableNames: ' '
    category: 'BB5Bank-Testing'

All methods return a value. The default is self if nothing else is specified:

^returnValue
return returnValue

Statements are ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Agile Software Architecture

Agile Software Architecture

Muhammad Ali Babar, Alan W. Brown, Ivan Mistrik
Lean Software Development: An Agile Toolkit

Lean Software Development: An Agile Toolkit

Mary Poppendieck, Tom Poppendieck

Publisher Resources

ISBN: 9780470684207Purchase book