Вход | Регистрация


О жизни... :: Психология и отношения

OFF: Почему программисты всегда хотят выкинуть старый код и написать новый

OFF: Почему программисты всегда хотят выкинуть старый код и написать новый
Я
   ildary
 
26.04.18 - 22:47
Есть причина, по которой программисты всегда хотят выкинуть старый код и написать новый: они думают что старый код - плохой. Возможно они неправы. Причина, по которой они думают что старый код - плохой, из-за кардинального, фундаментального закона программирования: тяжелее читать код, чем его писать.
                                       Джоэль Спольски.
 
 
   zwei
 
1 - 26.04.18 - 22:53
http://lurkmore.to/Фатальный_недостаток
   zwei
 
2 - 26.04.18 - 22:55
А Джоэлю надо было просто вступление, чтобы перейти к теме.
   ivanovpetr79
 
3 - 26.04.18 - 23:07
Эти люди не знают что такое рефакторинг
   ivanovpetr79
 
4 - 26.04.18 - 23:09
Переписывать код заново - антипаттерн. Там скрыто куча информации, его нужно только рефакторить.
   DmitrO
 
5 - 26.04.18 - 23:13
Однако у нормального программиста новый код всегда должен быть лучше чем старый, иначе его надлежит уволить.
   ivanovpetr79
 
6 - 26.04.18 - 23:16
Еще раз, старый код не нужно выкидывать, его нужно рефакторить.
   Lady исчезает
 
7 - 26.04.18 - 23:36
(0) Ну. Сказал этот чувак это. И чьто? Чьто-чьто. Да ничьто! (с) фильм "Ликвидация".

_Свои_ мысли как-то надо выражать. Если есть, конечно. Чья-то цитата - не Ваша мысль и не аргумент и тем более не аксиома.
   BeerHelpsMeWin
 
8 - 27.04.18 - 00:07
Работает - не трогай.
   vcv
 
9 - 27.04.18 - 05:55
(5) >> новый код всегда должен быть лучше чем старый
Озвучьте критерии этого "лучше".
   Emery
 
10 - 27.04.18 - 07:17
(0) Здесь важна не только парадигма «старый» – «новый», но и «свой» – «чужой». Однако если чужой код хорошо работает, то зачем его менять? Даже если в нем трудно разобраться. В этом случае просто больше стимула разбираться. Но вот если код работает плохо, то уже не важно, чей он, свой или чужой. Действительно иногда легче переписать даже свой код, чем рефакторить его. Чего уж там говорить про чужой.

Люди все разные и всех свои собственные представления, что такое «хорошо» и «красиво». Одному нравиться лепить в кучу все операторы и игнорировать разделители, отступы и пустые сроки. А другого это жутко раздражает и пока он не «причешет» чужой код под свои предпочтения, он не способен вникать в него по существу.

Главное, думаю, не «фундаментальный закон программирования», который, скорее всего, высосан из пальца, а вечно стремление человека к совершенству. По принципу, это программа плохая (моя, твоя – не важно), напиши лучшую. И вообще «лучшее – враг хорошего».

(9) > Озвучьте критерии этого "лучше".

По-моему, это очевидно. Лучше, в данном контексте, значит, что новая программа (версия) является гибче, приятней (комфортней, дружелюбней), эффективней, более быстрой, с большим функционалом и возможностями, менее объемной и ресурсоемкой и т.д. и т.п., чем старая.
 
 Рекламное место пустует
   zwei
 
11 - 27.04.18 - 07:33
(10)  Лучше, в данном контексте, значит, что новая программа (версия) является гибче, приятней (комфортней, дружелюбней), эффективней, более быстрой, с большим функционалом и возможностями, менее объемной и ресурсоемкой и т.д. и т.п., чем старая.

И для этого её надо переписать на ассемблере с разворотом циклов и прочими прыжками.
Как думаешь. Код. Улучшится?
   Повелитель
 
12 - 27.04.18 - 07:49
(0) Не нужно г..внокодить.

Я свой код не переписываю, даже 10 летней давности.
Открываю, он написан по стандартам 1с (похож на код из типовых). Легко читаем, есть коменты. Зачем переписывать?
   ivanovpetr79
 
13 - 27.04.18 - 07:51
https://youtu.be/otrfSgeK3JI

Хохлы учат русских как писать чистый код. Лекция. Осторожно, укросми
   VladZ
 
14 - 27.04.18 - 07:54
(0) Все подряд переписывать не нужно. А вот кривые и неоптимальные куски кода - нужно. "Кайдзен в бизнесе" должен плавно переходить в "Кайдзен в разработке ПО".

Для тех, кто не в курсе: Кайдзен - это процесс непрерывного усовершенствования.
   aka AMIGO
 
15 - 27.04.18 - 07:56
Свои коды трогать не надо. А вот чужие, кои присутствуют в модулях, надо править, при этом очень ругаться и эту ругань доносить до руководства.
А также постить на мисте.
   DrZombi
 
16 - 27.04.18 - 07:57
(0) Не всегда хотят выкинуть старый код.
Вот мне хочется всегда выкинуть говно код, реализованный по принципу "А копирну я одно и тоже раз 200, так же быстро" :)
   Emery
 
17 - 27.04.18 - 07:57
(11) > И для этого её надо переписать на ассемблере с разворотом циклов и прочими прыжками.
Как думаешь. Код. Улучшится?

Чтобы улучшить работу, скажем, учетной программы, совсем необязательно переписывать ее на ассемблере. Хотя бы потому, что с этой задачей можно не справиться физически. Тем не менее, в свое время целые игры писали на голом ассемблере, а у нас в университете учился сириец, который даже собственную операционную систему наваял на ассемблере (что-то типа примитивного ДОСа).

А вот улучшить бизнес-логику программы, поменять медленные алгоритмы на быстрые, увеличить гибкость программы и ее дружелюбность, так структурировать код, чтобы не потерять над ним контроль, даже через несколько лет, для всего этого вполне можно обойтись штатными средствами. Исходя из направленности нашего форума это может быть конфигуратор 1С или, для экстремалов, С++ ради написания ВК под 1С.
   DrZombi
 
18 - 27.04.18 - 07:57
+ А потом ковыряешь все 200 процедур и запросов, что бы все это не расплылось в итоге, тратя на это кучу времени :)
   Так мало знающий
 
19 - 27.04.18 - 07:59
(0) Как вариант, бывают ситуации когда руководство просит отчеты по отработанному времени и тогда программист разбор такого кода аргументирует как "Переписать код старого программиста".
   DrZombi
 
20 - 27.04.18 - 07:59
(15) Такой код как раз и шифруют и пароли ставят :)
   quest
 
21 - 27.04.18 - 07:59
(0) Все просто - предыдущий программист не оставил документации, либо требования к ПО поменялись, и старый код не удовлетворяет новым запросам.
(12) ЛПиП. Код типовых - не пример для подражания, и второе - за 10 лет изменился достаточно сильно.
   Emery
 
22 - 27.04.18 - 08:05
(17) + Еще очень важное значение имеет структура данных. Это вообще отдельная песня. Можно быть сколь угодно прекрасным кодировщиком, но легко делать структурные ошибки в данных. Которые как бы и не ошибки, но жизнь пользователей и даже обслуживающих программистов усложняют.
   Pahomich
 
23 - 27.04.18 - 08:06
...Часто и свой код легче переписать заново!
А, вообще, зависит от поставленной задачи. Если функционал добавить, иногда лучше старый. А если ошибку найти, то иногда лучше переписать..
   Рэйв
 
