Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Design of Interfaces
Search
Christian Schlensker
March 20, 2013
Technology
1
100
Design of Interfaces
Christian Schlensker
March 20, 2013
Tweet
Share
More Decks by Christian Schlensker
See All by Christian Schlensker
React Native and VR
wordofchristian
0
170
Other Decks in Technology
See All in Technology
品質視点から考える組織デザイン/Organizational Design from Quality
mii3king
0
210
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
20
10k
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
120
Modern Linux
oracle4engineer
PRO
0
150
AIをプライベートや業務で使ってみよう!効果的な認定資格の活かし方
fukazawashun
0
100
AIエージェントで90秒の広告動画を制作!台本・音声・映像・編集をつなぐAWS最新アーキテクチャの実践
nasuvitz
3
320
Rustから学ぶ 非同期処理の仕組み
skanehira
1
150
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
1k
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
480
【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方 / 大吉祥寺.pm 2025
arthur1
1
890
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド
zozotech
PRO
0
540
AI時代を生き抜くエンジニアキャリアの築き方 (AI-Native 時代、エンジニアという道は 「最大の挑戦の場」となる) / Building an Engineering Career to Thrive in the Age of AI (In the AI-Native Era, the Path of Engineering Becomes the Ultimate Arena of Challenge)
jeongjaesoon
0
220
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
A better future with KSS
kneath
239
17k
Side Projects
sachag
455
43k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Balancing Empowerment & Direction
lara
3
620
A Modern Web Designer's Workflow
chriscoyier
696
190k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Navigating Team Friction
lara
189
15k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
For a Future-Friendly Web
brad_frost
180
9.9k
Transcript
Design of Interfaces
http://xkcd.com/1168/ TAR It seams there’s a XKCD any example you
need to make. > There’s a command line program that I use much more often than TAR and that’s GIT
Git
> git branch make_it_suck_less A lot of the appeal of
git, really it’s showcase feature was this concept of easy branching. It’s really easy to do.
> git branch make_it_suck_less > git branch make_it_suck_less --delete A
lot of the appeal of git, really it’s showcase feature was this concept of easy branching. It’s really easy to do.
> git push origin :make_it_suck_less What does this command do?
If you didn’t already know... could you tell just by looking at it?
When I first saw this command I had to squint
really hard to try and figure out why it worked this way.
> git push origin :make_it_suck_less What does this command do?
If you didn’t already know... could you tell just by looking at it?
WHAT ARE YOU PUSHING?
> git push origin :lemming
push
> git push origin :make_it_suck_less WHY THE COLON
Torvalds!!!! When I first saw this command I had to
squint really hard to try and figure out why it worked this way.
> git push origin local_branch:make_it_suck_less It makes more sense after
you’ve seen this. This is me pushing my local branch to update the remote branch.
> git push origin <null>:make_it_suck_less
> git push origin --delete make_it_suck_less Why is this better?
Mental Models vs Implementation Models
Mental Model Implementation Model Hide the implementation
Mental Model Implementation Model How we think something works Hide
the implementation
Mental Model Implementation Model How we think something works How
it actually works Hide the implementation
Mental Model Implementation Model How we think something works How
it actually works > git push origin --delete make_it_suck_less Hide the implementation
Mental Model Implementation Model > git push origin <null>:make_it_suck_less How
we think something works How it actually works > git push origin --delete make_it_suck_less Hide the implementation
None
Delete
OO Design and BDD
Information hiding is the principle that users of a software
component (such as a class) need to know only the essential details of how to initialize and access the component and do not need to know the know the details of the implementation. — Timothy Budd, 1991
NOT THE CODE YOU THINK YOU NEED WRITE THE CODE
YOU WISH YOU HAD
None
None
Closing Thoughts