offers a variety of options, do not look for interfaces
After the problem, to propose a variety of solutions to choose, not to find excuses, do not say things can not be done, to explain what to do next to save the situation;
don't tolerate broken windows .
We have seen neat, well-functioning systems that, once the Windows start to break down, have deteriorated quite rapidly;
Do not keep the broken windows do not repair, find a bug to fix one, if not enough time for proper repair, the board first set up; perhaps you can first comment on the code, or display "not implemented" message, take some action to prevent further damage, and the situation under your control;
Investing in knowledge assets
We like to see what programmers know about computer technology and experience as their intellectual asset;
Your assets are aging assets that become obsolete as new technologies, languages, and environments emerge;
Managing knowledge assets is very similar to managing financial assets:
- Serious investors are investing regularly-as a habit
- Diversification is the key to long-term success
- Manage risk; Smart investors balance their assets between conservative investments and risky investments;
- Periodic re-evaluation and balance of assets
Investment advice: Learn a new language at least every year;
Read at least one technical book per quarter;
Also read non-technical books;
more communication, will communicate
When communicating with others, you need to know your audience: What do you want them to learn? What are they interested in about you? How rich have they experienced?
How much detail do they want?
How do you motivate them to listen to you?
When encountering a program bug, don't blindly accuse the code writer, we need to fix the problem, not to issue the accusation;
DRY-Don't repeat yourself
Don ' t repeat yourself; Each knowledge in the system must have a single, unambiguous, authoritative representation, where repetition occurs: the developer is unaware of the repetition, and sometimes repeats the error from the design;
Developers lazy, they repeat, because that code seems easier to modify;
Developer duplication: Several people in the same team repeat the same message; The best way to deal with this problem is to encourage communication; Be sure to read the code of others and code review;
Make multiplexing easier!
You need to create an environment where you find and reuse what you already have, and if it's not easy, you won't reuse it, and if it doesn't, there's a risk of repetition;
Maintain orthogonality
Orthogonal: One of the two things has a change, has no effect on others, and these two things are orthogonal;
Advantages of orthogonality:
- Increase the survival rate;
- Reduce risk
Let the code maintain orthogonality, can eliminate the influence between irrelevant things;
can be revoked, replaceable
There is no final goal, no ultimate architecture; A component of any module of the project is revocable and replaceable; do not rely too much on a third party product, or your project is kidnapped by a third party;
A flexible architecture that hides third-party products behind a good abstraction interface;
Ubiquitous Automation
The use of Python, Shell and other scripting language, the work of repetitive tasks to automate the implementation of repetitive code in programming, through the script to automatically generate code to achieve;
In the work of summing up, refining small systems, so that the process, code are automated;
Linux cron is a good thing, so that your automation tasks in the dead of night to execute on time;
don't be programmed by coincidence .
The code you write is the product of deliberate thought, design first, then output; think of a place to write a new level of graduation;
According to the contract programming, do not think of this place can increase how many good function, superfluous story too much, too much exceed the user expectation may not have the good result, possibly becomes the user does not want;
the importance of testing
Testing is important, everyone knows, but unit testing, how many projects can be seriously done, there is no high-quality, well-covered unit testing, where the courage to reconstruct a mammoth old project?
This sentence is very incisive: test your software, otherwise the user will have to test;
new methods and new tools
It's good to have a new tool or a new method that you want to promote in a project group, but don't underestimate the cost of adopting new tools and methods, and perhaps your project will take too much effort to familiarize yourself with this approach, and the first project that uses this method may be just a lab item;
Critically look at methodology, from which the essence of the applicable team is refined;
Wooden Bookshelf Net
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
"The path of Programmer's cultivation" reading notes