Какие ошибки при разработке "били" Вас?

Статус
В этой теме нельзя размещать новые ответы.

Slayter

Гуру форума
Регистрация
8 Апр 2006
Сообщения
231
Реакции
55
Давайте поговорим о(лингвисты есть? "о" или "об"?) ошибках, которые мы допускаем при разработке - просто назовите по пунктам те, которые вы допускали и собираетесь (либо уже) начали обходить стороной.


Наверняка кто-то найдет что-нибудь, в чем ошибается каждый раз при проектировании\разработке приложения.
Не забывайте пожалуйста в списке своих ошибок делать следующие пометки:
  • [в прошлом]
  • [иногда и в настоящем]
  • [постоянно]
  • [хочу отучиться]
  • [отучиваюсь]
Ошибки которые били меня сильнее всего:
  1. использование переменных а не констант в конфиге приложения (при большом объёме было много случаев когда переменной присваивалось другое значение на полпути) [в прошлом];
  2. использование сокращенных\не явно говорящих о предназначении переменных имён [в прошлом];
  3. смесь логики и представления [в прошлом];
  4. использование значений для каких либо действий\функций без выноса их в конфиг (например бывали такие случаи когда прямо перед процедурой авторизации присваивались значения переменным на максимальное кол-во неверных попыток войти, время бана логина при привышении этого значения, и т.д.) [в прошлом];
  5. иногда стремился запихнуть как можно больше кода в один файл (как дурак до сих пор все аяксовые функции храню в одном файле, в котором количество строк уже за тысячу давно перевалило) с той целью, чтобы в дальнейшем было легче "ориентироваться" в коде. на самом деле разделение рулит [иногда и в настоящем],[отучиваюсь];
  6. первым делом сажусь писать основную часть приложения напрочь забывая о дебаге и в последствии дико матерясь про себя и вслух при дебагинге [постоянно];
  7. приложение заведомо нерасширяемое, заточенное под какую-либо определенную направленность [в прошлом];
  8. забывал про табуляцию кода [в прошлом];
Жду ответов. Будем учиться вместе ;)
 
использование сокращенных\не явно говорящих о предназначении переменных имён [в прошлом];
Я сейчас использую иногда такие. Редко. Я то в них разбираюсь, а вот другому будет трудновато.

использование значений для каких либо действий\функций без выноса их в конфиг (например бывали такие случаи когда прямо перед процедурой авторизации присваивались значения переменным на максимальное кол-во неверных попыток войти, время бана логина при привышении этого значения, и т.д.)
Иногда по горячке такое делаю. Потом исправляю при повторном прохождении по скрипту.

иногда стремился запихнуть как можно больше кода в один файл (как дурак до сих пор все аяксовые функции храню в одном файле, в котором количество строк уже за тысячу давно перевалило) с той целью, чтобы в дальнейшем было легче "ориентироваться" в коде. на самом деле разделение рулит [иногда и в настоящем],[отучиваюсь];
+1

первым делом сажусь писать основную часть приложения напрочь забывая о дебаге и в последствии дико матерясь про себя и вслух при дебагинге [постоянно];
Тоже сначала пишу "ядро", но тьфу тьфу тьфу про дебагинг не забывал +)

У мну файлик есть конфиг.php в нем около 20 переменных с каментами моими. Тем есть и $debug = true; садясь за новый скрипт я первым делом копирую в будующий скрипт (движок) этот файлик. Помогает не забываться -миг-

приложение заведомо нерасширяемое, заточенное под какую-либо определенную направленность [в прошлом];
Стараюсь такого не делать, хотя иногда приходится. Бывают такие клиенты типа "мне бы подешевле и побыстрей". Я его честно предупреждаю, что двиг будет топорным под конкретную задачу. Хотя все равно прыгать влево вправо там можно по функционалу при необходимости. Это автопилот подсказывает как сформировать классы и баблиотеки, что бы в случае чего...

забывал про табуляцию кода [в прошлом];
Никогда. Я ещё когда html учился привык всегда код держать аккуратным, что бы можно было разобраться в случае. Наученный первыми тремя-пятью работами по поиску запятой в куче муссора, быстро отучился беспорядок держать в коде.
 
