169 похожих чатов

Ребят, вопрос концептуального характера: на сколько важно оперировать абстракциями и

инжектить имплементации? можно ли в маленьком пет-проекте (если очень впадлу) хардкодить имплементацию?

8 ответов

12 просмотров

Ни в коем случае нельзя! Все закрывать интерфейсами с двух сторон! Выделить клин на 5 слоёв, каждый в своем gradle-модуле! на все писать 100% тесты, всех 4х видов, и в результате вынести часть функционала в библиотеку и построить на ней бизнесс (можно)

А кто-то запрещает? Всякие архитектурные паттерны придуманы для разграничения функционала/логики по слоям, для удобства отладки и т.д. Все зависит от того, для чего вам проект нужен.

Yehor-Sereda Автор вопроса

ну типа есть две стороны, с одной стороны огромная продуктивность девелопа, с другой супер-низкая продуктивность дебага и саппорта кода.

Если речь про пет-проект в нем отсутствует поддержка. Написал и забыл. Если работает неправильно - пускай работает неправильно

а если это коммерческий продукт - хорошее выделение очень важно, чтобы потом баг 2 недели не искать

Чувак делай как тебе удобно

А потом когда баги появляются (если ты их не выводишь на UI ещё сразу зачастую), то на фикс уходит больше времени (в целом, не один раз наверняка такое случится), поэтому можно писать сразу по ТДД и т.д. чтобы быть уверенным в коде и чтобы ничего не давило на нервы

+ про 2 недели искать баг

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
А чем вам питонисты не угодили?😂
.
79
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
4
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Вот смотрите у меня есть два стрима сейчас fs, cs: TStream; fs := TFileStream.Create('filename'); cs := TCompressionStream.Create(compression_level, fs); Я хочу сделать так: ...
notme
5
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
8
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Карта сайта