Обновить
1060.71

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Как подготовиться и пройти System Design Interview

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

System Design Interview — пожалуй, один из самых «бесформенных» этапов технического собеседования. Здесь важно не найти единственно верное решение, а продемонстрировать системное мышление, умение работать с абстракциями, логически выстраивать архитектуру и аргументированно делать выбор технологий.

Александр Кучук, эксперт сообщества Spring АйО, подготовил авторскую статью, в которой шагом показывает, как структурировать интервью, какие вопросы задавать, как рассуждать и что оценит интервьюер.

Кстати, Александр ведет репозиторий с заметками: https://github.com/qcha/JBook

Читать далее

Год с uv — инструментом управления Python-проектами: плюсы, минусы и стоит ли переходить

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров11K

uv — это новый инструмент управления Python-проектами, разработанный командой Astral. За год активного использования автор протестировал его в разных условиях: от учебных задач до сложных production-проектов.

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

Читать далее

Пиши простой код

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

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

Читать далее

Графика и Python: 6 GUI-инструментов, которые пригодятся разработчикам в 2025 году

Время на прочтение33 мин
Количество просмотров28K

Привет, Хабр! Меня зовут Леша Жиряков, я техлид бэкенд-команды витрины KION, а еще в МТС я возглавляю Python-гильдию.

В 2025 году Python остается одним из самых популярных языков программирования, а его возможности для создания графических интерфейсов (GUI) продолжают радовать разработчиков. В этой подборке — шесть лучших инструментов, которые выделяются функциями, активностью сообщества и фишками. Погружаемся в мир кнопок, окон и виджетов — от проверенной классики до ярких новичков GitHub.

Читать далее

Как оптимизировать код на Go? Раскладываем по полочкам

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

Привет, Хабр! Меня зовут Дмитрий Гурьянов, я руковожу командой Manuls в VK HR Tek (система ведения кадрового электронного документооборота). Сегодня расскажу о нюансах оптимизации на разных уровнях исполнения кода на Go.

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

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

Читать далее

Почему COUNT(*) быстрее, чем COUNT(col) — и когда это не так

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

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

Сегодня поговорим про одну из тех тем, что вроде бы тривиальна, но до последней капли грязи тащит за собой внушительный пласт вопросов. Речь пойдёт про COUNT(*) и COUNT(col) в PostgreSQL.

Читать далее

Какие они — лучшие программисты?

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров28K

За свою жизнь я повстречал немало разработчиков и недавно задался вопросом: «А что делает разработчика одним из лучших? Что у таких людей есть общего?»

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

Как я начал учить Go и правда ли он похож на Python. Мой личный опыт

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

Всем привет! Меня зовут Иван, я программирую на Python и недавно решил освоить новый ЯП. Долго думал, какой выбрать. В итоге решил довериться утверждению, что Python во многом похож на Go — на нем и остановился.

Ниже поделюсь личным опытом изучения языка — и да, я еще продолжаю его осваивать. Расскажу, какие встретил различия между Python и Go в типах данных, преобразовании типов данных, подходах к обработке ошибок. А еще обсудим, какой ЯП быстрее и можно ли импортировать и выполнить код Go в Python. Надеюсь, этот пост будет интересен тем, кто тоже собирается освоить второй ЯП. Ну, let’s Go!

Читать далее

Стоимостной оптимизатор: сердце гибридной базы данных YDB

Время на прочтение8 мин
Количество просмотров6.8K

Я занимаюсь разработкой баз данных с 1999 года и сейчас работаю над YDB — базой данных, которую мы в Яндексе недавно выложили в опенсорс. Это моя шестая база данных и четвертая — массивно-параллельная. И каждый раз, когда основные задачи решены, я сажусь разрабатывать оптимизатор запросов. Под катом я кратко расскажу о том, что такое оптимизаторы запросов в базах данных и почему их непросто делать.

Читать далее

Обзор CUDA: сюрпризы с производительностью

Время на прочтение6 мин
Количество просмотров11K

Наверное, я очень опоздал с изучением CUDA. До недавнего времени даже не знал, что CUDA — это просто C++ с небольшими добавками. Если бы я знал, что изучение её пойдёт как по маслу, я бы столько не медлил. Но, если у вас есть багаж привычек C++, то код на CUDA у вас будет получаться низкокачественным. Поэтому расскажу вам о некоторых уроках, изученных на практике — возможно, мой опыт поможет вам ускорить код.

Читать далее

Разработка CLI с помощью пакета Cobra: как не наступить на змею при написании

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

Привет, Хабр. Меня зовут Иван Добряев, я разработчик программного обеспечения в Центре технологий VK. Сегодня хочу поделиться опытом по одной достаточно прикладной, но весьма увлекательной теме — разработке командной строки (CLI) на Go.

Платформа для инференса ML-моделей (inference platform) у нас молодая, ей всего лишь полгода, и мы активно расширяем команду. Так что, если вы хотите писать сервисы на Go с нуля, то приходите к нам, у нас найдутся задачи на любой вкус.

