Обновить
0
@freeXread⁠-⁠only

Пользователь

Отправить сообщение

Эффектное программирование. Часть 1: итераторы и генераторы

Время на прочтение5 мин
Охват и читатели12K
Javascript на данный момент является самым популярным языком программирования по версиям многих площадок (например Github). Является ли при этом он самым продвинутым или самым любимым языком? В нём отсутствуют конструкции, которые для других языков являются неотъемлемыми частями: обширная стандартная библиотека, иммутабильность, макросы. Но в нём есть одна деталь, которая не получает, на мой взгляд, достаточно внимания — генераторы.

Далее читателю предложена статья, которая, в случае положительного отклика, может перерасти в цикл. В случае успешного написания мной этого цикла, а Читателем его успешного освоения, про следующий код будет понятно не только то, что он делает, но и как устроен под капотом:

while (true) {
    const data = yield getNextChunk(); // вызов асинхронной логики
    const processed = processData(data);
    try {
        yield sendProcessedData(processed);
        showOkResult();
    } catch (err) {
        showError();
    }
}

Это первая, пилотная часть: Итераторы и Генераторы.
Часть 2
Читать дальше →

Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели14K

В этой статье разбираем архитектуру Pipes and Filters, Content‑Based Router и Idempotent Receiver — те самые кирпичики, на которых держатся надёжные системы. Схемы, best practices для проектирования устойчивых интеграций для Enterprise‑разработки.

Читать далее

Почему так сложно создавать событийно-ориентированные системы?

Время на прочтение6 мин
Охват и читатели15K

Приветствуем, Хабр.

Сегодня мы хотим напомнить вам об одной важной книге, которую в очередной раз допечатали в январе текущего года: «Создание событийно‑управляемых микросервисов». Мы пытаемся развить эту тему в разрезе «для начинающих архитекторов», рады были бы пообщаться с потенциальным автором, который также разделяет наш интерес. Чтобы был более понятен интересующий нас уровень сложности и круг тем, предлагаем ознакомиться с переводным обзором этой темы; статья сентябрьская, найдена в блоге «The Scalable Thread».

Читать далее

Виды моделирования данных. Полный гайд

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели10K

Спроси любого уважаемого аналитика или инженера данных о том, какие бывают способы моделирования данных, тебе ответят: звезда, 3NF и DataVault. Спроси ИИ, получишь примерно такой же ответ. Придешь на какой-нибудь проект в компанию, также скорее всего встретишь там кого-нибудь из этих друзей. В 90% материалах про методологии моделирования освещаются только эти трое. Как будто других методологий не существует.

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

Читать далее

Как же расширять этот ваш словарный запас?

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели16K

Все люди, изучающие иностранный язык, в какой‑то момент сталкиваются с тем, что в принципе базовую базу по словам они уже закрыли и какие‑то простые ежедневные разговоры поддержать могут, многое понимают, но нет‑нет, да и попадается какое‑нибудь абсолютно новое слово. И хорошо, если из контекста можно как‑то определить, что оно может значить. Но бывает так, что слово вообще никаких подсказок не дает, а интерпретация «от контекста» может быть максимально неправильной — особенно, если это какое‑нибудь определение (прилагательное) и тут либо знаешь, либо нет. Как можно пополнять свой словарный запас в иностранном языке и откуда эти новые слова брать — поговорим в статье.

Читать далее

Как я адаптировала CV, Cover letter и профиль в Linkedin для международного поиска работы

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели26K

Привет, Habr!

В продолжении к статье про международный поиск работы в 2024 году, хочу поделиться опытом создания основных артефактов, которые необходимы для поиска работы за рубежом — резюме (CV), сопроводительного письма (Cover letter) и профиля в LinkedIn.

Читать далее

Obsidian+Github вместо Notion: синхронизация, бекап и версионность (3-в-1)

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели256K

О том, как сделать прозрачную синхронизацию заметок Obsidian между устройствами (Desktop, Android, iOS) через GitHub:

1. Без сторонних приложений (вроде iCloud, SyncThing, Termux и пр)
2. Бесплатно
3. Бонусом — резервная копия: как самих заметок, так и истории изменений.

В результате получается полноценная замена Notion: структурированные заметки с автоматической синхронизацией между устройствами.

Инструкция:

Kafka для самых маленьких разработчиков, аналитиков и тестировщиков

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели61K

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

С одной стороны, это может быть и хорошо. Такие шаги стимулируют индустрию. Но всё же лучше понимать, что ты делаешь, иначе проекту можно сделать только хуже. В этой статье я обращаюсь к разработчикам, аналитикам и тестировщикам, которые еще не сталкивались с Kafka по работе. Помогу понять, почему все же в микросервисной среде многие не ходят просто по REST, а используют этот инструмент - что конкретно делает Kafka и когда есть смысл её применять.

Читать далее

Деплой .NET приложений для самых маленьких. Часть 2. Github Actions

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели7.2K

В прошлой статье мы рассмотрели чрезвычайно популярный инструмент для выкатки приложений Jenkins. Мы подружили его через плагины с SSH, с GitHub, построили простой пайплайн с помощью Groovy. И вроде все здорово, все работает как должно, но все равно есть ощущение, что можно сделать лучше. И действительно, наш процесс можно улучшить, перестав проводить сборку на VPS.

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

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

Читать далее

Как работает интернет

Уровень сложностиПростой
Время на прочтение30 мин
Охват и читатели263K

Если вы полный ноль в интернет-технологиях, и хотите получить общее понимание Интернета, прочитав всего одну статью, то эта статья - для вас.

Здесь вы узнаете о 4 уровнях модели TCP/IP. О том, что такое MAC-адрес и IP-адрес, и зачем нам 2 типа цифровых адресов. Как работает DNS. Зачем нужны коммутаторы и роутеры. Как работает NAT. Как устанавливается защищённое соединение. Что такое инфраструктура открытых ключей, и зачем нужны TLS-сертификаты. Чем отличаются три версии протокола HTTP. Как происходит HTTP-аутентификация. И в конце будет несколько слов о VPN.

Читать далее

Нужно ли вам красивое резюме? Оцениваем результаты эксперимента с помощью статистики

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели15K

Недавно YouTube подкинул мне видео об оценке эффективности резюме. Автор ролика создал пять вариантов, чтобы изучить влияние четырёх факторов: имени соискателя, названия компании, перерыва в работе и оформления. Каждое резюме было отправлено на 100 релевантных вакансий.

Меня зовут Ольга Матушевич, я наставница на курсе «Аналитик данных» в Яндекс Практикуме. В этом тексте я расскажу, какие результаты показал эксперимент из YouTube, и попробую выяснить, являются ли они статзначимыми.

Читать далее

Два потока, одно ядро: как устроена одновременная многопоточность

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели56K

Одновременная многопоточность (Simultaneous multithreading, SMT) — это функция, позволяющая процессору одновременно обрабатывать команды из двух разных потоков. Но задавались ли вы когда-нибудь вопросом, как это работает? Как процессор отслеживает два потока и распределяет ресурсы между ними?

В статье я объясню, как устроена эта функция. Понимание внутреннего устройства SMT поможет вам решить, подходит ли она для ваших продакшен-серверов. Иногда SMT способна резко повысить производительность системы, но в некоторых случаях она приводит к замедлению. Знание подробностей позволит вам сделать правильный выбор.

Примечание: основная часть изложенного в статье относится к реализации SMT компании Intel, также называемой гипертредингом (hyper-threading). Она основана на научной статье компании, опубликованной в 2002 году.
Читать дальше →

От перфокарт до облаков: Как оставаться востребованным в IT в любом возрасте

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели18K

В мире, где технологии несутся вперед со скоростью света, а стартаперы едва успели окончить школу, найти работу в IT после 60 кажется чем-то из области фантастики. Однако опыт Сергея Вяткина, senior software engineer в американской компании Moody's Corporation, доказывает: в программировании возраст — это просто число в переменной. 

Читать далее

Бинарные деревья — решение алгоритмических задач, часть 1

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели40K

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

Немного теории для общего понимания сути.

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

Кстати, у меня есть телеграм-канал, где пишу подходы к решениям всяких задачек с LeetCode, там больше разборов конкретных задач, чем здесь, потому что не всегда нужна статья. В общем, если интересно - жду здесь - t.me/crushiteasy :)

Читать далее

Создание аналога Google Photos на собственном сервере

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели76K

Создание собственного облачного хранилища с автоматическим менеджером фотографий.

Изучение опенсорс софта, нацеленного на автоматический менеджинг фотографий, сравнение софта между собой, установка на тестовый сервер, просмотр с разных устройств.

Читать далее

Полный гайд по тестированию на Flutter. Часть 4: продвинутое модульное тестирование

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели2.5K

Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead агентства продуктовой разработки Amiga. Это серия статей переводов о тестировании в Flutter, предыдущие выпуски вы найдете на моей страничке. Сегодня перевод посвящен продвинутому модульному тестированию. Всем приятного чтения!

Читать далее

Ещё раз о том, какого размера должны быть тесты

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели11K

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

Читать далее

12 важных веб-сайтов, о которых должен знать каждый программист

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели82K

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

Читать далее

TypeScript + React: путь к идеально типизированному коду

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели13K

Частенько сталкиваются с проблемой поддержания типовой безопасности в React-проекте. Код разрастается, и управление типами становится всё сложнее. Ошибки, вызванные неправильной типизацией, приводят к крашам и длительным отладкам. Тогда приходит время внедрения TypeScript!

В статье рассмотрим как TypeScript может помочь решить проблемы с типизацией и сделать React-код идеально типизированным.

Читать далее

TypeScript что нового 5.5. Перевод. Часть 1

Время на прочтение4 мин
Охват и читатели10K

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

В первой части предлагаю ознакомиться с предикатами выводимого типа и то как всё это поменялось в TypeScript 5.5 версии, приступим!

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность