Как NASA ошиблись в исходном коде планеты

Баги в коде — явление нередкое, но сегодня мы исследуем не просто ошибки, а настоящие космические баги! Что скрывает проект, созданный в недрах NASA? Готовьте свои шапочки из фольги! Поехали!

https://habr.com/ru/companies/pvs-studio/articles/915850/

#статический_анализ #pvsstudio #java #nasa #open_source #static_analysis #чистый_код #совершенный_код

Как NASA ошиблись в исходном коде планеты

Баги в коде — явление нередкое, но сегодня мы исследуем не просто ошибки, а настоящие космические баги! Что скрывает проект, созданный в недрах NASA? Готовьте свои шапочки из фольги! WorldWind Java —...

Хабр

Go-микросервисы: Стандартизация архитектуры с Clean Architecture и DDD

Go-разработчики часто сталкиваются с парадоксом: изначально простой и понятный проект со временем превращается в сложный для поддержки монолит. ✔️ Бизнес-логика оказывается размазана между слоями? ✔️ Замена базы данных требует переписывания половины кода? ✔️ Новым разработчикам требуется недели, чтобы разобраться в проекте? В этой статье мы разбираем практическое применение DDD и Clean Architecture в Go . Обсуждаем возможный стандарт структуры микросервиса . Оптимизируем существующие. 🔥 Для разработчиков, которые хотят создавать проекты, остающиеся поддерживаемыми даже через годы развития.

https://habr.com/ru/articles/911018/

#clean_architecture #domain_driven_design #ddd #golang #разработка #архитектура #стандарт_golang #чистый_код #чистая_архитектура #паттерны_разработки

Go-микросервисы: Стандартизация архитектуры с Clean Architecture и DDD

Рисунок 0. Как я писал статью на Хабр Введение: Проблемы современных Go-проектов В Go-экосистеме сложилась парадоксальная ситуация: при наличии множества руководств по структуре проектов, разработчики...

Хабр

В поисках хорошего стиля. Часть 2. Пишем свой линтер на Go для golangci-lint

Привет! Меня зовут Артём Блохин, я Go-разработчик в команде интеграций Островка. Сегодня поговорим о линтинге кода. Если бы «Сумерки» были про код, Эдвард — был линтером, а Белла — легаси-кодом, их диалог звучал бы так:

https://habr.com/ru/companies/ostrovok/articles/908768/

#golang #golangcilint #линтер #статический_анализ #анализ_кода #ast #чистый_код #островок #styleguide #плагины

В поисках хорошего стиля. Часть 2. Пишем свой линтер на Go для golangci-lint

Привет! Меня зовут Артём Блохин, я Go-разработчик в команде интеграций Островка. Сегодня поговорим о линтинге кода. Если бы «Сумерки» были про код, Эдвард — был линтером, а Белла — легаси-кодом, их...

Хабр

Разбираем архитектуру. Часть 1. Чистая архитектура и её корни: история и взаимосвязи

Предисловие Цель этой статьи - объединить и кратко изложить все базовые архитектурные подходы: их терминологию, концепции и отличительные черты. Собрать всё воедино, чтобы можно было относительно быстро вникнуть в основы. Я решил написать серию статей, посвящённых различным аспектам проектирования программных систем, но первоначальной идеей было показать архитектурное решение моего pet-проекта на FastAPI — пример реализации «чистой архитектуры» с использованием современного стека: Python3.13, FastAPI, Uvicorn, Nginx, PostgreSQL, Alembic, Celery, Redis, Pytest, Filebeat, Logstash, Elasticsearch, Kibana, Prometheus, Grafana, Docker и Docker Compose. Однако по мере проработки деталей стало очевидно: чтобы обсуждать структуру приложения предметно и аргументированно, необходимо сначала заложить общую теоретическую основу, чтобы читатель понимал, о чем речь. Так родилась идея вынести базовые концепции архитектуры и проектирования в отдельную публикацию — не перегружать материал сразу всем, а построить серию объёмных, но логично связанных статей.

https://habr.com/ru/articles/905148/

#чистая_архитектура #чистый_код #ооп #проектирование_систем #терминология #шаблоны_проектирования #луковичная_архитектура #гексагональная_архитектура #solid #grasp

Разбираем архитектуру. Часть 1. Чистая архитектура и её корни: история и взаимосвязи

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

Хабр

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

За свою жизнь я повстречал немало разработчиков и недавно задался вопросом: «А что делает разработчика одним из лучших? Что у таких людей есть общего?» В надежде, что эти мои рассуждения послужат для кого-то вдохновением, я описал черты, которые встречал у большинства исключительных людей в нашей сфере. Лично я бы хотел, чтобы у меня был такой список, когда я только начинал. Следуя этому пути, я бы сэкономил уйму времени.

https://habr.com/ru/companies/ruvds/articles/901240/

#ruvds_перевод #программирование #карьера_в_it #собеседования #чистый_код

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

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

Хабр

[Перевод] Руководство по принципам SOLID для технических лидеров

Если вы считаете, что принципы SOLID — это что-то из учебника по ООП и к вашему проекту они не имеют отношения, у меня для вас плохие новости. Так думали и мы, пока один «божественный» класс не положил прод на сутки. А всё потому, что его писали с мыслью «зачем разбивать, всё и так работает». В этой статье — без академической воды: как SOLID спасает архитектуру, ускоряет команду и помогает не утонуть в легаси. С примерами, с типичными фейлами и с тем, что действительно работает в продакшене.

https://habr.com/ru/companies/otus/articles/902144/

#solid #SOLIDпринципы #устойчивая_разработка #чистый_код #техническое_лидерство #лидерство

Руководство по принципам SOLID для технических лидеров

Будучи техническим руководителем, одна из ваших важнейших задач — создать такую среду, в которой и системы, и команды, их разрабатывающие, смогут стабильно развиваться...

Хабр

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

Хочу начать с личной предыстории. Давным‑давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие. Также не обошли меня и классические принципы проектирования — SOLID , KISS , DRY — и, думаю, каждый читатель добавит сюда свои. Безусловно, это всё важные и фундаментальные вещи. Но однажды на горизонте появилось DDD — предметно‑ориентированное проектирование в изложении Эрика Эванса. Именно его «синяя книга» стала культовой и задала язык для архитектурного мышления. Позже я открыл и «красную книгу» Вона Вернона, где DDD уже рассматривался с точки зрения практической имплементации: архитектура, код, реальные подходы в проектах. Читая Эванса, рассматривая его диаграммы классов и примеры кода, я всё думал: как он это делает? Самым большим открытием для меня стало то, что книга DDD хоть и показывает стратегические и тактические приёмы — агрегаты, объекты‑значения, спецификации, фабрики и т. д. — но не учит проектировать саму предметную область . Складывалось ощущение, что мы это уже откуда‑то должны были знать . А откуда — остаётся загадкой.

https://habr.com/ru/articles/900140/

#GRASP #паттерны_проектирования #архитектура #DDD #SOLID #OOP #чистая_архитектура #чистый_код

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

Многие инженеры начинают своё архитектурное мышление с SOLID. Затем изучают GoF-паттерны. Но всё равно остаётся ощущение, что чего-то не хватает: распределения ответственности, логики построения...

Хабр

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

Хочу начать с личной предыстории. Давным-давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие. Также не обошли меня и классические принципы проектирования — SOLID , KISS , DRY — и, думаю, каждый читатель добавит сюда свои. Безусловно, это всё важные и фундаментальные вещи. Но однажды на горизонте появилось DDD — предметно-ориентированное проектирование в изложении Эрика Эванса. Именно его «синяя книга» стала культовой и задала язык для архитектурного мышления. Позже я открыл и «красную книгу» Вона Вернона, где DDD уже рассматривался с точки зрения практической имплементации: архитектура, код, реальные подходы в проектах. Читая Эванса, рассматривая его диаграммы классов и примеры кода, я всё думал: как он это делает? Самым большим открытием для меня стало то, что книга DDD хоть и показывает стратегические и тактические приёмы — агрегаты, объекты-значения, спецификации, фабрики и т.д. — но не учит проектировать саму предметную область . Складывалось ощущение, что мы это уже откуда-то должны были знать . А откуда — остаётся загадкой.

https://habr.com/ru/articles/900140/

#GRASP #паттерны_проектирования #архитектура #DDD #SOLID #OOP #чистая_архитектура #чистый_код

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

Многие инженеры начинают своё архитектурное мышление с SOLID. Затем изучают GoF-паттерны. Но всё равно остаётся ощущение, что чего-то не хватает: распределения ответственности, логики построения...

Хабр

Инновационные технические решения и баги в исходном коде PowerShell

PowerShell — известный инструмент от Microsoft. Но какие секреты сможет найти статический анализатор в его исходном коде? Посмотрим в этой статье.

https://habr.com/ru/companies/pvs-studio/articles/897402/

#powershell #статический_анализ #sast #open_source #microsoft #pvsstudio #чистый_код #c# #csharp

Инновационные технические решения и баги в исходном коде PowerShell

PowerShell — известный инструмент от Microsoft. Но какие секреты сможет найти статический анализатор в его исходном коде? Посмотрим в этой статье. PowerShell — это инструмент автоматизации от...

Хабр

Лучшие практики создания отказоустойчивых систем

Разработка отказоустойчивых систем представляет собой важнейшую компетенцию для инженеров, занятых созданием распределённых и масштабируемых приложений. Под отказоустойчивостью понимается способность системы сохранять работоспособность в условиях сбоев отдельных компонентов или недоступности внешних сервисов. В данной статье рассматриваются практики обеспечения устойчивости на уровне программного кода, в частности в контексте серверных приложений, реализованных на языках Python и Java. Особое внимание уделяется методам повышения надёжности при временных сбоях, включая: повторные попытки выполнения операций с экспоненциальной задержкой (exponential backoff), использование шаблона circuit breaker, механизмы плавной деградации функциональности (graceful degradation), задание таймаутов, реализация идемпотентности, ограничение одновременных вызовов (bulkhead isolation), а также внедрение систем мониторинга и алертинга. Приводимые примеры охватывают типовые сценарии — обращение к внешним API, взаимодействие с базами данных и выполнение фоновых задач.

https://habr.com/ru/articles/896638/

#python #java #spring_boot #aiohttp #безопасность #отказоустойчивые_системы #отказоустойчивость #чистый_код

Лучшие практики создания отказоустойчивых систем

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

Хабр