Читать далее

Искусство Unit-тестирования: сокращаем Arrange до нуля

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров5.2K


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

Эта статья будет полезна .NET разработчикам, которые когда-либо сталкивались с написанием unit тестов, а также тим и техлидам в поиске оптимальной практики для своей команды.
Читать дальше →

Обзор конференции по робототехнике и искусственному интеллекту ROS Meetup 2024 в преддверии новой

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

Привет, Хабр! На связи сообщество ROS Russia.

Мы объединяем любителей и профессионалов, которые занимаются робототехникой и искуственным интеллектом. Изначально наше сообщество создавалось для обсуждения самого популярного фреймворка для прототипирования ПО для роботов — Robot Operating System, однако давно уже охватывает темы, выходящие за рамки ROS: электронику, механику и общие вопросы создания ПО для роботов. Помимо общения на темы, связанные с разработкой роботов, мы проводим тематические мероприятия.

Читать далее

Ближайшие события

Почему меня всегда будет злить разработка ПО

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров12K

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

Два года спустя, после долгих мук и множества постов, я уволился [перевод на Хабре], чтобы создать собственную консалтинговую фирму. Неудивительно, что меня совершенно не волновало, получится ли у меня — я осознавал риски, на которые иду. Деньги приходят и уходят, ничего особо страшного со мной произойти не может.

Нет, на самом деле, мне не давал покоя такой вопрос:

Вспомню ли я два прошлых года написания постов и задумаюсь ли: «Разработка ПО не особо важна почти ни в каком контексте. Мы не запускали людей в космос: возможно, стоило просто брать лёгкие деньги и заткнуться?»

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

Как должен выглядеть правильный Docker Image для Spring Boot приложения?

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

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

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

Читать далее

ХрюХрюКар v.2 или как я использую Go для защиты своего двора

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

Почти год назад я писал про ХрюХрюКар. Это экспериментальный проект, который проработал 7 месяцев в городе Балаково Саратовской области. За это время мы «поймали» около тысячи автомобилистов, разместивших свои авто на зеленых зонах, детских/спортивных площадках и тротуарах.

В этой статье я расскажу про совершенно новую версию ХХК, которую я написал на Go. Ну и отдам сообществу все исходники проекта.

Припарковаться правильно

Затолкаем, братцы!!! UART Lite через PCIe прямиком в Linux: драйвер за вечер (почти)

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров11K

Что если можно было бы подключить своё AXI-устройство на FPGA к Linux через PCIe за вечер? В этой статье рассказываю, как написать драйвер для UARTLite через XDMA, собрать свою TTY и начать работать с GPS прямо из терминала!

Залетай, что смотришь....

GRASP: почему настоящая архитектура начинается не с SOLID

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров59K

Хочу начать с личной предыстории. Давным‑давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие.

Также не обошли меня и классические принципы проектирования — SOLID, KISS, DRY — и, думаю, каждый читатель добавит сюда свои.

Безусловно, это всё важные и фундаментальные вещи.

Но однажды на горизонте появилось DDD — предметно‑ориентированное проектирование в изложении Эрика Эванса. Именно его «синяя книга» стала культовой и задала язык для архитектурного мышления.

Позже я открыл и «красную книгу» Вона Вернона, где DDD уже рассматривался с точки зрения практической имплементации: архитектура, код, реальные подходы в проектах.

Читая Эванса, рассматривая его диаграммы классов и примеры кода, я всё думал: как он это делает?

Самым большим открытием для меня стало то, что книга DDD хоть и показывает стратегические и тактические приёмы — агрегаты, объекты‑значения, спецификации, фабрики и т. д. — но не учит проектировать саму предметную область.

Складывалось ощущение, что мы это уже откуда‑то должны были знать. А откуда — остаётся загадкой.

Читать далее

Low-code без границ: 32 млрд квартетов и терабайты данных в конструкторе приложений

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров9.3K

Бум No-code начался в 2022 году, и сейчас многие компании стараются так или иначе внедрить функционал «low-code» в свои продукты. У участников IT-индустрии пока нет согласия о границах применимости технологий «без кода», хотя адепты этих технологий обещают, что они позволят создавать практически любые приложения.

В этой заметке мы рассмотрим один из основных аспектов создания приложений – его масштабируемость в средней и дальней перспективе. Для этого сам продукт под капотом должен быть построен на чем-то более мощном, чем MS Excel, Airtable, Notion и Make, и такие продукты уже есть на рынке.

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

Читать про 32 млрд квартетов

Как мы делали Go-VShard-router

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.6K

Привет, меня зовут Нуржан Сактаганов, я ведущий разработчик в Почте и Облаке Mail. Хочу рассказать о нашей библиотеке Go-VShard-router и поделиться трюками и выводами, которые мы сделали при разработке.

Читать далее

Вклад авторов