Pull to refresh
7
0
Send message

Добавляем lint-staged в NestJS и Angular приложения, включаем семантическое версионирование фронтенда

Reading time14 min
Views524

Так как версионирование через плагин nx-semantic-release происходит путем анализа изменений по связанным Typescript-импортам, то нам нужно минимизировать эти изменения, для этого в проект подключаем lint-staged и добавляем строгости в Typescript-код.

Читать далее
Total votes 1: ↑1 and ↓0+3
Comments0

Деконструкция монолита: Максимально производительный подход к проектированию программ

Reading time10 min
Views6.3K

Как и почему компания Shopify перешла от монолитной архитектуры к модульно-монолитной.


image

У компании Shopify одна из крупнейших баз кода на Ruby on Rails. Над ней трудились более десяти лет свыше тысячи разработчиков. Она включает множество разнообразных функций, например, выставление счетов продавцам, управление сторонними приложениями, обновление информации о товарах, обработка доставки и так далее.

Изначально система была построена как монолит, то есть все эти разные функциональные возможности были встроены в одну кодовую базу без каких-либо разграничений между ними. В течение многих лет эта архитектура работала нормально, но в конце концов мы достигли точки, когда недостатки монолита перевесили преимущества. Нам предстояло сделать выбор, как действовать дальше.
Читать дальше →
Total votes 12: ↑12 and ↓0+19
Comments4

Новые методы появятся в Set JavaScript

Level of difficultyEasy
Reading time4 min
Views4.5K

Привет всем! Я Кирилл Мыльников, frontend разработчик компании Usetech. Сегодня хочу поделиться информацией о новых методах, которые скоро появятся в коллекции Set в JavaScript.

Set был добавлен в стандарте ES2015, но всегда казался немного ограниченным. Работать с ним можно было только через добавление, удаление и проверку наличия элементов. Однако, при работе с несколькими коллекциями или сравнении их, приходилось писать дополнительные функции. Но теперь нам готовят новые методы, которые значительно упростят работу с Set и позволят избежать необходимости придумывать свои функции.

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

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

Основные методы:

Читать далее
Total votes 17: ↑13 and ↓4+13
Comments10

Что такое semantic-release и как с ним работать

Level of difficultyMedium
Reading time7 min
Views5.7K

Привет! Я — Алексей Бондаренко, работаю в команде Платформа Банки.ру. Сегодня хочу рассказать о semantic-release и его практическом применении на примере упрощения разработки и внедрения библиотеки в проект. 

Читать далее
Total votes 13: ↑11 and ↓2+15
Comments5

Не стоит недооценивать HTML

Level of difficultyEasy
Reading time6 min
Views24K

«HTML – это просто», «Разрабатывать фронтенд проще, чем бэкенд», «После реализации бэкенда обновление UI не должно составлять труда», – за время работы в сфере веб-разработки вокруг меня то и дело звучали эти и другие аналогичные утверждения.

И очень часто они вызывали у меня грусть.

Дело в том, что бо́льшую часть времени я проводила за написанием фронтенда, включая работу с HTML, CSS и JavaScript (по факту в основном TypeScript). Когда кто-нибудь говорит мне о «простоте» моей работы, я начинаю думать, что мои навыки не представляют высокой ценности, и меня может легко заменить любой разработчик…

В статье же я решила описать свои размышления, которые рождались в течение последних двух лет во время работы с людьми из разных команд с разным опытом в HTML-разработке и фронтенд-технологиях в целом. Здесь я озвучу несколько основных своих вопросов «Почему?», сопроводив их возможными ответами.
Читать дальше →
Total votes 51: ↑48 and ↓3+60
Comments95

Подробная инструкция по изготовлению сплит клавиатуры на основе ATmega32U4. Аналог Iris / Jiran своими руками

Reading time13 min
Views53K

Моя самоделка


image

