Прочитал эту книжку. Вообще я до хера книжек прочитал, просто эту только что. Сейчас перескажу ключевые очевидные тезисы. Перескажу общё, ни слова про программирование, чтобы ты мог интерпретировать это под свою деятельность.
Вкратце:
Баланс сила, крайности могила.
__________________
Подробнее.
Рефакторинг — хирурго-косметическое улучшение какой-то системы или конструкции, чтобы в ней было проще разобраться, легче внести изменения, быстрее и приятнее работать. В моушене под этим можно подразумевать реструктуризацию проекта.
_________________
Главный признак, что пора бы порефакторить:
Для внесения одной правки тебе нужно править несколько моментов в разных местах проекта. С этим можно жить, но с этим опасно работать дальше, потому что говно будет копиться и размножаться, и однажды рефакторить станет уже поздно. Поздно — это когда построить проект заново было бы быстрее, чем внести одну правку. Такое у меня было один раз, я в натуре отгрохал проект заново. Мне не понравилось.
_________________
Собсна тезисы:
1. Раздроби задачу как можно мельче, решение каждой подзадачки тестируй. Чем меньше подзадача, тем легче поймать и исправить в ней ошибку.
2. Не борщи с дробью. Если вероятность ошибки в подзадаче околонулевая, то её отдельное решение и тестирование — безвозмездная трата времени.
3. Не стремайся делегировать, цепочные делегации очень даже ок, если каждое звено выполняет свою часть работы. Под делегейтом можешь понимать прекомпозы в АЕ, или инстансы в синьке, или любые сущности с таким же смыслом.
4. Не борщи с делегированием, убирай лишних посредников, которые бездельничают (ебут вола — прим. автора). Такие посредники кушают твоё внимание, не компенсируя это пользой.
5. Разделяй ответственность, не допускай чтоб две (или более) сущности копались в делах друг друга больше, чем в своих. Если копаются — вытащи им кишки, распредели нормально и засунь обратно. Это могут быть экспрешены, слишком обильно ссылающиеся на другой слой или икспрессы, сильно подсматривающие в другой объект. Частенько такое братание вынуждает тебя вносить одну правку сразу в два места.
6. Не давай сущности много ответственности. Если у многозадачника сломается что-то в фундаменте, то ты лишишься сразу всего спектра его услуг. Если сущность выполняет до хера задач, раздели её на две\три\сколькопонадобится и следом проверь пункт 5.
7. Не давай сущностям мало ответственности. Каждая сущность хавает твоё внимание (время), и если она при этом мало что делает, то она хронофаг. Таких может быть много, в этом случае их можно пообъединять, следом проверить пункты 5 и 6. Если таких мало, можно передать их функционал ближайшим по семантике сущностям и уничтожить дармоедов.
9. Если твоя конструкция/система одноразовая, то смело забивай на все предыдущие пункты, не трать время на качество, которое здесь неуместно (одноразовость подразумевает качество "на отъебись" во имя дешевизны и быстроты).
8. Рефакторинг даёт пользу только на длинной дистанции. Менеджера (или кто с тебя спрашивает) обычно не интересуют длинные дистанции, ему надо срочно внести правку и не делать мозгу с этими твоими терминами. Поэтому вслух лучше не заикаться, просто попроси больше времени на какую-то задачку, мол это сложно ууу охереть, и часть этого времени потрать на рефакторинг.
10. Если тебе покажется, что какое-то улучшение пойдёт во вред производительности — скорее всего показалось. Но если в итоге окажется и правда во вред, то ничего страшного: наладить производительность в чистой и ясной системе гораздо проще, чем оптимайзить паучий бред с волами и делегациями.
11. Чистой и ясной системы не бывает, всегда есть нерешаемые моменты, которые придётся оставить нерешёнными. Такова суровая реальность.
12. Бегит.
Вкратце:
Баланс сила, крайности могила.
__________________
Подробнее.
Рефакторинг — хирурго-косметическое улучшение какой-то системы или конструкции, чтобы в ней было проще разобраться, легче внести изменения, быстрее и приятнее работать. В моушене под этим можно подразумевать реструктуризацию проекта.
_________________
Главный признак, что пора бы порефакторить:
Для внесения одной правки тебе нужно править несколько моментов в разных местах проекта. С этим можно жить, но с этим опасно работать дальше, потому что говно будет копиться и размножаться, и однажды рефакторить станет уже поздно. Поздно — это когда построить проект заново было бы быстрее, чем внести одну правку. Такое у меня было один раз, я в натуре отгрохал проект заново. Мне не понравилось.
_________________
Собсна тезисы:
1. Раздроби задачу как можно мельче, решение каждой подзадачки тестируй. Чем меньше подзадача, тем легче поймать и исправить в ней ошибку.
2. Не борщи с дробью. Если вероятность ошибки в подзадаче околонулевая, то её отдельное решение и тестирование — безвозмездная трата времени.
3. Не стремайся делегировать, цепочные делегации очень даже ок, если каждое звено выполняет свою часть работы. Под делегейтом можешь понимать прекомпозы в АЕ, или инстансы в синьке, или любые сущности с таким же смыслом.
4. Не борщи с делегированием, убирай лишних посредников, которые бездельничают (ебут вола — прим. автора). Такие посредники кушают твоё внимание, не компенсируя это пользой.
5. Разделяй ответственность, не допускай чтоб две (или более) сущности копались в делах друг друга больше, чем в своих. Если копаются — вытащи им кишки, распредели нормально и засунь обратно. Это могут быть экспрешены, слишком обильно ссылающиеся на другой слой или икспрессы, сильно подсматривающие в другой объект. Частенько такое братание вынуждает тебя вносить одну правку сразу в два места.
6. Не давай сущности много ответственности. Если у многозадачника сломается что-то в фундаменте, то ты лишишься сразу всего спектра его услуг. Если сущность выполняет до хера задач, раздели её на две\три\сколькопонадобится и следом проверь пункт 5.
7. Не давай сущностям мало ответственности. Каждая сущность хавает твоё внимание (время), и если она при этом мало что делает, то она хронофаг. Таких может быть много, в этом случае их можно пообъединять, следом проверить пункты 5 и 6. Если таких мало, можно передать их функционал ближайшим по семантике сущностям и уничтожить дармоедов.
9. Если твоя конструкция/система одноразовая, то смело забивай на все предыдущие пункты, не трать время на качество, которое здесь неуместно (одноразовость подразумевает качество "на отъебись" во имя дешевизны и быстроты).
8. Рефакторинг даёт пользу только на длинной дистанции. Менеджера (или кто с тебя спрашивает) обычно не интересуют длинные дистанции, ему надо срочно внести правку и не делать мозгу с этими твоими терминами. Поэтому вслух лучше не заикаться, просто попроси больше времени на какую-то задачку, мол это сложно ууу охереть, и часть этого времени потрать на рефакторинг.
10. Если тебе покажется, что какое-то улучшение пойдёт во вред производительности — скорее всего показалось. Но если в итоге окажется и правда во вред, то ничего страшного: наладить производительность в чистой и ясной системе гораздо проще, чем оптимайзить паучий бред с волами и делегациями.
11. Чистой и ясной системы не бывает, всегда есть нерешаемые моменты, которые придётся оставить нерешёнными. Такова суровая реальность.
12. Бегит.
Здарова. Это первый оффтоп на канале, и возможно последний. Либо не последний. А может и не первый.
Посты в этом году были редкие. Но меткие. Спасибо тебе за фидбек, особенно за трешовый и угарный, за мемасики в комментах, за орные стикеры. И за поехавшие идеи, которые я люблю. Ещё мне приятно, когда ты с искренним интересом вопрошаешь «как блять?», но это почему-то редко случается.
Отдельно хочу поблагодарить охуевших господинов в чате, вы двое или сколько вас там, восхищаете и заряжаете.
Обнял поднял подбросил убежал.
Посты в этом году были редкие. Но меткие. Спасибо тебе за фидбек, особенно за трешовый и угарный, за мемасики в комментах, за орные стикеры. И за поехавшие идеи, которые я люблю. Ещё мне приятно, когда ты с искренним интересом вопрошаешь «как блять?», но это почему-то редко случается.
Отдельно хочу поблагодарить охуевших господинов в чате, вы двое или сколько вас там, восхищаете и заряжаете.
Обнял поднял подбросил убежал.
This media is not supported in your browser
VIEW IN TELEGRAM
Волюметрик фрактал нахуй нойз.
Trve Shlak
Волюметрик фрактал нахуй нойз.
This media is not supported in your browser
VIEW IN TELEGRAM
Убрал рябь, ещё чот там сделал.
This media is not supported in your browser
VIEW IN TELEGRAM
Наделал вфх и тебе покушать посмотреть принёс. Это всё процедурно шейдерами, без спрайтов и текстур с говном. И в браузере.
This media is not supported in your browser
VIEW IN TELEGRAM
8bit-HDR декаль. Я бы даже сказал LDR — low static point.
This media is not supported in your browser
VIEW IN TELEGRAM
Освещение текстурочкой с такими себе тенями.
Текстура для освещения в этой же сцене за стенкой в падике рендерится в таргет.
Текстура для освещения в этой же сцене за стенкой в падике рендерится в таргет.
Media is too big
VIEW IN TELEGRAM
Внеплановое ностальжи по шейпикам. Аешный проект в комменте.
This media is not supported in your browser
VIEW IN TELEGRAM
Освещёночка.
Если бы на каждую лампочку было бы по источнику света, то смерть страшная от наркотиков.
Хотя на самом деле хуй его знает, я почему-то и не проверял.
Если бы на каждую лампочку было бы по источнику света, то смерть страшная от наркотиков.
Хотя на самом деле хуй его знает, я почему-то и не проверял.
This media is not supported in your browser
VIEW IN TELEGRAM
Плексус курильщика. Шейпиками.
Однажды, будучи в гемдеве, мне довелось ловко-весело поработать в стол. И я отработал в этот стол ПО САМЫЕ НОЖКИ НАХОЙ.
Первая наработка из четырёх.
Первая наработка из четырёх.
Teletype
Декали на webGL.
Код не покажу, потому что это НДА и просто душно. Алгоритм расскажу, потому что это можно и круто. Всё это происходило давно, и все...
Третья наработ очка, для меня самая ламповая тёплая из всех.
Teletype
Расчлен на Unity.
Код не покажу, потому что это НДА и просто душно. Алгоритм расскажу, потому что это можно и круто. Всё это происходило давно, и все...
И четвёртая наработка, ВНЕЗАПНО не про CG.
Скелетор вернётся когда-нибудь.
Скелетор вернётся когда-нибудь.
Teletype
Баланс билдов.
В какой-то игрульке у нас были персонажи со статами. На входе у игрока есть всего 4 параметра, по которым ему нужно каким-то образом...
This media is not supported in your browser
VIEW IN TELEGRAM
Смотрю на этот дейлик, и думаю: «Баляяя.»
This media is not supported in your browser
VIEW IN TELEGRAM
Хотел было сорвать себе целку по вебдеву, но оказалась, что она уже сорвана, и я там уже откуда-то что-то шарю. Это стата продаж в моём первом баре, дефолтное приложение кассы отображает её слегка кончено, поэтому мне хочется зачеканить по-своему. Пока что только выборки осеменил.
This media is not supported in your browser
VIEW IN TELEGRAM
Функционал доебошил. Ща там по юиксу чего-нибудь придумаю либо не придумаю, размещу где-то там, и можно обратно в шейпики возвращаться.
Что мне вообще хотелось с этой статой:
На изичах смотреть рокетсаенс-данные, типа квартилей и выбросов. Готовченко.
Сравнивать между собой группы продаж, например все пивасы против всех крепачей. Есть.
Фильтровать данные, например не учитывать все продажи до шести вечера и в понедельники. Сделяль.
Больше я ни хера не хотел. А больше ни хера и не сделал, ✔️.
Что мне вообще хотелось с этой статой:
На изичах смотреть рокетсаенс-данные, типа квартилей и выбросов. Готовченко.
Сравнивать между собой группы продаж, например все пивасы против всех крепачей. Есть.
Фильтровать данные, например не учитывать все продажи до шести вечера и в понедельники. Сделяль.
Больше я ни хера не хотел. А больше ни хера и не сделал, ✔️.