Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавил функции, которые возвращают имена методов #134

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

usa4ev
Copy link

@usa4ev usa4ev commented Mar 11, 2024

Добавил функции, которые возвращают имена методов, чтобы избавиться от строковых констант в клиентском коде

@leemuar
Copy link
Collaborator

leemuar commented Mar 11, 2024

Зачем? Какой сценарий использования?

@usa4ev
Copy link
Author

usa4ev commented Mar 11, 2024

Имя метода - это контанта, которая заведомо будет использована в клиентском коде повсеместно. Кажется, что разумно определить ее единожды и использовать только это определение. Дополнительно это исключит возможность опечатки в имени метода, которую не сможет отловить синтаксический контроль. Сценарий использования такой:

Процедура МояПроцедура() Экспорт

	// Какой-то код...
   
	Ответ = АБСП_КоннекторHTTP.абсп_КоннекторHTTP.ВызватьМетод(МетодGET(), Ресурс, Параметры, Сессия);
  
	// Еще какой-то код...

КонецПроцедуры;

Функция МетодGET()	
	Возврат АБСП_КоннекторHTTP.МетодGET();	
КонецФункции

@leemuar
Copy link
Collaborator

leemuar commented Mar 11, 2024

Сама идея понятна, но вот ее полезность - нет.

В библиотеке уже есть именованные методы для распространенных методов http.
Вместо КоннекторHTTP.ВызватьМетод("GET", ... ) можно писать КоннекторHTTP.Get( ... ). Так запись короче, и вы сразу получаете проверку на ошибки на этапе синтаксического контроля ну или на крайний случай - на этапе компиляции модуля. Вынос строковых констант в отдельные методы выглядит для меня пока как оверинжиниринг.

В каком сценарии вы видите необходимость в этом? Почему эти методы должны стать частью именно библиотеки?

@usa4ev
Copy link
Author

usa4ev commented Mar 11, 2024

Я использую ВызватьМетод() в служебном модуле, который создает сессию, набирает параметры и обрабатывает ответ. К этому модулю идет обращение в методах программного интерфейса моей подсистемы. Каждая функция ПИ вызывает служебный модуль, в который передает имя HTTP-метода, который нужно использовать, и другие данные, необходимые для запроса. Соответственно КоннекторHTTP.Get() в данном случае не подходит, т.к. служебный модуль не знает, какой метод нужно вызвать. Значит, я должен где-то имена методов определить, а модуль коннектора кажется самым разумным местом для этого.

@alexandr-yang
Copy link
Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants