Все потоки
Поиск
Написать публикацию
Обновить

Бэкенд

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

Как писать красивый и чистый код питонистам?

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

Статья рассказывает, как писать чистый и понятный код на Python. Освещены ключевые темы: правильные именования переменных, грамотное комментирование и докстринги, логическое разделение кода (внутри файла и на модули), использование типизации для ясности, а также обработка ошибок через исключения вместо магических значений. Советы помогут новичкам и опытным разработчикам делать код читаемым и поддерживаемым.

Читать далее

Сон и сознание

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

Сон — это не только одно из самых любимых занятий каждого из нас, но и необычайно важное и сложное поведенческое состояние. Существуют люди, сон к которым не приходит. Одним из примеров служит Федор Нестерчук, который перестал спать еще в 1986 году. Сам пенсионер связывает свою бессонницу с Чернобыльской катастрофой. Хотя врачи считают, что все дело в заболевании, которым Нестерчук страдает много лет.

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

Вот что говорит об этом главный научный сотрудник Института проблем экологии и эволюции им. А.Н. Северцова РАН Владимир Ковальзон.
— Вообще, сомнология — одна из наиболее бурно развивающихся сегодня наук. Открытия — каждый год, а примерно раз в 10 лет вся научная парадигма представлений о бодрствовании и сне меняется. Связано это в первую очередь с появлением новых методов изучения работы мозга. Пример: раньше мы могли очень грубо выключать большие участки мозга, а сегодня, благодаря новым технологиям, можно прицельно регулировать работу конкретных нейронов. Благодаря этому и стало понятно, что мозг работает совсем не так, как мы думали. Это не похоже ни на компьютер, ни на нейросеть, а напоминает скорее аналоговую машину: мозг весь состоит из блоков, которые взаимодействуют друг с другом, при том, что между ними нет никакой видимой связи.

Читать далее

Новое в контроллерах Bitrix Framework: фильтры и валидация

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

Новое в контроллерах Bitrix Framework: фильтры и валидация

Привет! Сегодня мы расскажем, какие нововведения появились в контроллерах ядра за последнее время.

Читать далее

Тезисы о std::set и std::multiset в C++

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

Приветствую всех читателей! Меня зовут Максим, и я хочу поделиться с вами своими знаниями о программировании. Я не являюсь профессиональным разработчиком, и программирование для меня — это хобби и способ автоматизации рутинных задач на работе. В этой статье я расскажу вам об ассоциативном контейнере std::set и std::multiset в C++. Надеюсь, что эта информация будет полезной и интересной для всех, кто хочет узнать что-то новое о программировании.

Ну давай, удиви меня

TDD: разработка быстрее и качественнее

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

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

Читать далее

Docker + Neovim: поднимаем конфиг на любом сервере и не засоряем систему

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

Иногда нужно запустить nvim на старом сервере. Но тут сразу куча проблем: одно не поставить, другое не собрать, а если что-то обновить — можно развалить весь проект.

Этот подход удобен и для новых систем. Docker позволяет поднять nvim с последним Python, nvim-treesitter и своим конфигом прямо в контейнере, не засоряя основную ОС.

При этом можно редактировать локальные файлы на сервере так, как будто nvim установлен на самой системе. В статье показано, как всё это запустить на CentOS 7.
А если заработало там — значит, на любом современном Linux тем более проблем не будет.

Читать далее

Как мы подняли современный портал документации из россыпи .md файлов: пошаговое руководство по MkDocs + Material

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

От хаоса в Markdown-файлах до стильного, быстрого сайта с поиском, темами и мультиязычностью за один вечер.
В жизни почти каждого IT-проекта наступает момент, когда количество файлов README.md, GUIDE.md, docs.txt и заметок в Confluence достигает критической массы. Документация становится фрагментированной, поиск нужной информации превращается в квест, а новые члены команды тратят часы на то, чтобы просто понять, "что где лежит".

Читать далее

Настройка среды разработки: VSCode, Docker для Python-проектов. Debug внутри контейнера

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

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

Читать далее

Системное мышление: когда разработчик становится архитектором

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

Что отличает архитектора от кодера? Не должность, не титул, не стаж.
Ответ - в мышлении. В том, кто видит систему целиком, предвидит цепные последствия и способен сказать "нет" быстрому решению, которое отравит код через полгода. Эта статья - честное и местами болезненное размышление о системном мышлении, архитектуре и точке невозврата, после которой разработчик уже не может смотреть на код по-старому.

Читать далее

Внедрение зависимостей в PHP: от основ до фреймворков

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

Внедрение зависимостей (DI), контейнер внедрения зависимостей (DI-контейнер) и автоматическое разрешение зависимостей (autowiring) в PHP: шаг за шагом.

Цель статьи — дать начинающим PHP-разработчикам практическое понимание того, как работает внедрение зависимостей (DI) и контейнер внедрения зависимостей (DI-контейнер), а также показать, как эти принципы применяются в современных фреймворках.

Читать далее

От PHP к Zig: как я избавился от костылей в биллинг-системе

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

Недавно я занялся реинжинирингом биллинг-панели для VPN, заменив legacy-PHP на Zig.

Результат: скорость выросла в 20 раз, а нагрузка упала на 70%. Но самое интересное — как мне удалось встроить Zig-код прямо в C-бинарник, хотя в интернете почти нет guides на эту тему.

Хотите узнать, как я смог избежать костылей и сделать систему в 10 раз надежнее? Тогда читайте полную статью — там всё: от боли PHP до хитростей сборки Zig в продакшене.

Читать далее

Оживляем данные Strava: от парсинга GPX до интерактивной карты на Python и JS

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

Привет, Хабр! Меня зовут Александр, я разработчик и, как многие в IT, стараюсь уравновешивать сидячую работу спортом — в моем случае, это велосипед и бег. И, как многие спортсмены-любители, я пользуюсь Strava.

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

Читать далее

PHP и Laravel дайджест новостей за июнь 2025 года

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

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

Сергей Пантелеев и Данил Щуцкий собрали ключевые новости PHP и Laravel за июнь. Будьте в тренде — читайте обзор! 🚀

Читать далее

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

SOLID, DRY, KISS, YAGNI и др. принципы разработки, пугающие новичка в IT

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

Разработка — это не только про код, но и про подходы. В этой статье я постарался собрать и объяснить ключевые принципы проектирования, которые часто упоминают в собеседованиях, в статьях на Medium и в комментариях на GitHub, такие, как SOLID, DRY, KISS, YAGNI, APO, BDUF, бритва Оккама.

📌 Что внутри:

1. Понятные объяснения без перегрузки теорией

2. Примеры на Java (но подойдут и другим разработчикам)

3. Иллюстрации и метафоры, чтобы не уснуть

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

Читать далее

Скрэмбл для тех, кто ненавидит SQL в Go коде

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

Обращения к базе — одно из самых популярных действий бэкенд приложений, и чаще всего оно происходит с помощью SQL запросов. И есть несколько способов хранить запросы в коде: строка или константа непосредственно в качестве аргумента функции, билдер запросов или отдельно лежащий файл с SQL запросом, который эмбедится в Go код в момент сборки. Этот последний способ чаще всего можно найти по запросу типа «Golang embed SQL» и он действительно довольно хорош.

Читать далее

Практическое использование Kafka в микросервисных приложениях на примере Open Source платформы Ensi

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

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

Решать выше перечисленные проблемы можно разными способами. В своей работе в компании Greensight в качестве senior backend developer при разработке заказных проектов на базе Open Source платформы Ensi, я с коллегами перепробовал множество решений.

Данная статья описывает практическое использование Kafka в микросервисных приложениях для решения этих проблем.

Читать далее

gRPC, HTTP, Websocket — и все это один сервер

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

Однажды передо мной встала довольно интересная задача: обеспечить взаимодействие стороннего веб-приложения - и набора сервисов, имеющих gRPC интерфейс.
Нужно было проводить обработку данных от веб-приложения через конвейеры AI-агентов, собирать конечный результат, и отдавать его приложению. А также, что немаловажно, обеспечить наглядность мониторинга и управления всем хозяйством.
Мне потребовалось разработать собственный сервер на PHP, в котором поддержать три типа интерфейсов. Во-первых, RestAPI для веб-приложения. Во-вторых, gRPC-сервис для взаимодействия с AI-агентами. В-третьих, HTTP + Websocket для интерактивного мониторинга и управления.
Для этого пришлось создать новый продукт - который, возможно, кажется полезен и вам.

Читать далее

Spinlock vs. Mutex vs. Semaphore: Разбираемся в синхронизации с Zephyr OS

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

Всем привет! Сегодня хочу углубиться в одну из самых важных тем в мире Zephyr OS — синхронизацию потоков и задач. Если вы хоть раз работали с k_thread_create, гоняли потоки туда-сюда и ловили bus fault, вы меня понимаете.

Когда задача одна — всё просто. Но как только вырастает многопоточность, задачи начинают драться за общий ресурс — и тут без надёжной синхронизации не обойтись. У Zephyr OS есть три главных инструмента для этого: spinlock, mutex и semaphore. Каждый со своим характером и подводными камнями.

Читать далее

Оптимизация индексов базы данных: проблемы, решения, практические рекомендации

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

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

Индекс — это как указатель в толстенном справочнике. Без него, чтобы найти нужный термин, вы обречены листать страницу за страницей. С ним — вы мгновенно открываете нужный раздел. Но что, если указатель сам размером с полкниги? Или ведет не туда? Такой помощник только вредит. С индексами в БД всё то же самое. Грамотная стратегия индексирования — это полет. Ошибочная — это бег в мешках по болоту.

Читать далее

Четвёртый (и предпоследний) шаг к повышению производительности Firebird

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

Данная статья является четвёртой частью перевода руководства по повышению производительности Firebird за авторством А.Ковязина и Э.Грегорио от 23.05.2024 (и потому продолжается сквозная нумерация пунктов), а так же текстовой расшифровкой соответствующего видео.

Читать далее