и не только) структуры из delivery в usecase, и потом в repository нужно передавать как указатели? И структуры, которые потом возвращаются в delivery тоже? Типа для оптимизации
вообще не связанные вещи
Ну если передавать не по указателю то каждый вызов функции в памяти будет создаваться новая ячейка же? Посмотрел популярные сорсы - одни делают по указателю, другое как значение
ну а причем тут чистая архитектура?
Просто как пример, когда одна структура подходит несколько функций
Вопрос в том, становиться ли программа более оптимизированной, если передавать по указателю структуры
главное избегай аллокаций лишних
это совершенно другой вопрос. Нежели тот, который был. Отвечая на него коротко - нет, не становится.
А по какому запросу можно найти подробную информацию почему не становятся? По логике должна же
golang pass by value or pointer
pointers in golang
А логика учитывает работу gc?
а у вас есть проблемы со скоростью?
Нет. Вообще нет. Но хочется писать правильно сразу. Увидел сорсы классные и там по указателю предают структуры. В статьях типа «golang pass by value or pointer» пишут, что большие структуры нужно передавать как указатели. Вообще стараюсь добиться максимальной производительности даже в проектах, где это не нужно. Использую fiber, fasthttp как клиент. Растравляю в структуре переменные так, чтобы она занимала меньше места.
Если в вашем коде копирование структуры - это бутылочное горлышко - поздравляю
жесть. Я бы ничего из этого не делал. У вас нет проблемы, которую вы пытаетесь решить. Но есть повышенная сложность и скорее всего нечитаемость из-за вот этих манипуляций
то-есть это - https://medium.com/@felipedutratine/how-to-organize-the-go-struct-in-order-to-save-memory-c78afcf59ec2 тоже bad practice?
Да нет. Это способ оптимизации структуры. Если вы упираетесь в производительность связанную с этим, то это хороший способ решить проблему.
это не практика. Это пыль в глаза. Все начинается со стека и кучи. Такие практики приводят к тому что все плохо. Но это хорошо, больше работы, больше зарплаты.
Обсуждают сегодня