Becoming a Better Programmer. A Handbook for People Who Care About Code - Helion
ISBN: 978-14-919-0557-9
stron: 362, Format: ebook
Data wydania: 2014-10-03
Księgarnia: Helion
Cena książki: 126,65 zł (poprzednio: 147,27 zł)
Oszczędzasz: 14% (-20,62 zł)
If you’re passionate about programming and want to get better at it, you’ve come to the right source. Code Craft author Pete Goodliffe presents a collection of useful techniques and approaches to the art and craft of programming that will help boost your career and your well-being.
Goodliffe presents sound advice that he’s learned in 15 years of professional programming. The book’s standalone chapters span the range of a software developer’s life—dealing with code, learning the trade, and improving performance—with no language or industry bias. Whether you’re a seasoned developer, a neophyte professional, or a hobbyist, you’ll find valuable tips in five independent categories:
- Code-level techniques for crafting lines of code, testing, debugging, and coping with complexity
- Practices, approaches, and attitudes: keep it simple, collaborate well, reuse, and create malleable code
- Tactics for learning effectively, behaving ethically, finding challenges, and avoiding stagnation
- Practical ways to complete things: use the right tools, know what “done” looks like, and seek help from colleagues
- Habits for working well with others, and pursuing development as a social activity
Osoby które kupowały "Becoming a Better Programmer. A Handbook for People Who Care About Code", wybierały także:
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
- Mapa Agile & Scrum. Jak si 57,69 zł, (15,00 zł -74%)
- Sztuka podst 53,46 zł, (13,90 zł -74%)
- Lean dla bystrzaków. Wydanie II 49,62 zł, (12,90 zł -74%)
Spis treści
Becoming a Better Programmer. A Handbook for People Who Care About Code eBook -- spis treści
- Also by Pete Goodliffe
- Introduction
- Whats Covered?
- Who Should Read This?
- The Structure
- A Note for Mentors
- Safari Books Online
- How to Contact Us
- Acknowledgments
- 1. Care About the Code
- I. you.write(code);
- 2. Keeping Up Appearances
- Presentation Is Powerful
- Its About Communication
- Layout
- Structure Well
- Consistency
- Names
- Avoid Redundancy
- Be Clear
- Be Idiomatic
- Be Accurate
- Making Yourself Presentable
- Conclusion
- 3. Write Less Code!
- Why Should We Care?
- Flappy Logic
- Duplication
- Dead Code
- Comments
- Verbosity
- Bad Design
- Whitespace
- So What Do We Do?
- Conclusion
- 4. Improve Code by Removing It
- Code Indulgence
- Its Not Bad, Its Inevitable
- So What?
- Waking the Dead
- Surgical Extraction
- Conclusion
- 5. The Ghost of a Codebase Past
- Presentation
- The State of the Art
- Idioms
- Design Decisions
- Bugs
- Conclusion
- 6. Navigating a Route
- A Little Help from My Friends
- Look for Clues
- Learn by Doing
- Low-Hanging Fruit
- Inspect the Code
- Study, Then Act
- Test First
- Housekeeping
- Document What You Find
- Conclusion
- 7. Wallowing in Filth
- Smell the Signs
- Wading into the Cesspit
- The Survey Says
- Working in the Sandpit
- Cleaning Up Messes
- Making Adjustments
- Bad Code? Bad Programmers?
- 8. Dont Ignore That Error!
- The Mechanism
- The Madness
- The Mitigation
- Conclusion
- 9. Expect the Unexpected
- Errors
- Threading
- Shutdown
- The Moral of the Story
- 10. Bug Hunting
- An Economic Concern
- An Ounce of Prevention
- Bug Hunting
- Lay Traps
- Learn to Binary Chop
- Employ Software Archaeology
- Test, Test, Test
- Invest in Sharp Tools
- Remove Code to Exclude It from Cause Analysis
- Cleanliness Prevents Infection
- Oblique Strategies
- Dont Rush Away
- Non-Reproducible Bugs
- Conclusion
- 11. Testing Times
- Why Test?
- Shortening the Feedback Loop
- Code That Tests Code
- Who Writes the Tests?
- Types of Tests
- When to Write Tests
- When to Run Tests
- What to Test
- Good Tests
- What Does a Test Look Like?
- Test Names
- The Structure of Tests
- Maintain the Tests
- Picking a Test Framework
- No Code Is an Island
- Conclusion
- Why Test?
- 12. Coping with Complexity
- Blobs
- Case Study: Reducing Blob Complexity
- Lines
- And Finally: People
- Conclusion
- 13. A Tale of Two Systems
- The Messy Metropolis
- Incomprehensiblity
- Lack of Cohesion
- Unnecessary Coupling
- Code Problems
- Problems Outside the Code
- A Postcard from the Metropolis
- Design Town
- Locating Functionality
- Consistency
- Growing the Architecture
- Deferring Design Decisions
- Maintaining Quality
- Managing Technical Debt
- Tests Shape Design
- Time for Design
- Working with the Design
- So What?
- The Messy Metropolis
- II. Practice Makes Perfect
- 14. Software Development Is
- This Software (Food)stuff
- Software Development Isan Art
- Software Development Isa Science
- Software Development Isa Sport
- Software Development IsChilds Play
- Software Development Isa Chore
- Metaphor Overload
- 15. Playing by the Rules
- We Need More Rules!
- Set the Rules
- 16. Keep It Simple
- Simple Designs
- Simple to Use
- Prevents Misuse
- Size Matters
- Shorter Code Paths
- Stability
- Simple Lines of Code
- Keeping It Simple, Not Stupid
- Assumptions Can Reduce Simplicity
- Avoid Premature Optimisation
- Sufficiently Simple
- A Simple Conclusion
- Simple Designs
- 17. Use Your Brain
- Dont Be Stupid
- Avoid Mindlessness
- You Are Allowed to Think!
- 18. Nothing Is Set in Stone
- Fearless Change
- Change Your Attitude
- Make the Change
- Design for Change
- Tools for Change
- Pick Your Battles
- Plus ça Change
- 19. A Case for Code Reuse
- Reuse Case 1: The Copy-Pasta
- Reuse Case 2: Design for Reuse
- Reuse Case 3: Promote and Refactor
- Reuse Case 4: Buy In, or Reinvent the Wheel
- 20. Effective Version Control
- Use It or Lose It
- Pick One, Any One
- Storing the Right Things
- Answer One: Store Everything
- Answer Two: Store as Little as Possible
- Storing Software Releases
- Repository Layout
- Use Version Control Well
- Make Atomic Commits
- Sending the Right Messages
- Craft Good Commits
- Branches: Seeing the Wood for the Trees
- The Home for Your Code
- Conclusion
- 21. Getting One Past the Goalpost
- Software Development: Shovelling Manure
- A False Dichotomy
- Fix the Team to Fix the Code
- Releasing a Build to QA
- Test Your Work First
- Release with Intent
- More Haste, Less Speed
- Automate
- Respect
- On Getting a Fault Report
- Our Differences Make Us Stronger
- Pieces of the Puzzle
- 22. The Curious Case of the Frozen Code
- Hunting the Code Freeze
- A New World Order
- Forms of Freeze
- Branches Make It Work
- But Its Not Really Frozen!
- Length of the Freeze
- Feel the Freeze
- The End Draws Near
- Antifreeze
- Conclusion
- 23. Please Release Me
- Part of the Process
- A Cog in the Machine
- Step 1: Initiate the Release
- Step 2: Prepare the Release
- Step 3: Build the Release
- Step 4: Package the Release
- Step 5: Deploy the Release
- Release Early and Often
- And Theres More
- III. Getting Personal
- 24. Live to Love to Learn
- What to Learn?
- Learning to Learn
- Learning Models
- The Knowledge Portfolio
- Teach to Learn
- Act to Learn
- What Have We Learnt?
- 25. Test-Driven Developers
- Driving the Point Home
- Success Breeds Complacency
- Testing Times
- Test-Driven Developers
- Conclusion
- 26. Relish the Challenge
- Its the Motivation
- Whats the Challenge?
- Dont Do It!
- Get Challenged
- ConclusionÂ
- 27. Avoid Stagnation
- Your Skills Are Your Investment
- An Exercise for the Reader
- Job Security
- 28. The Ethical Programmer
- Attitude to Code
- Legal Issues
- Attitude to People
- Teammates
- Manager
- Employer
- Yourself
- The Hippocodic Oath
- Conclusion
- 29. A Love for Languages
- Love All Languages
- Love Your Language
- Cultivating Your Language Relationship
- Love and Respect
- Commitment
- Communication
- Patience
- Shared Values
- A Perfect Metaphor?
- Conclusion
- 30. Posturing Programmers
- Basic Computer Posture
- The Debugging Posture
- When Its Really Going Badly
- The All-Nighter
- Intervention from Above
- The All-Clear
- Design Time
- Eye Strain
- Conclusion
- Basic Computer Posture
- IV. Getting Things Done
- 31. Smarter, Not Harder
- Pick Your Battles
- Battle Tactics
- Reuse Wisely
- Make It Someone Elses Problem
- Only Do What You Have To
- Put It on a Spike
- Prioritise
- Whats Really Required?
- One Thing at a Time
- Keep It Small (and Simple)
- Dont Defer and Store Up Problems
- Automate
- Error Prevention
- Communicate
- Avoid Burnout
- Power Tools
- Conclusion
- 32. Its Done When Its Done
- Are We There Yet?
- Developing Backwards: Decomposition
- Define Done
- Just Do It
- 33. This Time Ive Got It
- Desert Island Development
- Stood at the Bottom of the Mountain
- V. The People Pursuit
- 34. People Power
- What to Do
- Know Your Experts
- 20/20 Hindsight
- 35. Its the Thought That Accounts
- Stretching the Metaphor
- Accountability Counts
- Code++
- Making It Work
- Setting the Standard
- The Next Steps
- Conclusion
- 36. Speak Up!
- Code Is Communication
- Talking to the Machines
- Talking to the Animals
- Talking to Tools
- Interpersonal Communication
- Ways to Converse
- Watch Your Language
- Body Language
- Parallel Communication
- Talking of Teams
- Talking to the Customer
- Other Communication
- Conclusion
- Code Is Communication
- 37. Many-festos
- A Generic Manifesto for Software Development
- OK, OK
- The Manyfestos
- But, Really?
- The Punchline
- 38. An Ode to Code
- Coding Is a People Problem
- Epilogue
- Attitude
- Go Forth and Code
- Index