Everything2
Near Matches
Ignore Exact
Full Text
Everything2

six steps to better software

created by dg

(idea) by dg (11.3 mon) (print)   ?   (I like it!) 1 C! Sat Sep 30 2000 at 6:13:59

Some random thoughts on computer programming.

  1. Keep log files, configuration files, and data files in plain text whenever possible. Plain text is readable and editable by a human with crude tools when all else fails.
  2. If you are using a language that offers it, regular serialization of your objects is almost always a big win. All real world software systems exist in an environment where other processes, data sources, and data sinks fail. Frequent checkpointing increases reliability by allowing faster recovery from catastrophe.
  3. There is no trade-off between ease of implementation and ease of use. Computers are tools. People shouldn't have to adapt to tools, tools should adapt to people.
  4. Documentation is worthless if it is not maintained. You are better off not writing it at all than writing it and letting it fall out of date.
  5. Public APIs are your friend. Your users want to extend your software into applications that you never dreamed it could be good for. They can't do this if there aren't hooks to hang their code from.
  6. Network transparency is good. Instead of named pipes, unnamed pipes, shared memory, or signals, implement inter-process communication via standard TCP sockets. That way, when your application's workload later grows in volume, it is easy to distribute across more than one node.

printable version
chaos

A Brief Guide To C Personal Software Process serialization Programming issues
NIH syndrome HAKMEM computer programming ease of use
bottom-up implementation named pipe text files node
want API public Catastrophe
Real World big win Books that will induce a mindfuck Distribute
volume workload TCP communication
Y'know, if you log in, you can write something here, or contact authors directly on the site. Create a New User if you don't already have an account.
  Epicenter
Login
Password

password reminder
register

Everything2 Help

Cool Staff Picks
Just another sprinkling of indeterminacy
Electroconvulsive therapy
Statue of Liberty
kimono
Sometimes I actually don't mind having the slowest modem in the world
The Three Laws of Thermodynamics
John Kerry
Japanese education
My mom is my dad is my daughter is dead
Forum Romanum
vegan
Star Wars: Episode III - Revenge of the Sith
Stupid Word Tricks
interstellar travel
New Writeups
Ysardo
a brother to a sister(personal)
antigravpussy
your warm whispers(personal)
Clarke
Multiculturalism(idea)
aneurin
Earl of Landaff(person)
Heitah
Pseudocide(idea)
XWiz
Google Knol(lede)
Mythi
July 24, 2008(personal)
locke baron
The fall of Earth(fiction)
BookReader
Fear the Cold(dream)
Pavlovna
Kathleen MacInnes(person)
stainedglass
1(fiction)
kalen
Three "T"s(idea)
octillion369
Undead(idea)
archiewood
Ico(fiction)
Heisenberg
Why I love Everything2(log)
This affordable entertainment brought to you by The Everything Development Company