✨ Повышаем надежность
В работе мы склонны пропускать и сокращать путь, чтобы сэкономить время или облегчить себе жизнь, но в итоге это приводит к увеличению количества ошибок, и повышению стоимости обслуживания.
В этой статье рассмотрены темы, которые жизненно важны для улучшения разработки и сопровождения.
👉 https://medium.com/p/855deec98fbc
В работе мы склонны пропускать и сокращать путь, чтобы сэкономить время или облегчить себе жизнь, но в итоге это приводит к увеличению количества ошибок, и повышению стоимости обслуживания.
В этой статье рассмотрены темы, которые жизненно важны для улучшения разработки и сопровождения.
👉 https://medium.com/p/855deec98fbc
👍8🔥2
✨ Новый подход к шаблону Container-Presenter
Зачастую продвинутые приложения требуют использовать паттерны. Паттерн Container Presenter — это интересный инструмент для организации потока данных. Он может быть реализован различными способами, главное — разделение слоев. С его помощью вы можете добиться лучшего разделения ответственности между слоем состояния и слоем представления.
В этой статье показано, как можно реализовать этот паттерн благодаря новейшим возможностям Angular.
👉 https://medium.com/p/dac60ca1b65e
Зачастую продвинутые приложения требуют использовать паттерны. Паттерн Container Presenter — это интересный инструмент для организации потока данных. Он может быть реализован различными способами, главное — разделение слоев. С его помощью вы можете добиться лучшего разделения ответственности между слоем состояния и слоем представления.
В этой статье показано, как можно реализовать этот паттерн благодаря новейшим возможностям Angular.
👉 https://medium.com/p/dac60ca1b65e
👍9🔥3
✨ Разбираемся с ошибками
Как правило, мы стараемся избегать ошибок, и это особенно актуально для начинающих разработчиков. Но, на самом деле, ошибки являются неотъемлемой частью процесса разработки и даже могут быть нашими друзьями.
В статье рассмотрено, как можно обрабатывать ошибки в Angular, как различать их типы, а также когда применять пользовательские ошибки.
👉 https://dev.to/this-is-angular/errors-and-angular-n0b
Как правило, мы стараемся избегать ошибок, и это особенно актуально для начинающих разработчиков. Но, на самом деле, ошибки являются неотъемлемой частью процесса разработки и даже могут быть нашими друзьями.
В статье рассмотрено, как можно обрабатывать ошибки в Angular, как различать их типы, а также когда применять пользовательские ошибки.
👉 https://dev.to/this-is-angular/errors-and-angular-n0b
👍7👏1
✨ Проверяем ответы сервера
Обычно бэкенд проверяет входные данные, но для фронтенда проверки применяются не всегда, хотя они могут пригодиться, чтобы получать уведомления о любых несоответствиях, которых мы не ожидаем.
В статье показывается, как валидировать входящие данные на соответствие контракту, с помощью zod.
👉 https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this
Обычно бэкенд проверяет входные данные, но для фронтенда проверки применяются не всегда, хотя они могут пригодиться, чтобы получать уведомления о любых несоответствиях, которых мы не ожидаем.
В статье показывается, как валидировать входящие данные на соответствие контракту, с помощью zod.
👉 https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this
👍5👎5🔥1
✨ Предотвращаем утечки памяти
JavaScript язык программирования высокого уровня. В отличие от низкоуровневых языков, таких как C или C++, разработчику не нужно выделять и освобождать память в явном виде. Сборщик мусора берет на себя эту ответственность. Однако сборщику мусора нужны подсказки, должны ли определенные объекты существовать в памяти.
В этой статье рассказывается о наиболее распространенных источниках утечек памяти в приложениях на JavaScript и Angular.
👉 https://medium.com/p/5b83eb361b82
JavaScript язык программирования высокого уровня. В отличие от низкоуровневых языков, таких как C или C++, разработчику не нужно выделять и освобождать память в явном виде. Сборщик мусора берет на себя эту ответственность. Однако сборщику мусора нужны подсказки, должны ли определенные объекты существовать в памяти.
В этой статье рассказывается о наиболее распространенных источниках утечек памяти в приложениях на JavaScript и Angular.
👉 https://medium.com/p/5b83eb361b82
👍10🔥2🙏1
✨ Разбираемся с реактивностью
Существует множество способов написания реактивного кода в Angular, от двустороннего связывания до продвинутого RxJS. Некоторые команды предпочитают не иметь единой стратегии, а позволить каждому разработчику самостоятельно придумать самый простой способ реализации, адаптируя сложность решения к сложности проблемы.
В этой серии статей рассматривается, как можно сохранить декларативность кода по мере реализации более сложного функционала.
👉 https://dev.to/this-is-angular/progressive-reactivity-in-angular-1d40
Существует множество способов написания реактивного кода в Angular, от двустороннего связывания до продвинутого RxJS. Некоторые команды предпочитают не иметь единой стратегии, а позволить каждому разработчику самостоятельно придумать самый простой способ реализации, адаптируя сложность решения к сложности проблемы.
В этой серии статей рассматривается, как можно сохранить декларативность кода по мере реализации более сложного функционала.
👉 https://dev.to/this-is-angular/progressive-reactivity-in-angular-1d40
👍11🤩1
✨ Внешние конфигурации
Классический способ добавления конфигураций из файла окружения. Таким образом, если у нас есть два окружения, вам нужно будет сделать две сборки. Внешние конфигурации позволяют создавать несколько пользовательских конфигураций для одного и того же исходного кода.
В этой статье рассмотрены несколько способов загрузки внешней конфигурации, подводные камни и возможные решения.
👉 https://indepth.dev/posts/1502/external-configurations-in-angular
Классический способ добавления конфигураций из файла окружения. Таким образом, если у нас есть два окружения, вам нужно будет сделать две сборки. Внешние конфигурации позволяют создавать несколько пользовательских конфигураций для одного и того же исходного кода.
В этой статье рассмотрены несколько способов загрузки внешней конфигурации, подводные камни и возможные решения.
👉 https://indepth.dev/posts/1502/external-configurations-in-angular
👍7👎1
✨ Пользовательские операторы RxJS
Библиотека RxJS поставляется с богатым набором операторов, которые способны решить большинство проблем, возникающих при работе с потоками.
Тем не менее, существуют ситуации, когда возможность создания новых пользовательских операторов может пригодиться.
👉 https://medium.com/p/da8443a89c3a
Библиотека RxJS поставляется с богатым набором операторов, которые способны решить большинство проблем, возникающих при работе с потоками.
Тем не менее, существуют ситуации, когда возможность создания новых пользовательских операторов может пригодиться.
👉 https://medium.com/p/da8443a89c3a
👍8❤1💩1
✨ Продвинутый TypeScript
Сопоставление типов и другие сложные техники позволяют нам типизировать код гораздо строже. С другой стороны, это обычно нетривиально и добавляет много дополнительных накладных расходов.
В этой статье, на примере работы с несколькими языками, продемонстрированы продвинутые возможности TypeScript.
👉 https://medium.com/p/b5d023bd6539
Сопоставление типов и другие сложные техники позволяют нам типизировать код гораздо строже. С другой стороны, это обычно нетривиально и добавляет много дополнительных накладных расходов.
В этой статье, на примере работы с несколькими языками, продемонстрированы продвинутые возможности TypeScript.
👉 https://medium.com/p/b5d023bd6539
👍7🤩1
✨ Управление точками останова
Точки останова чаще всего создаются с помощью CSS. Однако как быть, если нужно прослушивать их для выполнения изменений в вашем приложении? Это может потребоваться для настройки сторонних компонентов или обработки событий.
К счастью, Angular поставляется с BreakpointObserver, который идеально подходит для таких сценариев.
👉 https://www.thisdot.co/blog/how-to-manage-breakpoints-using-breakpointobserver-in-angular
Точки останова чаще всего создаются с помощью CSS. Однако как быть, если нужно прослушивать их для выполнения изменений в вашем приложении? Это может потребоваться для настройки сторонних компонентов или обработки событий.
К счастью, Angular поставляется с BreakpointObserver, который идеально подходит для таких сценариев.
👉 https://www.thisdot.co/blog/how-to-manage-breakpoints-using-breakpointobserver-in-angular
👍5
✨ Пишем плохой код
Когда заходит разговор о улучшении навыков программирования, чаще всего звучат советы: прочитать чистый код, изучить паттерны проектирования, посмотреть чужие проекты. Но есть другой способ — пойти от обратного, и попробовать написать код максимально плохо. По мнению автора статьи, написав плохой код можно понять, как писать хороший.
Пожалуйста не пробуйте эти советы в рабочих проектах. Мы не несем никакой ответственности за любой причиненный ущерб.
👉 https://habr.com/ru/post/678204/
Когда заходит разговор о улучшении навыков программирования, чаще всего звучат советы: прочитать чистый код, изучить паттерны проектирования, посмотреть чужие проекты. Но есть другой способ — пойти от обратного, и попробовать написать код максимально плохо. По мнению автора статьи, написав плохой код можно понять, как писать хороший.
Пожалуйста не пробуйте эти советы в рабочих проектах. Мы не несем никакой ответственности за любой причиненный ущерб.
👉 https://habr.com/ru/post/678204/
😁11👍4💩2
✨ Сортируем элементы с помощью Drag & Drop
Нередко в разработке интерфейсов попадаются требования связанные с Drag and Drop: загрузка изображений, управление списками задач или сортировка элементов.
К счастью, команда Angular реализовала библиотеку, позволяющую легко реализовать этот функционал.
👉 https://www.thisdot.co/blog/angular-cdk-sorting-items-using-drag-and-drop
Нередко в разработке интерфейсов попадаются требования связанные с Drag and Drop: загрузка изображений, управление списками задач или сортировка элементов.
К счастью, команда Angular реализовала библиотеку, позволяющую легко реализовать этот функционал.
👉 https://www.thisdot.co/blog/angular-cdk-sorting-items-using-drag-and-drop
👍5👎2
✨ Реализуем Pokedex с помощью AngularFire
AngularFire упрощает внедрении Firebase SDK, и стремится обеспечить привычный опыт для Angular разработчиков.
В этом руководстве вы узнаете, как создать CRUD-приложение Pokedex, используя Angular 14, Firestore и новый AngularFire.
👉 https://medium.com/p/2d6980dcc091
AngularFire упрощает внедрении Firebase SDK, и стремится обеспечить привычный опыт для Angular разработчиков.
В этом руководстве вы узнаете, как создать CRUD-приложение Pokedex, используя Angular 14, Firestore и новый AngularFire.
👉 https://medium.com/p/2d6980dcc091
👍9
✨ Защищаем веб-приложение
Существует множество статей о веб-безопасности. Но некоторые из них уже неактуальны, или написаны для традиционных веб-приложений с серверным рендерингом.
В этой серии статей рассказывается о проблемах веб-безопасности, о которых должны знать все разработчики, с акцентом на одностраничные приложения.
👉 https://dev.to/oktadev/defend-your-spa-from-security-woes-1fg2
Существует множество статей о веб-безопасности. Но некоторые из них уже неактуальны, или написаны для традиционных веб-приложений с серверным рендерингом.
В этой серии статей рассказывается о проблемах веб-безопасности, о которых должны знать все разработчики, с акцентом на одностраничные приложения.
👉 https://dev.to/oktadev/defend-your-spa-from-security-woes-1fg2
👍10
✨ Полное руководство по Interceptors
Перехватчики в Angular являются одной из интереснейших особенностей, к тому же они способствуют чистоте кода. Вы пишете несколько строк кода в одном месте, а они применяют его глобально к каждому HTTP-запросу и ответу.
В этой статье мы изучим перехватчики в Angular, поймем что это такое и как они работают.
👉 https://medium.com/p/7294e2317ecf
Перехватчики в Angular являются одной из интереснейших особенностей, к тому же они способствуют чистоте кода. Вы пишете несколько строк кода в одном месте, а они применяют его глобально к каждому HTTP-запросу и ответу.
В этой статье мы изучим перехватчики в Angular, поймем что это такое и как они работают.
👉 https://medium.com/p/7294e2317ecf
👍18❤2
✨ Функциональное программирование в TypeScript
Функциональный стиль программирования был представлен Джоном Бэкусом в компании IBM в 1978 году, но до сих пор остается в значительной степени непонятым. Сегодня мы можем легко использовать функциональное программирование в TypeScript.
В этой серии статей мы разберемся, что такое функциональное программирование и как оно появилось.
👉 https://medium.com/p/18ac096bb551
Функциональный стиль программирования был представлен Джоном Бэкусом в компании IBM в 1978 году, но до сих пор остается в значительной степени непонятым. Сегодня мы можем легко использовать функциональное программирование в TypeScript.
В этой серии статей мы разберемся, что такое функциональное программирование и как оно появилось.
👉 https://medium.com/p/18ac096bb551
👍6
✨ HolyJS возвращается!
В ноябре JUG Ru Group организует конференцию для JavaScript‑разработчиков — HolyJS 2022. В программе — технические доклады и дискуссии о языках, архитектуре, графике, фреймворках и инструментах.
Есть интересные кейсы? Тогда подавайте заявку на выступление. Программный комитет поможет с подготовкой к выступлению: назначит персонального куратора, проведет ревью материала и организует репетиции.
Выбирайте тему выступления на сайте или предлагайте свои идеи — их обязательно рассмотрят.
Всем спикерам JUG Ru Group дарит билет на все конференции сезона в онлайне и офлайне.
👉 Билеты можно купить здесь.
В ноябре JUG Ru Group организует конференцию для JavaScript‑разработчиков — HolyJS 2022. В программе — технические доклады и дискуссии о языках, архитектуре, графике, фреймворках и инструментах.
Есть интересные кейсы? Тогда подавайте заявку на выступление. Программный комитет поможет с подготовкой к выступлению: назначит персонального куратора, проведет ревью материала и организует репетиции.
Выбирайте тему выступления на сайте или предлагайте свои идеи — их обязательно рассмотрят.
Всем спикерам JUG Ru Group дарит билет на все конференции сезона в онлайне и офлайне.
👉 Билеты можно купить здесь.
👍4💩4🔥1