#паттерны_программирования — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #паттерны_программирования, aggregated by home.social.
-
Как мы подружили фронтенд с четырьмя платформами и сократили время разработки в два раза
Если у вас одна платформа, фронтенд работает стабильно и предсказуемо. Но стоит добавить десктоп, мобильное приложение, PWA — и простая логика превращается в гору if-ов. Меня зовут Денис Кондратьев, я фронтенд-разработчик Точка Банк. В статье расскажу, как мы интегрировали наш мессенджер на четыре разные платформы (браузер, Electron, Capacitor, PWA) и сократили время адаптации новых фич в три раза.
https://habr.com/ru/companies/tochka/articles/1017312/
#платформы #js #html5 #паттерны_программирования #фабрика #наследование
-
Чистая архитектура — красивая сказка для собеседований
В процессе поиска работы я изучил множество вакансий, и в подавляющем большинстве среди обязательных требований значились знание паттернов проектирования, принципов SOLID и прочих «столпов» правильной архитектуры. На собеседованиях меня нередко просили не просто рассказать о SOLID, а буквально расшифровать каждую букву и объяснить её смысл. Всё это формирует у кандидата вполне логичное ожидание: раз требования такие высокие, значит и кодовая база у работодателя должна быть аккуратной, продуманной и соответствующей этим принципам. Однако в реальности это часто оказывается иллюзией.
https://habr.com/ru/articles/1005814/
#паттерн #паттерны #паттерны_проектирования #паттерны_программирования
-
Чистая архитектура — красивая сказка для собеседований
В процессе поиска работы я изучил множество вакансий, и в подавляющем большинстве среди обязательных требований значились знание паттернов проектирования, принципов SOLID и прочих «столпов» правильной архитектуры. На собеседованиях меня нередко просили не просто рассказать о SOLID, а буквально расшифровать каждую букву и объяснить её смысл. Всё это формирует у кандидата вполне логичное ожидание: раз требования такие высокие, значит и кодовая база у работодателя должна быть аккуратной, продуманной и соответствующей этим принципам. Однако в реальности это часто оказывается иллюзией.
https://habr.com/ru/articles/1005814/
#паттерн #паттерны #паттерны_проектирования #паттерны_программирования
-
Чистая архитектура — красивая сказка для собеседований
В процессе поиска работы я изучил множество вакансий, и в подавляющем большинстве среди обязательных требований значились знание паттернов проектирования, принципов SOLID и прочих «столпов» правильной архитектуры. На собеседованиях меня нередко просили не просто рассказать о SOLID, а буквально расшифровать каждую букву и объяснить её смысл. Всё это формирует у кандидата вполне логичное ожидание: раз требования такие высокие, значит и кодовая база у работодателя должна быть аккуратной, продуманной и соответствующей этим принципам. Однако в реальности это часто оказывается иллюзией.
https://habr.com/ru/articles/1005814/
#паттерн #паттерны #паттерны_проектирования #паттерны_программирования
-
Чистая архитектура — красивая сказка для собеседований
В процессе поиска работы я изучил множество вакансий, и в подавляющем большинстве среди обязательных требований значились знание паттернов проектирования, принципов SOLID и прочих «столпов» правильной архитектуры. На собеседованиях меня нередко просили не просто рассказать о SOLID, а буквально расшифровать каждую букву и объяснить её смысл. Всё это формирует у кандидата вполне логичное ожидание: раз требования такие высокие, значит и кодовая база у работодателя должна быть аккуратной, продуманной и соответствующей этим принципам. Однако в реальности это часто оказывается иллюзией.
https://habr.com/ru/articles/1005814/
#паттерн #паттерны #паттерны_проектирования #паттерны_программирования
-
Паттерн Memento в Android: полный разбор сохранения состояния
Если вы хоть раз теряли пользовательский ввод после поворота экрана или возвращались к приложению из фона и обнаруживали пустой экран вместо заполненной формы — вы знаете, о чем пойдет речь. Сохранение состояния в Android — одна из тех тем, которые кажутся простыми до первого бага в проде. Система может убить процесс в любой момент, конфигурация меняется, а пользователь ожидает, что все останется на своих местах. В статье о том, как паттерн Memento реализуется в Android через CustomView, SavedStateHandle, Compose и навигацию.
https://habr.com/ru/articles/990568/
#android #kotlin #паттерны #паттерны_проектирования #паттерны_программирования #паттерн #memento #desing_patterns #jetpack_compose #custom_view
-
Паттерн Memento в Android: полный разбор сохранения состояния
Если вы хоть раз теряли пользовательский ввод после поворота экрана или возвращались к приложению из фона и обнаруживали пустой экран вместо заполненной формы — вы знаете, о чем пойдет речь. Сохранение состояния в Android — одна из тех тем, которые кажутся простыми до первого бага в проде. Система может убить процесс в любой момент, конфигурация меняется, а пользователь ожидает, что все останется на своих местах. В статье о том, как паттерн Memento реализуется в Android через CustomView, SavedStateHandle, Compose и навигацию.
https://habr.com/ru/articles/990568/
#android #kotlin #паттерны #паттерны_проектирования #паттерны_программирования #паттерн #memento #desing_patterns #jetpack_compose #custom_view
-
Паттерн Memento в Android: полный разбор сохранения состояния
Если вы хоть раз теряли пользовательский ввод после поворота экрана или возвращались к приложению из фона и обнаруживали пустой экран вместо заполненной формы — вы знаете, о чем пойдет речь. Сохранение состояния в Android — одна из тех тем, которые кажутся простыми до первого бага в проде. Система может убить процесс в любой момент, конфигурация меняется, а пользователь ожидает, что все останется на своих местах. В статье о том, как паттерн Memento реализуется в Android через CustomView, SavedStateHandle, Compose и навигацию.
https://habr.com/ru/articles/990568/
#android #kotlin #паттерны #паттерны_проектирования #паттерны_программирования #паттерн #memento #desing_patterns #jetpack_compose #custom_view
-
Паттерн Memento в Android: полный разбор сохранения состояния
Если вы хоть раз теряли пользовательский ввод после поворота экрана или возвращались к приложению из фона и обнаруживали пустой экран вместо заполненной формы — вы знаете, о чем пойдет речь. Сохранение состояния в Android — одна из тех тем, которые кажутся простыми до первого бага в проде. Система может убить процесс в любой момент, конфигурация меняется, а пользователь ожидает, что все останется на своих местах. В статье о том, как паттерн Memento реализуется в Android через CustomView, SavedStateHandle, Compose и навигацию.
https://habr.com/ru/articles/990568/
#android #kotlin #паттерны #паттерны_проектирования #паттерны_программирования #паттерн #memento #desing_patterns #jetpack_compose #custom_view
-
Издательство Питер. Колонка редактора, ноябрь 25 г
Привет, Хаброжители! Предлагаем ознакомиться с краткими обзорами новинок, отправленных в типографию.
https://habr.com/ru/companies/piter/articles/971146/
#aiинженер #паттерны_программирования #javascript #python #паттерны_проектирования #product_design
-
Оверинжиниринг: простое сложным языком
Оверинжиниринг — это когда простую задачу решают так, словно строят космический корабль: с абстракциями, фабриками и паттернами «на будущее». Разбираем живые примеры, почему так происходит и как находить баланс между гибкостью и простотой.
https://habr.com/ru/articles/933412/
#оверинжиниринг #архитектура #чистый_код #паттерны_проектирования #паттерны_программирования #kiss #yagni #тестирование #python #антипаттерны
-
Архитектурный паттерн для централизованной обработки ошибок в хендлерах на Go
В данной статье представлен авторский подход к унификации и централизации механизма обработки ошибок в HTTP-обработчиках веб-сервисов, разработанных на языке Go. Статья подробно рассматривает ограничения традиционных методов обработки ошибок, ведущие к дублированию кода и снижению поддерживаемости. Предлагается новый архитектурный паттерн, включающий использование специализированной сигнатуры функций-обработчиков, кастомного типа ошибки HTTPError для инкапсуляции статуса ответа, сообщения для клиента и внутренней ошибки для логирования, а также Middleware-адаптера для интеграции с фреймворками net/http и Gin. Данный подход демонстрирует повышение читаемости кода, упрощение отладки и обеспечение консистентности ответов API, что представляет собой значимый вклад в практику разработки бэкенд-сервисов на Go.
https://habr.com/ru/articles/914112/
#go #IT #разработка #backend #паттерны #паттерны_проектирования #паттерны_программирования #bestpractices #best_practice #best
-
[Перевод] Что делает код трудным для чтения? Визуальные паттерны сложности
Не так давно я проводил аудит кодовой базы на работе и заметил, что, несмотря на высокое качество кода, я очень быстро уставал умственно и с трудом мог работать с текстом кода продолжительное время. В конце концов, я понял, почему этот код был таким сложным для восприятия, но причина оказалась не той, которую я ожидал (см. цикломатическая сложность ). После небольшого анализа и исследования выяснилось, что дело скорее в читаемости кода - аспекте, о котором у меня было мало данных, но который мне было интересно изучить с точки зрения объективных терминов и общепринятых метрик. Сегодня мы погрузимся в результаты этого исследования, то есть вместо того, чтобы визуализировать код, мы поговорим о визуальных паттернах кода - тех, которые буквально заставляют мой мозг болеть! Предупреждение! Это туманная и плохо изученная область. В исследовании использовались различные источники: популярные метрики, научные статьи и практические мнения (включая мое собственное). Но в конце пути мы сведем всё ниже к 8 визуально различимым свойствам , которые помогут программистам любого языка улучшить читаемость кода.
https://habr.com/ru/articles/893820/
#анализ_кода #программное_обеспечение #паттерны_программирования
-
[Перевод] ООП: худшее, что случалось с программированием
В этой статье попробуем разобраться, почему ООП — худшее, что было придумано в программировании, как оно стало таким популярным, почему опытные программисты Java (C#, C++ и т.п.) в принципе не могут считаться крутыми инженерами, а код на Java - хорошим.
https://habr.com/ru/articles/885980/
#ооп #фп #java #typescript #c# #go #парадигмы_программирования #паттерны_программирования #объектноориентированное #функциональное_программирование
-
[Перевод] ООП: худшее, что случалось с программированием
В этой статье попробуем разобраться, почему ООП — худшее, что было придумано в программировании, как оно стало таким популярным, почему опытные программисты Java (C#, C++ и т.п.) в принципе не могут считаться крутыми инженерами, а код на Java - хорошим.
https://habr.com/ru/articles/885980/
#ооп #фп #java #typescript #c# #go #парадигмы_программирования #паттерны_программирования #объектноориентированное #функциональное_программирование
-
[Перевод] ООП: худшее, что случалось с программированием
В этой статье попробуем разобраться, почему ООП — худшее, что было придумано в программировании, как оно стало таким популярным, почему опытные программисты Java (C#, C++ и т.п.) в принципе не могут считаться крутыми инженерами, а код на Java - хорошим.
https://habr.com/ru/articles/885980/
#ооп #фп #java #typescript #c# #go #парадигмы_программирования #паттерны_программирования #объектноориентированное #функциональное_программирование
-
[Перевод] ООП: худшее, что случалось с программированием
В этой статье попробуем разобраться, почему ООП — худшее, что было придумано в программировании, как оно стало таким популярным, почему опытные программисты Java (C#, C++ и т.п.) в принципе не могут считаться крутыми инженерами, а код на Java - хорошим.
https://habr.com/ru/articles/885980/
#ооп #фп #java #typescript #c# #go #парадигмы_программирования #паттерны_программирования #объектноориентированное #функциональное_программирование
-
Как сыграть с СХД в имитацию ошибки и выйти победителем? Используем паттерны ООП на C++
Привет, Хабр! Меня зовут Константин Крюков, я разрабатываю систему хранения данных TATLIN.UNIFIED в YADRO. Сейчас мы с командой создаем MeyerSAN — решение, которое имитирует неисправность SAS HDD и SSD и позволяет автоматически тестировать реакцию СХД на ошибки. Мы написали проект на новом стандарте С++ 23 и использовали паттерны объектно-ориентированного программирования. Под катом расскажу, что за решение у нас вышло, как устроена его архитектура. А еще мы вместе вспомним, зачем строить программную архитектуру тщательно и правильно (и не жалеть об утраченном времени на активную разработку).
https://habr.com/ru/companies/yadro/articles/927866/
#ооп #паттерны #паттерны_программирования #c++ #системы_хранения_данных #command #visit
-
Никогда не читайте перед обедом книг по специальности
Книги делятся на две категории: fiction и non-fiction . Технические книги — внезапно — не исключение, и поддаются точно такой же классификации. Между учебником по научной дисциплине, начинающегося с аксиоматики и продолжающегося доказательствами теорем, — и практически любой современной литературой по « Computer Science » — лежит пропасть. Что происходит, когда люди долгое время оказываются рабами одной-единственной книги (с продолжениями), нам хорошо известно из истории. Возникает религия. 99% процентов литературы по ООП — это талмуд . Вероятность того, что вам подойдет «паттерн» — примерно 50%. Как встретить динозавра на Невском. Знание паттернов полезно в той же степени, что и теология, — и примерно тем же по специальности людям. Всегда полезно уметь отличать по запаху Пана от простого фавна, но практических применений такой эрудиции — не существует. Несколько примеров и торжественный вывод
https://habr.com/ru/articles/895678/
#паттерны #паттерны_проектирования #паттерны_программирования #литература_техническая
-
Архитектурный паттерн для централизованной обработки ошибок в хендлерах на Go
В данной статье представлен авторский подход к унификации и централизации механизма обработки ошибок в HTTP-обработчиках веб-сервисов, разработанных на языке Go. Статья подробно рассматривает ограничения традиционных методов обработки ошибок, ведущие к дублированию кода и снижению поддерживаемости. Предлагается новый архитектурный паттерн, включающий использование специализированной сигнатуры функций-обработчиков, кастомного типа ошибки HTTPError для инкапсуляции статуса ответа, сообщения для клиента и внутренней ошибки для логирования, а также Middleware-адаптера для интеграции с фреймворками net/http и Gin. Данный подход демонстрирует повышение читаемости кода, упрощение отладки и обеспечение консистентности ответов API, что представляет собой значимый вклад в практику разработки бэкенд-сервисов на Go.
https://habr.com/ru/articles/914112/
#go #IT #разработка #backend #паттерны #паттерны_проектирования #паттерны_программирования #bestpractices #best_practice #best
-
Архитектурный паттерн для централизованной обработки ошибок в хендлерах на Go
В данной статье представлен авторский подход к унификации и централизации механизма обработки ошибок в HTTP-обработчиках веб-сервисов, разработанных на языке Go. Статья подробно рассматривает ограничения традиционных методов обработки ошибок, ведущие к дублированию кода и снижению поддерживаемости. Предлагается новый архитектурный паттерн, включающий использование специализированной сигнатуры функций-обработчиков, кастомного типа ошибки HTTPError для инкапсуляции статуса ответа, сообщения для клиента и внутренней ошибки для логирования, а также Middleware-адаптера для интеграции с фреймворками net/http и Gin. Данный подход демонстрирует повышение читаемости кода, упрощение отладки и обеспечение консистентности ответов API, что представляет собой значимый вклад в практику разработки бэкенд-сервисов на Go.
https://habr.com/ru/articles/914112/
#go #IT #разработка #backend #паттерны #паттерны_проектирования #паттерны_программирования #bestpractices #best_practice #best
-
Архитектурный паттерн для централизованной обработки ошибок в хендлерах на Go
В данной статье представлен авторский подход к унификации и централизации механизма обработки ошибок в HTTP-обработчиках веб-сервисов, разработанных на языке Go. Статья подробно рассматривает ограничения традиционных методов обработки ошибок, ведущие к дублированию кода и снижению поддерживаемости. Предлагается новый архитектурный паттерн, включающий использование специализированной сигнатуры функций-обработчиков, кастомного типа ошибки HTTPError для инкапсуляции статуса ответа, сообщения для клиента и внутренней ошибки для логирования, а также Middleware-адаптера для интеграции с фреймворками net/http и Gin. Данный подход демонстрирует повышение читаемости кода, упрощение отладки и обеспечение консистентности ответов API, что представляет собой значимый вклад в практику разработки бэкенд-сервисов на Go.
https://habr.com/ru/articles/914112/
#go #IT #разработка #backend #паттерны #паттерны_проектирования #паттерны_программирования #bestpractices #best_practice #best
-
Никогда не читайте перед обедом книг по специальности
Книги делятся на две категории: fiction и non-fiction . Технические книги — внезапно — не исключение, и поддаются точно такой же классификации. Между учебником по научной дисциплине, начинающегося с аксиоматики и продолжающегося доказательствами теорем, — и практически любой современной литературой по « Computer Science » — лежит пропасть. Что происходит, когда люди долгое время оказываются рабами одной-единственной книги (с продолжениями), нам хорошо известно из истории. Возникает религия. 99% процентов литературы по ООП — это талмуд . Вероятность того, что вам подойдет «паттерн» — примерно 50%. Как встретить динозавра на Невском. Знание паттернов полезно в той же степени, что и теология, — и примерно тем же по специальности людям. Всегда полезно уметь отличать по запаху Пана от простого фавна, но практических применений такой эрудиции — не существует. Несколько примеров и торжественный вывод
https://habr.com/ru/articles/895678/
#паттерны #паттерны_проектирования #паттерны_программирования #литература_техническая
-
Никогда не читайте перед обедом книг по специальности
Книги делятся на две категории: fiction и non-fiction . Технические книги — внезапно — не исключение, и поддаются точно такой же классификации. Между учебником по научной дисциплине, начинающегося с аксиоматики и продолжающегося доказательствами теорем, — и практически любой современной литературой по « Computer Science » — лежит пропасть. Что происходит, когда люди долгое время оказываются рабами одной-единственной книги (с продолжениями), нам хорошо известно из истории. Возникает религия. 99% процентов литературы по ООП — это талмуд . Вероятность того, что вам подойдет «паттерн» — примерно 50%. Как встретить динозавра на Невском. Знание паттернов полезно в той же степени, что и теология, — и примерно тем же по специальности людям. Всегда полезно уметь отличать по запаху Пана от простого фавна, но практических применений такой эрудиции — не существует. Несколько примеров и торжественный вывод
https://habr.com/ru/articles/895678/
#паттерны #паттерны_проектирования #паттерны_программирования #литература_техническая
-
Никогда не читайте перед обедом книг по специальности
Книги делятся на две категории: fiction и non-fiction . Технические книги — внезапно — не исключение, и поддаются точно такой же классификации. Между учебником по научной дисциплине, начинающегося с аксиоматики и продолжающегося доказательствами теорем, — и практически любой современной литературой по « Computer Science » — лежит пропасть. Что происходит, когда люди долгое время оказываются рабами одной-единственной книги (с продолжениями), нам хорошо известно из истории. Возникает религия. 99% процентов литературы по ООП — это талмуд . Вероятность того, что вам подойдет «паттерн» — примерно 50%. Как встретить динозавра на Невском. Знание паттернов полезно в той же степени, что и теология, — и примерно тем же по специальности людям. Всегда полезно уметь отличать по запаху Пана от простого фавна, но практических применений такой эрудиции — не существует. Несколько примеров и торжественный вывод
https://habr.com/ru/articles/895678/
#паттерны #паттерны_проектирования #паттерны_программирования #литература_техническая
-
[Перевод] Плохие паттерны в типах — «Утка-дублер»
Почему люди не используют типы чаще? Возможно все связано с тем, что опытные разработчики перестали использовать нерабочие паттерны, не оставляя за собой следов для новичков. В этой статье более детально разбирается недавно удаленный мной код с паттерном, который я называю «утка‑дублер». Вы сможете проследить процесс разработки типа, а также причину его удаления. Также мне хотелось бы попросить разработчиков на Rust документировать и делиться своими ошибками, чтобы мы все могли на них учиться.
-
Функциональные опции в Go
Сегодня я хочу поделиться своими знаниями о паттерне, который может значительно упростить работу, если ты пишешь на Go. Речь пойдет о функциональных опциях. Поверь, как только ты разберешься c этим, твой код станет немного гибче и проще.
https://habr.com/ru/articles/842594/
#функциональные_опции #паттерны_программирования #чистый_код #go
-
[Перевод] Игровые паттерны программирования: Game Loop
Это перевод одной из глав книги Game programming patterns Роберта Найстрома. Так как книга по сути состоит из подробного описания шаблонов проектирования, каждая глава может рассматриваться как самостоятельная статья, чем я и воспользовался и перевел, как мне кажется, статью с самым важным паттерном в игростроении — Game loop .
-
Как сыграть с СХД в имитацию ошибки и выйти победителем? Используем паттерны ООП на C++
Привет, Хабр! Меня зовут Константин Крюков, я разрабатываю систему хранения данных TATLIN.UNIFIED в YADRO. Сейчас мы с командой создаем MeyerSAN — решение, которое имитирует неисправность SAS HDD и SSD и позволяет автоматически тестировать реакцию СХД на ошибки. Мы написали проект на новом стандарте С++ 23 и использовали паттерны объектно-ориентированного программирования. Под катом расскажу, что за решение у нас вышло, как устроена его архитектура. А еще мы вместе вспомним, зачем строить программную архитектуру тщательно и правильно (и не жалеть об утраченном времени на активную разработку).
https://habr.com/ru/companies/yadro/articles/927866/
#ооп #паттерны #паттерны_программирования #c++ #системы_хранения_данных #command #visit
-
Как сыграть с СХД в имитацию ошибки и выйти победителем? Используем паттерны ООП на C++
Привет, Хабр! Меня зовут Константин Крюков, я разрабатываю систему хранения данных TATLIN.UNIFIED в YADRO. Сейчас мы с командой создаем MeyerSAN — решение, которое имитирует неисправность SAS HDD и SSD и позволяет автоматически тестировать реакцию СХД на ошибки. Мы написали проект на новом стандарте С++ 23 и использовали паттерны объектно-ориентированного программирования. Под катом расскажу, что за решение у нас вышло, как устроена его архитектура. А еще мы вместе вспомним, зачем строить программную архитектуру тщательно и правильно (и не жалеть об утраченном времени на активную разработку).
https://habr.com/ru/companies/yadro/articles/927866/
#ооп #паттерны #паттерны_программирования #c++ #системы_хранения_данных #command #visit
-
Как сыграть с СХД в имитацию ошибки и выйти победителем? Используем паттерны ООП на C++
Привет, Хабр! Меня зовут Константин Крюков, я разрабатываю систему хранения данных TATLIN.UNIFIED в YADRO. Сейчас мы с командой создаем MeyerSAN — решение, которое имитирует неисправность SAS HDD и SSD и позволяет автоматически тестировать реакцию СХД на ошибки. Мы написали проект на новом стандарте С++ 23 и использовали паттерны объектно-ориентированного программирования. Под катом расскажу, что за решение у нас вышло, как устроена его архитектура. А еще мы вместе вспомним, зачем строить программную архитектуру тщательно и правильно (и не жалеть об утраченном времени на активную разработку).
https://habr.com/ru/companies/yadro/articles/927866/
#ооп #паттерны #паттерны_программирования #c++ #системы_хранения_данных #command #visit