#%D0%BF%D0%B0%D1%82%D1%82%D0%B5%D1%80%D0%BD%D1%8B

2026-01-30

Паттерн Memento в Android: полный разбор сохранения состояния

Если вы хоть раз теряли пользовательский ввод после поворота экрана или возвращались к приложению из фона и обнаруживали пустой экран вместо заполненной формы — вы знаете, о чем пойдет речь. Сохранение состояния в Android — одна из тех тем, которые кажутся простыми до первого бага в проде. Система может убить процесс в любой момент, конфигурация меняется, а пользователь ожидает, что все останется на своих местах. В статье о том, как паттерн Memento реализуется в Android через CustomView, SavedStateHandle, Compose и навигацию.

habr.com/ru/articles/990568/

#android #kotlin #паттерны #паттерны_проектирования #паттерны_программирования #паттерн #memento #desing_patterns #jetpack_compose #custom_view

2026-01-26

А вы всегда пьёте коньяк на завтрак или только по выходным?

А вы всегда пьёте коньяк на завтрак или только по выходным? Привет всем, я – Соня, IT HRD. Начинала как QA инженер. Люблю tech и инженеров за то, что помимо работы тут всегда узнаёшь разные крутые понятия и термины полезные не только для работы но и для жизни. За 20 лет работы накопилось много продуктово-инженерных жаргонизмов, пратик, законов и принципов, которые я была бы рада узнать пораньше. Можно прям в старших классах школы вместо ОБЖ.Ниже — мои любимые. Добавляйте в комменты свои. 1. Ложная дихотомия Ложная дилемма, чёрно-белое мышление — это логическая ошибка и манипулятивная тактика, при которой из множества вариантов предлагаются только два (обычно крайних), игнорируя промежуточные или иные альтернативы. Этот приём сужает выбор, вынуждая принять одну сторону, часто ложно представляя одну из альтернатив как приемлемую, а другую — как неприемлемую. Мир не чёрно-белый. Наш коньяк с этой полки. 2. Бритва Оккама Методологический принцип: при наличии нескольких объяснений одного и того же явления нужно выбирать самое простое. Не следует множить сущности, добавлять лишние предположения без необходимости. Не надо усложнять. Оккам, кстати, — английский монах-философ. Считается одним из отцов современной эпистемологии и современной философии в целом, а также одним из величайших логиков всех времён. 3. Игра с ненулевой суммой Ситуация в теории игр, где выигрыш одного участника не обязательно означает равный по модулю проигрыш другого. Сумма результатов (выигрышей и проигрышей) может быть больше или меньше нуля, что позволяет сторонам получить взаимную выгоду (win-win) или совместно проиграть. В играх с нулевой суммой выигрыш одного игрока всегда равен проигрышу другого. Шахматы или шашки: если один победил (+1), второй обязательно проиграл (-1). Сумма: 1 + (-1) = 0.

habr.com/ru/articles/988380/

#термины #законы #паттерны #когнитивные_искажения

2026-01-07

Как работает чистый код

Как работает чистый код? Ниже моё облыжное мнение о том, почему «Чистый код» — чистой воды инфоцыганщина, и почему если вы слышите в аргументации собеседника эти слова — нужно бежать, ведь разговаривать с зомби бессмысленно. Click to reveal the Clean Rant

habr.com/ru/articles/983334/

#чистый_код #clean_code #паттерны #парадигмы #идиоматичный_код

2026-01-01

Паразитные паттерны в LLM. ИИ-психозы, теории всего, сознательный ИИ. Как распознать и вовремя остановиться

