amarao: (Default)
[personal profile] amarao
(почему я про это пишу? Потому что я уже больше месяца занимаюсь самым тяжёлым рефакторингом, который у меня когда-либо был, по кодовой базе, которую я не могу держать в голове).

Ещё одна интересная цель для рефакторинга: уменьшать что-то. Чаще всего, люди хотят уменьшить что? Когнитивную нагрузку.

Что такое когнитивная нагрузка? Это когда приходится много помнить. Одно из решений в такой ситуации, это "квадратно-гнездовой подход", когда конкретное место в коде, пусть и простое, и даже проще чем соседи, делается сложнее ради того, чтобы быть одинаковым. Да, в конкретном месте всё просто и состоит их 5 строк вместо 20, но это ДРУГИЕ 5 строк, а рядом 199 раз по 20 одинаковых строк (однинаковой структуры), так что эти 5 простых строк, на самом деле не "5 строк вместо 20", а это "выкинуть 20-строчный паттерн из головы и разбираться с *особым случаем* из 5 новых строк". В такой сиутации рефакторинг может выглядеть странно: было просто и на 5 строк, а стало сложно и на 20, но истинная ценность в том, что раньше было 199 x один, плюс второй, а стало 200 x один, и это значительно проще.

Понять важность этого может только человек, который видит эти 199. Работая над локальным кусочком есть огромное желание срезать эти лишние хвосты и сделать проще. Баланс между локальной простотой и глобальной сложностью - это вечная драма, у которой нет простого ответа...

Date: 2024-02-08 02:26 pm (UTC)
kondybas: (Default)
From: [personal profile] kondybas
Так получается, когда криво віполнен єтап структурной и функциональной декомпозиции, и вместо строгой аналитической модели, пусть не всегда простой, получается функция, заданная таблично. Хороший пример подобного научного инженерного подхода - єто гидравлика, где вместо не вполне представиміх функций сплошь и рядом имеют место номограммі, набитіе ємпирически. Оно все даже неплохо работает, но понимания в них - ноль целіх, ноль в периоде.

Profile

amarao: (Default)
amarao

February 2026

S M T W T F S
123456 7
8910111213 14
15161718192021
22232425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 26th, 2026 08:03 am
Powered by Dreamwidth Studios