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

Уже не первый раз сталкиваюсь с такой проблемой: Есть структура emailsManager,

я ее инициализирую и присваиваю переменной. Как правильно назвать эту переменную? Хочется назвать так же emailsManager, но так нельзя сделать. Всякие сокращение eManager не очень явно выглядят. Как вы поступаете в таких случаях?

27 ответов

7 просмотров

em

Дэни-Па Автор вопроса
Roman Timofeev
em

Это тоже не явное название, встретив такое в коде я задумаюсь что же это такое.

Дэни Па
Это тоже не явное название, встретив такое в коде ...

Для локального скоупа сойдет. Если у вас функции конечно не сотни строк

Дэни-Па Автор вопроса
S
Для локального скоупа сойдет. Если у вас функции к...

У меня функция, которая используется во всем коде программы в разных пакетах

Дэни Па
У меня функция, которая используется во всем коде ...

Да и пожалуйста. Это же внутренняя переменная

Дэни Па
Это тоже не явное название, встретив такое в коде ...

func (um *UserManager) Add(ctx context.Context, u *User) error { return um.userRepo.Add(ctx, u) } Зачем тут длинные имена?

Дэни-Па Автор вопроса
Roman Timofeev
func (um *UserManager) Add(ctx context.Context, u ...

Тут не за чем. Но это не мой вариант. У меня сложность при инициализации. emailManager = new(emailManagerStruct)Но я решил проблему добавлением struct к названиям всех структур

Дэни Па
Тут не за чем. Но это не мой вариант. У меня сложн...

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

Дэни Па
Тут не за чем. Но это не мой вариант. У меня сложн...

Прям всех структур? Ну ок, но это плохой стиль)

Дэни-Па Автор вопроса
Roman Timofeev
new лишь выделит память, инициализации полей струк...

Это лишь один пример. Есть места где я делаю через, сути это не меняет. emailManager = &emailManagerStruct{ username: "username", password: "password", }

Дэни Па
Это лишь один пример. Есть места где я делаю через...

``` emailManager = &tEmailManager{ username: "username", password: "password", } ```

Дэни-Па Автор вопроса
Roman Timofeev
А что у вас эти менеджеры делают?

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

Дэни-Па Автор вопроса
Стопосто
``` emailManager = &tEmailManager{ username: "...

Как вариант, но мне такой синтаксис не особо близок. Этот вариант чем-то лучше чем постфикс struct? Или только лишь кому как нравится?

Дэни-Па Автор вопроса
Roman Timofeev
а emailManager не зависит от logManager? ;)

emailManager может использовать logManager, если надо будет залогировать неуспешную отправку письма. А logManager может использовать emailManager, если ему понадобится отправить письмо.

Дэни Па
Как вариант, но мне такой синтаксис не особо близо...

Если это либа или тула для внутреннего пользования - называйте как нравится) если на люди выкладывать собираетесь - стоит ещё раз подумать

Дэни-Па Автор вопроса
Aleksei Olshanskiy
Если это либа или тула для внутреннего пользования...

Это к вопросу о выборе между префиксом t и постфиксом struct? Или тут в целом стоит задуматься об изменении концепции менеджеров?

Дэни Па
emailManager может использовать logManager, если н...

А как вы преодолеваете циклические импорты?

Дэни Па
Это к вопросу о выборе между префиксом t и постфик...

если внутренний проект как хочется \ как привыкли так и называете. Внешний будет либа.Тип, там без префиксов суффиксов все ясно по либе

Дэни-Па Автор вопроса
Roman Timofeev
А как вы преодолеваете циклические импорты?

Это когда в logManager и emailManager импортируют одно и то же?

Дэни Па
Это к вопросу о выборе между префиксом t и постфик...

Скорее второе. Если появляется куча однотипных имён lalaSuffix, blahSuffix, kekSuffix, то возможно стоит подумать о том чтоб завести пакет suffix и звать объекты оттуда. Но тут на усмотрение уже, я кода не видел и вслепую советовать плохая практика

Дэни Па
Это когда в logManager и emailManager импортируют ...

когда logManager импортирует emailManager, а emailManager - logManager

Дэни-Па Автор вопроса
Roman Timofeev
когда logManager импортирует emailManager, а email...

Сейчас это все внутри одного общего пакета, они не вынесены в отдельные либы. Хотя сейчас стал думать об этом, т.к. они в будущем могут понадобиться и в других проектах.

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта