|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
|
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Недавно было обсуждение в одной теме - обсуждалось сколько можно валяться под столом глядя в чужой код.
Эта тема будет посвящена всему тому что пишут некоторые особоодаренные индивидумы. И/или начинающие пыхеры. Прошу господ программистов постить, все что подвернется под руку, заслуживающее, так или иначе, постинга в данной теме. Желательно с комментарием о причине его ужасающей бесполезности, проблем безопасности и просто плохого стиля программирования. Для новичков это будет основой для оценки своего кода. Я пожалуй начну первым. Следующий код мне прислал человек, которого я собеседовал для своей старой работы на з.п. приблезительно близкой к 1000 у.е.:
Немного комментария к коду: 1. Ужасный стиль программирования. 2. Проблемы безопасности. 3. Если его и оптимизировать, то только переписав заново. Уж больно не оптимально. И еще ссылка по теме http://forum.vingrad.ru/index.php?showtopic=108540. Собственно благодаря ему и радилась идея создать данный топик. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Greendrake |
|
|||
Опытный Профиль Группа: Участник Сообщений: 364 Регистрация: 14.7.2005 Репутация: нет Всего: 6 |
Думаю, любому более-менее опытному программисту сложно удержаться от пристрастной и субъективной оценки чужого кода. Зачастую превалирует "написано не так как пишу я, а я пишу наиболее оптимально, поэтому этот код - так себе".
Строгих и доказанных правил написания кода не существует - это творческий процесс (я не имею ввиду соблюдение читаемости, отступы и комментарии - это безусловно). Поэтому я убеждён, что придираться нужно в основном к работе кода. Это сообщение отредактировал(а) Greendrake - 23.8.2006, 09:56 |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Greendrake, полностью поддерживаю! Именно этот вопрос я и хотел затронуть в данной теме! Стоит хотя бы пройтись по ссылке в теме.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Mal Hack |
|
|||
Мудрый... Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Не согласен. Опытному кодер нормально воспримет код, если он однообразный и написан по человечески. А привычки (мелочи всякие) это можно и пропустить. Вообще, ыроде был рекомендательный ISO... |
|||
|
||||
smartov |
|
||||||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Поддерживаю. Одно дело творчество. Другое дело незнание/неумение/нежелание. Творчество в программировании должно быть логически обосновано. А я не могу найти логического, стилистического или иного обоснования для кода, которым мне достался. Например:
switch не только сэкономит тут место, но и сделает код читаемее и саппортнее. Я уж молчу о постоянно повторяющейся строке $ordertype = "text"; 7 раз! Одна и та же строка! Это у них творчество такое? Или еще из перлов того проекта. Для выставления прав на файлы, господа предыдущие "кодеры" использовали shell_exec('chmod....') (при том что есть родная функция), ну ладно, это дело такое, НО если вы уж так любиете shell_exec то зачем (?!) было для копирования директории со всем содержимым в другое место писать функцию (!) рекурсивную естественно, вместо того, чтобы просто и банально, как раз тут и заюзать shell_exec('cp...'). Мы иногда думаем, что может им за строчки кода платили..... Или файлы, на 20 кб без (внимание!) без хотя бы единственной функции (!), в которых без поллитра не разобраться. То есть файл - одна большая процедура. При чем написана так, что идет if ($_POST...) то 200 строк кода, else - еще 200... В некоторых файлах вложенность скобок доходила до 8 (!). Так же господа "те кодеры" постоянно перед самым выходом из файла, или перед директивой exit, ансетили по 5-8 переменок. В каждом месте вызова exit. В общем о каком творчестве речь? Это просто дилетанство. Добавлено @ 12:00 IZ@TOP,
Просто explode не поможет. Нужно читать построчно. Это если сначала $f = file(...) а потом foreach ($f...) ... explode, то да. Это сообщение отредактировал(а) smartov - 23.8.2006, 11:52 |
||||||
|
|||||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Естественно!))) Щас поправим))) -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Vaulter |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
ну что ж..вверили мне систему сайтов. и не смешно мне было отнюдь
для начала:
прониклись? человеку деньги за это платились..... скотина... |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
||||
|
||||
Vaulter |
|
||||||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
гы, ща кстати заметил вот еще, как он его вызывал:
ей богу не придумал! такое невозможно придумать Добавлено @ 13:55 а это я называю "упорный тип":
Добавлено @ 13:57 из разряда тоже "упорного типа"
|
||||||
|
|||||||
IvanB |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 155 Регистрация: 23.5.2005 Где: Irkutsk Репутация: нет Всего: 5 |
А вот в этом как раз ничего плохого не вижу.... ) Хотя переносы всё же стоит иногда делать. --------------------
Закон отладки: Каждая последняя ошибка является предпоследней. |
|||
|
||||
skyboy |
|
|||
неОпытный Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
IvanB, "плохого" может и нету здесь... но циклы, циклы-то на кой ляд придумали?!
|
|||
|
||||
Vaulter |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
IvanB, ну и плохо, что не видишь ничего плохого!
|
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
IvanB, спешал фо ю эта тема была создана, коль ничего страшного в том коде не видишь)))
Записался в программисты? Будь так добр писать красиво! Чтоб понятно и с комментом, Безопасно для системы, Чтоб потом не засмеяли, И к пробабкам не послали! -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Vaulter |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
IZ@TOP, жжошь!
продолжая тему.
|
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
млиин.. 29 раз... упорный тип, без вопросов... он наверное себе макросы в редакторе писал
|
|||
|
||||
Darhazer |
|
|||
Опытный Профиль Группа: Участник Сообщений: 429 Регистрация: 28.9.2005 Где: HellCity (Sofia, Bulgaria) Репутация: 1 Всего: 29 |
Мой любимий кусок кода, не помню где его видел, но сразу в WTF отправил
P.S. это из винграда: http://forum.vingrad.ru/index.php?showtopic=47964&hl= Это сообщение отредактировал(а) Darhazer - 24.8.2006, 18:24 -------------------- I'm a wheel, I'm a wheel, I can roll, I can feel But you can't stop me turning 'Cause I'm the sun, I'm the sun, I can move, I can run But you'll never stom me burning |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Darhazer, ЖЖЕШЬ НЕ ПАДЕЦКИ! У нас весь офис лежал!!!
Добавлено @ 13:33 Мне тут рассказывали про комменты в коде, значит идет какой-то if, и там коммент:
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Mal Hack |
|
|||
Мудрый... Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
||||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Darhazer, ааааа ууужос
|
|||
|
||||
Ignat |
|
|||
Флудератор Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
Хуже... Я такого кода, наверное, километров 10 перефакторил. Так пишут поклонники копипаста. -------------------- Теперь при чем :P |
|||
|
||||
vasac |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: нет Всего: 36 |
Не далее, как вчера, наткнулся на код:
То ли чел покурил не того. То ли я не понимаю всей глубинной сути. |
|||
|
||||
Vreden |
|
|||
Idiotic Admin Профиль Группа: Участник Сообщений: 295 Регистрация: 12.7.2006 Репутация: -1 Всего: 1 |
Так ребятки, знаю код безобразный, признаюсь мой, упорный тип, да, знаю, не кричите.
Переделайте плиз так, чтобы была та же самая логика проги, но выглядела правильно с точки зрения этой темы. И вообще скажите плиз, что не так? -------------------- Чё? Как? © |
|||
|
||||
jzZ |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 91 Регистрация: 17.7.2006 Репутация: нет Всего: 2 |
Это вообще что такое )) Добавлено @ 22:38 Весь код сущий кошмар, это я еще не говорю о стиле кодирования... |
|||
|
||||
Ignat |
|
|||
Флудератор Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
Ой, мама... Где я? Вообще, что здесь так? -------------------- Теперь при чем :P |
|||
|
||||
Vreden |
|
|||
Idiotic Admin Профиль Группа: Участник Сообщений: 295 Регистрация: 12.7.2006 Репутация: -1 Всего: 1 |
нууууууууууууу и кто-нибудь исправит?
-------------------- Чё? Как? © |
|||
|
||||
Ignat |
|
|||
Флудератор Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
Вероятно, нет. Здесь переписывать надо -------------------- Теперь при чем :P |
|||
|
||||
Vreden |
|
|||
Idiotic Admin Профиль Группа: Участник Сообщений: 295 Регистрация: 12.7.2006 Репутация: -1 Всего: 1 |
ну тогда больше код я здесь не буду показывать
-------------------- Чё? Как? © |
|||
|
||||
Ignat |
|
|||
Флудератор Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
Не верный ответ. Перепиши сам по правилам, высказанным в этой теме, а затем опубликуй. Тогда советы посыпятся как из ведра А переписывать никто не будет. -------------------- Теперь при чем :P |
|||
|
||||
Vreden |
|
|||
Idiotic Admin Профиль Группа: Участник Сообщений: 295 Регистрация: 12.7.2006 Репутация: -1 Всего: 1 |
знал бы я как, все пишут мол это не так, это не так, а примеров кода, как сделать это не так - так!, не дают
-------------------- Чё? Как? © |
|||
|
||||
Ignat |
|
|||
Флудератор Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
Тогда начнем:
1. С какой целью перечислены все алфавитно-цифровые символы в регулярке? 2. Для чего служит оператор || , это я не увидел у вас в коде, но он там напрашивается. 3. Откуда навыки комментировать знаком # ? 4. Если есть повторы кода, то почему не используются функции? -------------------- Теперь при чем :P |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Vreden, у тебя похерилась кодировка. Ну и чтоли твои кракозябры раскодировать? Раскодировать не буду. Посему код со своими комментами.
|
|||
|
||||
skyboy |
|
|||
неОпытный Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
блоки "<html><body>" и прочие части ты печатаешь в любом случае. так зачем тогда их в каждую ветвь if'a вставлять?
|
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
skyboy, угу но дальше оптимизячить меня задолбало. Я б вообще все не так писал
|
|||
|
||||
Ignat |
|
|||
Флудератор Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
Лёх, к запросу:
-------------------- Теперь при чем :P |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Ignat, дырка в секьюрити а что к запросу
|
|||
|
||||
Ignat |
|
|||
Флудератор Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
В смысле SQL тоже по правилам оформлять надо. еще порефакторил, взял за основу код smartov'а
-------------------- Теперь при чем :P |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Я, если честно, предложил что то вроде этого для обработки данных:
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Ignat |
|
||||
Флудератор Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
IZ@TOP, зачОт,
Вот только одно замечание по коду: аргументы в объявлениях и вызовах функций и методов класса принято обрамлять пробелами (по крайней мере меня за это "били долго"). Т.е. не так:
а так:
-------------------- Теперь при чем :P |
||||
|
|||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Ignat, в каждой команде по своему))) Меня щас бьют за большие отступы)) Перучиваюсь по чуть-чуть.
Конкурс для новичков! Найди в моем коде 1000 и одну ошибку! Ну не тысячу, хотябы пару, так как писалось все быстро и не как рабочий а как теоретический пример. В следующий раз вообще интерфейсы писать буду ) ООП РУЛЕЗ! -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
IZ@TOP, эк однако тебя штыркнуло
не хватает только class HelloWorld.... |
|||
|
||||
faost |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 114 Регистрация: 5.11.2004 Репутация: нет Всего: 2 |
А где принято? Очень вдруг интересно стало, откуда такая уверенность "в правильности" такого подхода Примерно тот же вопрос к IZ@TOP по поводу
Это сообщение отредактировал(а) faost - 25.8.2006, 18:59 --------------------
Если у вас нет проблем, значит вы уже умерли |
||||
|
|||||
Ignat |
|
|||
Флудератор Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
Я не претендую на истину. Меня в последнее время на работе много натаскивали на оформление кода. И вот был такой пунктик. Хотя надо было выразиться так "ИМХО лучше оформлять пробелами". Кстати, я действительно проникся этим. -------------------- Теперь при чем :P |
|||
|
||||
Muchenik |
|
||||||
Бывалый Профиль Группа: Участник Сообщений: 174 Регистрация: 27.10.2005 Репутация: нет Всего: 5 |
Мне тоже не совсем понятно почему так. В таких случаях использую стандарт pear:
Из стандартов кодирования PEAR:
|
||||||
|
|||||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Я тоже в коде стараюсь использовать PEAR-стандарт.
|
|||
|
||||
Rock |
|
|||
Опытный Профиль Группа: Участник Сообщений: 264 Регистрация: 13.1.2005 Где: Краснодар Репутация: нет Всего: 1 |
Кстати, не плохая тема, ведь учится как раз надо на чужих ошибках
Токо вот было бы лучше, если бы укзав код, вы бы указывали и на недостатки, объяснить, почему это не так. Как сделал IZ@TOP в первом посте, оставил свои комменты к когду А то получается так, что с кода:
Все знающие смеются А новички только затылки чешут, и продолжают делать так, возможно только никому теперь этого не показывая )) Иначе эту тему смело в Юмор можно, да и только... имхо |
|||
|
||||
Muchenik |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 174 Регистрация: 27.10.2005 Репутация: нет Всего: 5 |
Просто, для того чтобы что то делать, нужно четко себе представлять, что делает та или иная операция. При отсутствии того, люди пишут курьезный код.
unlink - удаляет файл и возвращает TRUE в случае успешного завершения. т.е. в данном случае, программист пытается удалить файл повторно. |
|||
|
||||
Rock |
|
|||
Опытный Профиль Группа: Участник Сообщений: 264 Регистрация: 13.1.2005 Где: Краснодар Репутация: нет Всего: 1 |
я вкурсе, но начинающим это может быть неизвестно, ведь все-таки появился такой код, следовательно появится ещё раз, следовательно надо объяснить почему не надо так делать.
А ведь в понимании того человека возможно и было четкое представление, на основе которого код написан был
сначало проверка возможно ли это, а потом уже действие Это сообщение отредактировал(а) Rock - 28.8.2006, 20:32 |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Rock,
Не прав ты, камрад. Это функция библиотечная и элементарная как 2х2 Любой новичок/начинающий/незнающий/прочий должен СНАЧАЛА ПРОЧТИТАТЬ МАНУАЛ, особенно после ознакомления с этой темой. RTFM, как говорится! А если он будет продолжать делать точно так-же, только втихую, - то он просто ламер - т.е. человек, нежелающий учиться. Это сообщение отредактировал(а) smartov - 29.8.2006, 11:30 |
|||
|
||||
Rock |
|
|||
Опытный Профиль Группа: Участник Сообщений: 264 Регистрация: 13.1.2005 Где: Краснодар Репутация: нет Всего: 1 |
smartov, эту функцию я просто как пример привел, смысл то более глобальный, чем объяснение библиотечных функций
|
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Rock, ну значит пример был неудачный. А обьяснять... кому. Друг-другу чтоль? Если спросят - обьясним.
|
|||
|
||||
faost |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 114 Регистрация: 5.11.2004 Репутация: нет Всего: 2 |
из библиотеки самых бесполезных кусков кода топик превращается в библиотеку самого бесполезного флуда =)
--------------------
Если у вас нет проблем, значит вы уже умерли |
|||
|
||||
IZ@TOP |
|
||||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Модератор: прекращаем пустую болтовню!
Товарищи! Если выкладывате какой-то код, хотя бы слегка комментируйте в нем происходящее! Так действительно будет лучше. Кто-то спрашивал на счет шорт тегов: не используйте это безобразие! Я час копался - почему у меня не видно файла, который сгенерирован для экспорта (расширением html) и, с XML контентом. Угадайте почему? Потому что кто-то поставил хандлер РНР на html файлы + на сервере в конфиге были разрешены шорт теги! В итоге РНР матерится трехэтажным матом на XML и мы получаем пустую страницу, ибо (для тех кто не в курсе) XML файл начинается с объявления <?xml! Добавлено @ 16:48
Наверное человек просто хотел проверить существование файла. Из этого делаем вывод что нужно было делать так:
Добавлено @ 16:51 Замечательно, нашел тему просто переполненную безобразием называемым "иф адом")) http://forum.vingrad.ru/index.php?showtopic=109772 -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
IZ@TOP, не так страшен иф ад как текст с картинкой до Тега html......
|
|||
|
||||
Всемогущий |
|
||||
Опытный Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: 1 Всего: 13 |
Привет всем
на форуме видел
верно говорят трудно разбираться. А чем можно заменить |
||||
|
|||||
skyboy |
|
|||
неОпытный Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
разбить на функции, к примеру
|
|||
|
||||
Alone |
|
|||
Опытный Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: нет Всего: 6 |
Это называется рефакторинг кода.
-------------------- |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Всемогущий,
тут дейтсивтельно подходов много. Можно как подсказал товарищ, разбить на фукнции. Первые триста строк - одна функция. Вторые (по else) - вторая. Это самый простой и в общем-то неправильный вариант. Потому-что я считаю и мой опыт это подтверждает, что можно всегда избежать ситуаций в которых иф 300 строк элс - 300 строк. Наверняка можно построить логику по другому. Многое наверняка общее. Многое наверняка можно написать по-другому. |
|||
|
||||
skyboy |
|
|||
неОпытный Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
необязательно так страшно. интуиция мне подсказывает, что почти наверняка 50% кода в обоих ветвях могут быть объединены в одну функцию. возможно - с разными параметрами. хотя, конечно, вариант правильнее. |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
||||
|
||||
Vaulter |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
|
|||
|
||||
Ignat |
|
|||
Флудератор Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
Vaulter, только не говори, что это писал ты
-------------------- Теперь при чем :P |
|||
|
||||
RomanK |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: нет Всего: 2 |
Вот... нашел. Цитирую только кусок кода:
Больше всего понравились строки - 16, 19, 21. Это сообщение отредактировал(а) RomanK - 2.9.2006, 18:01 |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Не оценил. Просто какой-то недоработанный код и все :\
Написан конечно дубово но индусский стиль присутствует очень мало... Да и не рабочий код по-идее... |
|||
|
||||
Vaulter |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
Ignat, чур меня! тебе вот смешно! а мне пришлось ловить бугага на протяж. двух месяцев переделывая систему...
в итоге, с нуля свою накропал |
|||
|
||||
RomanK |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: нет Всего: 2 |
smartov, если это ты про код в моем посте, то это просто вырезка из большого кода, в котором мне понравились именно строки 16, 19, 21. Особенно понравилась строка 21.
Интересно что этим хотел показать автор! |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Ну строка 16 - строка как строка, ну может хотел он переносов в конце текста.
19, 21 - такое впечатление что кто-то что-то дебажил или временно проверял, а потом забыл убрать... |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Всем офисом дружно катались под столами после просмотра такого кода:
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Мощно! )
Мы такой код называем Uber_really_что-то В твоем случае Uber_realy_true |
|||
|
||||
BuShaRt |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: -1 Всего: 6 |
А зачем топ был созда? =)) Переименуйте его в "Забавные ошибки" Просто не чего интересного не узнал... |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
||||
|
||||
BuShaRt |
|
||||||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: -1 Всего: 6 |
smartov,
Ну да, я конечно посмеялся, почуствовал себя не полным нубом, но все же было бы гораздо лучше, если бы люди рассказывали тут как стоит избавляться от определенных ошибок.... В самом первом посте были комменты, к которым можно прислушаться, а больше я нечего не увидел, лишь куча кода... Я думаю всем стоит чему либо учиться, поэтому стоит не только смеяться над чужими ошабками, но и критиковать их... Вохможно возникнут споры, но ведь в спорах рождаеться истина... Вот я кстате не понял вот тут:
А зачем каждый раз прерывать? не проще ли делать так?
Потом перенести в отдельный файл...
и сделать так в подытоживание ошибок:
|
||||||||
|
|||||||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
BuShaRt, можно еще много чего красивого сделать. Я написал поправку а 5 минут чтобы показать как от этого можно хотя бы _минимально_ здыхаться.
Код что я написал тоже корявый, но гораздно менее индусский чем оригинал. Потом ребята еще навернули. Ты ж видел. Даже в файл отдельный переносить не надо. Зачем? Накапливай в переменку. |
|||
|
||||
BuShaRt |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: -1 Всего: 6 |
||||
|
||||
BuShaRt |
|
||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: -1 Всего: 6 |
Вот сейчас разгребаю один из модудей RunCMS, вроде пример для подражания, а вот такой код увидеть обчное дело:
В чем же дело? Почему программисты позволили себе написать такой стращный код? Добавлено @ 09:13
|
||||
|
|||||
smartov |
|
||||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
А. Тогда да. Но учти, что у товарища там все ошибки имели разный тескт. Так что это уже шаблоны получаются.
Значит не такой уж пример для подражание как кажется. Или писало много программеров. Ты бы видел код довольон широко рапсространенного движка OSCOmmerce. Там просто жесть. А phpBB? Сколько там дыр. Так что не все что массово- пример для подражания. |
||||
|
|||||
Eugene_Bond |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 138 Регистрация: 3.9.2006 Репутация: нет Всего: 4 |
На эту тему есть комьюнити в ЖЖ, но в последнее время активность спала..
|
|||
|
||||
BuShaRt |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: -1 Всего: 6 |
smartov,
Ну так да, шаблон. В нем тег <messages>, который регуляркой заменяеться на текст ошибки=) Хе.. Покажу ка я свой код, который мне не очень нравиться.. Можете посмеяться, но пожалуста откоментируйет над чем и чем моно заменить =) То, что ввода не безопасен во второй форме я знаю... просто пока не дошел то туда, а функция field_validator как раз фильтрует ввод и возращает массив $messages. На примере описанного мной выше.
|
|||
|
||||
Ignat |
|
|||
Флудератор Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
ИМХО, во всем тексте проблемы с отступами... -------------------- Теперь при чем :P |
|||
|
||||
smartov |
|
||||||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
BuShaRt, смеятся не будем. Зачем.
А вот поправить. Ну беде вдаваться особо в структуру (то бишь улучшать саму логику предлагать не буду, это дело вкуса). А именно по стилистическим ошибкам. 1)
Уже много раз говорено даже в этом теме, даже с обьяснениями, что не надо так писать. if (...) {500 строк) читать неудобно ну ни в каком месте.
Этот код почему то повторяется два раза в одном и том же уловии. Это UberReallyExit такой? Итого имеем.
А регистрацию я бы а) доделал б) вынес в другой файл или класс |
||||||
|
|||||||
BuShaRt |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: -1 Всего: 6 |
smartov,
хм.. логично =) спасибо... А если вот это еще посмотреть (раз такая расдача)? Тут я сам понимаю что бред, но просто не знаю, как можно оптемезировать.... Писал вообше нарашиванием, т.е. сначало одно написал, а потом (когда понадобилось) дописывал другое. Чтоб везде не коменнтить... В итоге все операции сводяться к занесению в переменную $page определенных данных.
Чувствую тут точно ржать будите |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Ну незнаю. Так написано как написано. По стилистике - нормально, без индуизмов.
То бишь код читабельный и саппортный. |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
BuShaRt, есть несколько замечаний:
Еще хотелось бы заметить что у тебя ошибки на разных языках... по моему это странно. Еще меня приятно удивило полное отсутствие каких бы то нибыло обрамлений кавычками индексов массивов... может это у тебя константы? Попробуй в начале всех своих страничек поставить ini_set('display_errors', 1); error_reporting(E_ALL);. Пока не избавишься от всех нотисов - код невалидный. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
BuShaRt |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: -1 Всего: 6 |
боже... сколько ошибок повылезало... |
|||
|
||||
BuShaRt |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: -1 Всего: 6 |
Как теперь?
mysql_real_escape_string еще не юзал, ее отнес отдельно к целому классу работы с БД, которым щас и занимаюсь... Да, и не ужели mysql_real_escape_string полностью защищает от иньекция?
|
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
||||
|
||||
BuShaRt |
|
||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: -1 Всего: 6 |
smartov,
Вот так =) А потом
|
||||
|
|||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
BuShaRt, опять же, есть небольшое замечание: в некоторых случаях preg_replace лучше заменить на str_replace. А насколько я вижу, тебе именно это лучше и сделать, так как у тебя не регулярка а простая строка идет на замену - зачем лишний раз процессорное время тратить?
Добавлено @ 13:34
Дело в том что эта функция экранирует данные согласно синтаксису mysql и данных касаемых конкретного коннекта. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
G0rinich |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 21.8.2006 Репутация: нет Всего: 1 |
http://siteservice.ru/
Linker 3.0 файл linker_files/add_form.php строка 14 if(($banner || $link) && $ok==1) $ok=1; |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
УберРеаллыПрисвоить встречал тоже такие строки
|
|||
|
||||
mr.fox |
|
|||
Опытный Профиль Группа: Участник Сообщений: 298 Регистрация: 13.3.2005 Где: Ирландия Репутация: нет Всего: 2 |
Cейчас этого кадра поймал..
http://forum.woweb.ru/topic25160s0.html? я валяюсь |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Что-то пост не совсем по теме. Описки бывают. Бывает что сидишь и тупо не видишь что ошибся в написании
Тут тема не про это. |
|||
|
||||
mr.fox |
|
|||
Опытный Профиль Группа: Участник Сообщений: 298 Регистрация: 13.3.2005 Где: Ирландия Репутация: нет Всего: 2 |
smartov, ну я не знаю, такое не заметить очень уж сложно
|
|||
|
||||
AztEK |
|
|||
Опытный Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: нет Всего: 18 |
Недавний прикол с bash.org.ru :
Не совсем в тему, но поржал -------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
Ground |
|
|||
Опытный Профиль Группа: Участник Сообщений: 321 Регистрация: 27.2.2006 Где: Комсомольск Репутация: нет Всего: 1 |
Подскажите как можно упрощать такой код:
|
|||
|
||||
Vaulter |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
Ground, скрепя зубами...
|
|||
|
||||
клоп |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 103 Регистрация: 28.2.2006 Где: г. Череповец Репутация: нет Всего: нет |
Решил написать свой пост тут, т.к. не уверен в правильности своего решения.
Делаю скрипт онлайн матча 2х команд. Файл 1 , доступен по паролю (статист в онлайне сидит и забивает результаты в форму)
Файл 2 , доступен всем (обновляется через определенное время)
Как видете, чтоб показать какой либо результат, а их может быть не один десяток и находиться они могут в разных местах страницы (файл 2) приходиться каждый раз открывать файл и считывать, что не есть хорошо как мне кажется. Как быть? --------------------
Всякая чепуха посещает голову, когда она пуста .... |
||||
|
|||||
smartov |
|
||||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Ground,
Лёгко. Смотри. У тебя повторяются одни и те же строки 20(!!) раз. Извеняются только границы выборки. Логично что надо просто организовать условие и всё.
клоп, навскидку (писал по быстрому. может ошибки будут, но думаю смысл поймешь) Файл 2 будет таким
|
||||
|
|||||
клоп |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 103 Регистрация: 28.2.2006 Где: г. Череповец Репутация: нет Всего: нет |
smartov спасибо, но этот перебор выведет один за другим все значения в массиве, а нужно только одно определенное
--------------------
Всякая чепуха посещает голову, когда она пуста .... |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
клоп, тебе нужна только первая строчка из файла? Ну тогда читай только ее. Одним циклом меньше.
|
|||
|
||||
Vaulter |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
вчитайтесь внимательно. особенно "Access denied."!!! однако: www.e107.org !!! |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Vaulter, я подобное видел в коде phpbb. Методы защиты конечно так себе.
|
|||
|
||||
Mystery_of_being |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 52 Регистрация: 7.11.2006 Репутация: нет Всего: нет |
Мне кажется он просто полный новичок. Я когда только учил тоже был упорным типам. )) Вы когда начинали глупочти не делали ??
Я вот писал If( ... ) { Делам что-то } else { А тут пусто. Думал если не будет Элс то будет ошибка ))) } Это сообщение отредактировал(а) Mystery_of_being - 8.11.2006, 00:58 |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Mystery_of_being, к чему ты это написал? Представленный Вольтером код писал не новичок однозначно.
По крайней мере не настолько новичок чтобы думать что если else не написать то будет ошибка. |
|||
|
||||
BuShaRt |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: -1 Всего: 6 |
Mystery_of_being,
Почему не писал так?
Это сообщение отредактировал(а) BuShaRt - 29.11.2006, 14:09 |
|||
|
||||
coyl |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 74 Регистрация: 13.6.2006 Репутация: нет Всего: 1 |
Жесть конечно все это, но я вот сейчас получил проект. Посмотрев на код, я понял, что дал бы ему максимум 15 штук рублей за и то только за то, что время потратил на написание 5 мегов кода.
Когда я стал углубляться, чтобы внести срочные изменения, я просто проклял его (все вышеперечисленные ошибки там были, структурирование, видимо було для него незнакомым словом ифы и элсы, содержащие по 300 строк кода ит.д. ит.п.) и понял, что не дал бы ему и 15 штук... Так вот представьте мой ужОс, когда я узнал, что этот "кодер" получил за написание этой системы (внимание внимание) 170 000 рублей. Поприветствуем его заказчиков))) |
|||
|
||||
Mal Hack |
|
|||
Мудрый... Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
А можно, хотя бы приватно получить ссылочку на сие чудо? Уж больно хочется воочию глянуть реализацию...
|
|||
|
||||
coyl |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 74 Регистрация: 13.6.2006 Репутация: нет Всего: 1 |
Да там смотреть-то особо нечего. Все \вродебы\ работает правильно, дизайн рисовал мой хороший друг, так что выглядит все прилично, но вносить какие-либо изменения или дополнительные модули - это аЦЦко просто.
Собственно говоря поэтому этот чел и ушел с проекта - не укладывался ни в какие сроки даже по мелочовым правкам. |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
|
|||
|
||||
coyl |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 74 Регистрация: 13.6.2006 Репутация: нет Всего: 1 |
Жесть. Только что нарвался на кусок кода
За такое люди еще и деньги получают. |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
coyl, ну в принципе написано кривовато и несекьюрно, но идея ясна. Возможно там поля в динамике генерятся, я страницу не вижу.
|
|||
|
||||
Mal Hack |
|
|||
Мудрый... Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
|
|||
|
||||
AztEK |
|
||||
Опытный Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: нет Всего: 18 |
Это действительно реальный код? -------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
||||
|
|||||
Mal Hack |
|
|||
Мудрый... Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
||||
|
||||
awers |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: нет Всего: 31 |
ЖЕСТЬ ТАК ЖЕСТЬ:
Сайт: http://studinfo.ru/ Все в файле.. Не весь исходник кинул ... просто и так хватит ))) Присоединённый файл ( Кол-во скачиваний: 43 ) 1.RAR 35,34 Kb |
|||
|
||||
Mal Hack |
|
|||
Мудрый... Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Да вроде бы нормальный код.
|
|||
|
||||
awers |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: нет Всего: 31 |
читай папку A2 ... ))))
|
|||
|
||||
Mal Hack |
|
|||
Мудрый... Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Нет такой
|
|||
|
||||
awers |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: нет Всего: 31 |
ну а модули с папки админ??
|
|||
|
||||
Mal Hack |
|
|||
Мудрый... Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Нормально более менее...
|
|||
|
||||
MuToGeN |
|
|||
Лесник Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 2 Всего: 32 |
awers, единственная вещь - никаких error_reporting(0).
ini_set('display_errors', 0) и настраиваем логирование ошибок, желательно помимо стандартного PHPшного логирования свой обработчик (man set_error_nadler) с логированием стека вызова. -------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
AztEK |
|
|||
Опытный Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: нет Всего: 18 |
[offtop]
А как логировать стек вызовов? [/offtop] -------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
MuToGeN |
|
|||
Лесник Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 2 Всего: 32 |
debug_backtrace()
-------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
IZ@TOP |
|
||||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Уга-га. Купили один проект (фотогалерея), код с первого взгляда порадовал, но некоторые вещи особенно)
Люблю сокращения, но все же)))
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
||||
|
||||
WolfON |
|
|||
Опытный Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
Есть код типа:
И судя по всему, прийдется дописать таких функций еще пять Каким образом вы-бы упростили код, не лишая его читабельности, пока ничего, кроме как вынести его в отдельную функцию в голову не приходит =/ |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
WolfON,
как вариант, например
|
|||
|
||||
d4rkr00t |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 26.3.2006 Репутация: нет Всего: нет |
во что встретил в одном проекте
Это что система банна??))) Это сообщение отредактировал(а) d4rkr00t - 10.11.2008, 19:57 |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
||||
|
||||
jnb |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 4.10.2006 Репутация: нет Всего: 1 |
Вижу ветка еще жива.
Прочитать смог только первую страницу. Идея ТС-а конечно интересная, но что-то пошло вразнос: гуру выкладывают код, потом дружно ржут над ним без комментариев, засирают авторов кода и ВСЕ! Это очень полезно для новичков. Новичок только может сделать вывод: что бы он не написал - его залажают. |
|||
|
||||
bars80080 |
|
|||
прапор творюет Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: нет Всего: 315 |
jnb, согласен, тема не флеймовая.
однако на первой странице всего три куска. первые два от IZ@TOP и smartov объяснены достаточно Vaulter, правда, изначально ничего не говорит, но дальше из контекста ясно, что убивает в этом коде. и не нужно быть семи пядей во лбу, чтобы понять что в первом примере из-за ($a, $b, $c, $d) просто фиг разберёшься в функции. почему было не назвать переменные понятно - неизвестно а во втором примере человек явно страдает. очень сильно. циклы для того и придуманы, чтобы не было подобных упражнений для пальцев |
|||
|
||||
Majesty |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 98 Регистрация: 20.3.2005 Где: Almaty, Kazakhsta n Репутация: нет Всего: нет |
Платный движок для создания "социальных сетей" SocialEngine. Класс se_user (/include/class_user.php). Метод user_fields.
|
|||
|
||||
NLspieler |
|
|||
Опытный Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: нет Всего: 19 |
Функция помогающая составлять mathml формулы.
Сильно же по-уродски выглядит?
|
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
NLspieler, да, все это можно было сделать проще, забив сначала массив соответсвий замен.
|
|||
|
||||
NLspieler |
|
|||
Опытный Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: нет Всего: 19 |
Что значит массив соответствий замен? |
|||
|
||||
NLspieler |
|
|||
Опытный Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: нет Всего: 19 |
А вот это одна из функций, которая использует предыдущую функцию
|
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
это навскидку так можно упростить |
|||
|
||||
nerezus |
|
|||
Вселенский отказник Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Хотя по сравнению с битрегзом... Это сообщение отредактировал(а) nerezus - 8.12.2008, 02:55 |
|||
|
||||
MoLeX |
|
|||
Местный пингвин Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: нет Всего: 140 |
Пред история:
на работе приходиться поддерживать один крупный государственный проект, сделанный на заказ и за очень большие деньги (делал не я, а фирма-дурдом, по другому их не назовешь) последние месяцы стали этот проект очень сильно развивать, каждый день закачивалось от 20 файлов и достигли мы такими темпами более 10 тыщ файлов (законопроекты, приказы и т.д.), и началось у меня веселье - чтобы закачать файл надо ждать минут 15 (к слову сервер у нас не хилый, когда файлов было менее 6 тыщ все работало на ура, а тут вот началось). в результате беглово осмотра нашел следующий код
после убития этих строк проект опять залетал. Люди не когда так не делайте -------------------- Amazing |
|||
|
||||
pompei |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 155 Регистрация: 7.9.2007 Репутация: нет Всего: 6 |
Вот темная прога для shell-а:
Я официально и уполномоченно заявляю, эту программу нельзя использовать, и категорически запрещено её запускать, особенно под суперпользователем "root" - ЭТО БУДЕТ НАРУШЕНИЕ АВТОРСКИХ ПРАВ И БУДЕТ ОЧЕНЬ СТРОГО КАРАТЬСЯ ПРИТОМ НЕМЕДЛЕННО И НЕЗАМЕДЛИТЕЛЬНО Это сообщение отредактировал(а) pompei - 2.4.2009, 08:03 --------------------
А всё оказывается гораздо проще: пассивные наноструктуры - активные наноструктуры - системы наносистем - молекулярные наносистемы - сингулярность! По пять лет на каждый этап. |
|||
|
||||
MoLeX |
|
|||
Местный пингвин Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: нет Всего: 140 |
не понял Добавлено через 7 минут и 5 секунд это же перл? -------------------- Amazing |
|||
|
||||
nerezus |
|
|||
Вселенский отказник Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
MoLeX, запусти )
Это тест на профессионализм админа: он автоматически узнает скилл админа и, если админ плохой, наказывает его. |
|||
|
||||
MoLeX |
|
|||
Местный пингвин Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: нет Всего: 140 |
nerezus, аха, запустил. и не чего
Добавлено через 12 секунд -------------------- Amazing |
|||
|
||||
mogul82 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 282 Регистрация: 20.11.2008 Репутация: нет Всего: -5 |
Я когда увольнялся из 2х фирм, запоганил все сайты. Стер функции для проверки ошибок, заменил функции на старые и т.д.
Вот там ща наверное мучуются. : |
|||
|
||||
nerezus |
|
|||
Вселенский отказник Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Т.е. ты работал в настолько гадюшнике, что даже не было CVS-системы у них?
|
|||
|
||||
mogul82 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 282 Регистрация: 20.11.2008 Репутация: нет Всего: -5 |
nerezus,
Каждый делал один проект с нуля в одиночку. |
|||
|
||||
nerezus |
|
|||
Вселенский отказник Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Покажешь код?)
|
|||
|
||||
TUMS |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 61 Регистрация: 16.3.2008 Репутация: нет Всего: 3 |
как-то так =) |
|||
|
||||
WiseFire |
|
||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 22.9.2009 Репутация: нет Всего: нет |
МЕНЯ РВЕТ =))))) P.S. Извините, не сдержался... |
||||
|
|||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
За что только не плОтют
|
|||
|
||||
nerezus |
|
|||
Вселенский отказник Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Отсюда: http://forum.vingrad.ru/forum/topic-274389.html
|
|||
|
||||
bars80080 |
|
|||
прапор творюет Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: нет Всего: 315 |
свежачок
|
|||
|
||||
overmet |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 83 Регистрация: 15.8.2009 Где: Gomel Репутация: нет Всего: -2 |
советы
Это сообщение отредактировал(а) overmet - 19.8.2010, 00:01 |
||||
|
|||||
SneG0K |
|
|||
Max Mara Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: нет Всего: 54 |
nerezus, у тебя хоть отступы есть
|
|||
|
||||
Muerto |
|
||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: нет Всего: 4 |
Нам похожее в универе задавали... на скок помню когда писал подобное на Java циклов понадобилось не более двух (кажется вообще один) |
||||
|
|||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Muerto, а что вообще эта конструкция делает? (а то лень разбираться)
|
|||
|
||||
N_Ghost |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 18.6.2008 Репутация: нет Всего: нет |
Подкинули мне интересный проектик, малость поправить и дополнить. То что дизайнер его верстал похоже сразу в фотошопе, я особо не удивился. Но когда полез в код, и нашел там такой веселый кусок, пол часа ржали всем отделом |
|||
|
||||
KLeonid |
|
|||
Entropy Профиль Группа: Участник Сообщений: 51 Регистрация: 5.7.2007 Где: Shpongleland Репутация: нет Всего: 1 |
А тема то хорошая! Вот только действительно, комментировать нужно код, иначе новички могут не понять над чем смеяться .
Никогда не считал себя хорошим кодером, я скорее инженер, но даже на php4 таких глупостей как в теме себе не позволял. А глупостей я насмотрелся, когда переписывал оскоммерс . N_Ghost, да код забавный... автор видимо не умеет пользоваться LEFT JOIN, или в упор не знает, что можно делать выборку из нескольких таблиц одним запросом . А уж как переменные плодить любит! Вообще, логика этого кода малопонятна . Можно было сделать так:
Но от этого код становится лишь немного лучше... а логика все так же дубова Это сообщение отредактировал(а) KLeonid - 30.3.2011, 20:30 |
|||
|
||||
N_Ghost |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 18.6.2008 Репутация: нет Всего: нет |
Забыл добавить что сама дата храниться в базе в трех int полях, как, день, месяц, год. Там видимо программисту не то что LEFT JOIN, а даже стандартные типы данных не известны
Еще убила таблица пользователей, UserID, по которому выбираються пользователи, это var_char, содержащий md5 микротайма. А вот пароль храниться в открытом виде, в текстовом поле. Такой логики, как не пытался, понять не смог. |
|||
|
||||
KLeonid |
|
|||
Entropy Профиль Группа: Участник Сообщений: 51 Регистрация: 5.7.2007 Где: Shpongleland Репутация: нет Всего: 1 |
А ее там и нет . Просто многие считают себя программистами по недоразумению. Если бы они обладали достаточным воображением и могли провести аналогию своей работы, например, с постройкой автомобиля, поняв, что сами ездить на нем они ну совсем не захотели бы (ибо стремно, своя шкура все таки), скорее всего бросили бы это дело или начали совершенствоваться. Впрочем, большинству ###кодеров на это совершенно наплевать. Это их хлеб и у них есть своя потребительская аудитория... впрочем сочувствовать ей я не собираюсь, т.к. достаточно знаком с ней, и в большинстве случаев эти заказчики в последствии платятся за свою жадность .
|
|||
|
||||
N_Ghost |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 18.6.2008 Репутация: нет Всего: нет |
Есть много способов проверить что переменная существует, или содержит нужное значение.
Но такого извращенного способа еще не встречал
|
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
А чего. Отсроумно
|
|||
|
||||
srt |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 65 Регистрация: 13.5.2008 Репутация: нет Всего: 1 |
самый быстрый способ избавиться от sql injection
никаких регулярок и прочей лобуды |
|||
|
||||
N_Ghost |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 18.6.2008 Репутация: нет Всего: нет |
Продолжу тему веселых запросов. Нужно узнать, есть ли транспорт из страны, и в страну. Всего 94 страны, 189 запросов в базу, только для того что бы показать есть ли что то из этой страны, и в эту страну.
Это сообщение отредактировал(а) N_Ghost - 2.7.2011, 13:07 |
|||
|
||||
MoLeX |
|
|||
Местный пингвин Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: нет Всего: 140 |
мда. очень интересно использовать цикл в запросе.
-------------------- Amazing |
|||
|
||||
FlameTH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
как вам такое?
|
|||
|
||||
jexerrus |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 56 Регистрация: 17.3.2014 Репутация: нет Всего: нет |
жесть какая, вообще все куски кода как на подбор =)))))
|
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Избранное | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |