|
OFF: Почему программисты всегда хотят выкинуть старый код и написать новый | ☑ | ||
---|---|---|---|---|
0
ildary
26.04.18
✎
22:47
|
Есть причина, по которой программисты всегда хотят выкинуть старый код и написать новый: они думают что старый код - плохой. Возможно они неправы. Причина, по которой они думают что старый код - плохой, из-за кардинального, фундаментального закона программирования: тяжелее читать код, чем его писать.
Джоэль Спольски. |
|||
1
zwei
26.04.18
✎
22:53
|
http://lurkmore.to/Фатальный_недостаток
|
|||
2
zwei
26.04.18
✎
22:55
|
А Джоэлю надо было просто вступление, чтобы перейти к теме.
|
|||
3
ivanovpetr79
26.04.18
✎
23:07
|
Эти люди не знают что такое рефакторинг
|
|||
4
ivanovpetr79
26.04.18
✎
23:09
|
Переписывать код заново - антипаттерн. Там скрыто куча информации, его нужно только рефакторить.
|
|||
5
DmitrO
26.04.18
✎
23:13
|
Однако у нормального программиста новый код всегда должен быть лучше чем старый, иначе его надлежит уволить.
|
|||
6
ivanovpetr79
26.04.18
✎
23:16
|
Еще раз, старый код не нужно выкидывать, его нужно рефакторить.
|
|||
7
Lady исчезает
26.04.18
✎
23:36
|
(0) Ну. Сказал этот чувак это. И чьто? Чьто-чьто. Да ничьто! (с) фильм "Ликвидация".
_Свои_ мысли как-то надо выражать. Если есть, конечно. Чья-то цитата - не Ваша мысль и не аргумент и тем более не аксиома. |
|||
8
BeerHelpsMeWin
27.04.18
✎
00:07
|
Работает - не трогай.
|
|||
9
vcv
27.04.18
✎
05:55
|
(5) >> новый код всегда должен быть лучше чем старый
Озвучьте критерии этого "лучше". |
|||
10
Emery
27.04.18
✎
07:17
|
(0) Здесь важна не только парадигма «старый» – «новый», но и «свой» – «чужой». Однако если чужой код хорошо работает, то зачем его менять? Даже если в нем трудно разобраться. В этом случае просто больше стимула разбираться. Но вот если код работает плохо, то уже не важно, чей он, свой или чужой. Действительно иногда легче переписать даже свой код, чем рефакторить его. Чего уж там говорить про чужой.
Люди все разные и всех свои собственные представления, что такое «хорошо» и «красиво». Одному нравиться лепить в кучу все операторы и игнорировать разделители, отступы и пустые сроки. А другого это жутко раздражает и пока он не «причешет» чужой код под свои предпочтения, он не способен вникать в него по существу. Главное, думаю, не «фундаментальный закон программирования», который, скорее всего, высосан из пальца, а вечно стремление человека к совершенству. По принципу, это программа плохая (моя, твоя – не важно), напиши лучшую. И вообще «лучшее – враг хорошего». (9) > Озвучьте критерии этого "лучше". По-моему, это очевидно. Лучше, в данном контексте, значит, что новая программа (версия) является гибче, приятней (комфортней, дружелюбней), эффективней, более быстрой, с большим функционалом и возможностями, менее объемной и ресурсоемкой и т.д. и т.п., чем старая. |
|||
11
zwei
27.04.18
✎
07:33
|
(10) Лучше, в данном контексте, значит, что новая программа (версия) является гибче, приятней (комфортней, дружелюбней), эффективней, более быстрой, с большим функционалом и возможностями, менее объемной и ресурсоемкой и т.д. и т.п., чем старая.
И для этого её надо переписать на ассемблере с разворотом циклов и прочими прыжками. Как думаешь. Код. Улучшится? |
|||
12
Повелитель
27.04.18
✎
07:49
|
(0) Не нужно г..внокодить.
Я свой код не переписываю, даже 10 летней давности. Открываю, он написан по стандартам 1с (похож на код из типовых). Легко читаем, есть коменты. Зачем переписывать? |
|||
13
ivanovpetr79
27.04.18
✎
07:51
|
||||
14
VladZ
27.04.18
✎
07:54
|
(0) Все подряд переписывать не нужно. А вот кривые и неоптимальные куски кода - нужно. "Кайдзен в бизнесе" должен плавно переходить в "Кайдзен в разработке ПО".
Для тех, кто не в курсе: Кайдзен - это процесс непрерывного усовершенствования. |
|||
15
aka AMIGO
27.04.18
✎
07:56
|
Свои коды трогать не надо. А вот чужие, кои присутствуют в модулях, надо править, при этом очень ругаться и эту ругань доносить до руководства.
А также постить на мисте. |
|||
16
DrZombi
гуру
27.04.18
✎
07:57
|
(0) Не всегда хотят выкинуть старый код.
Вот мне хочется всегда выкинуть говно код, реализованный по принципу "А копирну я одно и тоже раз 200, так же быстро" :) |
|||
17
Emery
27.04.18
✎
07:57
|
(11) > И для этого её надо переписать на ассемблере с разворотом циклов и прочими прыжками.
Как думаешь. Код. Улучшится? Чтобы улучшить работу, скажем, учетной программы, совсем необязательно переписывать ее на ассемблере. Хотя бы потому, что с этой задачей можно не справиться физически. Тем не менее, в свое время целые игры писали на голом ассемблере, а у нас в университете учился сириец, который даже собственную операционную систему наваял на ассемблере (что-то типа примитивного ДОСа). А вот улучшить бизнес-логику программы, поменять медленные алгоритмы на быстрые, увеличить гибкость программы и ее дружелюбность, так структурировать код, чтобы не потерять над ним контроль, даже через несколько лет, для всего этого вполне можно обойтись штатными средствами. Исходя из направленности нашего форума это может быть конфигуратор 1С или, для экстремалов, С++ ради написания ВК под 1С. |
|||
18
DrZombi
гуру
27.04.18
✎
07:57
|
+ А потом ковыряешь все 200 процедур и запросов, что бы все это не расплылось в итоге, тратя на это кучу времени :)
|
|||
19
Так мало знающий
27.04.18
✎
07:59
|
(0) Как вариант, бывают ситуации когда руководство просит отчеты по отработанному времени и тогда программист разбор такого кода аргументирует как "Переписать код старого программиста".
|
|||
20
DrZombi
гуру
27.04.18
✎
07:59
|
(15) Такой код как раз и шифруют и пароли ставят :)
|
|||
21
quest
27.04.18
✎
07:59
|
(0) Все просто - предыдущий программист не оставил документации, либо требования к ПО поменялись, и старый код не удовлетворяет новым запросам.
(12) ЛПиП. Код типовых - не пример для подражания, и второе - за 10 лет изменился достаточно сильно. |
|||
22
Emery
27.04.18
✎
08:05
|
(17) + Еще очень важное значение имеет структура данных. Это вообще отдельная песня. Можно быть сколь угодно прекрасным кодировщиком, но легко делать структурные ошибки в данных. Которые как бы и не ошибки, но жизнь пользователей и даже обслуживающих программистов усложняют.
|
|||
23
Pahomich
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) Сдавайся :))))) |
|||
27
Genayo
27.04.18
✎
08:28
|
(15) Ну, когда изменение пары строчек в чужом запросе ускоряет его работу на 2-3 порядка, и таких запросов десятки - сдержаться тяжело...
|
|||
28
Serg_1960
27.04.18
✎
09:34
|
(0) Во фразе "Есть причина, по которой программисты всегда хотят выкинуть старый код" допущена гипербола. Слово "всегда" - лишнее. Да и вообще, это "не та" цитата Джоэла, которую стоило бы озвучивать на форуме программистов 1С, где платформы и конфигурации меняются как перчатки шесть раз на дню.
PS: и не "Джоэль", а "Джоэл" - пишется не так, как произносится. |
|||
29
dmpl
27.04.18
✎
09:34
|
(5) ERP хуже УПП. Там даже нормальных отборов нет. Вывод - в 1С ненормальные программисты :)
|
|||
30
Cool_Profi
27.04.18
✎
09:36
|
(29) "Вывод - в 1С ненормальные программисты "
Открыл Австралию... |
|||
31
dmpl
27.04.18
✎
09:36
|
(10) Обычно каждая новая версия программы тормознее и глючнее :)
|
|||
32
dmpl
27.04.18
✎
09:38
|
(17) Гибкость и дружелюбность - обычно несовместимы. Чем гибче программа - тем адовее она для пользователей.
|
|||
33
easy step
27.04.18
✎
09:42
|
Окостылил говнокод?
Ляг, поспи и все пройдет. Встал, покодил, все равно Получается говно. Как не патчил много лет, Как не фиксил баги, Все-равно велосипед На костыльной тяге. Что б совсем без костылей, Великов и багов Нанимайте, говорю, Нанимайте магов! |
|||
34
dmpl
27.04.18
✎
09:53
|
(25) Во-во, нет кода кроме машинного.
|
|||
35
dmpl
27.04.18
✎
09:54
|
(30) Не, я просто обосновал эмпирический выводы :)
|
|||
37
dmpl
27.04.18
✎
09:57
|
(36) Угу, добавление движений при проведении в чужой документ - это вообще как через задний проход гланды удалять.
|
|||
39
Buster007
27.04.18
✎
10:04
|
каждый раз когда возникает желание переписать чужой код, задайте себе вопрос "а кто за это заплатит?" и желание сразу отпадет
|
|||
40
Вафель
27.04.18
✎
10:08
|
(39) если на окладе, то все оплачено уже
|
|||
41
Oftan_Idy
27.04.18
✎
10:15
|
(0) Это психология.
Профессия программист в соответствии с эволюционными законами и естественным отбором, отбирает людей склонных к интровертности и перфикционизму. Поэтому когда смотришь на свой код пятилетней давности, то приходишь в ужас и руки тянуться все переписать правильно. Хотя пять лет назад этот код казался гениальным решением. |
|||
43
Emery
27.04.18
✎
10:46
|
(32) > Гибкость и дружелюбность - обычно несовместимы. Чем гибче программа - тем адовее она для пользователей.
Как по мне, то многое зависит от дружелюбности самого программиста. Есть программисты, которые любят пользователей, часто ставят себя на их место, и есть, которые не любят и получают садистское удовольствие от их мучений. Таких нужно в принудительном порядке заставлять работать определенное время на собственных программах, без возможности их модификации. Тогда будут думать, прежде чем вводить избыточные ограничения. Возьмем, скажем, дополнительные настройки. Не обязательно, чтобы они мозолили глаза пользователю, главное, чтобы они были. Например, в «семерке» нет возможности штатно установить точные размеры формы, только «на глаз». Нет возможности задать центровку всех окон – они обязательно должны скакать по монитору, потому что такой стандарт придумал де Билл (который Гейтс). Настройки эти пользователю не дали, типа упростили ему жизнь, поэтому народ изголяется, как может, придумал FormEx, 1C++ и т.п. Вплоть до того, что декомпилирует md-файлы и правит там формы вручную. Второй пример, жесткая заточенность на законодательство. Типа, если пользователю разрешить отключать механизм вытеснения в «зарплате», то он обязательно одновременно насчитает себе и другим оплату по окладу, отпуск, больничные и командировку в один и тот же период. Но иногда наложение разных графиков либо отклонений все же необходимо, почему бы не позволить это делать под ответственность самого пользователя? В идеале, допустим, «зарплата» созданная под российское законодательство должна быть теоретически способна быть перенастроенной под законодательство другой страны, например, ЛНР / ДНР или даже какой-нибудь Белоруссии с Казахстаном. Вот это я понимаю – гибкость. А так нынешний ЗУП это идеальный образец жёсткости. |
|||
44
Bigbro
27.04.18
✎
11:18
|
выбросьте слово "всегда" из формулировки.
или добавьте "неопытные". а то получается безапелляционное и неверное утверждение, которое выносится в заголовок и подразумевается истинным, а обсуждать начинают уже комментарии к нему. это старый и грязный прием софистов. |
|||
45
Джинн
27.04.18
✎
11:20
|
||||
46
Serg_1960
модератор
27.04.18
✎
11:23
|
Правило "Запрещена огульная критика платформы 1С:Предприятие и неуважительное отношение к программистам 1С." На всякий случай напомню :)
|
|||
47
Oftan_Idy
27.04.18
✎
11:53
|
(45) Это великолепно!
Особенно окончания рассказа |
|||
48
Вафель
27.04.18
✎
11:57
|
(47) и коммент
Молодой ещё, не опытный.. Тебя же просили Доделать, а не Переделать!! Не хера было трогать вентилятор и швабры, если не отдупляешь зачем они. Нужно было построить рядом бассейн с вениками и заклеить фотообоями вентилятор, а на комнату со швабрами, так и быть, повесить красивую табличку "хер его знает, лучше не лазить". |
|||
49
Масянька
27.04.18
✎
12:13
|
(48) Мне больше рассказа понравилась картинка в 7112...
|
|||
50
Nyoko
27.04.18
✎
12:20
|
бывают случаи когда много раз дублируется запрос, с разными, параметрами, тогда я заменяю эти куски одной функцией.
а, так чтобы переписать все заново это только писхопаты-идеалисты ;) |
|||
51
Vladal
27.04.18
✎
12:22
|
(0) Зачем викидивать, вай?
Работивает, пусть и работивает. А то придут, я твой код труба шатал. Потом опять новий прыдот, опять код шатал. Нэт, нэ перепысивай. |
|||
52
Vladal
27.04.18
✎
12:22
|
(50) Так это и есть рефакторинг
|
|||
53
Быдло замкадное
27.04.18
✎
12:22
|
потому что все вокруг тупые, один я умный!
|
|||
54
Oftan_Idy
27.04.18
✎
12:33
|
(51) Еще бывает когда одна ошибка нейтрализует другую ошибку и все работает.
А как только ошибку исправляют сразу все ломается |
|||
55
Vladal
27.04.18
✎
13:20
|
(54) Бывает.
|
|||
56
Rovan
гуру
23.05.18
✎
18:19
|
(0) из серии
"Почему новый лев-глава прайда убивает всех котят старого льва ?" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |