Ask HN: What are your principles of design? - cvaidya1986
======
magic-chicken
Assuming you are talking about software design:

\- Make it work, then make it simple, then make it fast. In that order.

\- Don't do at runtime what you can do at compile time.

\- You are not going to need it.

\- Encapsulate your dependencies.

\- Push code complexity / logic to the edges (aka Tell, don't ask)

\- Build only your core business software components. Use 3rd party software
or open source for the rest.

\- If at least one part of your system is not redundant, your system is not
redundant.

\- The persistance mechanism of your application is an implementation detail.

\- Stateful systems are harder to debug than stateless systems.

\- Almost always develop a business logic core for your application that is
independant from it's distribution mechanism.

\- When you make an API public, make everything you can to make the changes to
it backward compatible. Also, use semantic versioning.

\- If you are developing a distributed system, accept from the start that the
other services on which you rely won't be availaible 100% of the time.

\- Fail fast, fail often.

\- Caching is hard to get right. Use it as a last resort.

If you were talking about visual design :

\- Design for mobile first. Porting it to desktop will be easy afterwards.

\- Prefer text over images. The more explicit the better.

\- Read about typography to choose a good combination of font, line height,
line width and letter spacing.

\- Don't use colors to give meaning to something. Use shapes and colors
instead to help people with color blindess.

\- On a page, show all the information the user needs to make a decision or an
action. No more, no less.

\- Optimize actions that are performed often or that needs to happen fast. The
less input the user needs to provide the better.

\- Make navigating between popular sections of the site easy. It should not
take more than one or 2 actions to go anywhere on your site / application.

\- Learn about reading "hot spots" to decide how to arrange your content.

\- Read about colors and how people of different cultures perceive them.

\- Be consistent.

