
Andrey
02.09.2016
18:56:50

Artem
02.09.2016
18:57:01
не в одном приложении, а со связкой

Andrey
02.09.2016
18:57:17
тем более =)

Google

Artem
02.09.2016
18:57:34
это же мимими ^_^

Andrey
02.09.2016
18:58:11
да ну, не серьезно как-то. для каждой задачи свои инструмент
жанга для баловства

Artem
02.09.2016
18:58:48

arisu
02.09.2016
18:59:03
а вот скажите
в жс что нибудь поменялось с 2007 года?
или скрипты все так же пишутся в разных версиях для разных вендоров

Andrey
02.09.2016
18:59:22

Artem
02.09.2016
18:59:40
пыха - уйоба язык

Andrey
02.09.2016
19:00:09

Paul
02.09.2016
19:45:30
пыха - уйоба язык
PHP - язык, который не придуман, а получился. Отсюда и все его свойства

Google

Artem
02.09.2016
19:51:53

Paul
02.09.2016
20:36:44

Alex
02.09.2016
22:01:47

Alexander
02.09.2016
22:07:11
вообще, меня пугает идея переносить что-либо во фронтенд
этот код нельзя защитить
ни от копирования
ни от взлома
ни от понимания алгоритмов работы
ладно, допустим, ничего секретного код не делает и я не боюсь копирования
но любой желающий может попробовать найти баг в коде

Eugene
02.09.2016
22:09:10
да ладно тебе. та тулза просто делает бекенд с рестом и все. и это закрытое же
просто API с которым клиент работает

Alexander
02.09.2016
22:09:43
а как делать бизнес-логику?
на фронтенде страшновато

Eugene
02.09.2016
22:10:01
ну либо средствами API, либо на клиенте
что меняется то?

Alexander
02.09.2016
22:12:05
может быть и ничего
?
но мне нравится, что мой код скрыт)

Google

Alexander
02.09.2016
22:12:24
и я могу по-тихому шпионить, например
что-то куда-то записывать и это никто не узнает
или добавить алгоритм выискивания ботов среди посетителей
если он будет на фронтенде - будет понятно, как его обойти

Eugene
02.09.2016
22:13:08
а мне удобнее выдавать просто json или еще что-то и все. и с этим json в моб приложении работать или в браузере каким-нить angular/react

Alexander
02.09.2016
22:14:39
ну, вот, допустим, я интегрируюсь с какой-нибудь системой для записи статистики
как мне туда записывать если код открыт?
меня же взломают тут же и туда запишут что-нибудь другое

Eugene
02.09.2016
22:15:28
код чего открыт?
ну вот djangorestframework - открыт. его используют многие сайты/сервисы. попробуй их взломать
да и код того-же rtfd.org открыт - взломай его

Alexander
02.09.2016
22:17:12
ну, питонячей вики повезло меньше - её ломали, например
я имел в виду, что если происходит какое-либо событие - я на сервере пишу о нём в лог
и потом считаю что-то
если я буду писать с JS, то токен будет открыт для всех
по приколу какой-нибудь юный хакер Вася мне все KPI сломает
с кодом, который по умолчанию доступен для всех, нужно быть крайне осторожным
на сервере с закрытым кодом можно кодить криво и риск взлома менее безопасного кода будет меньше
чем более безопасного на js

Eugene
02.09.2016
22:20:21
такое чувство что ты никогда не делал API-First бэкендов

Google

Alexander
02.09.2016
22:20:42
ну, я делал API, но вся бизнес-логика была на сервере
и фактически я просто вместо шаблона показывал json
все остальные вещи были обычными

Eugene
02.09.2016
22:22:03
ну и тут так же. просто клиент получает данные в json формате а не через шаблоны в html просто одна страница html и в ней через js эти данные выводятся через какой-нить js фреймворк

Alexander
02.09.2016
22:22:36
то есть бизнес-логика там по-прежнему на сервере?

Eugene
02.09.2016
22:22:41
что там ты говоришь сломать можно
ну конечно.

Alexander
02.09.2016
22:23:45
ну, например, у пользователя нет прав редактировать такую-то запись в таблице, но если это работает на стороне js - он просто посмотрит код, подправит и у него все права появятся
например, пользователь таким образом захочет подредактировать чужой профиль

Eugene
02.09.2016
22:24:03
откуда появятся то?

Alexander
02.09.2016
22:24:16
ну, если бизнес-логика на клиенте
а на сервере просто субд
то и ограничивающие механизмы будут на клиенте, получается
какая-нибудь функция проверки прав доступа
он её перепишет и всё
не получится весь код на js вынести

Eugene
02.09.2016
22:25:53
так клиент узнает какие права есть у сервера. и даже если послать какой-то запрос с правами каких у юзера нет - сервер же отвергнет

Alexander
02.09.2016
22:26:31
я почитаю внимательнее про postgrest
возможно, там это делается со стороны сервера

Vlad
03.09.2016
09:55:46
Всем привет. кто-то делал переводы для страниц через страницу на сайте?

Google

b0g3r
03.09.2016
10:00:20
можно чуть подробнее задачу

Vlad
03.09.2016
10:01:41
задача такова. чтоб переводы делать не в самом файлике django.po а через какую-то прослойку на странице в админке

Paul
03.09.2016
12:01:17
а как делать бизнес-логику?
Бизнес логик можно делать прямо в базе. Но это невозможно отлаживать будет. Кроме того, риложение на бэкенде может оперировать несколькими базами для разных целей. Например, я часто использую сочетание PostgreSQL+redis

Alexander
03.09.2016
12:32:38

Paul
03.09.2016
12:40:34

Vlad
03.09.2016
16:04:53

Eugene
03.09.2016
19:36:49
лично я раньше пользовал django-modeltranslation и django-hvad а потом перешел на https://github.com/tatterdemalion/django-nece

Artem
03.09.2016
22:52:44
Аааа
Шо за хуета этот hvad
Такая муть библиотека, такие запросы городит

arisu
04.09.2016
12:26:58
ты просто не умеешь
их готовить


Artem
04.09.2016
13:23:37
умеешь
return self.model.objects.language(lang).filter(is_published=True).\
select_related('product_type', 'product_pdf').\
prefetch_related(
Prefetch('purposes', Purpose.objects.language(lang).all()),
Prefetch('standards', Standard.objects.language(lang).
select_related('files').prefetch_related(
Prefetch('norms', Norm.objects.language(lang).
prefetch_related(
Prefetch('industries', Industry.objects.
language(lang).all())))).
order_by('order_min').annotate(
order_min=Min('standards_product_standards__order')).
distinct()),
Prefetch('accessories', Product.objects.language(lang).all().
prefetch_related('tags').order_by('order_min').
annotate(order_min=Min('access_product_access__order'))
.distinct()),
Prefetch('features', Features.objects.language(lang).
order_by('order_min').annotate(
order_min=Min('features_product_features__order')).
distinct()),
Prefetch('values', Value.objects.language(lang).
select_related('param').order_by('order_min').
annotate(order_min=Min('value_product_value__order')).
distinct()),
Prefetch('specification_file', File.objects.
order_by('order_min').
annotate(order_min=Min('spec_product_spec__order')).
distinct()),
)


arisu
04.09.2016
13:27:17
Ну и в чем проблема?

Artem
04.09.2016
13:28:24
когда составляет этот хвад запросы, и формирует бд - там прочий хаос творится