3
Karma
0.9
Rating
Константин @symbix

User

ReactiveX Redux

0

А что это вообще делает в компоненте? :-)


Если говорить про RxJs, то вне NgRx мне сложно привести хорошие примеры, я с redux-observable не работал и так прямо сходу код не напишу, а без него точно будет бессмысленная фигня. В NgRx будет эффект, выполняемый по какому-нибудь LoadFoo экшену, в котором, если item и additionalBlock — единая вещь, будет что-то вида


@Effect onLoadFoo$: Observable<Action> = this.actions$.pipe(
    ofType<Actions.LoadFoo>(Actions.LOAD_FOO),
    switchMap(action => this.api.get(`/item/${action.itemId}`)),
    switchMap(item => this.api.get(this.getUrlByItemType(item.type)).pipe(
        map(additionalBlockInfo => ({item, additionalBlockInfo}))
    ),
    map(({item, additionalBlockInfo}) => new Actions.FooLoaded(item, additionalBlockInfo))
);

а если две разные, то еще пара action-ов и два эффекта. Еще может получиться, удобнее, что загрузить надо оба сразу, но Loaded экшены разные, тогда закончится все mergeMap-ом.
Ну и еще reducer, но там все ясно и так.


В реальном коде, конечно же, не было бы никаких this.api.get и this.getUrlBy..., а было бы обращение к инстансу класса, который отвечает за работу с Foo через API.


Отдельная прелесть в том, что в компонентах я заселекчу, получу из стора observable на нужный селектор, и async pipe-ом буду с ним работать, никаких дополнительных телодвижений не потребуется.


Но, опять же, это очень простой пример, тут можно как угодно делать (в angular+ngrx просто удобнее придерживаться единого стиля и работать всегда с observable-ами).

ReactiveX Redux

0

У меня противоположный опыт. :)


В описываемой схеме проблема не в RxJs, а в архитектуре. Сделать плохо можно с любым инструментом.


У меня, правда, ngrx, он сам уже в определенном смысле некоторое структурирование навязывает.

ReactiveX Redux

0

(почитал все комментарии)


Все претензии сводятся к тому, что приведен недостаточно сложный пример, который легко реализовать без RxJs. И это правда :-) RxJs намного более мощная штука. Советую все же ознакомиться как следует (на egghead.io, например, хорошие курсы), это, конечно, не silver bullet, но очень удобный инструмент.

ISPsystem, прости и прощай! Почему и как мы написали свою панель управления серверами

0

Насчет панели управления ничего не скажу (по скриншоту вроде все прилично), но морда,… мммм, не похожа на DigitalOcean :-)


Неужели специфика рынка? Или основная клиентура со всяких master-x? ;-)

User Inyerface — как не надо мучать пользователя

User Inyerface — как не надо мучать пользователя

+2

Даже если нативного нет, всегда можно сделать нормально (например, сделать отдельный элемент для плейсхолдера и спозиционировать как следует).

Роскомнадзор обвинил Google в демонстрации ссылок на заблокированные сайты в поисковой выдаче

0

Тот же Касперский плотно сидит на госзакупках, так что поддержит любой бред.

Стоимость подписки на Spotify в России составит 150 рублей — это дешевле, чем Apple Music

Зачем нам UML? Или как сохранить себе нервы и время

+1

Проблема с UML в том, что надо, чтобы его понимал еще кто-то, кроме меня. :)


На практике получается так: BDD, DDD и современные IDE вполне решают проблему "разобраться с архитектурой", а при обсуждении — псевдокод и квадратики со стрелочками в свободной форме, отдаленно напоминающие UML.

Работа с JSON RPC в Symfony 4

0

Не, ну в Laravel все не так плохо, гвоздями прибито намного меньше. Но косяков с этим хватает, многие интерфейсы, хоть формально и присутствуют, на самом деле зачастую просто дублируют фактический интерфейс конкретной реализации со всеми ее особенностями, и, чтобы заменить реализацию, временами приходится писать довольно костыльные адаптеры. Особенно это ощущается, когда берешь за основу Lumen и хочешь реюзать только часть Laravel-овских библиотек.


