Pull to refresh
3
0.1
Send message

Observable сервисы в Angular

Reading time7 min
Views17K

Всем привет, меня зовут Владимир. Я занимаюсь фронтенд разработкой в Tinkoff.ru.


В Ангуляре для передачи данных внутри приложения или для инкапсуляции бизнес-логики мы привыкли использовать сервисы. Для управления асинхронными потоками отлично подходит RxJS.


Ангуляр в сочетании с RxJS позволяет писать в декларативном стиле, коротко и ясно. Но иногда мы сталкиваемся со сторонними библиотеками или API, которые используют коллбэки, промисы, тем самым подталкивают нас отступить от привычного стиля и писать императивно.


Цель статьи — показать на примере подобных API, как с помощью RxJS их можно без проблем обернуть в Observable-сервисы. Это поможет достичь удобства использования в Ангуляре. Начнем с Geolocation API.


Читать дальше →

Как сделать успешную аутсорс-компанию

Reading time11 min
Views29K
Эта статья будет полезна в первую очередь тем, кто подумывает о фрилансе, уже занимается фрилансом или хочет масштабировать свою частную деятельность в системный бизнес.

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

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

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

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

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

Я считаю, что многие фрилансеры и начинающие предприниматели игнорируют некоторые очень важные факторы успеха в аутсорс-бизнесе. В результате этого они сильно страдают, не могут хорошо зарабатывать и часто отказываются от идеи делать бизнес в аутсорсе. В этой статье я раскрываю три самых важных (по моему мнению) принципа, помогающие достичь успеха в аутсорс-бизнесе.
Читать дальше →

Простой подход к работе с отзывчивыми изображениями

Reading time10 min
Views20K
Спецификация по отзывчивым изображениям — это фантастический документ, в котором описано множество вариантов использования таких изображений. Но опыт подсказывает мне, что чаще всего при работе с ними нужно знать лишь о том, как отдавать клиенту копии одного и того же изображения разного размера, выбирая их в зависимости от ширины области просмотра страницы. Мы называем это «переключением разрешения». Для решения этой задачи можно воспользоваться атрибутами srcset и sizes.

Вывод отзывчивых изображений предусматривает применение достаточно сложной логики. Сюда, кроме прочего, входит определение того, изображение какого размера будет выведено, а также выяснение того, работает ли пользователь с экраном высокого разрешения. К счастью, браузеры лучше, чем люди, умеют определять то, какие именно изображения лучше всего подходят каждому конкретному пользователю. Всё, что нам нужно — это дать им некоторые подсказки. Атрибут srcset даёт браузеру список графических ресурсов, из которых он может выбирать наиболее подходящее изображение. Атрибут sizes позволяет сообщить браузеру о том, изображение какого размера нужно показать в том или ином случае.



И, кстати, пользуясь отзывчивыми изображениями можно не беспокоиться о браузерной поддержке этой технологии. Интересующие нас атрибуты пользуются прекрасной поддержкой браузеров. И, кроме того, в нашем распоряжении имеется резервный механизм, предназначенный для старых браузеров вроде IE11.
Читать дальше →

Random Coffee Habr Edition — нетворкинг для IT-сообщества

Reading time6 min
Views14K

Полгода назад мы познакомились с ребятами, которые основали Random Coffee — сервис для случайных встреч с незнакомцами, но не дейтинг. Эта идея витала в IT-индустрии несколько лет, пока Константин Шубин и Павел Козлов не оформили её в продукт. Суть проста: людям из разных команд, департаментов и даже компаний рандомно назначают встречи за чашкой кофе — просто поговорить о чем угодно. Это помогает выбраться из своего «пузыря», из которого не видно, что кроме узкого круга коллег и горстки друзей есть ещё целый мир, полный интересных людей. Есть ли жизнь вне пузыря, вы можете проверить сами, потому что сегодня мы запустили совместный проект — Random Coffee Habr. Что это такое, с чего начиналось и как работает, рассказывает Павел Козлов в небольшом интервью.

Читать дальше →

Иерархическое логирование приложения в Базу Данных

Reading time10 min
Views7.2K

Всем, привет!


В статье я хотел бы рассказать об одном из подходов к логированию приложения, который сильно помогал мне и коллегам при отладке, поиске ошибок и анализе проблем производительности. Про необходимость логирования было написано множество хороших статей в том числе и на Хабре, поэтому здесь нет большого смысла повторяться. Я начинал карьеру в IT с Oracle и изучал эту БД по книгам главного эксперта — Тома Кайта. Мне запомнилась его фраза по поводу логирования из книги "Effective Oracle by Design":

Instrumentation is not overhead. Overhead is something you can remove without losing much benefit. Removing (or not having) instrumentation takes away considerable functionality. You wouldn’t need to do this if your systems never break, never need diagnostics, and never suffer from performance issues. If that is true, you don’t need to instrument your system (and send me your email address, because I have a job offer for you).


С работой над Oracle проектами всё и началось.

Читать дальше →

Roslyn & EF Core: конструируем DbContext в runtime

Reading time8 min
Views6.3K

Entity Framework Core может генерировать код моделей и DbContext для существующей базы данных с помощью консольной команды dotnet ef dbcontext scaffold. Почему бы нам не попробовать сгенерировать DbContext в runtime?


В статье я расскажу как в runtime в своём приложении:


  1. Сгенерировать код DbContext с помощью EF Core.
  2. Скомпилировать его в памяти с помощью Roslyn.
  3. Загрузить полученную сборку.
  4. Создать экземпляр сгенерированного DbContext.
  5. Работать с базой данных через полученный DbContext.

Пример доступен на github.

Читать дальше →

KnowledgeConf 2020 Online: внедряем управление знаниями по шагам

Reading time8 min
Views3.4K
Каждая команда рано или поздно сталкивается с проблемой управления знаниями. Когда не приживаются новички, когда уходит опытный сотрудник и это вызывает панику, когда тяжело найти в общей папке важный документ или продуктовая команда постоянно опаздывает со сроками — всё это задачи управления знаниями. При этом мы не говорим об IT, проблемы в любой индустрии практически идентичны. Решение здесь — внедрение системы управления знаниями (СУЗ).



На KnowledgeConf 2020 Online мы рассказываем и обсуждаем, как внедрить СУЗ лучше, удобнее, дешевле и быстрее. Всё это на примерах и историях, на чужих ошибках и удачных методиках, чтобы взять себе хорошие идеи и практики, а ошибки не повторять. Поэтому программа KnowledgeConf 2020 Online — это пошаговый план создания системы управления знаниями с нуля до уровня крупнейших компаний. 


План реализуем 18 и 19 мая через 24 онлайн-доклада, знания с которых закрепим на митапах. Благодаря онлайн-формату всё это станет доступнее. Как и сама конференция: стоимость организации снизилась, при этом контента стало в два раза больше, а цена билетов — меньше. Для юрлиц цена уменьшилась в два раза, а для физических в четыре — до 4900 рублей (до 13 мая). 

На конференции добавили новые форматы. Например, экспертная комната, где участники делятся идеями со спикером, и lightning talks — короткие доклады с ответами на вопросы. Не забываем, конечно, о нетворкинге через совместное решение задач, круглые столы, мозговые штурмы и воркшопы с демонстрациями экрана. Посмотрим, что нас ждет.
Читать дальше →

Form design patterns. Обзор книги

Reading time4 min
Views18K
image

Введение от автора обзора


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

Расскажи мне, что тебя тревожит

Reading time11 min
Views9.5K

Привет!


Психотерапия – мое увлечение. Однако, это мое увлечение уже дало и до сих пор приносит мне (и не только мне) пользу. Я хотел бы внести и свой вклад в здоровье того, кто будет читать эту статью. Для этого милости прошу под кат.


image

Читать дальше →

Пишем приложение для заметок на JavaScript

Reading time8 min
Views21K


Доброго времени суток, друзья!

Сегодня мы с вами, как следует из названия, напишем простое приложение для формирования и хранения заметок.

Возможности нашего приложения будут следующими:

  1. Создание заметки.
  2. Хранение заметок.
  3. Удаление заметки.
  4. Отметка о выполнении задачи.
  5. Информация о дате выполнения задачи.
  6. Напоминание о необходимости выполнения задачи.

Приложение будет написано на JavaScript.

