Clean Code (PDF version)
Upcoming SlideShare
Loading in...5
×
 

Clean Code (PDF version)

on

  • 11,465 views

Slides about Robert C. Martins book "Clean Code: A Handbook of Agile Software Craftsmanship". (PDF version)

Slides about Robert C. Martins book "Clean Code: A Handbook of Agile Software Craftsmanship". (PDF version)

Statistics

Views

Total Views
11,465
Views on SlideShare
11,465
Embed Views
0

Actions

Likes
3
Downloads
236
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Clean Code (PDF version) Clean Code (PDF version) Presentation Transcript

  • Clean Code Hendrik Ebel 10. Mar. 2009 1
  • TopicsMotivationMeaningful NamesCommentsFunctions By Robert C. Martin & Co.Objects and Data Structures Object Mentor Inc.Error HandlingUnit Tests 2
  • What is Clean Code?One Question ... 3 View slide
  • What is Clean Code? One Question ... elegant efficient simple and direct readability easy to enhance like a well-written prose care no duplications was made for the problem...many answers! 4 View slide
  • What is Clean Code? One Question ... elegant efficient simple and direct readability easy to enhance like a well-written prose care no duplications was made for the problem...many answers! 5
  • MotivationThe Total Cost of Owning a Mess productivity vs. time 6
  • Aims of Clean Codeproducing better code@author writing for readerscode has to be kept clean over time„Leave the campground cleaner thanyou found it.“ 7
  • Meaningful Names 8
  • Meaningful Namesvariable, function or class names shouldanswer all the big questions: why it exists? what it does? how it is used? 9
  • Meaningful NamesIf a name requires a comment, then thename does not reveal its intentavoid disinformation dont use type information in names (example: personList) Spelling similar concepts similarly is information. Using inconsistent spellings is disinformation. 10
  • Comments 11
  • Good and Bad Comments•Public API Comments •Redundant Comments•Legal Comments •Noise Comments•Explanation of Intent •Position Markers•Warning for •Closing Brace Comments Consequences •Commented-Out Code•real TODO Comments •Obsolete Comments •Nonpublic JavaDocs 12
  • Comments„Purpose of a comment is to explain codethat does not explain itself.“Comments do not make up for bad codeDon‘t use a comment when you can use afunction or a variableComments can contains lies 13
  • Functions 14
  • FunctionsThe goal is to tell the story of thesystem.„The first rule of functions is that theyshould be small.“Do One Thing!Stepdown Rule 15
  • FunctionsIdeal number of arguments is zeroMore than three should‘t be usedanywayFlag arguments are ugly.Avoid output argumentsSide effects are lies. 16
  • Objects and Data Structures 17
  • Objectshide data and expose functionseasy to add new objectshard to add new behaviors 18
  • Data Structuresexpose data and have no meaningfulfunctionseasy to add new behaviorshard to add new data structuresChoose the approach that is best for the job. 19
  • Error Handling 20
  • Error HandlingWrite code that is clean and rebustSee error handling as a separate concernUse exceptions rather than return codesUse unchecked exceptions 21
  • Error HandlingDon‘t return NULL throwing an exception or a special case object like „Collections.emptyList()“Don‘t pass NULL InvalidArgumentExceptions or assert better: forbid passing NULL by default 22
  • Unit Tests 23
  • Unit TestsTest Driven Development (TDD) test and production code are written together tests just a few seconds aheadKeeping tests cleanTest code is just as important asproduction code. 24
  • Unit TestsOne Assert or Single Concept per TestF.I.R.S.T. Fast Independent Repeatable (in any environment) Self-Validation Timly 25
  • Thanks - Any Questions? 26
  • SourcesBook „Clean Code“ by Robert C. Martin ISBN: 0132350882Images http://www.failblog.org http://www.flickr.com/photos/hugovk/199425487/ http://www.flickr.com/photos/jackpot321/1809424991/ http://www.osnews.com/story/19266/WTFs_m 27