Как стать автором
Обновить
915.9

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

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

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

Сложность алгоритмов. Разбор Big O

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

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 7

Новости

Ошибки и подозрительные места в исходниках .NET 8

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

Каждый год выходит новая версия .NET. Это событие не только предоставляет нам возможность познакомиться с последними улучшениями в самом .NET и нововведениями в языке, но и даёт повод исследовать исходный код .NET. Нужно воспользоваться этим шансом!

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 1

Как мы создали сервис подбора фильмов

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

Всем привет! Меня зовут Алексей, я выпускник курса «Менеджер проектов» и проджект-менеджер в Мастерской программирования — подразделении Практикума, где студенты создают IT-проекты для портфолио. Я расскажу, как мы работали над «Киноточкой» — сервисом, который рекомендует кино на вечер: как придумывали бриф, управляли задачами и планируем развивать продукт в будущем.

Читать далее
Всего голосов 7: ↑4 и ↓3 +1
Комментарии 2

Микрофронтенд для самых маленьких

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

Всем привет. Меня зовут Алексей. Сейчас я работаю frontend-разработчиком в компании Ozon. В свободное время мне нравится читать про новые технологии, фреймворки, а учитывая то, с какой скоростью развивается frontend, я никогда не скучаю. В этой статье пойдет речь о микрофронтах. В частности, мы посмотрим, как их реализовать на самом базовом уровне, разберемся, когда они нужны, а когда даже не стоит смотреть в их сторону. 

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 3

Истории

Секреты USA в Micro QR Code M2 (часть 2)

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

Рассмотрим этапы расшифровки микрокода среднего микроуровня – М2 формата алфавитно-цифрового кодирования на том же самом историческом примере, что и М4, но в этот раз разделим сплошную фразу на четыре слова, получим: UNITED STATES OF AMERICA

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Машинное обучение и встраиваемые системы. Демонстрация возможностей

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


Одним из преимуществ технологий машинного обучения является их способность к обучению и адаптации на основе новых данных, что позволяет решать задачи распознавания образов, обработки естественного языка и поиска закономерностей и аномалий. Традиционно, собранные данные обрабатываются на серверах, однако для ряда задач целесообразнее (а иногда необходимо) использовать другой подход, называемый граничным машинным обучением (edge machine learning).


В этой статье мы расскажем о практическом применении нашего фреймворка машинного обучения для встраиваемых систем на примере демонстрационного стенда, который мы показывали на форуме “Армия-2023”.

Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 7

Кастомизация бессерверных функций без применения промежуточного ПО

Время на прочтение 10 мин
Количество просмотров 427
Когда пишешь код для серверного API, часто требуется проделывать схожие шаги: аутентифицировать пользователей, уточнять их роли и выставленные флаги функций, т.д. В большинстве фреймворков для бэкенда безупречно организовано взаимодействие с обработчиками запросов. Часто такой софт называют «промежуточное ПО» (middleware), поскольку он находится между кодом приложений и кодом системы. В этой статье я аргументирую, почему стоит обходиться как можно меньшим объёмом промежуточного ПО, и рассказываю, как при этом не сойти с ума.

Зачем он нам вообще может понадобиться?


На первом этапе работы можно заметить, что каждая функция у вас начинается с множества повторяющихся строк, например:
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Подробное объяснение принципа KISS в программном обеспечении

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

Когда я ищу информацию о принципе KISS в Интернете, я натыкаюсь на множество сайтов, определяющих его в паре строк: важна простота, давайте быть простыми, конец. Они часто не объясняют, что такое простота, почему простота важна и как ее достичь.

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

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

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Комментарии 4

Кто контролирует размерности? (опрос)

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

В недавнем тексте "Реальность существует и это надо учитывать" есть небольшое противоречие - не показана реальность явления, с которым предлагается бороться.

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

Давайте выяснять (дальше развёрнутое объяснение и сам опрос)

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 4

Ускорение загрузки сайта: туториал для джунов

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

7 месяцев назад я стала тимлидом. От своих разработчиков я собираю обратную связь раз в пару месяцев. Поняла, что главный запрос от новичков — полезные и емкие инструкции по типовым задачам. Решила начать с таска, который наши программисты выполняют чуть ли не каждый день — ускорение сайтов. Если вы искали сборник лайфхаков, который можно спокойно отправить своим джунам — эта статья для вас. И для джунов, конечно. Инструменты проверки, оптимизация изображений, блокировка рендеринга — о всех этапах ускорения без воды с кодом и скринами. 

В начале — пару слов о себе. Меня зовут Полина и я работаю «Rocket Business» уже несколько лет. Свой путь от джуна до тимлида прошла именно здесь. Поэтому своим мини-пособием решила делиться в корпоративном блоге: оставляю в помощь потомкам и аудитории Хабра. 

Читать далее
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 17

Toolchain в Go

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

Привет, коллеги! В Го toolchain (цепочка инструментов) это не просто buzzword, а реальная рабочая фича. Если вы провели немало времени, погружаясь в дебри кода и модулей, вы знаете, что каждая строчка и каждый пакет как и в любом япе имеют свое место и значение.

Цепочка инструментов или toolchain (тулчейн звучит покруче) используются для создания, тестирования, отладки и управления вашими Go-проектами.

