С днём программиста всех причастных!
И да.. стандарт
#day256 #code #cpp #programmer_day #gamedev #lifeexe #lifeexecode #humor
Please open Telegram to view this post
VIEW IN TELEGRAM
❤30😁26🔥9🎉8🤯4👍3 3🦄2
Media is too big
VIEW IN TELEGRAM
В новый Unreal Engine 5.7 завезли ИИ ассистента — плагин AIAssistant, который находится по адресу:
Engine\Plugins\Experimental\AIAssistant
Плагин элементарный: он просто открывает веб-морду Epic Developer Assistant в отдельном окне редактора движка, и, кстати, работает без логина:
Всё выглядит так, что разработчики, создавая плагин для интеллекта искусственного решили пренебречь интеллектом естественным.
Лапидарно — несколько моментов, которые прямо бросаются в глаза
TSet
в простейшем случае для 14 символов? Возможно, конечно автор изучал структуры данных на данном коде — кто знает:FString FAIAssistantConfig::GetMainUrlAsRegexString() const
{
static const TSet<FString::ElementType> CharactersToEscape{
'.', '*', '+', '?', '(', ')', '[', ']', '{', '}', '^', '$', '|', '\\',
};
FString Escaped;
Escaped.Reserve((MainUrl.Len() * 2) + 2 /* Allow for regex anchors */);
Escaped += FString::ElementType('^');
for (const FString::ElementType Character : MainUrl)
{
if (CharactersToEscape.Contains(Character))
{
Escaped += FString::ElementType('\\');
}
Escaped += Character;
}
Escaped += FString::ElementType('$');
Escaped.Shrink();
return Escaped;
}
TSet
тут избыточен — создаётся хеш-таблица с бакетами и метаданными для всего нескольких статических символов. Хватит switch/if
или простейшей строки-набора:static const FString CharsToEsc = TEXT(".+*?()[]{}^$|\\");
FString::ElementType
в данном случае только усложняет читаемость — можно смело использовать TCHAR.
FString
имеет методы Append
и AppendChar
, которые аккуратно избавят от громоздких конструкций вида += FString::ElementType
Escaped += FString::ElementType('^');
Escaped.AppendChar('^');
GetMainUrlAsRegexString
привязана к классу. Очевидно, её можно освободить или оформить как часть библиотеки утилит, передавая MainUrl
параметром. Это разблокирует (помимо славы выдающегося архитектора ПО):IMPLEMENT_SIMPLE_AUTOMATION_TEST
, хотя Automation Spec
уже давно доступен. Ничего критичного, но зачем тянуть старое в новом плагине.Patreon | Boosty | PayPal
GitHub | X | LifeEXE School | Itch | Wiki | Курс по UE
#code #cpp #plugin #unrealengine #ue5 #gamedev #lifeexe #lifeexecode #ai #ai_assistant #tests #code_review
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34 10🦄6 4❤2😁2⚡1👍1