24 - 27.04.18 - 08:12
(0)Это не всегда оправдано, но всегда полезно. Потому что в процессе написания своего кода после того как наступишь на все грабли и споткнешься обо все подводные камни- ты будешь в теме на все 100% и точно знать как вся эта кухня работает.
   Кац
 
25 - 27.04.18 - 08:18
"код" в 1с - это слишком громко сказано
   Масянька
 
26 - 27.04.18 - 08:24
(0) Мысль правильная, но изложение...
Человек растет и совершенствуется. Поэтому нередко код, который написан вчера, сегодня уже был бы написан по-другому.
Хорошие программисты рано или поздно приходят к тому, что перестают переписывать. Потому что практически нет нареканий.
(25) Сдавайся :)))))
   Genayo
 
27 - 27.04.18 - 08:28
(15) Ну, когда изменение пары строчек в чужом запросе ускоряет его работу на 2-3 порядка, и таких запросов десятки - сдержаться тяжело...
   Serg_1960
 
28 - 27.04.18 - 09:34
(0) Во фразе "Есть причина, по которой программисты всегда хотят выкинуть старый код" допущена гипербола. Слово "всегда" - лишнее. Да и вообще, это "не та" цитата Джоэла, которую стоило бы озвучивать на форуме программистов 1С, где платформы и конфигурации меняются как перчатки шесть раз на дню.

PS: и не "Джоэль", а "Джоэл" - пишется не так, как произносится.
   dmpl
 
29 - 27.04.18 - 09:34
(5) ERP хуже УПП. Там даже нормальных отборов нет. Вывод - в 1С ненормальные программисты :)
   Cool_Profi
 
30 - 27.04.18 - 09:36
(29) "Вывод - в 1С ненормальные программисты "
Открыл Австралию...
   dmpl
 
31 - 27.04.18 - 09:36
(10) Обычно каждая новая версия программы тормознее и глючнее :)
   dmpl
 
32 - 27.04.18 - 09:38
(17) Гибкость и дружелюбность - обычно несовместимы. Чем гибче программа - тем адовее она для пользователей.
   easy step
 
33 - 27.04.18 - 09:42
Окостылил говнокод?
Ляг, поспи и все пройдет.
Встал, покодил, все равно
Получается говно.

Как не патчил много лет,
Как не фиксил баги,
Все-равно велосипед
На костыльной тяге.

Что б совсем без костылей,
Великов и багов
Нанимайте, говорю,
Нанимайте магов!
 
 
   dmpl
 
34 - 27.04.18 - 09:53
(25) Во-во, нет кода кроме машинного.
   dmpl
 
35 - 27.04.18 - 09:54
(30) Не, я просто обосновал эмпирический выводы :)
   dmpl
 
37 - 27.04.18 - 09:57
(36) Угу, добавление движений при проведении в чужой документ - это вообще как через задний проход гланды удалять.
   Buster007
 
39 - 27.04.18 - 10:04
каждый раз когда возникает желание переписать чужой код, задайте себе вопрос "а кто за это заплатит?" и желание сразу отпадет
   Вафель
 
40 - 27.04.18 - 10:08
(39) если на окладе, то все оплачено уже
   Oftan_Idy
 
41 - 27.04.18 - 10:15
(0) Это психология.
Профессия программист в соответствии с эволюционными законами и естественным отбором, отбирает людей склонных к интровертности и перфикционизму.
Поэтому когда смотришь на свой код пятилетней давности, то приходишь в ужас и руки тянуться все переписать правильно. Хотя пять лет назад этот код казался гениальным решением.
   Emery
 
43 - 27.04.18 - 10:46
(32) > Гибкость и дружелюбность - обычно несовместимы. Чем гибче программа - тем адовее она для пользователей.

Как по мне, то многое зависит от дружелюбности самого программиста. Есть программисты, которые любят пользователей, часто ставят себя на их место, и есть, которые не любят и получают садистское удовольствие от их мучений. Таких нужно в принудительном порядке заставлять работать определенное время на собственных программах, без возможности их модификации. Тогда будут думать, прежде чем вводить избыточные ограничения.

