できるだけchar*を使わずCStringやstd::stringを使う
文字数が制限できるlstrncpy、lstrncatを使う
全てにおいて余分なメモリを確保するようにする(昔は節約が重要だったが今はそうではない)
エラー処理、例外処理は手抜きしない
領域外の書き込みだけでなく領域外の読みにも気をつける
ウインドウメッセージを過信しすぎない


あえて挙げるならこれくらいか?