Deutsch

ИИ для программиста?

04.10.24 16:40
Re: ИИ для программиста?
 
alex445 патриот
в ответ AlexNek 04.10.24 16:11, Последний раз изменено 04.10.24 16:58 (alex445)

Вы тоже не то ответили )))


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


А главное, что, если появляется какой другой тип? Как заставить написать для него перегрузку? Т.е. отсутствие нужной перегрузки выяснится лишь спустя время, когда захочется такой метод использовать. Как заставить создателя такого нового типа добавить обработку этого типа во все классы, где этот тип должен использоваться с подобной перегрузкой? Только методами компилятора или анализатора кода - т.е. до выполнения программы. Чтобы вам было проще понять - допустим к тем же числовым типам добавляется новый числовой тип. Теперь надо заставить какой-нибудь класс Convert заиметь методы типа

string ToString(NewType value)

и

NewType FromString(string s)

в дополнение к его уже существующим


int FromString(string s)

double FromString(string s)

и т.д.


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

Как заставить автоматически, чтобы не читать документацию, где бы было написано, что при создании такого-то типа нужно внести такие-то изменения в такие-то классы для его поддержки?


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


Кроме как введением некоего словаря поддерживаемых типов, больше ничего не приходит в голову. Причём при каждом старте программы она должна сканировать (через рефлексию) свои пространства имён на доступные типы, а классы с перегрузками - проверять, есть ли у них перегрузки нужных методов для всех просканенных типов. Но это всё будет работать лишь после запуска программы. А надо так - создал новый тип, и максимум при компиляции вывелась ошибка, что в таким-то классах нет перегрузки для этого типа.


Как послабление, можно условиться, что создавать новые типы можно лишь в определённом пространстве имён. Ну и при старте прога будет сканировать лишь это пространство.


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

 

Перейти на