Заметки будут храниться в индексированной базе данных (IndexedDB). Для облегчения работы с IndexedDB будет использована эта библиотека. Как заявляют разработчики данной библиотеки, она представляет собой «тоже самое, что и IndexedDB, но с промисами».

Предполагается, что вы знакомы с азами IndexedDB. Если нет, то прежде чем продолжить рекомендую прочитать эту статью.

Я понимаю, что для решения такой задачи, как хранение заметок, вполне достаточно LocalStorage. Однако, мне хотелось исследовать некоторые возможности IndexedDB. Таким образом, выбор в пользу последней был сделан исключительно из гносеологических соображений. В конце будут приведены ссылки на похожее приложение, где хранение данных реализовано с помощью LocalStorage.

Итак, поехали.

Чистая Архитектура для веб-приложений

Reading time36 min
Views117K
Хочу поделиться с вами подходом который я уже много лет использую в разработке приложений, в том числе и веб-приложений. Многим разработчикам настольных, серверных и мобильных приложений этот подход хорошо знаком, т.к. является фундаментальным при построении таких приложений, однако в вебе он представлен очень скудно, хотя желающие использовать такой подход однозначно есть. Кроме того на таком подходе написан редактор VS Code.

Чистая Архитектура

В результате применения этого подхода вы отвяжетесь от конкретного фреймворка. Сможете легко переключать библиотеку представления внутри вашего приложения, например React, Preact, Vue, Mithril без переписывания бизнес логики, а в большинстве случаев даже вьюхи. Если у вас есть приложение на Angular 1, вы без проблем сможете перевести его на Angular 2+, React, Svelte, WebComponents или даже свою библиотеку представления. Если у вас есть приложение на Angular 2+, но нету специалистов для него, то вы без проблем сможете перевести приложение на более популярную библиотеку без переписывания бизнес логики. А в итоге вообще забыть про проблему миграции с фремворка на фреймворк. Что же это за магия такая?
Читать дальше →

Как Gatsby обошёл Next.js

Reading time10 min
Views21K
Автор статьи, перевод которой мы сегодня публикуем, работает программистом в компании Antler. Эта компания представляет собой глобальный генератор стартапов. В Antler несколько раз в году проходят демонстрационные дни, собирающие множество создателей стартапов и инвесторов со всего мира. Ситуация вокруг COVID-19 вынудила Antler перевести свои мероприятия в онлайн-формат.



Компании хотелось сделать так, чтобы посетители их виртуальных мероприятий, ни на что не отвлекаясь, и нигде не застревая, видели бы самое главное. А именно — идеи представляемых публике стартапов, выраженные в виде содержимого веб-страниц. Виртуальные демонстрационные дни могут быть интересны достаточно широкой аудитории. Некоторые представители этой аудитории, возможно, впервые принимают участие в чём-то подобном. Поэтому компании нужно было сделать всё самым лучшим образом и обеспечить высокую скорость загрузки страниц, представляющих стартапы. Они решили, что это — как раз тот случай, когда им может пригодиться высокопроизводительное прогрессивное веб-приложение (PWA, Progressive Web App). Главный вопрос заключался в подборе подходящей технологии для разработки PWA.
Читать дальше →

Современные архитектуры фронт-энда

Reading time12 min
Views49K

image


В статье "Contemporary Front-end Architectures" рассмотрены архитектуры фронт-энда с точки зрения потоков данных в исторической ретроспективе.


Материал состоит из трех частей


  1. Теория и история
  2. Реализация
  3. Перспективы

Читать дальше →

Удобные архитектурные паттерны

Reading time12 min
Views18K

Привет, Хабр!


В свете текущих событий из-за коронавируса ряд интернет-сервисов стал получать увеличенную нагрузку. Например, одна из торговых сетей в Великобритании просто остановила сайт с онлайн-заказами, так как не хватило мощностей. И далеко не всегда можно ускорить сервер, просто добавив более мощное оборудование, однако запросы клиентов обрабатывать надо (или они уйдут к конкурентам).


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

Читать дальше →

Сервис справочников мобильного приложения

Reading time7 min
Views3K
Руслан Ароматов, главный разработчик, МКБ



