опубликовал kovarex
Привет,
давно не виделись 🙂
Нам, очевидно, есть о чем поговорить, когда речь идет об изменениях в игре, которые мы недавно внесли или планируем сделать, но мы пока не хотим делиться ими.
Тем не менее, в настоящее время есть тема, очень актуальная для нас, и мы можем поделиться ею, не раскрывая никаких конкретных изменений в игре. Сегодняшний пост будет довольно техническим и связан с программированием, поэтому, если вы только что пришли за новостями об игре, можете смело пропустить этот.
Uncle bob
Теперь, когда здесь только разработчики, я могу поделиться своим новым открытием Uncle Bob и его действительно хорошее объяснение некоторых фундаментальных принципов, связанных с управлением проектами программирования, и многое другое. Если у вас на руках 8,5 часов свободного времени, я предлагаю вам посмотреть его, так как в дальнейшем будут упоминания о том, о чем он упоминает.
Моя общая мысль заключалась в том, что мы поддерживаем качество кода на достаточно высоком уровне и у нас есть достаточно хорошая методология работы. Но на самом деле мы во многих местах были жертвами избирательной слепоты. Интересно, как некоторые части кода были просто хороши с самого начала и оставались довольно хорошими на протяжении всех лет, даже когда код был сильно расширен… а часть кода просто сильно испортилась.
И ответ объясняется метафорой воскового основания.
Вы спросите, что такое восковая основа и как она связана с программированием? Мой дедушка был очень увлеченным пчеловодом. Мое детство прошло в саду, где нужно было быть осторожным, где ступаешь, где садишься, и нельзя было оставить ничего сладкого, просто лежащего, потому что очень скоро на нем можно было найти большую кучу пчел. Мне приходилось помогать ему и время от времени узнавать о пчелах, что я искренне ненавидел, потому что знал, что у меня никогда не будет собственных пчел. Но в одном он был прав, все, что ты узнаешь, так или иначе будет тебе полезно.
Одна из работ, которые вы выполняете с пчелами, заключается в том, что когда пчелы отбирают мед, вы кладете восковую основу в улей, которая выглядит следующим образом:
Его основная функция заключается в том, что пчелы строят свои плитки равномерно и довольно быстро, поскольку вполне естественно следовать оптимизированной структуре, которая уже существует. Именно это происходит с кодом, который с самого начала имеет хороший расширяемый дизайн.
С другой стороны, есть код, который либо имел ленивый исходный дизайн, либо никогда не ожидалось, что он станет настолько сложным, и каждое из изменений было лишь небольшим дополнением к беспорядку. Со временем мы привыкли к мысли, что эта часть кода — просто ужас, а внесение небольших изменений раздражает. Это означает, что нам просто не нравится эта часть кода, и мы хотим тратить как можно меньше времени на работу с ней. В результате проблема постепенно выходит из-под контроля.
Когда я взял очки Uncle Bob и начал осматриваться, я быстро обнаружил несколько таких проблемных мест. Не случайно, что эти места отнимали непропорционально большое количество времени разработки, не только потому, что вносить изменения сложно, но и потому, что они полны регрессионных ошибок и, как правило, являются нескончаемым источником проблем. Продолжить чтение