• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Rocket Circus on Code Review
 

Rocket Circus on Code Review

on

  • 566 views

 

Statistics

Views

Total Views
566
Views on SlideShare
525
Embed Views
41

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 41

http://rocketcirc.us 41

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

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

    Rocket Circus on Code Review Rocket Circus on Code Review Presentation Transcript

    • code review jss, 2011-03-24
    • Announcements• Follow rocketcirus on Twitter• Deployment Circus next Monday
    • Methods• Pair Programming / Over-the-shoulder• Process driven human review• Automatic Tools• Not Testing
    • GoalsCode Critique:• Uncover bugs• Improve UX for downstream• Higher quality software
    • HowTo• Challenge Assumptions• Challenge Decisions• Both in Design & Implementation• Refer to Standards - at least some work of your own• Play the Game (but do not forget the praise)
    • Strategy: Pre-Code• Gather Requirements• Identify Consumer• Read the design spec• Get a high-level code overview• Use it (strict virtualenv separation)
    • Strategy: In-Code• Multi-Pass Approach: One Objective per Pass• 1st: Check Requirements coverage
    • 2. Standard Adherence• Code style - PEP 8, parent project, in-module consistency• Module design - namespaces, dir structure, entry points, etc.• Global Documentation - narrative, entry points• Packaging - setup, tests, dependencies, environmental dependencies• Use of Standard Lib Modules - Logging, Config files, Unittest, etc.
    • 3. Error Handling• Exceptions • Propagate exceptions from 3rd party libs • Create own types for own errors• Kill the Pokemons• Avoid User-facing Assertions
    • 4. Code Blocks• Documentation: signature & return types, exceptions, semantic match• Sensible defaults• Partitioning / Block Length (aim for 10 LoC average)• Mark Sub-Blocks thru empty lines• KISS• Transparent call chains
    • 5. Tests• Coverage• Check Environmental dependencies• Reporting• Test the tests
    • Restrisiko