"Мой худший образец полезного кода"
https://habr.com/ru/articles/923500/
Автор рассказывает о своём опыте создания кода для моддинга игр на Unity и .NET, который позволяет переадресовывать вызовы методов. Этот код, несмотря на свою простоту и кажущуюся неэффективность, получил широкое распространение среди моддеров и оказал значительное влияние на сообщество. Автор также делится своими размышлениями о важности поддержки моддинга со стороны разработчиков игр.
Если бы мне нужно было ответить на вопрос на собеседовании о том, какой у меня лучший и худший кусок кода. Как подобный объединённый ответ был бы https://github.com/Nox7atra/Triangle.Net-for-Unity. Очень лениво сделанный порт либы, но при этом довольно полезный. А так горжусь я больше всего наверное тем, что под NDA. У меня много прикольных, красивых проектов. Допустим тут последнее видео - один из самых интересных визуально проектов. Но с точки зрения кода ничего не выдающегося. А горжусь я комплексом идей.
У меня была задача визуализировать огромные графы в виртуальной реальности. И там был целый ряд проблем. Начиная с красивой укладки самого графа в трехмерном пространстве и заканчивая тем, что по графу нужно было навигироваться. А на 1000 вершин коллайдеры это банально дорого. Но к тому моменту я уже написал для подобных задач эту штуку https://github.com/Nox7atra/SimpleRaycastSystem С укладкой там был реализован многопоточный итерационный алгоритм. Что прикольно это из-за специфики алгоритма создавало красивую анимацию укладки графа (вершины медленно прилетали к равновесию) и при этом работал шустро на огромном числе вершин. На финальном тесте всё с учётом шейдеров с гпу инстансингом, простых рейкастов, оптимизированного многопоточного алгоритма работало на 10к вершин в виртуальной реальности. Технически - один из самых интересных проектов.
А стыднее всего. Ну мне особо не стыдно за код, который я писал когда не умел писать код. Я конечно не смотрю что у меня выложено на второй странице гитхаба, но я этого не помню. По проектам тоже, я очень много могу ругаться с клиентами, потому что я не люблю делать фигню. И защищать какие-то идеи часами. Такое бывает, но в основном это происходит потому что мне не пофиг на результат. То, что мне прям не нравится это пару проектов за NDA. А вот код за который стыдно. Есть одна штука, но это не стыдно даже, это самое живучее легаси. В 2017 году для проекта для одного футбольного клуба (тоже NDA по деталям) я написал ресурсный менеджер. Систему, которая скачивает ассеты разного вида по ссылкам, кеширует их (основное там скачивание тех же бандлов), управляет памятью, не даёт грузить дубликаты и так далее. Кароче такой менеджер на 700 строк кода. Который просто переезжает потому что работает) Я сам классы больше 200 строк мне кажется уже очень давно не писал. Чаще всего через композицию у меня получается сохранять небольшой размер всех файлов.
А статья прикольная. Можно почитать)
#новости
Post #1697
1.13K
- 🔥 7