Основные претензии у меня к Eloquent, с которым следовать DDD и CQRS довольно затруднительно (да даже нормально заперсистить Aggregate Root можно только чудовищными костылями). Был странноватый, но в целом неплохой Analogue ORM, но его забросили. Доктрину, впрочем, тоже недолюбливаю за ее монстроузность: меня пугает такая масса сложного кода и архитектура с God Object-ом. Прочитал вот в дайджесте про Cycle ORM, наверное, это то, что мне надо.

Работа с JSON RPC в Symfony 4

+1

Можно класть notifications (запросы без ID), пришедшие в батчах по HTTP в очередь — вот прямо jsonrpc-запросами как есть, а фоновым процессом очередь грести и каждый ее элемент обрабатывать тем же самым JSON RPC сервером: ему ж должно быть без разницы, какой транспорт.

Работа с JSON RPC в Symfony 4

0

Для Laravel у меня есть вот такой велосипед, может, кому пригодится.


Кстати, отвязать его от Laravel совсем несложно. Я для нового проекта активно посматриваю на SF4, скорее всего, так и сделаю. Заменить Middleware/Pipelines на PSR-15 несложно, но еще надо придумать, что делать с FormRequests (которые у меня сейчас завязаны на illuminate/validation и сделаны по аналогии с Laravel-овскими).

Работа с JSON RPC в Symfony 4

0

Все зависит от того, что это за токен. Если токен является неотъемлемым параметром некоего конкретного метода — тогда передавать параметром метода. А если токен на вообще доступ к данному API, тогда в заголовке самое то: в этом случае авторизация лежит вне скоупа json-rpc.

Путин сказал, что гордится «Яндексом». Котировки акций компании выросли до исторического максимума

0

Вы или пятнадцатирублевый, или читать не умеете.


Где я вообще говорил о хороших или плохих? Я ничуть не сомневаюсь, что и в западных спецслужбах найдутся коррумпированные служащие. Вот только кому я там нужен, чтобы хоть три доллара заплатить за слив информации? А тут — вполне есть кому.

Темный день для Vue.js

Темный день для Vue.js

0

Не припоминаю, чтобы прям-прям совсем ломали после 4-ки. Депрекейтили — это да, но там достаточно было времени (тем более если использовать всякие штуки типа HttpClient не напрямую, а через свой слой абстракции). Для Rx есть compat-прослойка, опять же.

Темный день для Vue.js

Темный день для Vue.js

+2

Не надо бояться вебпаков, в них нет ничего страшного. Говорю как фуллстек, долго бывший бэкендером :) Да и typescript вам как дотнетчику сразу должен понравиться.


При такой постановке задачи vue вполне подходит.

Путин сказал, что гордится «Яндексом». Котировки акций компании выросли до исторического максимума

0

Ничего такого, что было бы интересно АНБ или ФБР, у меня там все равно нет.


А вот то, что любой коррумпированный ФСБ-шник типа Михайлова сольет все что угодно кому угодно — это меня беспокоит.

Путин сказал, что гордится «Яндексом». Котировки акций компании выросли до исторического максимума

Путин сказал, что гордится «Яндексом». Котировки акций компании выросли до исторического максимума

0
Хотя о какой помощи говорил Путин — интересно.

Это вроде как машина
Скорой помощи идет:
Сама режет, сама давит,
Сама помощь подает.

— А.Т.Твардовский.

Путин сказал, что гордится «Яндексом». Котировки акций компании выросли до исторического максимума

0

Ясно-понятно.


Что хаброобщественность посоветует на замену pdd.yandex? Не обязательно бесплатное, но если платное — то умеренно. Гугл-аппс дороговат все же.

PHP-Дайджест № 158 (3 – 17 июня 2019)

PHP-Дайджест № 158 (3 – 17 июня 2019)

Как я нашел свою первую уязвимость?

0

Я сказал, что для защиты от XSS нужен только encoding.
А в целом нужно еще много что :-)

Как я нашел свою первую уязвимость?

0

В контексте корректности кода, корректно формирующего HTML и не имеющего XSS-уязвимостей — именно что единственное правильное.


