Рубрика «проектирование»

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

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

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

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

Что такое SOLID и зачем оно надо?

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

Принципы S.O.L.I.D.Читать полностью »

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

Никаких особых медицинских диагнозов мне не ставили, но мои умственные способности крайне ограниченны. Даже те задачи на Leetcode, которые попроще, вызывают у меня затруднения. Когда я читаю о самом обычном алгоритме консенсуса, у меня кипит мозг. У меня плохо получается отслеживать сложные зависимости в кодовой базе. Я не способен освоить модные языки вроде Rust (пытался, но по правде сказать, для меня это чересчур). Я терпеть не могу микросервисы и современный фронтенд: там слишком много движущихся частей, и уследить за всеми я не в состоянии.

Как же я выхожу из положения?
Читать полностью »

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

Читать полностью »

«Мужики! Я вам запрещаю выпускать меньше 200 тонн хлеба в сутки», — примерно это 92 года назад заявил Георгий Марсаков, и перевернул игру, создав инженерное чудо. Что же такого он придумал? Давайте разбираться.

«Мужики! Я вам запрещаю выпускать меньше 200 тонн хлеба в сутки», - примерно это 92 года назад заявил Георгий Марсаков, и перевернул игру, создав инженерное чудо. Что же такого он придумал?

Читать полностью »

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

Нужен ли офис конструкторам?

Читать полностью »

Я пишу ПО под заказ уже многие годы, и одна из ситуаций, которые раздражают меня больше всего – это когда клиент принимает позицию, что существует некая палочка-выручалочка, которая сократит, а то и вовсе устранит всю сложность, присущую той или иной задаче. Такое случается чаще, чем можно подумать, и знаете что? Такие клиенты почти всегда заблуждаются.

Возможно, с возрастом я становлюсь болтливее, чем следовало бы, но правда в том, что создавать программы для других людей – задача невероятной сложности. И проблема здесь не в языках программирования, инструментах и парадигмах, как склонны считать те, кто далек от практической стороны (то есть не пишет код). На самом деле, трудности возникают из-за того, что клиенты и разработчики не выделяют должного времени на то, чтобы разобраться в глубинных истоках проблемы, которую пытаются решить, и не проектируют решение исходя из тех выводов, к которым придут в процессе.
Читать полностью »

2022 год научил нас быстро менять приоритеты для оперативного реагирования на внешние факторы. В наших целях была зафиксирована ключевая задача по отказу от софта вендора в пользу собственных решений, разработанных на основе микросервисной архитектуры. Стоял вполне комфортный срок: полностью завершить переход до конца года, и команды планомерно шли к этой цели, наряду с разработкой менее масштабных, но тоже важных фич. Но в связи со вполне реальными рисками преждевременного ухода вендора из РФ сроки доработок сократились с полугода до одного месяца (почти как в известной шуткеЧитать полностью »

(Disclaimer!) Данная точка зрения не претендует на роль абсолютной истины и является лишь результатом моего опыта, чтения, наблюдений и размышлений.

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js