Хуже. На лиспе, луа, сях, эрланге и сейчас хочу окамль освоить. Ну и ещё стопицот никомунинужных языков вроди додиеза хорошо знаю, но нигде такого бреда, как в питоне нет.
Жутчайщая несовместимость даже внутри одной ветки явный признак плохо продуманного языка. Плюс многие рекомендованные паттерны — это же пиздец чистой воды.
знаешь, у меня не вызывало проблем написать такую программу, чтобы работала на 2.4-2.7. А у тебя не получается написать такую программу наверное потому, что ты не можешь додуматься читать документацию к 2.4, а не к 2.7.
Например, в том случае, когда в функции что-то отработало не так, нужно генерить эксепшн. Do less, write more! У меня вызоа некоторых функций выходил в три-четыре экрана из-за того, что приходилось обрабатывать все стопицот типов эксепшнов, которые она возвращает.
я не говорил, что я не знаю, что такое юнит-тестирование. Это ты тут пальцы гнешь, что писал большие системы, а потом оказалось, что писал их как получится
вы же сами юнит-тесты для себя и пишете. Пальцы у тебя повсюду, ты тут своим опытом о разработке одного сайта давишь. И ты сам признался, что писал быдлокод. Вот и получился быдлокод. А язык чем виноват?
Корпоративный говносайтик был приведен как пример того, где без юнит-тестирования вообще никуда. Юнит-тесты, кстати, писали не мы, а специально обученные обезь~программисты-тестировщики, ибо требовалось стопроцентное покрытие кода юнит-тестами. Ну а любой кот — быдлокод, ибо всё познается в сравнении.
так вот, ты жаловался, что эксцепшнов много ну во-первых, все познается в сравнении. Попробуй джаву что-ли. во-вторых, а без них точно никак нельзя было обойтись? Например вместо блока try-except IndexError юзать блок if smth in smth: . Или тот же паттерн стратегии в классах эксцепшнов использовать (если он там уместен, конечно).
Я вообще их стараюсь без особой нужды не пользовать. А вот если ты объяснишь гугелю, что не нужно в каждом методе генерить стопиццот эксепшнов, то я буду крайне благодарен.
а, ясно, это гугл написал такое апи, у которого очень много эксцепшнов. А как у него дела с другими языками? На эрланге оно без эксцепшнов лол? Или на окамле?
Всегда по-разному. Я предпочитаю возвращать туплет (ok, result) и в нем индикатор успешности завершения и сам результат таким макаром, что если мне плевать на ошибку, то я просто использую результат, а если нет — анализирую возвращаемое значение.
монада в общем. Ты представляешь, как разрастется твой код условными конструкциями, если будет множество вложенных вызовов? (я имею ввиду, из одной функции вызываешь вторую, из второй третью и так много раз) Разрастется он посильнее, чем то же самое с эксцепшнами.
Не совсем, но похоже. А кот не разрастается за счет того, что, обычно, мои функции устроенны так, что мне плевать на то, как они отработали. Я просто беру возвращаемое значение и работаю с ним дальше.
я свои наколенные скрипты и вовсе целиком из reduce и list comprehentions стараюсь сделать, вставляет меня это. Но там, где мой код будет читать кто-то еще, я себе такое не позволяю.
Это временами забавно, да. Хотя засунуть такой код, тщательно продуманный, отлаженный и упакованный, в ядро проекта — очень веселое дело, скажу я тебе. Оно работает, быстро работает, но никто ничего не понимает какого хрена оно вообще работает)
и ты главное школоло
!R
а, ты на пхп пишешь
Хуже. На лиспе, луа, сях, эрланге и сейчас хочу окамль освоить.
Ну и ещё стопицот никомунинужных языков вроди додиеза хорошо знаю, но нигде такого бреда, как в питоне нет.
ты нашел бред в питоне? Крут, я уже хуй знает сколько лет не могу
Да он весь — один большой бред, ты просто привык.
да не верю я. Я частенько абстрагируюсь
Попробуй написать что-нибудь более-менее сложное, совместимое с питонами 2.4+ или хотя бы 2.5+, включая третью ветку ;)
нуу эээ и где тут школоло?
Жутчайщая несовместимость даже внутри одной ветки явный признак плохо продуманного языка. Плюс многие рекомендованные паттерны — это же пиздец чистой воды.
знаешь, у меня не вызывало проблем написать такую программу, чтобы работала на 2.4-2.7. А у тебя не получается написать такую программу наверное потому, что ты не можешь додуматься читать документацию к 2.4, а не к 2.7.
про пиздец-паттерны подробнее
Всё прекрасно получается, но, местами неслабый геморрой, особенно когда нужна совместимость между мажорными версиями.
ну не используй оператор with, епта
Например, в том случае, когда в функции что-то отработало не так, нужно генерить эксепшн. Do less, write more! У меня вызоа некоторых функций выходил в три-четыре экрана из-за того, что приходилось обрабатывать все стопицот типов эксепшнов, которые она возвращает.
АРХИТЕКТУРА ПЛАГИНЫ ЛИЧКРАФТЫ блин
я почти не использую try-except
Значит ты не работал с тырпрайзными апи, либо твой кот завалит больше половины юнит-тестов. А возможно и то и другое.
какие апи? Какие юнит-тесты? Кто пишет юнит-тесты то, а?
Уууу.. Вот когда будешь быдлокодить что-нибудь РЕАЛЬНО БОЛЬШОЕ, тогда поговорим.
и что же ты такое кодил?
Корпоративный портал для одной компании. Там получился пиздец на 18 метров кода (не считая сторонниз либ).
так то, что вы быдлокодеры, не говорит о том, что язык плох
Не говорит, но то, что язык плох, не говорит что мы — быдлокодеры.
так ты так и не назвал доводов в свою пользу. Ты только сказал, что вы нагородили быдлокод
Я не собираюсь на пальцах объяснять что к чему человеку, который элементарно не понимает для чего нужно юнит-тестирование. Это слишком долго.
я не говорил, что я не знаю, что такое юнит-тестирование. Это ты тут пальцы гнешь, что писал большие системы, а потом оказалось, что писал их как получится
#httzh/18, например. А откуда вывод, что "писал их как получится"? И главное, где ты усмотрел здесь пальцы?
вы же сами юнит-тесты для себя и пишете. Пальцы у тебя повсюду, ты тут своим опытом о разработке одного сайта давишь. И ты сам признался, что писал быдлокод. Вот и получился быдлокод. А язык чем виноват?
Корпоративный говносайтик был приведен как пример того, где без юнит-тестирования вообще никуда. Юнит-тесты, кстати, писали не мы, а специально обученные обезь~программисты-тестировщики, ибо требовалось стопроцентное покрытие кода юнит-тестами. Ну а любой кот — быдлокод, ибо всё познается в сравнении.
так вот, ты жаловался, что эксцепшнов много
ну во-первых, все познается в сравнении. Попробуй джаву что-ли.
во-вторых, а без них точно никак нельзя было обойтись? Например вместо блока try-except IndexError юзать блок if smth in smth: . Или тот же паттерн стратегии в классах эксцепшнов использовать (если он там уместен, конечно).
Я вообще их стараюсь без особой нужды не пользовать. А вот если ты объяснишь гугелю, что не нужно в каждом методе генерить стопиццот эксепшнов, то я буду крайне благодарен.
ты гугл что-ли писал? или ты имеешь ввиду, что все примеры юзают эксцепшны? Не понял толком
http://code.google.com/p/gdata-python-cl...
http://gdata-python-client.googlecode.co... например
а, ясно, это гугл написал такое апи, у которого очень много эксцепшнов. А как у него дела с другими языками? На эрланге оно без эксцепшнов лол? Или на окамле?
Гугль пишет на питоне и на яве, в основном. А такой паттерн описан где-то в пепах и является рекомендованным, если что.
итак, а какие альтернативы этому паттерну ты можешь предложить?
Всегда по-разному. Я предпочитаю возвращать туплет (ok, result) и в нем индикатор успешности завершения и сам результат таким макаром, что если мне плевать на ошибку, то я просто использую результат, а если нет — анализирую возвращаемое значение.
монада в общем. Ты представляешь, как разрастется твой код условными конструкциями, если будет множество вложенных вызовов? (я имею ввиду, из одной функции вызываешь вторую, из второй третью и так много раз) Разрастется он посильнее, чем то же самое с эксцепшнами.
Не совсем, но похоже.
А кот не разрастается за счет того, что, обычно, мои функции устроенны так, что мне плевать на то, как они отработали. Я просто беру возвращаемое значение и работаю с ним дальше.
слишком частный случай
Как оказалось, не такой уж и частный.
я свои наколенные скрипты и вовсе целиком из reduce и list comprehentions стараюсь сделать, вставляет меня это. Но там, где мой код будет читать кто-то еще, я себе такое не позволяю.
Это временами забавно, да. Хотя засунуть такой код, тщательно продуманный, отлаженный и упакованный, в ядро проекта — очень веселое дело, скажу я тебе. Оно работает, быстро работает, но никто ничего не понимает какого хрена оно вообще работает)
функциональная парадигма то быстро работает? Далекоо не всегда. Когда в дело вступает иммутабельность — кранты.
Embrace perfection.