4.2 KiB
4.2 KiB
Day 9-10: рефактор і чистка (2026-08-13)
Бриф прямо просив "думай як розробник, що передає код іншому" — без
зміни логіки/поведінки гри, лише структура/дублювання/коментарі.
Погоджений план (EnterPlanMode/ExitPlanMode) виконаний фазами, кожна
верифікована окремим npx vite build:
- Мертвий код прибрано:
PayZoneC.getTargetWorldPosition()(0 викликів), увесьPhysicsC.PhysicsObjPair/pair-поле/disablePhysicsPair()(клас був повністю нежиттєздатним — єдине місце, що присвоювалоpair, саме закомічене); 2 прототипніconsole.log(PayZoneC,ResourceC).SparkleFxC'sconsole.debugна виснаження пулу — свідомо залишений (реальна діагностика деградованого режиму, не сміттєвий лог). - 4 нові утиліти в
src/utils/— прибрали дублювання, знайдене між файлами (не новий functionality, лише перенесення існуючої формули без зміни):perspectiveScale.ts— camera-distance-ratio компенсація, була незалежно написана і вResourceC(toTarget), і вPayZoneC(playDepositFlight).screenWorldProjection.ts— world<->screen NDC-математика, була вHudC(screen->world, unproject) іHealthBarC(world->screen, project) — обидва незалежно читалиcanvasRect.tweenChain.ts— той самий "TweenC.add() обидві ланки окремо" гочтя й бойлерплейт, дослівно повторений уBreakablePropCіSparkleFxC.flashOverlayMaterial.ts— адитивний флеш-матеріал (клон + white additive overlay), дослівно повторений уBreakablePropCіResourceC, разом з дубльованою константоюFLASH_COLOR.
- Коментарі підчищені у всіх 16 контролерах,
beforeResourcesLoadedCb.tsі всіх 3 CSS-файлах — прибрана вся хронологія/цитати чату/"Day N" посилання, лишились тільки короткі WHY-нотатки на дійсно неочевидні речі (усі гочті з цього файлу — TweenC-чейн, glTF dot-stripping, nipplejs force-переповнення, atan2/conic-gradient зсув, MeshBasicMaterial білий-тінт-no-op — лишились, просто по одному разу в коді, не по два-три). Додана одна нова коротка нота вui.css—.bannerButtonреально мертвий у білді (purgecss-квірк), раніше це знав тільки цей файл. - Свідомо НЕ зроблено: домен-розбиття
src/controllers/на підпапки (gameplay/vfx/ui/core) — розглянуто і відхилено: жодної зовнішньої конвенції під це нема (SDK сам плаский),resources/— єдиний прецедент підпапок в проєкті, і той групує по типу ассету, не по домену. Переїзд 16 файлів заради нуля функціональної вигоди — саме "overengineering", проти якого прямо просив бриф. - Два CSS-пункти з попереднього Day 8 аудиту (rem/% замість vh,
відсутній landscape-медіазапит у
health-bar.css) — свідомо не торкались, за проханням користувача відкласти.
Перевірено виключно npx vite build після кожної фази (усі 883 модулі,
без помилок) — жодного self-testing у браузері, як завжди в цьому проєкті.