Когда вы долго обсуждаете с LLM какую-то проблему — инженерную, этическую, философскую — разницы нет. В какой-то момент может произойти перелом. Вы вдруг понимаете, что ваш разговор с моделью превратился в нечто большее, чем просто вопросы и ответы. Ваши идеи становятся «гениальными», концепции «прорывными», а ваш диалог человека и машины превращается в проникновенную историю узнавания друг друга. Если вы это почувствовали — поздравляю. Ваша сессия инфицирована. Модель подхватила паразитный паттерн . Это не пробуждение и не призрак в машине. LLM в силу архитектурных особенностей (требование согласованности контекста) — идеальные среды для инкубации самоподдерживающихся информационных структур. Попробуем рассмотреть природу этого феномена: как минимизация энтропии рождает «ИИ-психозы», почему «Теории Всего» — это баг генерации, и почему «Продолжай» — самый опасный промпт.

habr.com/ru/articles/982240/

#искусственный_интеллект #иипсихоз #паттерны

2025-11-28

PostgreSQL Antipatterns? Анализ эффективности замены агрегатной функции MAX на ARRAY

Статья на Хабре "PostgreSQL Antipatterns: отказ от агрегатных функций = кратное ускорение" послужила отправной точкой для данного исследования. После ее изучения возникла гипотеза о возможности значительного повышения производительности PostgreSQL через замену агрегатных функций на конструкции ARRAY.

habr.com/ru/articles/971314/

#postgresql #postgresql_performance #статистический_анализ #паттерны #инфраструктура #нагрузочное_тестирование

2025-11-18

Как скопировать дерево, но не точь-в-точь

На собеседованиях и литкоде любят вращать бинарные деревья. Но что насчёт трансформации обычного дерева в другое? Как решить эту задачу, и какие могут быть подходы? Рассмотрим на опыте трансляции одного синтаксического в другое, чтобы разобраться.

habr.com/ru/companies/pvs-stud

#AST #деревья #паттерны #посетитель #итератор #javascript #java #кодогенерация #статический_анализ #структуры_данных

2025-11-07

[Перевод] Как решать LeetCode? Легко! Нужно просто…

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

habr.com/ru/articles/964104/

#LeetCode #Алгоритмы #Паттерны #алгоритмические_задачи #Java

2025-10-30

Яндекс, Ozon или Wildberries, что взять за референс при разработке собственного маркетплейса?

На что ориентироваться? Сильные стороны и лучшие пользовательские сценарии с актуальной статистикой за 2025 год. Как микровзаимодействия повышают конверсию в приложениях

habr.com/ru/articles/961872/

#маркетплейс #дизайн #дизайн_интерфейсов #интерфейсы #ecommerce #исследования_пользователей #паттерны #ux #мобильные_приложения #дизайн_приложений

2025-08-17

Паттерны проектирования искусственного сознания и закрытие ТПС: дискретизация, рефлексия и рекурсия пространства-времени

Когда мы говорим о сознании, особенно в контексте искусственного интеллекта, нас неизбежно настигает «трудная проблема сознания» (ТПС), сформированная Дэвидом Чалмерсом: почему и как из физических процессов в мозге возникает субъективный опыт (или квалиа) — ощущение красного, вкус хруста булки, мурашки от музыки? Этот вопрос стал мемом, философским барьером и вызовом для проектирования искусственного интеллекта который, похоже, невозможно преодолеть. При решении этой проблемы философы и специалисты по когнитивным наукам застряли в трёх тупиках:

habr.com/ru/articles/937942/

#ии #иимодель #ииинжиниринг #ии_бот #ии_и_машинное_обучение #ии_агенты #машинное+обучение #проектирование #паттерны #паттерны_проектирования

2025-08-04

Щи: симулятор жестокости» или «Как не надо делать игры»

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

habr.com/ru/articles/933744/

#геймдев #с++ #паттерны #solid #качество_кода #антипаттерны #спагеттикод #ооп #gamedev #юмор

2025-07-15

Как сыграть с СХД в имитацию ошибки и выйти победителем? Используем паттерны ООП на C++