Возьмем, скажем, дополнительные настройки. Не обязательно, чтобы они мозолили глаза пользователю, главное, чтобы они были. Например, в «семерке» нет возможности штатно установить точные размеры формы, только «на глаз». Нет возможности задать центровку всех окон – они обязательно должны скакать по монитору, потому что такой стандарт придумал де Билл (который Гейтс). Настройки эти пользователю не дали, типа упростили ему жизнь, поэтому народ изголяется, как может, придумал FormEx, 1C++ и т.п. Вплоть до того, что декомпилирует md-файлы и правит там формы вручную.

Второй пример, жесткая заточенность на законодательство. Типа, если пользователю разрешить отключать механизм вытеснения в «зарплате», то он обязательно одновременно насчитает себе и другим оплату по окладу, отпуск, больничные и командировку в один и тот же период. Но иногда наложение разных графиков либо отклонений все же необходимо, почему бы не позволить это делать под ответственность самого пользователя?

В идеале, допустим, «зарплата» созданная под российское законодательство должна быть теоретически способна быть перенастроенной под законодательство другой страны, например, ЛНР / ДНР или даже какой-нибудь Белоруссии с Казахстаном. Вот это я понимаю – гибкость. А так нынешний ЗУП это идеальный образец жёсткости.
   Bigbro
 
44 - 27.04.18 - 11:18
выбросьте слово "всегда" из формулировки.
или добавьте "неопытные".
а то получается безапелляционное и неверное утверждение, которое выносится в заголовок и подразумевается истинным, а обсуждать начинают уже комментарии к нему.
это старый и грязный прием софистов.
   Джинн
 
45 - 27.04.18 - 11:20
   Serg_1960
 
Модератор
46 - 27.04.18 - 11:23
Правило "Запрещена огульная критика платформы 1С:Предприятие и неуважительное отношение к программистам 1С." На всякий случай напомню :)
   Oftan_Idy
 
47 - 27.04.18 - 11:53
(45) Это великолепно!
Особенно окончания рассказа
   Вафель
 
48 - 27.04.18 - 11:57
(47) и коммент
Молодой ещё, не опытный.. Тебя же просили Доделать, а не Переделать!!
Не хера было трогать вентилятор и швабры, если не отдупляешь зачем они. Нужно было построить рядом бассейн с вениками и заклеить фотообоями вентилятор, а на комнату со швабрами, так и быть, повесить красивую табличку "хер его знает, лучше не лазить".
   Масянька
 
49 - 27.04.18 - 12:13
(48) Мне больше рассказа понравилась картинка в 7112...
 
 Рекламное место пустует
   Nyoko
 
50 - 27.04.18 - 12:20
бывают случаи когда много раз дублируется запрос, с разными, параметрами, тогда я заменяю эти куски одной функцией.
а, так чтобы переписать все заново это только писхопаты-идеалисты ;)
   Vladal
 
51 - 27.04.18 - 12:22
(0) Зачем викидивать, вай?
Работивает, пусть и работивает.
А то придут, я твой код труба шатал.
Потом опять новий прыдот, опять код шатал. Нэт, нэ перепысивай.
   Vladal
 
52 - 27.04.18 - 12:22
(50) Так это и есть рефакторинг
   Быдло замкадное
 
53 - 27.04.18 - 12:22
потому что все вокруг тупые, один я умный!
   Oftan_Idy
 
54 - 27.04.18 - 12:33
(51) Еще бывает когда одна ошибка нейтрализует другую ошибку и все работает.
А как только ошибку исправляют сразу все ломается
   Vladal
 
55 - 27.04.18 - 13:20
(54) Бывает.
   Rovan
 
56 - 23.05.18 - 18:19
(0) из серии
"Почему новый лев-глава прайда убивает всех котят старого льва ?"


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует