Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Рефакторинг - процесс или событие ?

Рефакторинг - процесс или событие ?

Страницы: 1 2 Следующая »
patsanchik3Постоялецwww10 авг. 201812:24#0
заспорили два программиста одного игрового проекта - что есть рефакторинг и когда его надо делать ? ...

один грит - "это постоянный процесс и делать надо по мере необходимости"
другой - "не фига, надо геймдизу ставить заранее развернутые тех задания и уже потом программисту запасший пивом и отключив средства связи уходить в глубой дзен и всё рефакторить под ТЗ"

а что вы думаете ?  :)

ArchiDevilПостоялецwww10 авг. 201813:16#1
Первый, очевидно. Только почему это не во флейме?
DelfigamerПостоялецwww10 авг. 201814:07#2
Чистота - это непрерывно поддерживаемое состояние, или наступающее при особых случаях событие?
patsanchik3Постоялецwww10 авг. 201814:21#3
Delfigamer
> это непрерывно поддерживаемое состояние, или наступающее при особых случаях
> событие?
ну не без нюансов конечно :)
проект изначально собирался как прототип (на скорую руку) - что бы как можно быстрее получить играбельную версию (вполне рабочая ситуация и имеет место быть)

Правка: 10 авг. 2018 14:21

/A\Постоялецwww10 авг. 201814:32#4
ну обычно как, пришел с утра сонный, сделал кофеек и пока оно подействует разминаешься легким рефакторингом...
CasDevПостоялецwww10 авг. 201814:46#5
Delfigamer
> Чистота - это непрерывно поддерживаемое состояние, или наступающее при особых
> случаях событие?

В некоторых проектах (да что там говорить - в большинстве проектов) это вообще недосягаемое состояние.

Например, как жопой чувствовал, что надо будет кнопку "Save" дизаблить, если изменений нет. И на протяжении месяца в тасках тихонько переводил проект на cellViewModel. И вот на этой неделе задачу дали.
Старого вида проект на эту задачу потратил бы неделю. Я потрачу часа четыре, добавив в нужные классы поддержку Equatable (ну и слегка поправив логику).

Правка: 10 авг. 2018 14:48

patsanchik3Постоялецwww10 авг. 201814:57#6
а если усложнить вводные - добавив время ...
проект то играется - но как обычно расширение функционала уже пугает разработчиков а фичи добавлять надо.
Сколько в процентном соотношении разумно тратить на процесс рефакторинга ? (не забывая при этом добавлять новые фичи)
ZabПостоялецwww10 авг. 201815:27#7
Какое-то время можно без рефакторинга вообще. Но когда заплатки сидят на заплатках и отваливаются под собственной тяжестью, добавление заплаток новых становится дороже полной перетряски. Если на проекте есть опытный человек, он это вовремя почует и возможно ему менеджеры не помешают отрефакторить. С менеджерами надо жестко, они чаще всего не понимают, что тут уже нельзя "немного додавить". Не все жестко могут, но если могут, менеджерам деваться некуда, согласятся, сами то они работу не сделают и разработчика на ходу менять не станут.

Наличие на проекте архитектора позволит рефактоингом заниматься не постоянно. Порядок некоторое время сохраняется, но задача то постоянно меняется, структура проекта все равно перестанет соответствовать, рано или поздно. Если же архитектурная работа выполняется кем-то на общественных началах, по наитию, порядок становится лишь локальным, приходится все время все перерабатывать.

Правка: 10 авг. 2018 15:36

DelfigamerПостоялецwww10 авг. 201815:35#8
CasDev
> Например, как жопой чувствовал, что надо будет кнопку "Save" дизаблить, если
> изменений нет.
Вот, кстати, зачем? Что плохого случится, если ещё раз сохранить то же состояние в тот же файл?
entrywayПостоялецwww10 авг. 201816:17#9
В крестах и студии - целое событие. В нормальных языках и иде - процесс.
CasDevПостоялецwww10 авг. 201817:29#10
Delfigamer
> Вот, кстати, зачем? Что плохого случится, если ещё раз сохранить то же состояние в тот же файл?

Project Manager это понимает. Начальство - нет )

Zab
Сразу видно опытного человека.
У меня из примерно 10 проектов, в которые я приходил "спасать", код был хороший (почти не переделывал при выпиливании фич) в одном и относительно не разваливался ещё в одном (там просто я добавлял новые экраны, слава те господи, добавлять фичи надо было почти не затрагивая старые экраны).
Остальные просто переписывались на 80-90% в процессе контроллер за контроллером (и это было быстрее - я обычно приходил не первым прогером на замену, а вторым-четвертым). И за два-три месяца делал примерно столько же, сколько товарищи за год (хотя чего греха таить - по готовому API и ТЗ, где изменений уже ноль, это очень просто делать).

Правка: 10 авг. 2018 17:34

DelfigamerПостоялецwww10 авг. 201818:53#11
CasDev
> Project Manager это понимает. Начальство - нет )
Понимает смысл фичи или понимает её ненужность? :/
kiparУчастникwww10 авг. 201819:17#12
Ну, с точки зрения пользователя всегда приятно видеть - поменял ты что-то или нет. Особенно если не очень в программе разбираешься и не уверен какие действия меняют данные в файле, а какие - просто их по-другому отображают.
Да и просто - кнопка серая значит всё ок и ничего не потеряется, кнопка синяя - режим паранойи.
DelfigamerПостоялецwww10 авг. 201819:51#13
kipar
+ Показать
tacПостоялецwww10 авг. 201822:04#14
тут критерий один, как что то становится сложно сделать в коде - делаем рефактор, и это просто работа нельзя продолжать, то что нельзя сделать ... не подстраивайся под код, а переделывай то, что было заложено в него, когда мы были молодые и условия были много проще /в смысле модели, декомпозиции, бизнес правил/
Страницы: 1 2 Следующая »

/ Форум / Программирование игр / Общее

2001—2018 © GameDev.ru — Разработка игр