1. Куча / Говнокод #27868

    0

    1. 1
    https://250bpm.com/blog:36/

    > At that point every semi-decent programmer curses spaghetti code in general and the author of the function in particular and embarks on the task of breaking it into managable chunks, trying to decompose the problem into orthogonal issues, layer the design properly, move the common functionality into base classes, create convenient and sufficiently generic extension points et c.

    <…>

    It turns out that the 1500-line function was parsing a network protocol. It is a 30-year old, complex and convoluted Behemoth of a protocol, defined by many parties fighting over the specification, full of compromises and special cases, dragged through multiple standardisation bodies and then anyway slightly customised by each vendor.

    <...>

    Unfortunately, it turns out that the tweak intersects the boundary between two well-defined components in the implementation. The right thing to do would be to re-think the architecture of the parser and to re-factor the codebase accordingly. <

    Вот так вот. Не стоит спешить любую портянку из 100+ строк кода называть "спагетти-кодом". Код может быть функцией микроконтроллера в котором вызов функции достаточно дорогой по памяти/времени, сложным алгоритмом и пр. Спагетти - это про организацию кода. Монолитный (но хорошо мапящийся на домен) код понять проще, чем солянку из функций, классов и пр. которые решают непонятно какую задачу (это и есть спагетти-код). Алсо https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence

    Запостил: JaneBurt, 12 Декабря 2021

    Комментарии (24) RSS

    • Спагетти появляется обычно потому что программист плохо понимает домен с которым работает. Так в моей практике расчет одной фигни был не в одной функции, а размазан по всему компоненту, т.к. сначала поняла так, потом аналитик сказал "не, фигня, XXXPR в этом ползунке должен считаться по-другому", definition of done в задачах не был явно отражен, статьи в Confluence переставали быть актуальными со скоростью Соника, заебанный аналитик/ПМ посылал читать вайтпейперы, смотреть тематические видосы. Либо сам по себе домен - то еще спагетти с постоянными "фичами" без фундаментальной переработки системы.
      Ответить
      • Заканчивай свои дела. Скоро помирать.
        Ответить
        • Я понимаю, что инфляция, суперстимулы, истощение углеводородов, programmer job is obsolete, собственные тараканы в голове, все дела. Но до апокалипсиса еще лет 5 как минимум.
          Ответить
    • Сколько должно пройти лет чтобы появился штамм с названием Linux?
      Ответить

    Добавить комментарий