Видимо я не буду оригинальным..
использование переменных а не констант в конфиге
Этим по моему все грешат. Со временем и опытом проходит.
[в прошлом].

использование значений для каких либо действий\функций без выноса их в конфиг...
уж и не припомню... но видимо тоже грешил :)
[в прошлом].
иногда стремился запихнуть как можно больше кода в один файл
Нет. Такого подхода не было никогда и сейчас когда вижу подобные коды в файлах тихо бешусь...
первым делом сажусь писать основную часть приложения напрочь забывая о дебаге и в последствии дико матерясь про себя и вслух при дебагинге
[было - есть и будет]. :D
Отучиться не смог....
забывал про табуляцию кода
[в прошлом].

Чем сейчас страдаю и страдать буду, но никому не советую:
Часто начинаю писать ядро с тяжелейшего бодуна. Я не знаю что находит... "озарение" видимо. Но смотреть на следующий день заготовку страшновато...:confused:

Берусь за работу, заведомо зная что она мне не по силам на сегодняшний день. НО работу выполняю. Деваться некуда - изучаю то что не знал.

Чуть позже видимо откорректирую то что понаписал, потому что и сейчас я с бодуна...:(
 
по-хорошему должно как минимум присутствовать
1) проектирование
2) кодирование (+ обязательное документирование кода)
3) тестирование

однако несознательные люди наровят начать и закончить пунктом два (естественно без документирования). ну, а дальше снежный ком последствий.
 
Да...пора бы на tdd переходить.
 
самый большой косяк у себя заметил это
когда после разработки половины кода понимаешь, что здесь можно было улучшить,
и там тоже

в итоге время выполнения работы затягивается до бесконечности.... хочется то ведь самого оптимального кода... :nezn:
 
О дебаггинге тоже частенько забываю (хотя в последнее время реже), потом иногда жалеть приходится.
Никак не могу приучить себя пользоваться системой контроля версий. Стараюсь использовать subversion, но иногда забываю или забиваю.
С комментами тоже бывает опускаю. В последнее время реже.
Согласен, tdd неплохой подход. все собираюсь переключить мозги на это дело
 
лингвисты есть? "о" или "об"?
Об. Потому что "ошибок" - первая буква гласная.

использование сокращенных\не явно говорящих о предназначении переменных имён [в прошлом];
Бывает, но ведь это мой код. Я пишу приложения для того, чтобы их было удобно юзать, а не для того чтобы в них кто-то копался.
иногда стремился запихнуть как можно больше кода в один файл (как дурак до сих пор все аяксовые функции храню в одном файле, в котором количество строк уже за тысячу давно перевалило) с той целью, чтобы в дальнейшем было легче "ориентироваться" в коде. на самом деле разделение рулит [иногда и в настоящем],[отучиваюсь];
У меня например частенько бывает один файл func.inc.php, в который я запихиваю все функции, чтобы потом их не искать, а заинклудил файлик и юазешь...
забывал про табуляцию кода [в прошлом];
Никогда в жизни. Сам даже когда скачиваю чье-то приложение, обязательно табулирую его под себя..
 
ну и я начну с прошлого

1. линейность кода, полное отсутсвие даже намеков на ООП
2. использование переменных $ik $PP_level и т.д
3. отсутсвие форматирования кода
4. отсутсвие средств отладки (внутренни дебаг, логгирование)
5. нерасширяемость, неуниверсальность, тупизм :))
6. отсутсвие ядра и конфига
7. отсутсвие каких либо паттернов
7.1 никакого смарти
7.2 никакого фронт-контроллера

8. одноБДшность
9. отсутсвие проверок ввода на клиенте
10. нежелеание исправлять чтото сразу, как только понимаешь что это не годится (!!! один из важных моментов, рефакторинг во время кодинга)


сейчас страдаю таким (знаю что надо но не могу поделать)

1. вписываю "русский текст" не заботясь о будущей мультиязычности

2. желание релизовать фичу и решить проблему в одиночку. Зачастую чужой свежий взгляд находит изъяны в существующем алгоритме. Не то чтобы код кривой, а просто чужие идеи дают более универсальное и эффективное решение

3. Стили, верстка - больное место

4. отсутсвие документации

5. отсутсвие unit тестирования

6 отсутсвие скриптов инсталляции
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху