Проблемы решения сложных задач

Материал из b4wiki

Перейти к: навигация, поиск
нет сложных задач. есть неверные решения.

Советы начинающим программистам:

  1. учите матчасть. матчасть — это аббревиатура от "материальная часть", то есть основы и детали использования составляющих предметной области.
  2. никакая библиотека не должна быть написана до того, как она _действительно_ потребуется.
  3. не боимся переписать программу заново, пока не поздно. а то слишком много придется переписывать.
  4. не работает сложный алгоритм — остановились, подумали и, возможно, переписали все полностью. ключевые слова%LONGDASH% "остановились" и "подумали", а не "переписали".
  5. если до того, как что-то заработает, нужно написать много кода — снова остановились, подумали и не начали программировать до тех пор, пока не поймем что хотим получить на промежуточном этапе. частые _работающие_ релизы это наше все!
  6. тесты должны коррелировать с релизами, а не с кодом ради кода.
  7. не надо бояться признать все, что написано, полным отстоем. лучше сделать это самому, чем дожидаться таких комментариев от других.
  8. шаблоны c++ нужно использовать тогда и только тогда, когда в них возникла необходимость, а не для абстрагирования от конкретных типов данных.
  9. самый лучший способ обмена информацией для _не_ realtime приложений -- строка.
  10. не нужно придумывать новые типы данных, дублирующие функциональность существующих на настоящий момент. это лишняя работа.
  11. если так называемый "поток данных" уже где-то реализован и успешно работает, не нужно экспериментировать с аналогичными задачами, ссылаясь на то, что это все равно придется кодировать. может быть, не придется. так почему бы не заняться более полезными вещами?
  12. прежде чем изобретать решение задачи, попробуйте осознать, что есть вероятность существования готового решения и поискать (благо есть интернет) его.
  13. любая модификация кода должна сопровождаться разумными комментариями. старайтесь избегать общих фраз, но не забывайте, что дублировать diff'ы тоже совершенно ни к чему.
  14. не панацея, но: в библиотеке Qt есть практически все, что нам нужно для манипуляции распространенными типами и структурами данных.
  15. в свободное время полезно читать документацию, а не новости в интернете, писать статьи, а не переписываться в icq и irc.
  16. если действия повторяются и это начинает раздражать %LONGDASH% останавливаемся, думаем, пишем скрипт или макрос
  17. см. предыдущий пункт — повод думать о разработке библиотечных функций или классов.
  18. всегда помним про важный принцип экстремального программирования "это нам никогда не понадобится".

скопировано из внутреннего twiki НТЦ Метротек.

--fam 14:55, 4 февраля 2009 (UTC)

разное