juan_gandhi: (Default)
[personal profile] juan_gandhi
Т.к. есть такое европейское мнение, что рефакторинг - это метросексуальный аджальный метод продажи навоза юзерам, то я вдруг задумался - а что в Европе делают, когда их хакают и информацию воруют? Ну понятно, против воровства в Европе есть законы, например, GDPR; а в Швейцарии так даже масс шутинги запрещены (это мне швейцарцы когда-то сказали); но вот если случилось, так что тогда? Компьютеры сжигают на свалке, покупают новые, и пишут для них новые программы?

Ведь, я слышал, в Европе сначала на Z-notations и на Rational Rose весь дизайн правильно напишут, так что европейская программа не может быть неправильной, так что и рефакторить там нечего. Она совершенна.

И вот если она сломалась, то чо. Неужели с нуля переписывают?

Тесты-то понятное дело что не нужны; программист выполняет приказ менеджера, а менеджер не может ошибаться; и только плохой программист пишет код с ошибками. Немецкий код работает везде и без ошибок. Ой, тут сразу вспоминается Энигма, и три ушлых поляка, которые ее кракнули как раз перед Второй Мировой. 

Date: 2018-03-14 01:36 pm (UTC)
snowps: (Default)
From: [personal profile] snowps
От Скайпа, написанного разработчиком, даже протоколов первоначальных не осталось, не говоря уже о клиентах, - Майкрософт умудряется испортить почти всё, к чему прикасается. Слава богу, что со времён написания первых версий NT был создан достаточно хороший задел в архитектуре системы, Win32 до сих пор является одной из самых быстрых реализаций абстракций графического интерфейса (хотя и довольно неудобной в программировании), но и там разработчики почти в полном составе сбежали из этого болота. Версия под Андроид - это вообще такое, что ни одного приличного слова подобрать не могу, - полное ощущение, что они написали этот кошмар на каком-то своём фреймворке и потом перепёрли на джаву автоматическим транслятором.

Там выше я давал ссылку на ЙоТьюб с роликом про тирдаун этого бокса, DME7000, - это древний девайс, который был разработан в середине девяностых, производился лет 5-7 для использования в телекомпаниях, он даже не HD (тогда HD в бродкасте ещё можно считать не было). Там внутри наверное штук десять-двадцать совершенно разных процессорных блоков, с разной архитектурой, системами команд, функционалом и это всё способно работать совместно годами без единого сбоя, поскольку если глюки будут происходить в оборудовании для бродкаста, следующую модель просто не купят, репутация будет испорчена. И именно вот этот класс задач требует от программистов того, что называется качественным кодом-продуктом, при этом они должны разбираться не только в высокоуровневом фреймворке и буковки туда-сюда гонять, а обслуживать в рилтайме очень сложное железо, для которого даже библиотек никаких нет, поскольку оно только что было разработано.

Рефакторинг приходится делать тогда, когда код изначально не предусматривал быстрые изменения, т.е. либо была ошибка проектирования, либо сознательный уход к жёсткой логике в продукте, требующий дальнейших платных услуг для клиента, - в этом смысле продажа навоза юзерам тоже случается регулярно. Если всё так быстро меняется - надо писать внутренний скриптинг в парсере, чтобы не менять движок, а вносить коррективы в алгоритмы, не трогая уже отлаженный код, но никто так не делает, поскольку как только юзеры поймут, что можно подстраивать софт самим и не обращаться за апдейтами к производителю, бабок больше платить не будут. По той же причине все сейчас норовят подсадить клиентов на SaaS и контролируемое аутсорсером облако, чтобы не дай бог не слез с крючка. Я не вчера родился, - знаю, как работает это болото.
Edited Date: 2018-03-14 01:51 pm (UTC)

Date: 2018-03-14 06:24 pm (UTC)
From: [personal profile] sassa_nf
"надо писать внутренний скриптинг в парсере, чтобы не менять движок, а вносить коррективы в алгоритмы"

didn't you suggest to invent an interpreted language and write a VM for it just now?

Date: 2018-03-14 08:27 pm (UTC)
snowps: (Default)
From: [personal profile] snowps
Это всего лишь означает, что либо тот DSL был плохо спроектирован и не позволял решать необходимые задачи, либо идея дать пользователям лишний инструмент настройки была признана экономически невыгодной и от него было решено избавиться (такие решения в софте в духе "нефиг давать пользователям лишнюю свободу, ибо меньше можешь - крепче спишь" пошли от Эппла и загадили весь рынок пользовательского софта, включая веб-фронтэнды). Что касательно монад, то ничего не предложу - парсинг и его результаты как таковые к монадам не имеют никакого отношения, это исключительно вопрос внутренней реализации парсера.

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

Date: 2018-03-14 09:25 pm (UTC)
snowps: (Default)
From: [personal profile] snowps
Вполне возможно, а может и совсем наоборот. По крайней мере неочевидная идея, что парсер надо писать на хаскеле или скале, надо мной не довлеет.

Date: 2018-03-14 10:46 pm (UTC)
snowps: (Default)
From: [personal profile] snowps
Даже если бы они и были, то это не имеет отношения к обсуждаемой теме. :) Думаю мы на данном этапе в любом случае останемся при своих мнениях.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

July 2025

S M T W T F S
  12345
6789 1011 12
131415 1617 1819
20212223242526
2728293031  

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 26th, 2025 10:18 am
Powered by Dreamwidth Studios