Got a chance to introduce my favorite book to team
DesignOfEverydayThings - What I learned as a developer
In this series of notes: https://twitter.com/ajavadeveloper/status/1145615948277112833
I only notes part of "Fundamental Principles of Interaction"
It's just a small unit of this book, but already help me A LOT.
Whenever I'm confused of designing, I re-read this book to get more ideas.
Because I'm a developer, so the most important thing it taught me is:
Why we need write clean code, how a clean code look like? How to know a design is good or bad.
- Affordance and Signifier: That's why we need good naming.
- Ex. visible signifier
StringUtils.trimToEmpty
StringUtils.substringBetween
- Ex. Invisible
String dateString = PrivateDateUtils.toDateString( date ); // What is the format?
@SuperAnnotation // Things become invisible when there are many decision made at runtime, developer won't know.
public class NormalClass {}
- Mapping and Conceptual Models: Developers always handling mapping and conceptual models
PersonDao.persist( person ); // Clear model, dev expect it will persist
Person.save(); // May be a little confuse
personService.find( id ); // When a find method persist data due to other reason such as queue full or statistics, it become confusing
- Feedback: We need many feedback, no matter in code or in performance tunning or monitoring
personService.find( id ); // It's better to response quickly
personService.find( id, timeout, TimeUnit ); // It's better to provide timeout when things may become long
public void find(String id) {
try {
personDao.someErrorMayHappen();
} catch (Exception ex) {
// Eveything is find, treat as no data
// Eveything is find, treat as no data
}
}
- When there are too many error, we even unable to know the feedback is valid or not

DesignOfEverydayThings - Conceptual Models
- A conceptual model is an explanation, usually highly simplified, of how something works.
- Ex. There are folders in screen, but it doesn't means there is really a folder in disk
- Ex. User browse data in PC and think it's a data in PC, but data is in cloud actually.
- Ex. User browse a page and think there is a real page, but it's runtime generated

- A product has many kinds of conceptual models
- Ex. User's conceptual model
- Ex. Advanced driver's conceptual model
- Ex. Engineer's conceptual model

- Ex. Designer's conceptual model

- Conceptual models are often inferred from the device itself. Some models are passed on from person to person. Some come from manuals.
- Some conceptual models come from experience, so wrong conceptual models let devices hard to use
- How things work come from user perceived structure
- Signifier
- Affordance
- Mappings
- Ex. Scissors
- The number of actions are limited
- Holes for putting something into
- Only fit for finger(s)
- Only accept possible fingers
- Only one thing can do after putting fingers
- Actions are visible
- Anti-Ex. Digital Watch
- Many buttons, unable to know conceptual models
- Not visible, need read manual
- Sometimes click longer time, sometimes need press more than one button at the same time
- Conceptual models provide a way to predicate what things will going to behave and what will not happen
- A bad conceptual model let user can only try to remember what will happen in every actions
- Anti-Ex. Freezer control. It shows deepfreeze and fresh food are separated when it's not.It may provided wrong conceptual model when freezer may affect refrigerator

DesignOfEverydayThings - Feedback
- Anti-ex. or repeatedly push the pedestrian button at a street crossing? => Because user doesn't know whether system got his request or not.
- Feedback—communicating the results of an action—is a well-known concept from the science of control and information theory.
- You can't hit a ball without seeing the target
- You can't pick up a glass with hand without the feedback.

- Feedback must be immediate: even a delay of a tenth of a second can be disconcerting. If the delay is too long, people often give up, going off to do other activities.
- It wastes resource to do one thing that user doesn't wait for it anymore.
- Too much feedback become annoying.
- Ex. When performance tuning, we need major number to alarm. It will be useless if we alarm everything
- Backseat driver: too much feedback to driver. May distract people or just turn it off
- Use one simple signal producer to reduce cost, let people not easy to remember (Beep code)
- Beep code definition may be different in different machines. We'll be confused when those machines beep together.
- Feedback has to be planned and prioritized.
- Feedback is essential, but it has to be done correctly. Appropriately.
DesignOfEverydayThings - Mapping
- Mapping is the relationship between the elements of two sets of things
- Ex. Switch mapping Lights in office
- Mapping the layout of controls and displays

- Ex. Steeling a car, rotate the steering wheel clockwise to cause the car to turn right.

- Ex. Tank is different,its designed to control wheel speed because it uses track

- It doesn't matter whether these conceptual models are accurate: what matters is that they provide a clear way of remembering and understanding the mappings.
- Natural mapping leads to immediate understanding.
- Ex. to move an object up, move the control up.

- Ex. Make light control mapping same as lights in room
- Ex. Automobile Seat Adjustment control

- Note the "natural" is specific to a particular culture.
DesignOfEverydayThings - Signifier
- https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-1.html
- https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-2.html
- https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-3.html
- https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-4.html
- https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-5.html
- https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-6.html
- https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-7.html
DesignOfEverydayThings - Signifier - 7
-
Otherwise, we need use our own creativity and imagination.
- Misleading signifier: a row of vertical pipes across a service road in a public park
- Pipes blocks cars
- Park vehicle go through the pipes
- Affordances: possible interactions between people and environment.
- Perceived affordance often acts as signifier, but they can be ambiguous
- Signifiers signal things, indicate what actions are possible and how to be done. Signifier must be visible.
訂閱:
文章 (Atom)
Lessons Learned While Benchmarking vLLM with GPU
Recently, I benchmarked vLLM on a GPU to better understand how much throughput can realistically be expected in an LLM serving setup. One ...
-
spring.jpa.open-in-view spring boot 的 property, spring.jpa.open-in-view 預設是開啟的 開啟的話, OpenSessionInViewInterceptor 就會介入 收到 web request 的時候...
-
Introduction One day, Cassandra stop listening for thrift client until restart it manually. After checking Cassandra log, found it enco...
-
題目 每個伺服器支援不同的 TPM (transaction per minute) 當 request 來的時候, 系統需要馬上根據 TPM 的能力隨機找到一個適合的 server. 雖然稱為 "隨機", 但還是需要有 TPM 作為權重. 解法 別名演算法...