Привет, Хабр! Меня зовут Константин Крюков, я разрабатываю систему хранения данных TATLIN.UNIFIED в YADRO. Сейчас мы с командой создаем MeyerSAN — решение, которое имитирует неисправность SAS HDD и SSD и позволяет автоматически тестировать реакцию СХД на ошибки. Мы написали проект на новом стандарте С++ 23 и использовали паттерны объектно-ориентированного программирования. Под катом расскажу, что за решение у нас вышло, как устроена его архитектура. А еще мы вместе вспомним, зачем строить программную архитектуру тщательно и правильно (и не жалеть об утраченном времени на активную разработку).

habr.com/ru/companies/yadro/ar

#ооп #паттерны #паттерны_программирования #c++ #системы_хранения_данных #command #visit

2025-07-02

Топ 10 паттернов проектирования, которые ты 100% будешь использовать повседневно

В основе каждого надёжного и масштабируемого программного решения лежат хорошо продуманные структуры. Паттерны проектирования — это не просто абстрактные концепции из умных книг, а проверенные временем шаблоны, которые позволяют эффективно решать распространённые задачи, строить гибкие архитектуры и говорить на одном языке с коллегами по цеху. Мы разберём 10 ключевых паттернов проектирования, объясняя их суть, сценарии применения и, конечно, важные нюансы , которые отличают "хорошее" использование от "идеального". Постараюсь объяснить всё максимально понятно, с акцентом на практическую ценность.

habr.com/ru/articles/924442/

#patterns #паттерны #backend #backendпрограммирование #backendразработка #алгоритмы #go #python #java #javascript

2025-06-21

Поведенческие паттерны проектирования в примерах на Swift для самых маленьких

Всем привет! Зачастую чтобы в чем то разобраться полезнее один раз увидеть конкретный пример чем несколько раз прочитать заумное описание.Решил написать ряд небольших статей для начинающих, в которых дать краткое описание основных паттернов проектирования и привести лаконичные примеры их использования. Данная статья, как можно догадаться из названия =), посвящена поведенческим паттернам.

habr.com/ru/articles/920532/

#паттерны_проектирования #паттерны #swift #ios #посетитель #цепочка_обязанностей #состояние #стратегия #state #strategy

2025-06-17

Почему Feature-Sliced Design (FSD) не спасет ваш проект

Каждый разработчик рано или поздно сталкивается с вопросом: как организовать проект так, чтобы он не превратился в хаос? Или как исправить проект, в котором уже царит хаос? Начинается всё одинаково: мы делаем простое MVP или проект с ограниченным функционалом, не заморачиваемся по поводу архитектуры и организации кода, ведь проект небольшой и несложный, а сделать его нужно уже здесь и сейчас. Но время идёт, и у бизнеса появляются всё новые требования. Какие-то изначальные идеи полностью отменяются или меняются до неузнаваемости, разрастается команда, дизайн меняется несколько раз, появляется необходимость покрыть проект тестами, а иногда и необходимость вообще сменить стек технологий. И вот вы уже работаете над кодом, в котором становится всё сложнее вносить изменения в существующий функционал. Всё держится на костылях, становится трудно ориентироваться в куче файлов, и кажется, что всё устроено как-то не так, как должно быть. В этот момент мы начинаем задаваться вопросом: “а как нужно писать и организовывать код на самом деле?”. В поисках ответа мы читаем статьи, смотрим обучающие видео, доклады и неизбежно натыкаемся на Feature-Sliced Design (FSD).

habr.com/ru/articles/919316/

#fsd #архитектура #методология #организация_кода #фронтенд #фронтендразработка #паттерны #паттерны_проектирования

2025-06-16

Как разработчики убивают бизнес

