@ru_python

Страница 5711 из 9768
-_-
18.06.2018
13:35:27
Просто, скажем, в __eq__ такой штуки нет. Только для __contains__.
Можно выстрелить в ногу. Но только если не думать изначально о том, что в этой функции надо возвращать бул

Tigran
18.06.2018
13:35:31
Как можно без знания django понять, что происходит?
Легко, если ты примерно представляешь себе, на каких паттернах выстроен джанго

Roman
18.06.2018
13:35:38
т.е. если ты не можешь понять собственный код полгода назад - это хреновые новости

Aragaer
18.06.2018
13:35:49
Как можно без знания django понять, что происходит?
а это и есть главный недостаток фреймворков

Google
Bogdan (SirEdvin)
18.06.2018
13:35:56
Jentry
18.06.2018
13:35:59
Как можно без знания django понять, что происходит?
ололо, я джангу вдоль и поперек все сорцы за неделю перечитал, что в ней знать-то? типичный wsgi запрос-ответ фреймворк

Roman
18.06.2018
13:36:06
Aragaer
18.06.2018
13:36:34
т.е. если ты не можешь понять собственный код полгода назад - это хреновые новости
но при этом если он тебе кажется хорошим, это тоже не очень хорошие новости 8)

Jentry
18.06.2018
13:36:50
Вот торнаду придется почитать чуть подольше, там свои ивент-лупы и всякое такое

Bogdan (SirEdvin)
18.06.2018
13:37:07
Roman
18.06.2018
13:37:24
потому я напишу чуть больше кода, но чтобы читалось сразу, нежели сделаю однострочник и долго буду смотреть на него пытаясь понять что происходит

Bogdan (SirEdvin)
18.06.2018
13:37:43
Его nginx отпиздит
Ну, а в джанге то что будет?

-_-
18.06.2018
13:37:45
Про __contains__ даже репортили, оказывается https://bugs.python.org/issue16011

Roman
18.06.2018
13:37:50
к сожалению, есть немалое количество программистов, что стремятся писать в perl-style

Denis
18.06.2018
13:37:54
Ну, а в джанге то что будет?
А до джанги не дойдет

Google
Jentry
18.06.2018
13:37:55
Ну, самый простой вариант. Что произойдет в django, если клиент прервет запрос?
Клиент не может прервать свой запрос, джанге пофигу вообще, она пока не выполнит start_response, ответа никакого не последует

Bogdan (SirEdvin)
18.06.2018
13:38:47
Ну вот вы открываете страницу, она начала грузится, но грузится долго, скажем, секунд 15, а вы в это время закрыли вкладку и браузер оборвал запрос.

"Клиент не может прервать запрос" - это неправильный ответ. Может.

Jentry
18.06.2018
13:39:32
Ну ничего не будет, джанга ответит проксирующему nginx, nginx скажет сорян - отвечать некому

Bogdan (SirEdvin)
18.06.2018
13:39:42
А если напрямую django?

Denis
18.06.2018
13:40:22
А если напрямую django?
Вернет апп серверу, апп сервер ругнется

Jentry
18.06.2018
13:40:31
А если напрямую django?
напрямую нельзя, это django, нужен wsgi-сервер и http-сервер

Roman
18.06.2018
13:40:32
"Клиент не может прервать запрос" - это неправильный ответ. Может.
он может быть совершенно разным образом выглядеть на сервере. например, клиент тупо отвалился и rst в сторону сервера не долетел.

Denis
18.06.2018
13:40:56
Никак, сделай ее полем или верни из функции

Василий
18.06.2018
13:40:57
Кто работал с движком шаблонов Jinja2, можно ли в нём разрешить использовать только выбранные теги, допустим {% for %} {% block %} {% extend %}, и никаких других тегов и фильтров.

-_-
18.06.2018
13:41:31
self.add_to_cart

Dim
18.06.2018
13:42:00
можно запретить их использовать тем что просто их не использовать)

Tigran
18.06.2018
13:42:38
патчить парсер жинжи - это самоубийство

Denis
18.06.2018
13:43:11
Да ладно, от пары декораторов еще никто не умирал

