Mike Lue

Agile Development

Software design is about abstraction, which needs training and practices.

The lack of abstraction ability cannot be compensated by SCRUM or AGILE process.

For worst case, shit one’s pants and do laundry in next Sprint.

Requirements/System Analysis

Describes the way a human have to do, not the way how a computer going to do.

IT Profession

A responsible programmer learns the philosophy of programming languages/frameworks/tools.

You don’t have to know all of the things in one day, what you have to do is to learn a little more everyday.

An irresponsible programmer creates his own error handling, error-prone design, etc.

Simplicity

Coding

“Feeling” cannot be a reason for good style.

Unit tests give you a way to review your design.

Complex unit tests means complex design,
which indicates poor design,
which tips error-prone fragments of code.

Unit Test

  1. You don’t know how many times will you need to test your code in future.
  2. You have to pay $1 for every time testing your code.
  3. You only have to pay $5 to write unit tests and you can run tests for free in future.

No fucking excuse.

Learning

Documenting

Use documenting to clarify your mind.

If you can write effectively, you can code effectively.

Make you as your reader, who is unable to meet you face-to-face.

An incompetent programmer also makes unreadable documentations.

Work philosophies

Before you invent anything, try to read the TOCs of framework/languages/tool documentations.

The recursive process of incompetent programmer

The whole picture

Ignorances