Логика, связанная с корректностью промокода — это отдельная валидация, не имеющая никакого отношения к XSS. То, что в данном конкретном случае этой валидации оказалось бы достаточно, чтобы неправильный код формирования шаблона никак себя не проявил, не значит ровно ничего. Не надо смешивать слои.

Как я нашел свою первую уязвимость?

+1
Поэтому мы можем:
Сверять с базой промокод при рендере страницы
Прогонять через регулярку входной промокод

Простите, рановато вам фуллстэком, лучше бы доучились.


Единственное правильное решение — при генерации HTML преобразовывать все подставляемые в шаблон строки в html entities. Все нормальные template engines умеют это делать автоматически.

«Яндексу» и «Лаборатории Касперского» пришлось убрать некоторые функции своих приложений из-за Google

0

Ну, может, sailfish таки заопенсорсят когда-нибудь. Хотя вряд ли.

Первая волна пострадавших от уязвимости Exim. Скрипт для лечения

+6

Запускать рутом скрипт, не читая его, да еще и скачанный по http? Отличная идея!

Алан Кэй не изобретал объекты

Настройка связки php-fpm + nginx под WSL

+1
часть запросов (и всегда разная часть) возвращались с ошибкой. Скрипт не мог открыть файл кэша

storage на volume вынесен? С каким драйвером?


В WSL насколько мне известно, нет сокетов как таковых

Есть и уже давно, только надо пермишшены выставить правильно.

Node.js-проекты, в которых лучше не использовать lock-файлы

updated: Zero-Click Server-Side RCE в njs

updated: Zero-Click Server-Side RCE в njs

Удалённая работа: мифы на ночь

0

Если дома дергают каждые полчаса, то, полагаю (у меня-то нет такой проблемы), никакой второй монитор не поможет.


Еще коворкинг/библиотека/кофейня помогают, когда чувствуешь, что слишком расслабился. Раз уж пришел куда-то, чтобы там работать, и еще и денег заплатил, куда деваться, работаешь. Я так делал при острых приступах прокрастинации :-)

Удалённая работа: мифы на ночь

0

Понятно, что надо что-нибудь заказать. Если кофейня и так почти пустая, проблем не вижу. А в заполненной все равно нормально не поработаешь.


Когда коворкингов не было, а дома был ремонт, я так и делал, в кофейне рядом с домом за исключением обеденного и вечернего времени было практически пусто, так что против меня с моими двумя чашечками латте за 5-6 часов никто не возражал.

Удалённая работа: мифы на ночь

0

А кто сказал, что обязательно работать дома? Коворкинг, тихая кофейня, библиотека… Да миллион вариантов

Удалённая работа: мифы на ночь

0

Это вы голливудских фильмов насмотрелись. На самом деле это все обычно очень образованные и интеллигентные люди, просто с другой шкалой ценностей.

Чем быстрее вы забудете ООП, тем лучше для вас и ваших программ

+1

Для 95% задач важнее чистая и гибкая архитектура, позволяющая эффективно решать возникающие задачи и быстро реагировать на меняющиеся требования как в краткосрочной, так и в долгосрочной перспективе.


Для 5% задач, типа той же sprintf, которая используется миллионы раз, да, надо взять, написать эффективно и отлить в камне.


(Ну это, конечно, смотря какая область, если вы пишете ядро ОС или стандартную библиотеку, то там соотношение будет обратное).


Что касается стандартной библиотеки Java, скажу мягко, она во многом не пример для подражания. Надо делать скидку на середину 90-х, когда еще были иллюзии, что JIT-ом получится все оптимизировать, и даже о специализированных CPU для Джавы всерьез думали.

Чем быстрее вы забудете ООП, тем лучше для вас и ваших программ

0

SRP говорит о том, когда декомпозиция строго необходима. Достаточность же на усмотрение разработчика.


Разработчики стандартной библиотеки Java решили, что гибкость дизайна важнее производительности, вот и все.


У меня с точки зрения SRP нет претензий ни к тому, ни к другому. (Ну, к printf есть, но несущественные — можно было бы работу с буфером вынести отдельно).

1 There