Pull to refresh
7
0
Владимир Бугорков @dcooder

Fullstack Developer

Send message

Schedulers в RxJS

Reading time4 min
Views14K

Что вы знаете о Schedulers в RxJS? Они скрывают от разработчиков работу с контекстом выполнения Observable. Как те эльфы-домовики из Гарри Поттера, которые выполняют всю черную работу в Хогвартсе, а о них никто даже и не слышал. Давайте исправим это и узнаем о них чуть больше.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments12

RxSwift шпаргалка по операторам (+ PDF)

Reading time41 min
Views136K


Заинтересовавшись темой функционального программирования я встал на распутье, — какой фреймворк выбрать для ознакомления. ReactiveCocoa — ветеран в iOS кругах, по нему вдоволь информации. Но он вырос с Objective-C, и хотя это не является проблемой, но все же в данный момент я в основном пишу именно на Swift, — хотелось бы взять решение изначально спроектированное с учетом всех плюшек языка. RxSwift же порт Reactive Extensions, имеющего долгую историю, но сам порт свежий и написанный именно под Swift. На нем я и решил остановиться.
Но специфика документации по RxSwift в том, что описание всех команд ведет на reactivex.io, а там в основном дается общая информация, руки у разработчиков не дошли еще сделать документацию именно для RxSwift, что не всегда удобно. Некоторые команды имеют тонкости в реализации, есть те, о которых в общей документации нет ничего кроме упоминания.
Прочитав все главы вики с RxSwift гитхаба, я сразу решил поразбираться с официальными примерами, тут то и стало ясно, что с RX такое не пройдет, нужно хорошо понимать основы, иначе будешь как мартышка с копипастом гранатой. Я начал разбирать самые сложные для понимания команды, потом те, что вроде понятны, но задав себе вопросы по ним я понял, что лишь догадываюсь на то как верно ответить, но не уверен.
В общем ничтоже сумняшеся я решил проработать все операторы RxSwift. Лучший способ что то понять в программировании — запустить код и посмотреть как он отработает. Затем учитывая специфику реактивного программирования — очень полезны схемы, ну и краткое описание на русском. Закончив сегодня работу, я подумал, что грех не поделиться результатами с тем, кто лишь присматривается к теме реактивного программирования.
Много картинок и текста под катом, очень много!
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments21

Подборка бесплатных курсов для тех, кто делает первые шаги в Data Science

Level of difficultyEasy
Reading time3 min
Views70K

Курсы упорядочены по степени необходимости, начиная с базовых знаний, без которых будет тяжело даваться дальнейшее изучение (линейная алгебра, статистика, базовое знание python и т.д.), переходя к более сложным. Старался избавиться от избыточности, оставляя только самые ценные, на мой взгляд, курсы. Эти бесплатные курсы легко заменят вам платные.

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments3

LangСhain: создаем свой AI в несколько строк

Level of difficultyMedium
Reading time6 min
Views46K

В этой данной статье познакомимся с LangChain, перспективным фреймворком для работы с языковыми моделями. С его помощью можно создать свой собственный аналог ChatGPT всего в несколько строк кода. Благодаря модульной структуре, LangChain позволяет быстро и легко разрабатывать AI приложения различной сложности.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments8

Битва CLIs: почему мы отказались от Angular CLI в пользу Nx

Level of difficultyEasy
Reading time6 min
Views7.7K

Привет! Меня зовут Даниил, я фронтенд-разработчик в Тинькофф Бизнесе. Мы строим удобные интерфейсы, чтобы клиенты могли быстро зарегистрировать бизнес.

Сегодня я хочу рассказать, почему мы используем Nx для всех наших Angular-проектов, какие проблемы решает этот инструмент и чем он лучше Angular CLI.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments5

Сказка про антипаттерны: как мужики град стольный строили

Reading time11 min
Views7.2K

Всем привет! В своей работе архитектору всегда важно не только постоянно использовать и определять лучшие практики, но и знать то, как делать не нужно, то есть антипаттерны.

Под Новый Год мне захотелось немного созорничать, и я решил написать легкий текст-сказку про не самые правильные практики и их последствия. Конечно, мне бы хотелось сказать, что все ситуации выдуманные, но, увы, часть из них основана на личном опыте или опыте своих друзей. Думаю, вы тоже сможете увидеть ситуации, с которыми сами сталкивались в работе.

Я постарался образно описать антипаттерны из разных дисциплин: не только из ИТ-архитектуры, но и из разработки, а также проектного или продуктового управления, ведь архитектор часто сталкивается с этими дисциплинами. Посмотрим, сколько антипаттернов вам удастся найти – в конце сказки я приведу ряд примеров, которые точно присутствуют в тексте :)

