Проблемы решения сложных задач
Материал из b4wiki
нет сложных задач. есть неверные решения.
Советы начинающим программистам:
- учите матчасть. матчасть — это аббревиатура от "материальная часть", то есть основы и детали использования составляющих предметной области.
- никакая библиотека не должна быть написана до того, как она _действительно_ потребуется.
- не боимся переписать программу заново, пока не поздно. а то слишком много придется переписывать.
- не работает сложный алгоритм — остановились, подумали и, возможно, переписали все полностью. ключевые слова%LONGDASH% "остановились" и "подумали", а не "переписали".
- если до того, как что-то заработает, нужно написать много кода — снова остановились, подумали и не начали программировать до тех пор, пока не поймем что хотим получить на промежуточном этапе. частые _работающие_ релизы это наше все!
- тесты должны коррелировать с релизами, а не с кодом ради кода.
- не надо бояться признать все, что написано, полным отстоем. лучше сделать это самому, чем дожидаться таких комментариев от других.
- шаблоны c++ нужно использовать тогда и только тогда, когда в них возникла необходимость, а не для абстрагирования от конкретных типов данных.
- самый лучший способ обмена информацией для _не_ realtime приложений -- строка.
- не нужно придумывать новые типы данных, дублирующие функциональность существующих на настоящий момент. это лишняя работа.
- если так называемый "поток данных" уже где-то реализован и успешно работает, не нужно экспериментировать с аналогичными задачами, ссылаясь на то, что это все равно придется кодировать. может быть, не придется. так почему бы не заняться более полезными вещами?
- прежде чем изобретать решение задачи, попробуйте осознать, что есть вероятность существования готового решения и поискать (благо есть интернет) его.
- любая модификация кода должна сопровождаться разумными комментариями. старайтесь избегать общих фраз, но не забывайте, что дублировать diff'ы тоже совершенно ни к чему.
- не панацея, но: в библиотеке Qt есть практически все, что нам нужно для манипуляции распространенными типами и структурами данных.
- в свободное время полезно читать документацию, а не новости в интернете, писать статьи, а не переписываться в icq и irc.
- если действия повторяются и это начинает раздражать %LONGDASH% останавливаемся, думаем, пишем скрипт или макрос
- см. предыдущий пункт — повод думать о разработке библиотечных функций или классов.
- всегда помним про важный принцип экстремального программирования "это нам никогда не понадобится".
скопировано из внутреннего twiki НТЦ Метротек.
--fam 14:55, 4 февраля 2009 (UTC)
