Если флаг это тру, то справа должно быть 10 пикселей, а если фолз, то 20. Есть ли более короткая запись чем EdgeInsets.fromLTRB(20, 20, flag ? 10 : 20, 20)? А то как-то некрасиво
нормально, чо тебе не нравится?)
EdgeInsets.all(20).copyWith(right: flag ? 10 : 20)
но так же длинннеееее)
вообще, да, но если делать именованную константу вместо magic number, то будет короче и (имхо) немного нагляднее – лучше видно, что right это особый случай, а всё остальное одинаковое
оверинжиниринг – это *ненужное* усложнение. Если это хоть немного улучшает читабельность, и никак не влияет на всё остальное, то нет, это не оверинжиниринг
это скорее nitpicking. Понятно, что на codereview я бы PR не заворачивал, ни с первым вариантом, ни со вторым
А если я выношу интерфейс дата класса отдельно, когда нет больше реализаций интфейса? А если есть отдельные конст классы реализаций?
Ничего не понял
не может быть общего ответа, в каждом конкретном случае будет по-разному. Ну и «оверинжиниринг» - это не бинарное состояние )
Ну как бы прям тривиально: изначально имеем: class Data { const Data(this.v) final String v; } И вместо того чтобы отдельно в модулях сделать const moduleData = Data('A'); Я сделал интерфейс: abstract class IData { String get v; } И в каждом модули сделал class DataModuleA implements IData { @literal const DataModuleA(); String get v => 'A'; }
А интерфейс бд съедает теперь IData, но выдаёт всегда просто Data
Типа конфиг модуля
Обсуждают сегодня