Оценка кода

Adelf

Administrator
Команда форума
@mz, прошу, прежде чем советовать, убедись на 100% что знаешь тему. оба два твои утверждения - полная хрень.
 

mz

Новичок
@Adelf, я знаю тему.
Первое утверждение подкреплено ссылкой. По второму, ты правда считаешь, что создание исключения под каждый HTTP код это нормально?
 

Adelf

Administrator
Команда форума
по ссылке - какойто урок для начинающих. я много пишу на сишарп. нет там привычки делать хелпер-методы для исключений.

Это ты предлагаешь под каждый код. 404 - частая вещь, которая требует своего исключения. во всех нормальных фреймворках оно есть.
 

Adelf

Administrator
Команда форума
хотя нет. соврал. это типа бест практис... ерунда :)
 

hell0w0rd

Продвинутый новичок
Есть один интересный момент, исключения тут в принципе не нужны, можно спокойно обойтись сразу созданием ответа с кодом 404.
Другое дело 50x ошибки, но такие очень странно в коде бизнес-логики генерить.
 

AnrDaemon

Продвинутый новичок
если однотипные конструкции, вроде throw new HttpException(404, "Not Found"), тоже будешь дублировать их?
Зачем дублировать?
Просто перепишу конструктор, чтобы по коду задавал текст.
PHP:
throw new HttpException(null, 404);
А в роутере отловлю и заменю на стилизованную страничку, если надо.
 

AnrDaemon

Продвинутый новичок
Другое дело 50x ошибки, но такие очень странно в коде бизнес-логики генерить.
5xx - "server issues". Это не обязательно стандартные ошибки, прописанные в RFC. Сам по себе протокол HTTP задуман как расширяемый, ты можешь использовать свои собственные коды для передачи сигналов за пределы приложения.
 

mz

Новичок
@Adelf, а, хотел якорь сразу на принцип дать, а там только на код id стоит.

во всех нормальных фреймворках оно есть.
В том же asp.net mvc такого нет.
Проблема в том, что придется принять соглашение о запрете ловить NotFoundHttpException, т.к. оно эквивалентно HttpException(404) и ловить нужно HttpException. Странно иметь такой колхоз на уровне фреймворка %)
 

Redjik

Джедай-мастер
IMO, если ты хочешь выбросить эксепшен, сделай это!
Не надо писать "throw $this>ХЗ(WTF)". Пиши то, что хочешь написать. "throw new ХЗException(WTF)"
ты почитай рассуждение фабьена и этого дурочка, который впилил эту фичу в симфони...
там типа, ну народ же не может помнить названия классов эксепшенов, поэтому мы эту хрень добавим в контроллер...
я когда это читал, у меня постоянно вопрос появлялся - вы ЧТО, в блокноте пишите? дак он тоже без автокомплита...
 

флоппик

promotor fidei
Команда форума
Партнер клуба
ты почитай рассуждение фабьена и этого дурочка, который впилил эту фичу в симфони...
там типа, ну народ же не может помнить названия классов эксепшенов, поэтому мы эту хрень добавим в контроллер...
Мне интересно, а в чем отличие между «помнить название класса» и помнить название метода? )
Вообще, в пхп конечно хочется немножко сахарку для эксепшнов, потому что в конструкторе код ошибки там второй параметр, после текста (кто это придумал так ваще?)
 

Redjik

Джедай-мастер
Вот и я об этом же... для меня это естественно в любой среде, на любом фв, сначала попробовать написать
throw new NotFou...
если не автокомплитит
throw new Http...

все блин
 

iceman

говнокодер
а чем сеньор(помидор) должен заниматься?
пысы: ненавижу замену русских слов иностранными...
 

fixxxer

К.О.
Партнер клуба
а чем сеньор(помидор) должен заниматься?
http://programmers.stackexchange.com/questions/14914/whats-the-difference-between-entry-level-jr-sr-developers/14972

пысы: ненавижу замену русских слов иностранными...
А вместо "коммитить", "пушить" или "деплоить" ты что говоришь? =)
 

Sufir

Я не волшебник, я только учусь
А вместо "коммитить", "пушить" или "деплоить" ты что говоришь? =)
Заимствование и замена не одно и то же. Вместо жаргонного "деплоить" есть вполне адекватный и понятный термин "развертывать", который никапли не размывает "единый язык" и звучит более академически ("пушить" и "деплоить" это не язык и не замена русских слов, это просто устоявшийся жаргон). Почему нельзя проект "развернуть", зачем его обязательно "деплоить"? Это не язык, это жаргон.
Если же в русском нет адекватного аналога, то заимствование более чем здоровый подход. У меня нет с этим никаких проблем или ненависти, но претензия оправдана.
 
Последнее редактирование:

scorpion-ds

Новичок
Почему не обошлись одним HttpException?
Пришли в компанию "Sensio Labs" новые сотрудники на испытательный срок, им надо дать какое-то задание, и тим придумал создать обертки для наиболее часто применяемых исключений.
 

Вурдалак

Продвинутый новичок
Это не язык, это жаргон.
Жаргон — это и есть язык в понимании ubiquitous language.

Реальный пример тут на форуме: тут есть один чувак, который aggregate root называет «сводным корнем». Вот хер поймешь с первого раза, я только через несколько постов понял, о чём идёт речь.

Вместо жаргонного "деплоить" есть вполне адекватный и понятный термин "развертывать", который никапли не размывает "единый язык" и звучит более академически
Это неважно, что есть аналог и что он звучит более академически. Важно, чтобы люди друг друга понимали. Если ты говоришь «преобразователь данных» вместо DataMapper, то тебе регулярно будут задавать вопрос «что ты имеешь в виду под этим?». Если у вас в компании принято говорить «преобразователь данных», то окей, но вне твоей компании вряд ли этот синоним будет иметь успех, поэтому лучше от него отказаться.
 

Redjik

Джедай-мастер
да хз
деплоить - это и базку накатить и тестики прогнать... а не только что-то там развернуть
а если деплоить на продакшн, то список может увеличиться пунктов на 10 ;)
 
Сверху