The Productive Programmer

The Productive Programmer

by Neal Ford
The Productive Programmer

The Productive Programmer

by Neal Ford

eBook

$23.99  $31.99 Save 25% Current price is $23.99, Original price is $31.99. You Save 25%.

Available on Compatible NOOK devices, the free NOOK App and in My Digital Library.
WANT A NOOK?  Explore Now

Related collections and offers


Overview

Anyone who develops software for a living needs a proven way to produce it better, faster, and cheaper. The Productive Programmer offers critical timesaving and productivity tools that you can adopt right away, no matter what platform you use. Master developer Neal Ford not only offers advice on the mechanics of productivity-how to work smarter, spurn interruptions, get the most out your computer, and avoid repetition-he also details valuable practices that will help you elude common traps, improve your code, and become more valuable to your team. You'll learn to:

  • Write the test before you write the code
  • Manage the lifecycle of your objects fastidiously
  • Build only what you need now, not what you might need later
  • Apply ancient philosophies to software development
  • Question authority, rather than blindly adhere to standards
  • Make hard things easier and impossible things possible through meta-programming
  • Be sure all code within a method is at the same level of abstraction
  • Pick the right editor and assemble the best tools for the job

This isn't theory, but the fruits of Ford's real-world experience as an Application Architect at the global IT consultancy ThoughtWorks. Whether you're a beginner or a pro with years of experience, you'll improve your work and your career with the simple and straightforward principles in The Productive Programmer.


Product Details

ISBN-13: 9780596551865
Publisher: O'Reilly Media, Incorporated
Publication date: 07/03/2008
Series: Theory in Practice (O'Reilly)
Sold by: Barnes & Noble
Format: eBook
Pages: 226
File size: 6 MB

About the Author

Neal is an Application Architect at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery. Before joining ThoughtWorks, Neal was the Chief Technology Officer at The DSW Group, Ltd., a nationally recognized training and development firm. Neal has a degree in Computer Science from Georgia State Universityspecializing in languages and compilers and a minor in mathematics specializing in statistical analysis. He is also the designer and developer of applications, instructional materials, magazine articles, video presentations, and author of the books Developing with Delphi: Object-Oriented Techniques (Prentice-Hall, 1996), JBuilder 3 Unleashed (Sams, 1999) (as the lead author), Art of Java Web Development (Manning, 2003), and No Fluff, Just Stuff Anthology: The 2006 Edition (editor and contributor). His language proficiencies include Java, C#/.NET, Ruby, Object Pascal, C++, and C. His primary consulting focus is the design and construction of large-scale enterprise applications. Neal has taught on-site classes nationally and internationally to all phases of the military and to many Fortune 500 companies. He is also an internationally acclaimed speaker, having spoken at numerous developer conferences worldwide.If you have an insatiable curiosity about Neal, visit his web site at http://www.nealford.com. He welcomes feedback and can be reached at nford@thoughtworks.com.

Table of Contents


Foreword     vii
Preface     ix
Introduction     1
Why a Book on Programmer Productivity?     2
What This Book Is About     3
Where to Go Now?     5
Mechanics
Acceleration     9
Launching Pad     10
Accelerators     18
Macros     33
Summary     35
Focus     37
Kill Distractions     38
Search Trumps Navigation     40
Find Hard Targets     42
Use Rooted Views     44
Use Sticky Attributes     46
Use Project-Based Shortcuts     47
Multiply Your Monitors     48
Segregate Your Workspace with Virtual Desktops     48
Summary     50
Automation     51
Don't Reinvent Wheels     53
Cache Stuff Locally     53
Automate Your Interaction with Web Sites     54
Interact with RSS Feeds     54
Subvert Ant for Non-Build Tasks     56
Subvert Rake for Common Tasks     57
Subvert Selenium to Walk Web Pages     58
Use Bash to Harvest Exception Counts     60
Replace Batch Files withWindows Power Shell     61
Use Mac OS X Automator to Delete Old Downloads     62
Tame Command-Line Subversion     62
Build a SQL Splitter in Ruby     64
Justifying Automation     65
Don't Shave Yaks     67
Summary     68
Canonicality     69
DRY Version Control     70
Use a Canonical Build Machine     72
Indirection     73
Use Virtualization     80
DRY Impedance Mismatches     80
DRY Documentation     88
Summary     93
Practice
Test-Driven Design     97
Evolving Tests     99
Code Coverage     105
Static Analysis     109
Byte Code Analysis     110
Source Analysis     112
Generate Metrics with Panopticode     113
Analysis for Dynamic Languages     116
Good Citizenship     119
Breaking Encapsulation     120
Constructors     121
Static Methods     121
Criminal Behavior     126
Yagni     129
Ancient Philosophers     135
Aristotle's Essential and Accidental Properties      136
Occam's Razor     137
The Law of Demeter     140
Software Lore     141
Question Authority     143
Angry Monkeys     144
Fluent Interfaces     145
Anti-Objects     147
Meta-Programming     149
Java and Reflection     150
Testing Java with Groovy     151
Writing Fluent Interfaces     152
Whither Meta-Programming?     154
Composed Method and Slap     155
Composed Method in Action     156
Slap     160
Polyglot Programming     165
How Did We Get Here? And Where Exactly Is Here?     166
Where Are We Going? And How Do We Get There?     169
Ola's Pyramid     173
Find the Perfect Tools     175
The Quest for the Perfect Editor     176
The Candidates     179
Choosing the Right Tool for the Job     180
Un-Choosing the Wrong Tools     186
Conclusion: Carrying on the Conversation     189
Building Blocks     191
Index     199
From the B&N Reads Blog

Customer Reviews