Любые совпадения случайны, автор и в мыслях не хотел кого-то задеть или обидеть.

Приятного чтения!

Читать далее
Total votes 16: ↑13 and ↓3+12
Comments5

Небинарный *ngIf

Reading time3 min
Views7K

Вам когда-нибудь хотелось отобразить состояние загрузки, пока ngIf ждет ответа от async-пайпа? Или, может, вы мечтали передать в ngFor шаблон для пустого массива? Возможно, вы бросили это, потому что вам не хотелось реализовывать базовую логику этих директив самому. На самом деле в этом нет нужды! Один и тот же селектор может подцепить несколько директив, что позволяет расширить функциональность встроенных директив дополнительной логикой.

Читать далее
Total votes 24: ↑23 and ↓1+24
Comments2

19 концепций, которые нужно изучить для того, чтобы стать эффективным Angular-разработчиком

Reading time14 min
Views35K
TODO-приложение во фронтенд-разработке — это то же самое, что «Hello world» в обычном программировании. При создании TODO-приложений можно изучить выполнение CRUD-операций средствами того или иного фреймворка. Но часто подобные проекты лишь весьма поверхностно касаются того, что на самом деле умеет фреймворк.

Если взглянуть на Angular, то возникает такое ощущение, что этот фреймворк постоянно меняется и обновляется. На самом же деле в том, что касается Angular, можно выделить некоторые идеи, которые остаются неизменными. В материале, перевод которого мы сегодня публикуем, приведён обзор базовых концепций Angular, которые нужно понять для того, чтобы правильно и эффективно пользоваться возможностями этого фреймворка.



Для освоения Angular нужно очень много всего изучить. Многие разработчики застревают на начальных этапах освоения Angular. Происходит это из-за того, что они не знают о том, куда им двигаться, или не знают того, по каким ключевым словам им искать информацию, которая позволит им сделать шаг вперёд. Автор этого материала говорит, что ей, когда она начинала осваивать Angular 2+, хотелось бы, чтобы ей попалось бы руководство по данному фреймворку, похожее на это.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments11

Кастомные Subject'ы в Angular: выносим логику из компонентов для переиспользования

Reading time4 min
Views2.8K

В крупных проектах на Angular часто можно встречать повторяющееся поведение в компонентах. Такое поведение желательно выносить из компонента в отдельные классы, которые можно переиспользовать. Рассмотрю два достаточно популярных кейса: переключатель и множественный выбор сущностей.

Кейс 1: Переключалка (Toggle)

Часто в исходниках приходится видеть примерно такой код:

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments4

Декларативный подход в Angular

Reading time10 min
Views11K

Когда я впервые услышал про compliant-механизмы, был весьма впечатлен. Хоть они и окружают нас в повседневности — в виде застежек рюкзака, кнопок мыши или колпачков от шампуней, — мы редко задумываемся о концепции таких устройств.

Если говорить кратко, в compliant-механизме для обеспечения его технических характеристик используют деформацию. В то время как в традиционной технике (rigid body) гибкость зачастую является негативным качеством материала, сompliant-механизмы используют ее для передачи силы и движения в нужном направлении, вместо соединений из нескольких подвижных деталей.

Узнать, к чему это я
Total votes 35: ↑35 and ↓0+35
Comments5

Полное руководство по стратегии обнаружения изменений Angular onPush

Reading time8 min
Views105K

image


Default cтратегия обнаружения изменений


По умолчанию Angular использует ChangeDetectionStrategy.Default стратегию обнаружения изменений.


ChangeDetectionStrategy.Default работает таким образом, что каждый раз, когда что-то меняется в нашем приложении, в результате различных пользовательских событий, таймеров, XHR, промисов и т.д., обнаружение изменений будет запускаться по всем компонентам.

Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments3

Дженерики в TypeScript: разбираемся вместе

Reading time5 min
Views79K

Всем привет! Команда TestMace публикует очередной перевод статьи из мира web-разработки. На этот раз для новичков! Приятного чтения.


Развеем пелену таинственности и недопонимания над синтаксисом <T> и наконец подружимся с ним



Наверное, только матёрые разработчики Java или других строго типизированных языков не хлопают глазами, увидев дженерик в TypeScript. Его синтаксис коренным образом отличается от всего того, что мы привыкли видеть в JavaScript, поэтому так непросто сходу догадаться, что он вообще делает.


Я бы хотел показать вам, что на самом деле всё гораздо проще, чем кажется. Я докажу, что если вы способны реализовать на JavaScript функцию с аргументами, то вы сможете использовать дженерики без лишних усилий. Поехали!

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments8

Information

Rating
Does not participate
Location
Чита, Забайкальский край, Россия
Date of birth
Registered
Activity