+ All Categories
Home > Documents > Designing code

Designing code

Date post: 10-Nov-2014
Category:
Upload: steve-smith
View: 4,324 times
Download: 0 times
Share this document with a friend
Description:
Learn to design clean, beautiful, and usable code.
Popular Tags:
58
Ordered List Steve Smith Great Lakes Ruby Bash, Lansing MI April 17, 2010 Designing Code Beautiful, simple, and usable text.
Transcript
Page 1: Designing code

Ordered ListSteve SmithGreat Lakes Ruby Bash, Lansing MI

April 17, 2010

Designing CodeBeautiful, simple, and usable text.

Page 2: Designing code

Things to Cover1. Why design your code?

2. Balance

3. Clarity

4. Harmony

5. Wrap Up

Page 3: Designing code

Why Design Code?Reasons to care about beauty.

Page 4: Designing code

“Robert L. Peters

Design is the application of intent - the opposite of happenstance, and an antidote to accident.

Page 5: Designing code

Your Own SanityDesign for

Page 6: Designing code

Future GrowthDesign for

Page 7: Designing code

User ExperienceDesign for the

Page 8: Designing code

Things to Cover1. Why design your code?

2. Balance

3. Clarity

4. Harmony

5. Wrap Up

Page 9: Designing code

BalanceAlignment and Order

Page 10: Designing code

Increase ScanabilityBalance Using Grids to

Page 11: Designing code
Page 12: Designing code
Page 13: Designing code
Page 14: Designing code
Page 15: Designing code

config.gem 'bcrypt-ruby', :lib => 'bcrypt', :version => '2.1.1'config.gem 'RedCloth', :lib => 'redcloth', :version => '4.2.2'config.gem 'mongo_ext', :lib => false, :version => '0.19.1'config.gem 'will_paginate', :version => '2.3.11'config.gem 'state_machine', :version => '0.8.0'config.gem 'newrelic_rpm', :version => '2.10.6'config.gem 'mongo_mapper', :version => '0.7.1'config.gem 'mime-types', :lib => 'mime/types'config.gem 'exceptional', :version => '2.0.1'config.gem 'rspreedly', :version => '0.1.11'config.gem 'multipass', :version => '1.1.4'config.gem 'defensio', :version => '0.9.1'config.gem 'sanitize', :version => '1.1'config.gem 'maruku', :version => '0.6.0'config.gem 'faker', :version => '0.3.1'config.gem 'navvy', :version => '0.1.0'config.gem 'less', :version => '1.2.21'config.gem 'wand', :version => '0.2.1'config.gem 'rio', :version => '0.4.1'

Page 16: Designing code

LucidityBalance Method Sizes for

Page 17: Designing code
Page 18: Designing code
Page 19: Designing code

Things to Cover1. Why design your code?

2. Balance

3. Clarity

4. Harmony

5. Wrap Up

Page 20: Designing code

ClaritySimplicity and Understanding

Page 21: Designing code

Consistent NamesClarify Using

Page 22: Designing code

class Post key :title, Stringend

class Category key :name, Stringend

class Theme key :moniker, Stringend

Page 23: Designing code

class Post key :title, Stringend

class Category key :title, Stringend

class Theme key :title, Stringend

Page 24: Designing code

class Site key :authorizations, Array def add_authorization(user) # do stuff endend

class Account key :memberships, Array def add_membership(user) # do stuff endend

Page 25: Designing code

class Site key :authorizations, Array def add_user(user) # do stuff endend

class Account key :memberships, Array def add_user(user) # do stuff endend

Page 26: Designing code

Positive GrammarClarify Using

Page 27: Designing code

class User include MongoMapper::Document key :name, String key :email, String key :inactive, Boolean, :default => false

end

Page 28: Designing code

class User include MongoMapper::Document key :name, String key :email, String key :inactive, Boolean, :default => false

def active? !inactive? end

end

Page 29: Designing code

class User include MongoMapper::Document key :name, String key :email, String key :inactive, Boolean, :default => false

def active? !inactive? end

def activate! self.inactive = false end

end

Page 30: Designing code

class User include MongoMapper::Document key :name, String key :email, String key :active, Boolean, :default => true

end

Page 31: Designing code

class User include MongoMapper::Document key :name, String key :email, String key :active, Boolean, :default => true def inactive? !active? end end

Page 32: Designing code

class User include MongoMapper::Document key :name, String key :email, String key :active, Boolean, :default => true def inactive? !active? end

def activate! self.active = true end end

Page 33: Designing code

Method ExtractionClarify Using

Page 34: Designing code

def do_something_important if foo? && foo == bar && baz != wik # do something endend

Page 35: Designing code

def do_something_important # are specific conditions met? if foo? && foo == bar && baz != wik # do something endend

Page 36: Designing code

def do_something_important if conditions_met? # do something endend

def conditions_met? foo? && foo == bar && baz != wikend

Page 37: Designing code

Things to Cover1. Why design your code?

2. Balance

3. Clarity

4. Harmony

5. Wrap Up

Page 38: Designing code

HarmonyIntegration and Experience

Page 39: Designing code

IntegrationHarmonize with

Page 40: Designing code

End User Application

Your Code

Page 41: Designing code

End User Application

Your Code

WARNING

Page 42: Designing code

End User Application

Your Code

Page 43: Designing code

User ExperienceHarmonize with

Page 44: Designing code

“Alan Perlis

Simplicity does not precede complexity, but follows it.

Page 45: Designing code

<title> Project Title - Portfolio - Ordered List</title>

Page 46: Designing code

item.breadcrumbOur First Thought

Page 47: Designing code

<title> {{ item.breadcrumb | map: 'title' | join: ' - ' }}</title>

Page 48: Designing code

Too Much CodeOur Next Thought

Page 49: Designing code

{% title %}

Page 50: Designing code

<title> Project Title - Portfolio - Ordered List</title>

Page 51: Designing code

{% title '//' %}

Page 52: Designing code

<title> Project Title // Portfolio // Ordered List</title>

Page 53: Designing code

Things to Cover1. Why design your code?

2. Balance

3. Clarity

4. Harmony

5. Wrap Up

Page 54: Designing code

Wrapping UpA Few Takeaways

Page 55: Designing code

Write, Then SimplifyWrite, Then Simplify, then

Page 56: Designing code

Design the ExperienceBefore You Write the Code

Page 57: Designing code

Simplicity WinsRemember that

Page 58: Designing code

Ordered List

Thank [email protected]

Steve SmithGreat Lakes Ruby Bash, Lansing MIApril 17, 2010

@orderedlist


Recommended