День 3: Архитектурки не нужны
На самом деле не совсем, хехе. Они нужны, но не всегда и с кучей НО. Учить их точно нет смысла, это чисто прикладная вещь, которая изучается на проекте, тк она:
Скорее всего будет извращена (привет, аналитика)
Подпёрта легасятиной
Устарела
И всё это при том, что она реализована более-менее правильно (скорее всего нет). Не существует никакого магического сочетания букв, которое решит все проблемы, предотвратит техдолг, а разработчики преисполнятся. Кроме той, которая описана на этом сайте: iosarchitecture.top
Куда важнее - это используемые подходы, нужно стремиться чтобы они были консистентными. Кладите кирпичи в предсказуемом порядке (кодстайл - это хорошо) и не так важно, что это прямоугольные коровьи лепешки. Дублирование кода сильно дешевле плохой/неуместной абстракции
Ситуация: обмазался архитектуркой, всё вроде ок, но тут приходит задача сделать кастомный интерактивный транзишен и о-оу, в книжке/статье этого не было. Мы в жопе, в проекте появляется новая опухоль. Все архитектуры хорошо работают только на бумаге и изолированных примерах
Теперь о том, когда они нужны и в какой форме. Существующие архитектурные подходы лучше воспринимать скорее как рекомендации, шаблоны, но конечный продукт должен быть заточен под нужны вашего конкретного проекта. Понравился подходящий кусок - взяли себе, не понравился - выкинули
Пожили со своей поделкой какое-то время, поняли где возникают проблемы и как их можно решить - переделали. Архитектуры должны решать проблемы, а не создавать. Делаете простой экран где можно обойтись без лишних абстракций - обходитесь. Избегайте преждевременных оптимизаций
Ну и, товарищи синиоры, не дрочите вы людей на собесах архитектурами, всё равно у вас она сделана не идеально, с кусками из костылей и легасятины. Любой нормальный разработчик достаточно быстро въедет, если выдержан стиль и там не кромешный ад. Знает - хорошо, нет - тоже хорошо
Нужно подстраивать архитектуру под проект, а не наоборот. Лучше тот код, который легче понять и быстрее отредачить, чем элегантная неуместная абстракция. Это не значит, что нужно пилить велосипеды под всё, всегда лучше взять готовый подход тк с ним могут быть уже знакомы другие
С первого раза, конечно, вряд ли получится круто, но это нормально, это итеративный процесс. Вещи, которые кажутся подходящими, со временем могут оказаться говном - это тоже нормально. Подпилите под себя и, если оно всё консистентно и вы счастливы, это - успех. Нет? Итерируйтесь
Два кейса когда без них точно больнее, чем с - это если у вас большая команда или вы пишите тесты. Что-то выдумать вам точно придется. И если говорить про минимум, то оно скорее всего будет похоже на МВВМ-С, но это не точно. Вы же сделаете так, как будет лучше для проекта, верно?
Кажется, что я хотел что-то ещё написать, но уже и не вспомню, с этой жарой с потом вытекли последние мозги. Поэтому я отчаливаю, напоследок опрос который я забыл сделать днём. Всем до завтра и спасибо за внимание, вы там держитесь
С вами был @bitemybyte
А как у вас в проекте?
🤔
22.5%
Не страдаем с чужим🤔
17.5%
Страдаем с чужим🤔
45.0%
Что-то своё🤔
15.0%
Ничего