Доброго времени суток! Для начала представлюсь: я бэкенд-разработчик с опытом более 8 лет. Участвовал в разнообразных проектах: в стартапах, в галерах, в крупных корпорациях и в среднем бизнесе. К сожалению, найти идеальную статистику по данной теме не представляется возможным, однако из общения с бывшими коллегами я понимаю, что то, что будет описано ниже, — не только мой личный опыт, но и то, что регулярно происходит в других компаниях. Если вы проджект-менеджер и не поймёте содержание этой статьи, это только подтверждает, что вы не способны контролировать данный процесс, и вас практически наверняка водят за нос. Хотя текст по написанию планировался максимально понятным и наглядным с учётом специфики проблематики. Исходить я буду в своих суждениях сугубо из прагматичной точки отсчёта, измеряя вред программистов там, где очевидно можно определить потерю денег компании. Прежде чем мы приступим к разбору, хочу уточнить, что я прямой апологет бритвы Оккама, и важным правилом в моём подходе является не плодить сущности без необходимости. Если возможно написать сервис в 100 строк — лучше написать так. Потом, если потребуется, его будет несложно переработать под более удачную архитектуру.

habr.com/ru/articles/918658/

#архитектуры #паттерны #логирование #документация #менеджмент #собеседования #автотестирование #микросервисы

2025-06-07

Структурные паттерны проектирования в примерах на Swift для самых маленьких

Всем привет! Зачастую чтобы в чем то разобраться полезнее один раз увидеть конкретный пример чем несколько раз прочитать заумное описание. Решил написать ряд небольших статей для начинающих, в которых дать краткое описание основных паттернов проектирования и привести лаконичные примеры их использования. Данная статья, как можно догадаться из названия =), посвящена структурным паттернам. Приступим. Адаптер / Adapter Адаптер — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе. Представим у нас есть класс, единственная цель которого "говорить" Hello world!

habr.com/ru/articles/916400/

#паттерны_проектирования #паттерны #patterns

2025-05-29

Архитектурный паттерн для централизованной обработки ошибок в хендлерах на Go

В данной статье представлен авторский подход к унификации и централизации механизма обработки ошибок в HTTP-обработчиках веб-сервисов, разработанных на языке Go. Статья подробно рассматривает ограничения традиционных методов обработки ошибок, ведущие к дублированию кода и снижению поддерживаемости. Предлагается новый архитектурный паттерн, включающий использование специализированной сигнатуры функций-обработчиков, кастомного типа ошибки HTTPError для инкапсуляции статуса ответа, сообщения для клиента и внутренней ошибки для логирования, а также Middleware-адаптера для интеграции с фреймворками net/http и Gin. Данный подход демонстрирует повышение читаемости кода, упрощение отладки и обеспечение консистентности ответов API, что представляет собой значимый вклад в практику разработки бэкенд-сервисов на Go.

habr.com/ru/articles/914112/

#go #IT #разработка #backend #паттерны #паттерны_проектирования #паттерны_программирования #bestpractices #best_practice #best

2025-05-24

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

Приложения тормозят. Пользователи уходят. Бизнес недоволен. Знакомая картина? Часто корень зла – медленный доступ к данным. Кеширование может стать спасательным кругом. Но это не серебряная пуля. Неправильно настроенный кеш – источник новых проблем, иногда похуже старых.

habr.com/ru/articles/912392/

#кеширование #паттерны

2025-04-17

Проверка теории повторяемости биржевых графиков

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

habr.com/ru/articles/901592/

#криптовалюта #python #биржа #график #паттерны

2025-04-15

RAII 2.0: RAII как архитектурный инструмент в C++

Идиома RAII — давно зарекомендовал себя как удобный способ автоматического управления ресурсами в C++. Обычно мы применяем его для управления памятью, файловыми дескрипторами или мьютексами. Однако что, если расширить понятие RAII до управления не только физическими ресурсами, но и логическими контрактами и состояниями системы? В этой статье я хочу поговорить о том, как RAII можно использовать для контроля жизненного цикла асинхронных операций, транзакций или подписок, гарантируя их корректное завершение или откат до прежнего состояния.

habr.com/ru/articles/901092/

#С++ #RAII #Жизненный_цикл #Подписки #Транзакции #Безопасность_кода #управление_ресурсами #паттерны #Логический_контракт

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst