Найти - Пользователи
Полная версия: Фреймворк для рекомендательного сервиса
Начало » Web » Фреймворк для рекомендательного сервиса
1 2 3 4 5
Singularity
o7412369815963
Я наверно на днях сделаю мини-сравнение с ботлом
напиши и про то как c питона дергать passportjs, чем лучше Angular Light оригинала и какие его цели
ZZZ
o7412369815963
Я наверно на днях сделаю мини-сравнение с ботлом, может в пирамиде есть что-то… выложу, а вы прокоментируете ;)
Это изначально не будет объективным сравнением. Ну нельзя сравнивать табуретки с коровами, так как оно для разных вещей: доить табуретку неэффективно, а сидеть на корове неудобно.
Пирамида не для визиток и это накладывает некоторые сложности на вкат.

o7412369815963
А что скажите о таких пакетах как decorator, path, tweens, interfaces, authorization, authentication. Используете?
Конечно используем. Это удобно и красиво.
bismigalis
o7412369815963
А этот scan(), зачем, если мы уже через декоратор добавили
и здесь пирамида уникальна, потому что не делает регистрацию в декораторе(при импорте). В декораторе на функцию/класс навешиваются аттрибуты, во время скана обходятся модули и смотрится есть ли эти спец аттрибуты у функций/классов и по ним заполняется config.

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

+ при тестировании импортируешь и получаешь немодифицированную функцию, пусть и с левыми аттрибутами :)
o7412369815963
bismigalis
не верю

Вот пример для торнадо:
from collections import defaultdict
routes = defaultdict(lambda: [None, None])
def add_route(name, path):
    routes[name][0] = path
def add_view(name, controller):
    routes[name][1] = controller
def get_routes():
    return map(tuple, routes.values())
# Test
add_route('main', '/hello/')
add_view('main', lambda: None)
#application = tornado.web.Application(get_routes())
for i in get_routes():
    print(i)
3 ф-ии и словарь, все 3 пункта выполняются.
Так же легко можно расширить и изменить, например добавить приоритеты для вьюх и не парится с порядком подключения пакетов и scan.
o7412369815963
Singularity
напиши и про то как c питона дергать passportjs
Не пробовал, можно погуглить, но навскидку можно так:
Проксируем /login на passportjs, он добавляет всю информацию о пользователе в монгу, вешает куку и редиректит на питон. В питоне по куке работает с пользователем.
Либо node.js будет редиректить на секретный url где питон обработает пользователя, либо node.js вызовет питон через subprocess (или что у них там), либо вызовет через zmq питоновскую ноду.
Вариантов много зависит от задачи.
o7412369815963
Singularity
чем лучше Angular Light оригинала и какие его цели
Он проще, нет модулей, сервисов - больше свободы, вы сами делаете архитектуру приложения.
Проще делать директивы. Весть окружающий web-мир доступен (jQuery с армией компоненотов и др), когда Angular.js от всего этого отнекивается и пытается завернутся в недоступные модули. :)

Например у меня был проект где многое было на jQuery, сначала попробовал подключить Angular.js, в итоге нужно было делать кучу оберток (над апи где много jq), делать липовые сервисы, появлялись тяжело выловимые баги, т.к. трейс вообще никакой (был, сейчас вроде улучшили) и кучи др. проблем. Далее я подключил Angular Light, и дело пошло лучше, скорость разработки явно возросла. Он больше похож на библиотеку чем на фреймворк (в отличии от оригинала).
Роуты в Angular.js ужасные, не зря ui-routes сделали. Когда для aLight можно взять любой готовый на jQuery (коих полно).
bismigalis
забыл сказать на один роут может быть назначено несколько вьюх с различными предикатами


Singularity
o7412369815963
Не пробовал
o7412369815963
node.js для авторизации, т.к. там богатый выбор “провайдеров” http://passportjs.org/guide/providers/ (в питоне с этим не так хорошо, хотя для мажоров (гугла и фейсбука) есть в tornado.web), да и асинхронность для этой задачи - в плюс.
а я подумал что-ты так делаешь
o7412369815963
Singularity
а я подумал что-ты так делаешь
в последнем проекте оно было кандидатом на авторизацию, но в итоге выбрал торнадо т.к. сроки поджимали (основное приложение все равно было отдельно на wsgi).
Singularity
А почему никто не делает Outh2 по стандарту ? В каждого сервиса свои глюки для которого надо писать код, нет что-бы указать url и нужные права и новый сервис для входа добавлен
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB