Book Reading Notes - The Pragmatic Programmer - From Journeyman to Master
- Author: Johann Huang
- Date: 20181201
- Location: Shanghai, China
- what distinguished Pragmatic Programmers?
- Guidelines - Philosophy
- Guidelines - Approach
- Guidelines - Tools
- Guidelines - Paranoia
- Guidelines - Bend or Break
- Guidelines - While You Are Coding
- Guidelines - Before the Project
- Guidelines - Projects
- One More Thing
I finished reading this book at the beginning of last month and abstracted a mindmap of all the important (in the sense, for me) contents from the book.
To let more people get benefits from this book, I think it is necessary to draft an even more compact version of important contents of that book in the means of slides.
And as no one can cross the same river for twice, each time of review of the book would result something new, so this note may also contain something different.
We who cut mere stones must always be envisioning cathedrals. - Quarry worker's creed
Pragmatic Programmers get the job done, and do it well.
what distinguished Pragmatic Programmers?
- Beyond the immediate problem and trying to place in the larger context and aware of the bigger picture.
- Take responsibility for everything they do.
- Also spend a large amount of time interacting with others.
Guidelines - Philosophy
- Don't live with Broken Windows
- Be a trigger and catalyst for continuing improvements
- Provide just good-enough release to interact with users earlier and iterate to better eventual solution
- Stay up to date and make continuing portfolio investment
- Be a good developer evangelist and be a listener
Guidelines - Approach
- Do abstraction and DRY
- Split clear layers and write cohesive modules with stable API
- Construct flexible architecture with the possibility to change horse in midstream
- Make proposed implements and do refinements
- Use prototypes to organize logics
- Program close the problem domain since computer language influence the way to think and solve problem
- Do estimate and schedule to avoid surprises
Guidelines - Tools
- Plain Text is powerful and self-describing
- Shell is powerful, fast and flexible
- Bash is magic
- Powerful editor upgrades productivity
- such as Visual Studio Code, Atom
- Source code control help to return to thosw halcyon days of past if disaster happens
- such as Git
- Debugging with tools
- logs and monitors
- Text Manipulation helps to reduce repetition and produce comforts
- like code formatting, doc generation
- Code Generators make programmer smarter
Guidelines - Paranoia
- Design with contracts
- Crash early but not tolerant until larger disasters
- Assert to ensure it won't
- Use Exceptions for exceptional problems
- Balancing resources by doing both acquiring and returning, like for memory
Guidelines - Bend or Break
- Decouping by fencing well
- Do metaprogramming with configurations but not hardcoding
- Pay attention to temporal couping (concurrency and ordering) and deal with it wisely
- possibly combining queueing and dispatching
- Divide and Conquer with good design patterns such as Publish and Subscribe, MVC and so on
- Use blackboards to coordinate workflow
- such as Redux
Guidelines - While You Are Coding
- Programming deliberately but not by coincidence
- think clear first
- Consider algorithm speed under situations
- Refactoring to upgrade code life cycle
- Write trust worthy code which is easy to test and accompanied with tests
- Use wizard you really understand
Guidelines - Before the Project
- Be careful with Requirements Pit
- Perfection is achieved, not when there is nothing left to add but to take way
- Think out of box in a higher perspective
- Start only when you're clearly planed
- Wisely treat the specification with possibilities to iteration
- Have the methodologies and practices circle of your own
Guidelines - Projects
- Team of Pragmatic programmers
- Ubiquitous automation to avoid manual conflicts
- Ruthless Testing and test early, often and automatically
- Documents promote unity
- The palest ink is better than the best memory.
- Managing expectations with a little bit extra
- Sign your work with pride and prejudice
- This slides is composed by Johann Huang with acknowledgement to Book The Pragmatic Programmer which is written by ...
One More Thing
Have your own library.
* cached version, generated at 2018-12-02 11:46:19 UTC.
Subscribe by RSS