продолжая беседу
Mar. 9th, 2018 08:34 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Т.к. есть такое европейское мнение, что рефакторинг - это метросексуальный аджальный метод продажи навоза юзерам, то я вдруг задумался - а что в Европе делают, когда их хакают и информацию воруют? Ну понятно, против воровства в Европе есть законы, например, GDPR; а в Швейцарии так даже масс шутинги запрещены (это мне швейцарцы когда-то сказали); но вот если случилось, так что тогда? Компьютеры сжигают на свалке, покупают новые, и пишут для них новые программы?
Ведь, я слышал, в Европе сначала на Z-notations и на Rational Rose весь дизайн правильно напишут, так что европейская программа не может быть неправильной, так что и рефакторить там нечего. Она совершенна.
И вот если она сломалась, то чо. Неужели с нуля переписывают?
Тесты-то понятное дело что не нужны; программист выполняет приказ менеджера, а менеджер не может ошибаться; и только плохой программист пишет код с ошибками. Немецкий код работает везде и без ошибок. Ой, тут сразу вспоминается Энигма, и три ушлых поляка, которые ее кракнули как раз перед Второй Мировой.
Ведь, я слышал, в Европе сначала на Z-notations и на Rational Rose весь дизайн правильно напишут, так что европейская программа не может быть неправильной, так что и рефакторить там нечего. Она совершенна.
И вот если она сломалась, то чо. Неужели с нуля переписывают?
Тесты-то понятное дело что не нужны; программист выполняет приказ менеджера, а менеджер не может ошибаться; и только плохой программист пишет код с ошибками. Немецкий код работает везде и без ошибок. Ой, тут сразу вспоминается Энигма, и три ушлых поляка, которые ее кракнули как раз перед Второй Мировой.
no subject
Date: 2018-03-14 11:45 am (UTC)И не знаю, о каких боксах от сони вы говорите, но этот бокс если не принимает апдейты от нетфликса, то он не особо и нужен в хозяйстве. Мой року, пока был року, апгрейдился регулярно; сейчас эта хрень прямо в телевизоре, слава те господи. Рефакторинг тут совершенно не при чем, правда. Апгрейды идут потому, что мир меняется достаточно быстро.
no subject
Date: 2018-03-14 01:36 pm (UTC)Там выше я давал ссылку на ЙоТьюб с роликом про тирдаун этого бокса, DME7000, - это древний девайс, который был разработан в середине девяностых, производился лет 5-7 для использования в телекомпаниях, он даже не HD (тогда HD в бродкасте ещё можно считать не было). Там внутри наверное штук десять-двадцать совершенно разных процессорных блоков, с разной архитектурой, системами команд, функционалом и это всё способно работать совместно годами без единого сбоя, поскольку если глюки будут происходить в оборудовании для бродкаста, следующую модель просто не купят, репутация будет испорчена. И именно вот этот класс задач требует от программистов того, что называется качественным кодом-продуктом, при этом они должны разбираться не только в высокоуровневом фреймворке и буковки туда-сюда гонять, а обслуживать в рилтайме очень сложное железо, для которого даже библиотек никаких нет, поскольку оно только что было разработано.
Рефакторинг приходится делать тогда, когда код изначально не предусматривал быстрые изменения, т.е. либо была ошибка проектирования, либо сознательный уход к жёсткой логике в продукте, требующий дальнейших платных услуг для клиента, - в этом смысле продажа навоза юзерам тоже случается регулярно. Если всё так быстро меняется - надо писать внутренний скриптинг в парсере, чтобы не менять движок, а вносить коррективы в алгоритмы, не трогая уже отлаженный код, но никто так не делает, поскольку как только юзеры поймут, что можно подстраивать софт самим и не обращаться за апдейтами к производителю, бабок больше платить не будут. По той же причине все сейчас норовят подсадить клиентов на SaaS и контролируемое аутсорсером облако, чтобы не дай бог не слез с крючка. Я не вчера родился, - знаю, как работает это болото.
no subject
Date: 2018-03-14 06:24 pm (UTC)didn't you suggest to invent an interpreted language and write a VM for it just now?
no subject
Date: 2018-03-14 07:09 pm (UTC)What's funny, two companies ago I did exactly the opposite, kicked out the "external dsl", that is, "внутренний скриптинг", switching to an internal dsl, that is, plain scala with good monadic functions. I wonder how our friend would suggest to deal with monads in a scripting language.
no subject
Date: 2018-03-14 08:27 pm (UTC)Задача сделать скриптовый язык для реконфигурации парсера под меняющиеся задачи - это куда как более интересная и сложная задача, чем под каждое изменение рефакторить основной код, как ныне любят, но это выходит за рамки колеи, поэтому этим мало кто занимается из функциональщиков и уж точно не будут заниматься в коммерческой фирме, пишущей софт на заказ, поскольку это прямой путь к снижению доходов из-за резкого увеличения функциональности и универсальности софта и снижения роли разработчика.
no subject
Date: 2018-03-14 08:49 pm (UTC)no subject
Date: 2018-03-14 09:25 pm (UTC)no subject
Date: 2018-03-14 09:38 pm (UTC)no subject
Date: 2018-03-14 10:46 pm (UTC)