
Alex
28.08.2017
08:21:20
Ну например, есть аутентификация/авторизация.
Можно сделать так:
def authenticate(cls, token):
if !token.is_valid():
raise Exception()
def authorize(self, role):
if role != user.role:
raise Exception()
try:
User.authenticate(token).authorize(role)
do_stuff()
except:
do_other_stuff()
А можно так:
def authenticate(cls, token):
if token.is_valid():
return user
else:
return None
def authorize(self, role):
if role == user.role:
return True
else:
return False
user = User.authenticate(token)
if user and user.authorize():
do_stuff()
else:
do_other_stuff()
Мне больше нравится первый вариант, но может это антипаттерн, я вообще хз. Я имя эксепшона и его дескрипшон (if applicable) возвращаю юзеру вместе со статус кодом.

Vasiliy
28.08.2017
08:22:39
Я бы делал без эксепшенов

serbernar
28.08.2017
08:23:20
Я бы делал с эксепшенами

Google

Nikolay
28.08.2017
08:23:40
Я бы делал без эксепшенов

serbernar
28.08.2017
08:24:27
Потом тяжелее будет найти эту логику инкапсулированную, кмк
А так: наглядно

Nikolay
28.08.2017
08:25:06
у тебя будет преимущество фп - ты всегда будешь стейт однозначно видеть на основе стека вызовов

serbernar
28.08.2017
08:26:06
А с экспепшенами ты будешь знать, что если кто-то будет что-то менять, то не выстрелит себе в ногу
В любом случае, задокументируй, бо будет вава

Nikolay
28.08.2017
08:26:56
эксепшны лучше явно руками вызывать как можно реже

serbernar
28.08.2017
08:27:18
Но он лезет в бекенд, в логику аутентификации

Nikolay
28.08.2017
08:27:41
ну так надо смотреть, какое поведение там возможно, и действовать соответственно

Alex
28.08.2017
08:27:47

Nikolay
28.08.2017
08:28:06
единственное, где без ООП почти никак - это ORM

Vasiliy
28.08.2017
08:28:34
У авторизации и аутентификации ответ "нет" ожидаемое поведение, а не исключительное

Google

Nikolay
28.08.2017
08:28:52
а то, что у тебя в разделе “а можно так” - это вариант базового фп

Vasiliy
28.08.2017
08:29:36
Это как вместо if писать try: assert(bool)... except: ...

serbernar
28.08.2017
08:29:51

Alex
28.08.2017
08:30:05

b0g3r
28.08.2017
08:31:19
Я бы тоже auth* делал не на эксепшенах

Alex
28.08.2017
08:32:47
А когда пользователь что-то запрашивает, и это не находится, это ожидаемо или исключительно?

Vasiliy
28.08.2017
08:33:09
Зависит от ситуации
Если это поиск по сайту, то ожидаемо
Если uri косой, то исключительно

Aleksey
28.08.2017
09:39:51
Нужно скачивать много видео, лучше ли будет вызывать curl питон скриптом, чем использовать стандартный urllib?

Проксимов
28.08.2017
09:46:44

Ilya
28.08.2017
09:48:12

Nikolay
28.08.2017
10:37:28

Владимир
28.08.2017
10:38:56
блин, как перестать собирать окружения/настраивать редактор и начать программировать? Т_Т

Nikolay
28.08.2017
10:39:19

Alex
28.08.2017
10:39:25

Nikolay
28.08.2017
10:39:40
потом закрыть и открыть вим

Владимир
28.08.2017
10:39:51
эм.. ладно, опустим фразу про настройку редактора хД

jdc
28.08.2017
10:41:43

Google

Alex
28.08.2017
10:42:55

Диёр
28.08.2017
10:43:04

Nikolay
28.08.2017
10:43:14

Андрей
28.08.2017
10:43:19

Alex
28.08.2017
10:43:54
Класека

Joni
28.08.2017
11:23:33
Здравствуйте, начал изучать python, вы бы не могли подскозать материалы?

Nikolay
28.08.2017
11:23:56

Joni
28.08.2017
11:24:06
спасибо

Nikolay
28.08.2017
11:40:52
Я же говорил

Admin
ERROR: S client not available

Nikolay
28.08.2017
11:40:57
Битки вне закона

Artem
28.08.2017
11:41:22
вовремя успели уйти в подполье

Диёр
28.08.2017
11:41:26
Где?

Nikolay
28.08.2017
11:41:26
https://tjournal.ru/58736-v-minfine-predlozhili-zapretit-chastnym-licam-torgovat-bitkoinami
Вас посадят

Tigran
28.08.2017
11:41:42
Как же они заебали!

dmks
28.08.2017
11:42:07
Кто?

Диёр
28.08.2017
11:42:07

Artem
28.08.2017
11:42:10
у рбк еще лучше заг про запрет «обычным людям», нечего холопам богатеть

Google

Nikolay
28.08.2017
11:42:18
Только квалифицированные инвесторы, а вы немквалифицированные

dmks
28.08.2017
11:42:36
Меня заебали люди которые кидают эту хуйню в каждый канал с самого утра

Artem
28.08.2017
11:42:46

Диёр
28.08.2017
11:42:47
"Предложили"

dmks
28.08.2017
11:42:48
Нихуя не понятно же что вообще хотят, но заголовок уже есть

Диёр
28.08.2017
11:42:50
"В перспективе"

Tigran
28.08.2017
11:43:13
Ну так если молча проигнорить, они там решат, что ок, и правда запретят

Nikolay
28.08.2017
11:43:18
Только ограниченный круг лиц может это делать
Это вам не это

Диёр
28.08.2017
11:43:28
Вот совсем недавно прошли эти акции по свободе интернета и прочая хуета

Artem
28.08.2017
11:43:46

Tigran
28.08.2017
11:43:47