Обновить
8

Разработчик

0,2
Рейтинг
Отправить сообщение

А я вот понял, что мы просто из разных вселенных.

Вообще-то я имел в виду, что иногда даже просто проапгрейдить мажорную версию драйвера монги может стать той ещё занозой в…


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


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


Ну и какое решение будет перевести проще — с выделеным слоем доступа к данным или то где каждый класс очень по креативному работает с хранилищем?


Коробочные решения, например, часто расширяют требования до поддержки ещё одной базы данных. А всякие кеши и очереди сообщений и вовсе меняются как перчатки. Мне сложно представить, как это всё отслеживать без слоя доступа к данным в модели ActiveRecord

Слишком много интеграционных тестов вот и гоняются по 2 часа.

QA "пишет" тесты используя свой инструментарий. Ну например SOA Test.


А в коде разработчика QA делать нечего. Как можно аудировать код, в котором ничего не понимаешь?

Нафиг тогда в такой вселенной нужен тогда QA вообще?


В реальном мире QA не верит разработчику и покрывает требования (а не код) независимо.

Так в примере выше, rsync и говорил про high-coupling. Якобы метод который и меняет бизнес-состояние и сам себя в базу пишет (вполне конкретную) — это хороший дизайн.


То есть это не просто Active-Record, а ещё и прибитая гвоздями к конкретной схеме конкретной базе конкретного драйвера.

Если там в цикле перебирается все строки таблицы вместо запроса с группировкой и/или аггрегацией, то DBA не спасёт.

А в чём проблема смены пароля при многофакторной авторизации? В консистенции смены на всех провайдерах? В рассылке уведомлений всем провайдерам об инвалидации? В том что будет многофазный процесс?


Вроде всё это выглядит решаемо. Я не очень знаком с этой конкретной предметной областью, но в своём опыте не припомню задач, где SRP был бы прямо явным антипаттерном.

Это в какой вселенной QA доверяет разработчику?

Мне тоже матчат 100% но с первого года.
Положить я могу максимум половину федерального годового лимита $19000 / 2 = $9500 для 2019 года


На самом деле $9000, потому что первые $500 они зачисляют за первый отложенный туда доллар

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


Можно заказать исследования, где будут приглашать людей за деньги потыкать в разные элементы интерфейса, а затем выявлять где же они тупили. Цена этого исследования будет, естественно, включена в стоимость продукта.


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

В цикле TDD рефакторят ДО того, как фича попадёт к QA

Не могли бы Вы раскрыть свою мысль?


О каких более базовых принципах идёт речь с которыми можно пренебречь принципом единой ответственности например?

А лего, значит, вы собираете с помощью паяльника?


Как тестировать фичу, когда ответственности смешаны?
DataAccess layer размазан по куче классов, как вы их будете тестировать? Базу в докере запускать?
Кстати, а почему вы уверены, что смена пароля профиля не приведет к увеличению налога? У вас нет теста на это!


Это только по букве "S" вопросы.

ну вот опять — некомпетентность бизнеса привела к нарушениям процессов в угоду скорости и отсюда повылезали все проблемы.


Не удивлюсь, что в итоге разработчики и оказались виноваты во всех факапах, вызванных нехваткой времени.


Моя позиция — я следую процессам и деливерю с предсказуемым качеством. На иных условиях я не работаю, потому что не могу отвечать за продукт.


"Горе-бизнесмены", пообещавшие звездолёт за неделю сдаются сразу в топ-менеджмент (было 1 раз всего)

Будет ошибка десериализации очевидно, а не стектрейс в случайном месте.

И сколько же раз надо запустить программу, чтобы понять что конфиг корректный?


Ошибка в рантайме обходится гораздо дороже чем в компайл-тайме. Потому что может быть причиной отката релиза.

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


получается фигня, которая не держит нагрузку, с трудом удерживается DBA в рамках

А откуда гарантия, что ваши кривые SQL-запросы не уложат базу? Неумение пользоваться инструментом — не оправдание. При грамотном использовании оверхед на орм — на уровне статистической погрешности. А сколько оверхед на дублирование одного и того же кода?

Возможность легко понять что делает код, возможность его модифицировать и легко локализовать ошибку — довольно ценные в разработке, не так ли?


Для того, чтобы достичь этого, существуют определенные практики. Самые базовые — это SOLID.


Несомненно, даже используя лучшие практики при определенном старании можно сделать дерьмо. Но когда им не следуешь, то даже стараться не надо.

можно смело раскладывать в продакшен в пятницы, перед праздниками

Если нет надёжной процедуры отката, у вас проблемы посерьёзнее скорости разработки или обеспечения качества фич


с типами в разы дороже и качество хуже или результат вовсе не достигнут

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


Как гарантировать, что пользователь библиотеки проинициализировал её правильно, заполнив все необходимые поля?


Тесты на код пользователя писать? Заставить его самого писать себе тесты по документации?


Можно конечно в рантайме проверять и бросать ошибки в рантайме вида: "Возраст должен быть числом", "Не знаю поля Nme, возможно вы имели ввиду Name?" Отладка может быть долгой.


А можно просто сделать типизированный конфиг, который просто не позволит собрать билд с неправильными параметрами или опечататься в значении поля.

Информация

В рейтинге
3 378-й
Откуда
Cary, North Carolina, США
Зарегистрирован
Активность