"The path of Programmer's cultivation" reading notes

Source: Internet
Author: User
Tags repetition

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:

    1. Serious investors are investing regularly-as a habit
    2. Diversification is the key to long-term success
    3. Manage risk; Smart investors balance their assets between conservative investments and risky investments;
    4. 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:

    1. Increase the survival rate;
    2. 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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.