Перед изготовлением своей клавиатуры я наметил следующие цели:

  1. Максимально возможный тактильный комфорт.
  2. Добиться того, чтобы совершенно не было необходимости смотреть на клавиатуру при работе, чтобы она никоим образом не отвлекала внимание на себя, чтобы даже смотреть на нее было бессмысленно. Именно поэтому на моих колпачках нет надписей.
  3. Клавиатура — это мой рабочий инструмент, сосредотачиваемся на ее функционале и удобстве. Внешний вид совершенно неважен. Кто не может жить без RGB подсветки и внешней броской красоты – нам с вами не по пути, эта статья совсем про другое. В этой статье я вас научу как недорого и просто сделать себе удобный и функциональный инструмент для работы.
  4. Удобство перевозки. Сделать компактное и удобное для переноски устройство.
Total votes 79: ↑79 and ↓0+79
Comments76

Джойстик, тачпад, кнопки — делаем USB контроллер ввода на RP2040

Reading time7 min
Views6K

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

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

Тогда может быть имеет смысл добавить небольшой и дешевый микроконтроллер и всё-таки собрать свой собственный  геймпад или пульт, оснастив его при этом стандартным USB HID Joystick драйвером для игровых контроллеров. В таком случае контроллер можно будет подключить к любой Win / Linux системе, без необходимости разработки драйвера для USB.

Насколько это сложно? Можно ли сделать свой собственный тачпад?

Попробуем разобраться
Total votes 23: ↑23 and ↓0+23
Comments15

Raspberry Pi Pico на МК RP2040: начало и первые шаги. Что есть поесть за $4

Reading time8 min
Views103K

Начало


Raspberry Pi Foundation всегда знает чем порадовать или удивить нас, а так же как подталкивать других производителей на интересные шаги и решения для хорошей конкуренции.
В четверг (рыбный день, кстати) 21-ого января 2021 года был анонсирован выпуск нового микроконтроллера RP2040 и небольшой платы с его применением, которая получила название Raspberry Pi Pico.



Честно говоря, я прочитал эту новость и не планировал ничего делать по этому поводу. Но потом случайно заметил несколько особенностей этого микроконтроллера, что разбудило любопытство во мне и подтолкнуло к покупке пары плат для дальнейших экспериментов. Очень привлекло наличие PIO блоков и множество PWM. Справедливости ради, PWM можно как-то решить, а вот с PIO есть смысл поиграться.

После пары дней занимательной возни я решил поделиться своим небольшим опытом с Хабром и его гостями.

К сожалению, с PIO я недостаточно освоился и поэтому возможности PIO выходят за рамки этой статьи. Но если будет очень интересно сообществу, то возможно продолжение после того, как будет чем поделиться.
Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments60

Книга «Продвинутые алгоритмы и структуры данных»

Reading time7 min
Views32K
image Привет, Хаброжители!

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

Вы постоянно сталкиваетесь с бесчисленными проблемами программирования, которые поначалу кажутся запутанными, трудными или нерешаемыми. Не отчаивайтесь! Многие из “новых” проблем уже имеют проверенные временем решения. Эффективные подходы к решению широкого спектра сложных задач кодирования легко адаптировать и применять в собственных приложениях, а при необходимости создавать собственные структуры данных под конкретную задачу. Сбалансированное сочетание классических, продвинутых и новых алгоритмов обновит ваш инструментарий программирования, добавив в него новые перспективы и практические методы.
Читать дальше →
Total votes 11: ↑10 and ↓1+12
Comments3

Паттерн порталов в Angular: для чего нужен root-компонент в Taiga UI

Reading time6 min
Views9K

Мой коллега Роман недавно объявил о выходе нашей новой библиотеки компонентов под Angular Taiga UI. В инструкциях Getting started сказано, что приложение нужно обернуть в некий tui-root. Давайте разберемся, что он делает, узнаем, как и зачем мы используем порталы и что это вообще такое.

Разобраться
Total votes 25: ↑23 and ↓2+22
Comments4