Bogdan (SirEdvin)
18.06.2018
13:43:44
Тут люди пишут, что нельзя использовать декораторы, иначе ваш код будут не читаем.

Google
Василий
18.06.2018
13:43:55
можно запретить их использовать тем что просто их не использовать)
Я конечно могу пользователю сказать, что ай-ай-ай, не хорошо так делать, но они же не слушаются ?

Bogdan (SirEdvin)
18.06.2018
13:44:29
Ну, декораторы не входят в те 10%, их еще надо раскурить.

Я видел людей, которые не очень разбираются в том, как они работают.

Tigran
18.06.2018
13:45:06
Ну в устройстве динамических массивов тоже не все разбираются

Василий
18.06.2018
13:45:09
Tigran
18.06.2018
13:45:19
Есть грань как бы

Eugene
18.06.2018
13:46:01
self.add_to_cart
Спасибо! делал self только на 22 строке,а нужно было ещё на 18

Bogdan (SirEdvin)
18.06.2018
13:46:16
Ну, я считаю, что грань пролегает уже после фишек языка, вы же хотите какие-то из них выкинуть, какие-то оставить ...

Denis
18.06.2018
13:47:01
Ты это сам придумал?

Tigran
18.06.2018
13:47:30
Демагогия какая-то

Bogdan (SirEdvin)
18.06.2018
13:47:34
Разве тут не так написано?

Ну конкретно твой пример довольно простой. Но вообще да, чем меньшему числу разработчиков знакома фишка, тем меньше стоит свеч её использование.

Denis
18.06.2018
13:48:10
Декораторы это довольно базовая фича языка, ее грешно не знать

Tigran
18.06.2018
13:48:15
Способность отличить, что выкинуть, а что оставить, чтобы максимизировать пользу, является профессиональным навыком хорошего разработчика)

Jentry
18.06.2018
13:48:24
современная разработка устроена так, чтобы была легкая замена перегоревшей лампочки, увлился один - вкрутили другого - работает. Что еще за выкинуть и оставить?

Супер-оптимизации по необходимости их наличия оборачиваются в красивый доступный api, если такового нет и какие-то странные ручки торчат из кода - это плохой код и требует, чтобы его переписали

Google
Bogdan (SirEdvin)
18.06.2018
13:51:45
Ну, и какие-то фишки языка позволяют вам сделать такой красивый API, но вот как это сделать, если вы вроде как опытный, но про фишечки то не знаете?

Tigran
18.06.2018
13:53:35
Не надо делать красивый API. Надо делать простой API.

Dan
18.06.2018
13:53:37
?

Tigran
18.06.2018
13:54:23
А то обмажутся своим Django ORM и пойдут делать красивые API, об которые потом ногу сломишь.

Bogdan (SirEdvin)
18.06.2018
13:55:00
Ну, вот просто так сделать к сложной вещи простой API довольно сложно. Потому что и нужные красивые, что бы за ними спрятать сложность.

Denis
18.06.2018
13:55:08
В django orm красивый апи, если сравнивать с некоторыми

Jentry
18.06.2018
13:56:05
Ужасный у него api, если сравнивать с алхимией

Tigran
18.06.2018
13:56:18
Энивей. Если ты способен сделать django orm, это не значит, что ты крутой синьор. А если не способен, не значит, что не крутой синьор. Это просто одна специфическая задача.

Типичная language-specific задача, кстати.

Bogdan (SirEdvin)
18.06.2018
13:57:30
У вас есть другие задачи?

Jentry
18.06.2018
13:57:39
В го до сих пор не сделали нормальный орм, ничего, живем, синьорством обрастаем

Bogdan (SirEdvin)
18.06.2018
13:58:00
language-agnostic задачи?)

Denis
18.06.2018
13:58:25
В го до сих пор не сделали нормальный орм, ничего, живем, синьорством обрастаем
Сложно сделать нормальный орм без дженериков и нормальной интроспекции

Jentry
18.06.2018
13:58:27
У вас есть другие задачи?
У нас есть бизнес-задачи, за которые платят, и мы пишем на чистом sql частично с билдером, где требуется

