"научите меня быть девелопером".

Доооо, так можно на любом языке сделать, мол "у меня для этого уже давно есть функция". И тогда любая задача решается одним ее вызовом.
Доооо, вы сами сможете подсчитать кол-во объектов и методов в этой строчке?
int[] ints = (from str in Request.Cookies["integers"].Split(',') select Convert.ToInt32(str)).ToArray();
 
Да, вылезет не ошибка, а предупреждение, и в таком случае странички нередко выглядят както так:

php_warning.png


connectingToMySQLError.png


Ящитаю это фейл. Кстати это яркий пример того, что писать подобные ужасы у них считается нормальным.

Доооо, вы сами сможете подсчитать кол-во объектов и методов в этой строчке?
int[] ints = (from str in Request.Cookies["integers"].Split(',') select Convert.ToInt32(str)).ToArray();

Тащемта это стандартная либа, все ок
 
notice всего-то, господи )) возвоможно, возможно. у меня они отключены, как по дефолту. но вы правы в общем-то.

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

Ты это, хомячков у себя там задрачивай :). меня не надо. А то книжек начитаются про правильные подходы и давай умничать.

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

Кстати да. Щас мы его залошим с легкостью.
 
notice всего-то, господи )) возвоможно, возможно. у меня они отключены, как по дефолту. но вы правы в общем-то.

Notice то на первом скрине, а с кукой будет именно warning.

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

Здрасьте пожалуйста. Это Вы сами придумали, или гдето прочитали такие рекомендации? Я ожидаю наличие куки, но имею ее отсутствие. Логично? Если бы в ПХП была полноценная поддерка исключений, то юзали б и помалкивали.

Ты это, хомячков у себя там задрачивай :). меня не надо. А то книжек начитаются про правильные подходы и давай умничать.

Кстати да. Щас мы его залошим с легкостью.

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

+1. Обрабатывание штатной ситуации через механизм исключений — верх "ума и сообразительности".
 
Здрасьте пожалуйста. Это Вы сами придумали, или гдето прочитали такие рекомендации? Я ожидаю наличие куки, но имею ее отсутствие. Логично? Если бы в ПХП была полноценная поддерка исключений, то юзали б и помалкивали.

Прийдет к тебе толпа юзеров без куков - чо ты делать будешь? Исключения ловить - дорогое удовольствие. Хотя если в твоем питоне стек не раскручивается - то говно вопрос.

Иди отсюда мальчик, не мешай дядям.

Дядя, ты шо-то загоняться начинаешь или мне кажется? Доебался до чужого кода, ожидай что так и до твоего кода точно так же доебутся.
 
Прийдет к тебе толпа юзеров без куков - чо ты делать будешь? Исключения ловить - дорогое удовольствие. Хотя если в твоем питоне стек не раскручивается - то говно вопрос.
Не дороже чем вызов функции. Учи матчасть.


Дядя, ты шо-то загоняться начинаешь или мне кажется? Доебался до чужого кода, ожидай что так и до твоего кода точно так же доебутся.

До моего кода доебались необоснованно. Любые попытки сделать иначе приведут только к замедлению работы и увеличению количества кода. Или нет? Давайте только без пердежа.
 
Код:
lIntCookies = request.COOKIES["integers"]
if lIntCookies is not None:
  try:
    integers = map(int, lIntCookies.split(","))
  except IndexError, ValueError:
    # handle bad cookie
    pass
Хочешь сказать, что так будет медленнее в случае отсутствия cookie?
 
Код:
lIntCookies = request.COOKIES["integers"]
if lIntCookies is not None:
  try:
    integers = map(int, lIntCookies.split(","))
  except IndexError, ValueError:
    # handle bad cookie
    pass
Хочешь сказать, что так будет медленнее в случае отсутствия cookie?

Та оно вообще вылетит с не пойманным KeyError))

Лучше делать так:

Код:
  try:
    integers = map(int, request.COOKIE.get("integers", None).split(","))
  except ValueError:
    # handle bad cookie
    pass

Тогда при отсутствии куки будет немного быстрее, (почти в 3 раза)

Но так как эта конструкция ест 0.00001% от общего времени, эту разницу даже измерить бенчмарками не удастся, что намекает о вреде преждевременной оптимизации)
 
Не дороже чем вызов функции. Учи матчасть.

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


До моего кода доебались необоснованно. Любые попытки сделать иначе приведут только к замедлению работы и увеличению количества кода. Или нет? Давайте только без пердежа.

По-моему предварительная проверка на наличие ключа быстрее облажания в случае его отсутствия, не? Ессно если ваще все приходят с нужными куками - то это излишне, а если 50 на 50 - то возможно имеет смысл. Хотя уже то что ты об этом не подумал и начинаешь выделываться говорит о крайне низкой твоей ценности как программера.
 
Та оно вообще вылетит с не пойманным KeyError))

Лучше делать так:

Код:
  try:
    integers = map(int, request.COOKIE.get("integers", None).split(","))
  except ValueError:
    # handle bad cookie
    pass

Тогда при отсутствии куки будет немного быстрее, (почти в 3 раза)

Но так как эта конструкция ест 0.00001% от общего времени, эту разницу даже измерить бенчмарками не удастся, что намекает о вреде преждевременной оптимизации)