Читать далее
Всего голосов 13: ↑8 и ↓5 +3
Комментарии 2

Что выбрать: Npm, Yarn или Pnpm?

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

На данный момент у нас используются три самых популярных менеджера пакетов (Npm, Yarn и Pnpm). И всё бы ничего, но разные команды начали периодически обращаться с проблемой несоответствия типов Typescript из наших транзитивных зависимостей. Выяснилось что это проблема Npm и Yarn, но как же её решать?

На ум сразу приходит самое очевидное решение: следить за версиями всех зависимостей в своих проектах и вовремя обновлять. К этому, естественно, необходимо стремиться всегда, но мы понимаем, на практике что это крайне сложно, а в legacy-проектах или в проектах, у которых нет постоянной поддержки и вовсе нереально. Следующим вариантом созрел Pnpm, тем более что в наших монорепах он себя уже продолжительное время отлично показывал. Я решил испытать его на действующих клиентских приложениях.

Читать далее
Всего голосов 32: ↑32 и ↓0 +32
Комментарии 24

Так сколько на самом деле строк на C нужно, чтобы выполнить a + b в Python?

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

Это ответ на статью «Сколько строк на C нужно, чтобы выполнить a + b в Python?» где количество строк так и не указано. Сразу оговорюсь покрывать все сценарии для python по количеству строк я не собираюсь — слишком много вариантов, слишком лень. Но вот вопрос, сколько питону нужно строк, что бы сложить 2 числа, например "4+5"? Будет ли разница, если сохранять эти числа в переменные или нет? Сегодня мы получим ответы на эти вопросы.

Добро пожаловать под кат.
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 11

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

Знания программиста — все что нужно для создания ПО, но почему вы еще не бизнесмен

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

Вы думали, а почему если вы-программист владеете тем необходимым, что было недоступно пролетариату в классическом производстве, вы все еще не капиталист и обычно вынуждены ходить на работу в офис и результаты вашей работы не принадлежат вам?

Все что вам нужно для разработки - это ваш опыт и знания и любой компьютер или ноутбук. Казалось бы все необходимое для своего дела есть. Так как же происходит, что возможности создать что-то своё и независимое ускользают от вас? Какая-то западня!

Читать далее
Всего голосов 29: ↑26 и ↓3 +23
Комментарии 35

«Алгоритмы» vs «Структуры данных»

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

И снова здравствуйте!

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

По этому решил я эту тему продолжать. Хотя, правды ради и прохождения полиграфа для, я бы всё равно не выдержал и написал бы что-нибудь про это ещё.

Сего дня я решил, что напишу про алгоритмы структур данных. Про те, которые смогу вспомнить. И, как говорит наш дорогой шеф:

«Погнали!»
Всего голосов 26: ↑6 и ↓20 -14
Комментарии 16

Одно нажатие, весь контроль: WireGuard VPN через Телеграм

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

🌐 Управление VPN через Telegram: Создай свою защищенную сеть в несколько кликов!

Привет, Хабр! Когда мир WireGuard открыл для меня свои двери, родилась идея: почему бы не создать инструмент для максимально простого управления им через Telegram? Да, есть уже проекты, такие как wg-easy, но мне хотелось чего-то своего. В итоге руки дошли, и я представляю вам wg_telegram – бот для WireGuard в вашем мессенджере.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 28

Выявление проблем в log-файлах с помощью аналитики

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

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

Log-файлы систематически записывают хронологию событий, происходящих в системе (или приложение). Это может быть что угодно: от записи о запуске программы до детальной информации об ошибках и предупреждениях. Для нас log-файлы — это не просто дневники событий, а очень хороший инструмент для диагностики и устранения проблем.

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

Log-файлы содержат подробные записи о событиях и ошибках, которые происходят в приложении или системе. Анализируя эти записи, можно точно определить, в какой момент и по какой причине возникла ошибка, также можно отследить последовательность событий, которая привела к ошибке.

Читать далее
Всего голосов 12: ↑9 и ↓3 +6
Комментарии 0

Победа над ORM путем кодогенерации

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

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

Проблемы ORM известны всем, кто хоть раз ими пользовался. Об этом существует множество статей как у нас, так и в зарубежных источниках. Эти проблемы в общем можно объединить довольно сложным термином Object‑relational impedance mismatch, что позволю себе вольно перевести как «Объектно‑реляционная разница потенциалов».

Альтернативой использованию ORM всегда было использование чистых драйверов баз данных и написание сырых SQL запросов, которые в свою очередь очень тяжело поддерживать и рефакторить в реальных проектах.

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

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 31

Как в Великобритании судились с программистами

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

В предыдущем материале на Хабре мы подробно написали о том, как в США судились с программистами. Не менее примечательные процессы были и в Великобритании. О них мы и поговорим сегодня. 

 

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 0

Квиз со звёздочкой для С++ программистов от Сергея Кушниренко

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

Привет всем любителям побрейнштормить и хорошенько развлечься! Команда PVS-Studio на связи. Новый крутой квиз с интересными вопросами из мира программирования уже у нас на сайте. Да не простой квиз, а задачки от Сергея Кушниренко — разработчика игр в 4A Games! Если устали от рутинных задач и хотите поразмять мозг чем-то интересным, welcome!

Читать далее
Всего голосов 18: ↑15 и ↓3 +12
Комментарии 22

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