Tigran
18.06.2018
13:58:28
Ну вообще-то да

Bogdan (SirEdvin)
18.06.2018
13:58:48
У нас есть бизнес-задачи, за которые платят, и мы пишем на чистом sql частично с билдером, где требуется
Ну, они же привязаны в sql, причем к определенному диалекту, разве нет?

Ну вообще-то да
Ну, вот вы каждую задачу решаете с language-agnostic подходом или все-таки на каком-то языке программирования, причем определенном еще на начале задачи?

Jentry
18.06.2018
13:59:29
Кто они, бизнес задачи нет, реализация да, но реализация максимум DI и в любое время компоненты могут замещаться

Aragaer
18.06.2018
14:00:05
Tigran
18.06.2018
14:00:07
Ну, они же привязаны в sql, причем к определенному диалекту, разве нет?
Привязанность к диалекту устраняется одним слоем абстракции.

Google
Jentry
18.06.2018
14:00:31
Также микросервисы, в каноничном их представлении, которые можно за 2 недели переписать

Tigran
18.06.2018
14:01:56
Ну, вот вы каждую задачу решаете с language-agnostic подходом или все-таки на каком-то языке программирования, причем определенном еще на начале задачи?
Я решаю задачу в голове абстрактно, а потом транслирую в требуемый язык (на работе - язык всего проекта).

Bogdan (SirEdvin)
18.06.2018
14:02:10
Ну, как минимум, микросервисы нужны далеко не всем. Опять же, способ решения задачи у вас все равно может поменятся изз-за смены языка.

Jentry
18.06.2018
14:02:42
Каким образом он должен поменяться от смены языка?

Bogdan (SirEdvin)
18.06.2018
14:02:47
Я решаю задачу в голове абстрактно, а потом транслирую в требуемый язык (на работе - язык всего проекта).
Ну, то есть вы абстракции, которые используете в проекте транслируете в language-agnostic в голове, придумываете решение и потом обратно в язык парсите?

Bogdan (SirEdvin)
18.06.2018
14:03:38
Каким образом он должен поменяться от смены языка?
Самый простой пример, в языке X имеет смысл заниматся распаралеливанием задачи, в языке Y уже не особо.

Jentry
18.06.2018
14:04:16
Самый простой пример, в языке X имеет смысл заниматся распаралеливанием задачи, в языке Y уже не особо.
Распараллеливанием задачи имеет смысл заниматься, если задача параллелится, в каком языке я не могу реализовать паралелльные вычисления?

Bogdan (SirEdvin)
18.06.2018
14:05:30
Распараллеливанием задачи имеет смысл заниматься, если задача параллелится, в каком языке я не могу реализовать паралелльные вычисления?
Разве, например, в python распараллеливание не дороже, чем в c, потому что в первом вы можете использовать только распараллеливание через процессы, так как в первом можно использовать потоки и шаринг общей памяти? И не может быть такого, что из-за перехода с С на python распараллеливание станет бессмысленным?

Tigran
18.06.2018
14:05:34
Если я проектирую микросервис, я тоже сначала придумываю принципиально, как что будет работать, а потом реализую на языке, который лучше всего подходит (то есть позволяет мне быстрее всего реализовать задумку). Если я решу, что будет круто параллелить запросы, я просто вычеркну питон из списка кандидатов на этапе выбора кратчайшего решения.

Я не понимаю, о чём этот спор. Да, мы учитываем конкретный язык при решении задачи. Нет, язык не являются решающим фактором в чём-либо.

Jentry
18.06.2018
14:08:47
Разве, например, в python распараллеливание не дороже, чем в c, потому что в первом вы можете использовать только распараллеливание через процессы, так как в первом можно использовать потоки и шаринг общей памяти? И не может быть такого, что из-за перехода с С на python распараллеливание станет бессмысленным?
Для начала я бы не стал изначально делать на потоках и общем состоянии, это плохой паттерн, который требует бесконечное время на отладку race condition. Взял бы и сделал cqrs реализацию, можно даже на питоне воркеров нацеплять и на любом другом языке

Tigran
18.06.2018
14:10:54

Страница 5711 из 9768