Добрый день, хабровчане! Я работаю бэкенд-разработчиком в Московском кредитном банке, и в этот раз я бы хотел рассказать о том, как мы организовали доставку рантаймового контента в наше мобильное приложение «МКБ Онлайн». Статья может пригодиться тем, кто занимается проектированием и разработкой фронт-серверов для мобильных приложений, в которые необходимо постоянно доставлять разнообразные обновления, будь то банковские документы, точки геолокации, обновлённые иконки и т. п. без обновления самого приложения в магазинах. Тем, кто разрабатывает мобильные приложения, она тоже не повредит. Статья не содержит примеров кода, только некоторые рассуждения на тему.
Читать дальше →

Opium.Fill — стандартизация цветовой схемы глазами программиста

Reading time11 min
Views14K
Синее лицо, из глаз растут грибы

Привет. Сегодня покажу вам цветовую схему, которой пользуюсь последние 2 года. Она была придумана, чтобы на проблемном проекте избавиться от огромного количества переменных в CSS. А потом оказалось, что эти принципы можно применить почти к любому проекту.

В общем, попробую объяснить, как дизайнеры используют цвет в UI и как всё это можно «типизировать», не вгоняя дизайнеров в жёсткие рамки. Приведу примеры реализации на React JS (для разработчика) и в Figma (для дизайнера). Привязки к React и Figma у схемы нет, просто мне в них привычнее.

В схеме нет ничего хитрого и уникального (может, только название). Все идеи висят в воздухе. Можно воспринимать её как мой best practice по работе с цветом в приложениях. Opium.Fill — это общие принципы, совмещённые с любовью давать всему подряд имена.

Систему можно использовать совместно с Material Design.

Статья написана для front-end разработчика и немного для дизайнера.
Читать дальше →

Что такое VPS/VDS и как его купить. Максимально внятная инструкция

Reading time12 min
Views143K
Выбор VPS на современном рынке технологий напоминает выбор книг нон-фикшн в современном книжном: вроде и обложек интересных много, и цены на любой разбег кошелька, и имена каких-то авторов на слуху, но найти то, что действительно нужно и не является по сути бредом автора, крайне сложно. Точно так же провайдеры предлагают разные мощности, конфигурации и даже бесплатные VPS (хорошее предложение, но принимать его, конечно, опасно). Давайте определимся, на что же нужно обратить внимание при выборе провайдера.

Не гадайте на ромашке — читайте нашу инструкцию
Читать дальше →

Руководство по CI/CD в GitLab для (почти) абсолютного новичка

Reading time13 min
Views410K

Или как обзавестись красивыми бейджиками для своего проекта за один вечер ненапряжного кодинга


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


результаты


В статье будет рассмотрена базовая настройка непрерывной интеграции и поставки для проекта библиотеки классов на .Net Core в GitLab, с публикацией документации в GitLab Pages и отправкой собранных пакетов в приватный фид в Azure DevOps.


В качестве среды разработки использовалась VS Code c расширением GitLab Workflow (для валидации файла настроек прямо из среды разработки).

Читать дальше →

7 бесплатных аналогов Screaming Frog и Netpeak Spider

Reading time4 min
Views24K
Многие SEO-специалисты практически ежедневно проводят технические аудиты сайтов используя тот или иной софт для краулинга. В 90% случаев это всем известные Screaming Frog SEO Spider либо Netpeak Spider. Обе программы платные, а их стоимость начинается от £149 и $182 в год соответственно (500 бесплатных страниц, доступных в Screaming Frog в учет не берем, так как это не серьезно для более-менее крупных проектов). Согласитесь – не каждый фрилансер-сеошник может позволить себе потратить более 10 000 рублей на приобретение подобного софта.

Без сомнений, обе программы достойные, но хотелось бы дешевле, и намного дешевле. А лучше бесплатно )

Конечно, помимо Screaming Frog и Netpeak Spider существует множество других платных и бесплатных аналогичных программ для краулинга сайтов, однако, большинство из них либо имеет более слабый функционал, либо их поддержка и развитие прекращены по неизвестным нам причинам.

Screaming Frog и Netpeak Spider
Читать дальше →

Information

Rating
6,409-th
Registered
Activity