Ок. C python дела не имел, но вот исправленный код. Хочешь сказать так будет медленнее, чем через исключение?
Код:
lIntCookies = request.COOKIES.get("integers")
if lIntCookies is not None:
  try:
    integers = map(int, lIntCookies.split(","))
  except IndexError, ValueError:
    # handle bad cookie
    pass

P.S. Например, при условии, что каждый третий-четвертый request будет без этого cookie.
 
Ок. C python дела не имел, но вот исправленный код. Хочешь сказать так будет медленнее, чем через исключение?
Код:
lIntCookies = request.COOKIES.get("integers")
if lIntCookies is not None:
  try:
    integers = map(int, lIntCookies.split(","))
  except IndexError, ValueError:
    # handle bad cookie
    pass

Этот вариант будет медленней чем:

Код:
try:
    integers = map(int, request.COOKIE.get("integers").split(","))
except ValueError, AttributeError:
    # handle bad cookie
    pass

Во вторых -- в твоем варианте будет 2 места с обработкой кривого куки. (в except и в else)
Предлагаешь скопипастить обработку кривой куки? О нет, это какойто php-way)

А еще быстрее будет если вообще ловить все исключения (просто except: )
Но это не ок и не по ГОСТам

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

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

Мальчик, я ж просил не мешать
 
Этот вариант будет медленней чем:

Код:
try:
    integers = map(int, request.COOKIE.get("integers").split(","))
except ValueError, AttributeError:
    # handle bad cookie
    pass

Во вторых -- в твоем варианте будет 2 места с обработкой кривого куки. (в except и в else)
Предлагаешь скопипастить обработку кривой куки? О нет, это какойто php-way)

Мальчик, я ж просил не мешать

Ты дилетант. Зачем копипастить? Достаточно просто один раз посмотреть - если массив integers пустой - то значит кука кривая.
 
Этот вариант будет медленней чем:

Код:
try:
    integers = map(int, request.COOKIE.get("integers").split(","))
except ValueError, AttributeError:
    # handle bad cookie
    pass

Во вторых -- в твоем варианте будет 2 места с обработкой кривого куки. (в except и в else)
Предлагаешь скопипастить обработку кривой куки? О нет, это какойто php-way)

А еще быстрее будет если вообще ловить все исключения (просто except: )
Но это не ок и не по ГОСТам

Вообще-то блока else нету и пустой cookie не попадет в блок try..except.
 
Зачем копипастить? Достаточно просто один раз посмотреть - если массив integers пустой - то значит кука кривая.

Дилетант? В случае с кривой кукой переменной integers вообще не будет, и тогда твой if вылетит с NameError.

Или предлагаешь свою проверку тоже завернуть в try except? Ну это высший ПХПилотаж))
 
Кстати, ты уже изменил свой код
Код:
try:
 integers = map(int, request.COOKIES["integers"].split(","))
except IndexError, ValueError:
 # handle bad cookie
 pass
Код:
  try:
    integers = map(int, request.COOKIE.get("integers", None).split(","))
  except ValueError:
    # handle bad cookie
    pass
 
Вообще-то блока else нету и пустой cookie не попадет в блок try..except.

Но ведь случай с пустым куки нужно тоже обработать, и обработать точно так же как случай с кривым куки.

Кстати, ты уже изменил свой код
Код:
try:
 integers = map(int, request.COOKIES["integers"].split(","))
except IndexError, ValueError:
 # handle bad cookie
 pass
Код:
  try:
    integers = map(int, request.COOKIE.get("integers", None).split(","))
  except ValueError:
    # handle bad cookie
    pass

Ну да, и не один раз. Навскидку ж писалось
 
Дилетант? В случае с кривой кукой переменной integers вообще не будет, и тогда твой if вылетит с NameError.

Или предлагаешь свою проверку тоже завернуть в try except? Ну это высший ПХПилотаж))

В питоне не нужно переменные объявлять заранее? Если нужно - почему ты этого не сделал? Говнокодик или охуенный язык, да здраствуют очепятки?
В javascript я могу проверить на undefined, чо в питоне такого нет?
 
Ну да, и не один раз. Навскидку ж писалось

"Научиться стрелять, не метясь, как ковбой,
для самообороны.

Оказывается, научиться стрелять, не метясь, как ковбой, одной рукой, с пистолета довольно просто. Конечно, Вы в это не верите! Тут метишься и не попадаешь, а стрелять, не метясь просто? Все дело в том, что мы сами себе все усложняем. А на самом деле оказалось что научиться стрелять с пистолета не метясь, очень просто, и когда изучите тренировку то уже через месяц, а может и раньше, будете вполне нормально стрелять, и, не метясь попадать в цель, а дальше совершенству нет предела. Для этого не надо сильно тратиться. Нужен будет только пневматический пистолет любой модели. И еще одна вещь, которая есть в каждом доме, с неё и начнется тренировка. Этим методом можно тренироваться даже в квартире, и не надо специального помещения. И уже буквально через неделю Вы разовьете свою мышечную память руки так, что просто будите видеть цель, а рука безошибочно наведет пистолет и промаха не будет. " (
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
)
 
Назад
Зверху Знизу