Клавиатура с трекболом. Как с ней работать

Level of difficultyEasy
Reading time2 min
Views12K

В этой статье хочу рассказать о том как работать с клавиатурой у которой есть трекбол.

Обычно, клавиатуры которые разрабатываются энтузиастами работают на прошивках с открытым исходным кодом. Если клавиатура работает по проводу, то чаще всего это QMK. Если клавиатура работает по bluetooth, то чаще всего это ZMK

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

Как быстро и удобно документировать Angular проект с помощью модуля AddOnDoc из TaigaUI

Reading time5 min
Views5.4K

Не так давно вышла новая библиотека компонентов Taiga UI. Как говорят сами создатели Александр Инкин и Роман Седов, это конструктор Lego. И действительно: в нём есть много полезных модулей, которые можно использовать в своём проекте. В этой статье мы рассмотрим модуль AddOnDoc.

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

Возможности современного клавиатуростроения (программные)

Reading time12 min
Views18K

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

Читать далее
Total votes 37: ↑36 and ↓1+47
Comments85

Фронтенд-дайджест 2023

Level of difficultyEasy
Reading time10 min
Views5.3K

Привет, Хабр! Я Софья, фронтенд-разработчик в одном из департаментов Тинькофф. Из года в год наша большая фронтенд-команда растет, ставит эксперименты и обменивается опытом. Уходящий год богат на достижения, поэтому мы решили поделиться статьями, докладами и находками для командной работы. Несем все самое полезное, что получилось запустить, внедрить, написать и подготовить.

Открыть дайджест
Total votes 17: ↑14 and ↓3+13
Comments1

Глубокий JS. Области тьмы или где живут переменные

Level of difficultyHard
Reading time16 min
Views14K

В статье Глубокий JS. В память и типах и данных мы говорили о том, как выглядит структура переменной каждого конкретного типа в памяти движка V8. В этой статье предлагаю теперь рассмотреть, где именно эти переменные хранятся и каким образом попадают в память.

Речь пойдет об Абстрактном Синтаксическом Дереве (AST), типах переменных, областях видимости и выделении памяти в стэке и куче.

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

Знакомство с WebTransport API

Level of difficultyMedium
Reading time20 min
Views12K


Hello world!


На днях я прочитал статью о WebTransport API как будущей альтернативе или даже замене WebSockets. Мне стало интересно, что это такое и с чем его едят. Давайте разбираться вместе.

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

<dl> или <table>? Исследуем подходы к представлению пар ключ-значение в HTML

Level of difficultyEasy
Reading time5 min
Views3.2K

Казалось бы, простая задача - сверстать список пар ключ-значение. Бери <div> и делай. Но что, если захотелось подушнить? Этим и займёмся в статье...
Рассмотрим три подхода к решению этой задачи: <div>, <dl>, <dt>, и <dd>, и <table>. Обсудим преимущества, недостатки и примеры.
Цель - помочь выбрать наиболее подходящий подход для конкретной задачи.

Читать далее
Total votes 14: ↑11 and ↓3+11
Comments15

Сборка мусора в JavaScript

Level of difficultyMedium
Reading time10 min
Views21K

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

В этой статье мы заглянем под капот этого процесса, поймем, как работает память, и изучим алгоритм сборки мусора.

Погнали собирать мусор!

Собрать мусор
Total votes 15: ↑14 and ↓1+15
Comments5

Atomic CSS здорового человека. UnoCSS

Level of difficultyMedium
Reading time12 min
Views4.9K

Продолжение перевода статьи «Reimagine Atomic CSS» двухлетней давности одного из членов команды Vue core Anthony Fu, автора UnoCSS, в которой рассматривается уже сам UnoCSS.

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

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

Level of difficultyEasy
Reading time6 min
Views56K

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

Читать далее
Total votes 29: ↑25 and ↓4+36
Comments153
1
23 ...

Information

Rating
Does not participate
Registered
Activity