|
OFF: Как вы относитесь к неоптимальному коду в Ваших проектах? | ☑ | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
drumandbass
27.07.17
✎
12:54
|
Например, не обработка исключений.
Не красивый код, с тупыми переменными аля "а1+суп+ивгы" Костыли вместо фич платформы. Запросы и циклы вместо СКД. |
|||||||||||||
25
Irbis
27.07.17
✎
13:25
|
Тщательно лелею и оформляю комментариями. Горжусь, что спустя несколько лет больше так не делаю. Смотрю как на старый шрам.
|
|||||||||||||
26
1dvd
27.07.17
✎
13:25
|
Работает - не трожь!
|
|||||||||||||
27
MaxS
27.07.17
✎
13:26
|
(23) Заказчик не видит быдлокод, в этом то и проблема. Если исправление быдлокода отрицательно повлияет на сроки, то лучше не трогать то, что работает. Рефакторингом можно заняться позже...
|
|||||||||||||
28
ejikbeznojek
27.07.17
✎
13:27
|
Думаю про себя, что потом надо будет исправить, и забываю.
|
|||||||||||||
29
dezss
27.07.17
✎
13:51
|
(28) +100500
|
|||||||||||||
30
Азазель
27.07.17
✎
13:56
|
Для сведения всех мистян: быдлокода не существует.
Это- просто неудачная попытка посредственных людишек обозвать продукт мышления менее развитых программистов. Ведь если быдло- это скот (на польском), то быдлокод- скотокод, что нелогично и неправильно. Целесообразно напрочь выкорчевать это обозначение из языка мистян, заменив более красочным и точным эквивалентом, желательно политкорректным. |
|||||||||||||
31
Любопытная
27.07.17
✎
13:59
|
(30) Критикуешь - предлагай. Причем что-нибудь конкретное. Желательно политкорректное конечно.
|
|||||||||||||
32
HeKrendel
27.07.17
✎
14:00
|
(0) Если заказчик готов платить, то почему сразу не делать нормально ;-) Сначало быстро, а потом так как надо ;-)
|
|||||||||||||
33
Timon1405
27.07.17
✎
14:02
|
(26) +1
ТС ты франч?фри?фикс? Если есть заявка что код тормозит/неверно работает, только тогда рефакторинг. заниматься им по своей инициативе без ведома начальства/заказчика - растрата ресурса твоего времени для работодателя. |
|||||||||||||
34
StupidTeddy
27.07.17
✎
14:03
|
(31) Копрокод же)
|
|||||||||||||
35
H A D G E H O G s
27.07.17
✎
14:03
|
(33) Ущербная позиция.
|
|||||||||||||
36
1dvd
27.07.17
✎
14:04
|
(30) думаю, что автор слова "быдлокод" о польском значении слова мог и не догадываться. Он опирался на русскоязычное значение.
Понятно, что выражение имеет негативный окрас. Но, искоренить его не удастся. Да, и незачем |
|||||||||||||
37
H A D G E H O G s
27.07.17
✎
14:04
|
Заявки может (да в 99% не будет) не быть, но подсознательно сформируется мнение, что "Ваша 1С тормозит" и в следующий раз вас могут отправить в путешествие.
|
|||||||||||||
38
Анцеранана
27.07.17
✎
14:06
|
Если я знаю как исправить - почему не исправить?)
А вообще кроме быдлокода есть еще код мутно-аристократический, по-моему это вообще жесть. Это когда пишет хороший прог, но ему принципиально наплевать на того, кто будет его обработками/доками будет пользоваться. Названия полей/флажков интуитивно - непонятны, интерфейс нарочито-неэргономичен, действия никак не протоколируются и т.д. Когда такой сотрудник увольняется - начинается жесть, пока не разберешься что к чему) Молча комментирую код пишу свой |
|||||||||||||
39
1dvd
27.07.17
✎
14:06
|
(37) если вылизывать чей-то код, то любое задание может растянутся до бесконечности. Моя позиция (26) не безосновательна.
|
|||||||||||||
40
Азазель
27.07.17
✎
14:08
|
||||||||||||||
41
Глобальный_
Поиск 27.07.17
✎
14:10
|
(15) А Соо(с) оптимизирует работу кодера. Вместо Сообщить(с) он теперь пишет Соо(с). На 5 символов меньше. Правда странно что не Со(с).
|
|||||||||||||
42
H A D G E H O G s
27.07.17
✎
14:10
|
(39) Вылизывать не надо. Такой код правится за 30 минут кусок. Таких кодов обычно - не больше десятка.
|
|||||||||||||
43
agarych
27.07.17
✎
14:12
|
(41) А шаблоны использовать ему что мешает?
|
|||||||||||||
44
MaxS
27.07.17
✎
14:15
|
(42) Десяток кусков по 30 минут исправлять код, а тестировать всё это кто будет? Если не дай бог после улучшении кода пользователь словит баг, будут вопросы, что у того программиста всё работало, а этот новый его ругает, но делает хуже... ))
|
|||||||||||||
45
Asmody
27.07.17
✎
14:24
|
(18) Вообще говоря нет. Авторские права неотчуждаемы. Даже если я писал что-то для кого-то за деньги. Отчуждение авторства должно быть прописано явно. Иначе это просто право на воспроизведение, которое автор может в любой момент отозвать.
|
|||||||||||||
46
Сияющий Асинхраль
27.07.17
✎
14:25
|
Не знаю как кому, но я подобный код правлю только в одном случае - если он пагубно влияет на скорость работы, в противном случае, хоть лаптем пиши, считаю, что работает - не трогай. А так да, встречались поделки, типа загрузки приходных документов из текстового файла, когда программист программно перепроводил загружаемый документ после добавления каждой строки загружаемого документа, народ ждал по часу, а то и два. На моей памяти, это единственный случай, когда я не выдержал и выговорил автору за чудо код...
|
|||||||||||||
47
Вафель
27.07.17
✎
14:25
|
(45) Ты путаешь авторское право и исключительное право.
Автором то ты остаешься, а пользоваться могут только они |
|||||||||||||
48
1dvd
27.07.17
✎
14:26
|
(45) если прог отзовёт авторство на свой быдлокод, может ли предприятие отозвать выплаченную ему ЗП за это время?
|
|||||||||||||
49
Вафель
27.07.17
✎
14:26
|
прежде чем начать рефакторить нужно бы какую систему тестирования внедрить.
Но где 1с, а где тестирование ... |
|||||||||||||
50
Cyberhawk
27.07.17
✎
14:27
|
(45) А в России это действует? Не в плане того, как оно там по факту, а в плане того, что можно ли на этом строить правовую защиту?
|
|||||||||||||
51
Fragster
гуру
27.07.17
✎
14:29
|
Вот вам в копилку:
запрос.Текст = "ВЫБРАТЬ | ГруппыЗначенийДоступа.ЗначениеДоступа КАК Партнер |ИЗ | Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияГруппДоступа КАК ЗначенияГруппДоступа | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа | ПО ЗначенияГруппДоступа.ЗначениеДоступа = ГруппыЗначенийДоступа.ГруппаЗначенийДоступа | ПО ГруппыДоступаПользователи.Ссылка = ЗначенияГруппДоступа.ГруппаДоступа |ГДЕ | ГруппыДоступаПользователи.Пользователь = &Пользователь | И ТИПЗНАЧЕНИЯ(ЗначенияГруппДоступа.ЗначениеДоступа) = ТИП(Справочник.xГруппыДоступаПартнеров) | И ГруппыДоступаПользователи.Ссылка.Профиль.Наименование ПОДОБНО ""Право отправлять уведомления клиенту%"" | И ГруппыЗначенийДоступа.ЗначениеДоступа = &Партнер"; Сработало после инвентаризации прав. |
|||||||||||||
52
Быдло замкадное
27.07.17
✎
14:31
|
как вам количество параметров в отчете? Вместо этого можно было сделать "Контрагент.Подразделение" но переделывать пока лень...
https://s8.hostingkartinok.com/uploads/images/2017/07/8249a3f64013bfea3038c190aa9c90a8.jpg Просто ржу и оставляю как есть. |
|||||||||||||
53
1Снеговик
гуру
27.07.17
✎
14:37
|
(17) спасибо, блин! Вся работа встала!
|
|||||||||||||
54
Dotoshin
27.07.17
✎
14:37
|
(30) Можно использовать термин индокод, от индусский код :)
https://habrastorage.org/getpro/habr/post_images/b85/700/327/b857003277e1b489c85c57363b6aada4.jpg |
|||||||||||||
55
Timon1405
27.07.17
✎
14:38
|
(35)(42) >>Такой код правится за 30 минут кусок.
а разгребать потом такие правки можно неделю. особенно если какой-нибудь дартаньян увидел, исправил, вгрузил втихую, а выяснилось что новый(белый и пушистый) код работает "немного не так" спустя какое-то время. и про тестирование правильно пишут. изменения в большой системе только через заявки/багтрекер - вполне нормальная позиция, что в ней ущербного. |
|||||||||||||
56
H A D G E H O G s
27.07.17
✎
14:46
|
(55) после правки я прогоняю тест
Для Каждого Данное Из ВсеДанныеВБазе Цикл СтароеЗначение=СтараяПроцедура(Данное);НовоеЗначение=НоваяПроцедура(Данное); Если СтароеЗначение<>НовоеЗначение Тогда Сообщить(Данное); КонецЕсли; КонецЦикла; |
|||||||||||||
57
1dvd
27.07.17
✎
14:46
|
(17) вот это жесть, конечно:
|
|||||||||||||
58
H A D G E H O G s
27.07.17
✎
14:47
|
да вы жести не видели
|
|||||||||||||
59
Timon1405
27.07.17
✎
14:49
|
(56) как рефакторится
СтараяПроцедураКотораяИспользуетсяВоВнешнихОбработкахПроКоторыеВыВозможноНичегоНеЗнаете()? |
|||||||||||||
60
H A D G E H O G s
27.07.17
✎
14:50
|
(59) "Ааааа, у нас ничего не работает"
|
|||||||||||||
61
Timon1405
27.07.17
✎
14:54
|
(60) Зачет))
вопрос же не про именно ваши скиллы в правке кода, а в подходе. а если команда разработки большая, вы же не можете быть уверены в коллеге как в себе. |
|||||||||||||
62
H A D G E H O G s
27.07.17
✎
15:08
|
(61) "вы же не можете быть уверены в коллеге как в себе."
Конечно нет. И что вы предлагаете? Я вот, например, 2 раза настораживался на долгую работу, не ленился запускать отладчик, находил ебла^&зм, отправлял брату чисто поржать и ябедничал своему РП с предложением поправить код как минимум и, как максимум, выгнать на мороз "программиста". Но, программисты, народ редкий и штучный и из воздуха их родить РП не может. Поэтому имеем, что имеем. |
|||||||||||||
63
Timon1405
27.07.17
✎
15:30
|
(62) ключевое "ябедничал своему РП" - то есть согласовывал свои действия с начальством.
то есть РП берет ответственность на себя за то, что вы тратите Ваше Время(а оно дороже, чем время того за кем вы правите), которое РП мог бы использовать в других (более приоритетных с точки зрения РП) целях проекта, чем оптимизация быдлокода |
|||||||||||||
64
Сильф
27.07.17
✎
15:33
|
Во-первых: "работает - не трогай!"
Во-вторых: если речь не идёт о большой совместной разработке (через хранилище и т.д.), твои героические усилия по разгребанию чужого г. не оценит ровным счетом никто. Поэтому и время на это тратить не нужно. Поэтому в подавляющем большинстве случаев научился ловить дзен и п.4. Если уж быдлокод откровенно мешает, приходится переписывать, т.е. п. 1. Пункты 2 и 3 неконструктивны и бессмысленны. Просто ржу и оставляю как есть. |
|||||||||||||
65
Shur1cIT
27.07.17
✎
15:40
|
Если работает оставляю как есть,
Заказчику нужно не феншуй наводить, а удоволетворять потребности бизнеса. чесно сказать сам иногда грешу этим, так заказчику нужно подешевле и поскорее, за подумать и феншуй в большинстве случаев платить не готов,а за бесплатно лишний вечер тратить нет желания. Просто ржу и оставляю как есть. |
|||||||||||||
66
H A D G E H O G s
27.07.17
✎
15:45
|
(65) Это называется - самовнушение.
|
|||||||||||||
67
H A D G E H O G s
27.07.17
✎
15:46
|
(65) (64) В этом вы все и есть - поставлять кусок г-на. А потом удивляетесь, почему в России дороги кривые ну и там по списку.
|
|||||||||||||
68
lodger
27.07.17
✎
15:46
|
комбинирую ответы в порядке 4 3 и 1.
|
|||||||||||||
69
Buster007
27.07.17
✎
15:46
|
Каждый последующий будет смотреть на код и говорить - быдлокод. Везде так.
Поэтому на ваше желание переписать всем по барабану, т.к. от этого пользы никакой, если, конечно, не жалуются именно на этот кусок.. |
|||||||||||||
70
lodger
27.07.17
✎
15:47
|
(69) во-первых да, жалуются, во-вторых штозанах ждать по полчаса после нажатия кнопки?
|
|||||||||||||
71
Вафель
27.07.17
✎
15:47
|
(66) Если ты единственный прог, то ты легко можешь принять решение о рефакторинге, а если вас несколько?
|
|||||||||||||
72
Buster007
27.07.17
✎
15:48
|
(67) да у нас в стране все футболисты. Только 11 играть не умеют.
|
|||||||||||||
73
Buster007
27.07.17
✎
15:49
|
(70) например на (57) жаловаться не будут.
|
|||||||||||||
74
H A D G E H O G s
27.07.17
✎
15:51
|
(71) Вот сейчас нас - несколько. Я могу принять решение о рефакторинге, вопрос в том, будет оно оплачено или нет. И я буду делать рефакторинг, даже если его не оплатят. Мне пофиг в данном случае на свое время, меньше поиграю в игры.
|
|||||||||||||
75
Buster007
27.07.17
✎
15:52
|
(74) энтузиасты вымирают со временем ))
|
|||||||||||||
76
H A D G E H O G s
27.07.17
✎
15:52
|
Все мы умрем, какой смысл дергаться? Ну, в дергании и есть весь смысл.
|
|||||||||||||
77
H A D G E H O G s
27.07.17
✎
15:52
|
(75) Мне 33 и я полон эктузиазма.
|
|||||||||||||
78
Господин ПЖ
27.07.17
✎
15:53
|
>Только 11 играть не умеют.
судя по результатам деятельности - да, не умеют |
|||||||||||||
79
wt
27.07.17
✎
15:54
|
(52) а КонецПериода тоже Контрагент.Подразделение? Вот из-за таких специалистов и рождается быдлокод.
|
|||||||||||||
81
Timon1405
27.07.17
✎
15:57
|
обратная сторона такого энтузиазма - супер оптимизированный код обычно трудно поддерживать.
упрощенный пример - был какой-то расчет с выгрузкой промежуточных результатов в ТЗ, постобработками ТЗ. работал себе за приемлемое время. пришел энтузиаст, сделал все одним запросом на 3000 строк. да работает, да быстро. но что будет когда потребуются изменения, а энтузиаст в отпуске/уволился? искать другого энтузиаста? |
|||||||||||||
82
H A D G E H O G s
27.07.17
✎
15:58
|
(81) Оптимизированный код - прост
|
|||||||||||||
83
H A D G E H O G s
27.07.17
✎
15:59
|
(81) Он, суко, суперпрост.
|
|||||||||||||
84
Волшебник
модератор
27.07.17
✎
15:59
|
(80) H A D G E H O G s, мы не публикуем на форуме быдлокод
|
|||||||||||||
85
lodger
27.07.17
✎
16:00
|
(81) учится читать запросы. и да. согласен с (82). рефакторинг это синтез читаемости и скорости выполнения.
|
|||||||||||||
86
H A D G E H O G s
27.07.17
✎
16:00
|
(84) Понял, больше не буду пугать население Мисты.
|
|||||||||||||
87
Deal with it
27.07.17
✎
16:04
|
Зависит от настроения и самого кода: насколько он плох или вреден.
Молча комментирую код пишу свой |
|||||||||||||
88
Pentosh
27.07.17
✎
16:21
|
Отношусь лояльно, ведь я этот код и писал.
А когда вижу свой плохой код, и понимаю что он плохой, и знаю как сделать лучше, то делаю лучше, но не факт. Молча комментирую код пишу свой |
|||||||||||||
89
Вафель
27.07.17
✎
16:28
|
||||||||||||||
90
Быдло замкадное
27.07.17
✎
16:33
|
(79) при чем тут КонецПериода? Несколько параметров в отчете это норм) Зачем его трогать.
|
|||||||||||||
91
H A D G E H O G s
27.07.17
✎
16:42
|
||||||||||||||
92
KnightAlone
27.07.17
✎
16:44
|
(90) там столько городов... не проще было сделать справочник "Регионы", и в подразделении реквизит Регион?
|
|||||||||||||
94
DomovoiAtakue
27.07.17
✎
17:18
|
Если наткнулся на быдлокод, то как правило это уже вызвало проблемы или соприкоснулось с текущим заданием, что приведет к проблемам в будущем. Если это процедуры или куски кода, то заменяю, если это целый проект написан через одно место, то предупреждаю заказчика и оставляю, если заказчик платит хочет - переписываю, но как правило чуть позже приходиться переделывать. Замена отдельных участков занимает мало времени, тогда денег не беру дополнительных, за переписывания функционала - беру.
Использую 1 и 3 пункты. Молча комментирую код пишу свой |
|||||||||||||
95
elCust
27.07.17
✎
17:20
|
(2)
void get_tomorrow_date( struct timeval *date ) { sleep( 86400 ); // 60 * 60 * 24 gettimeofday( date, 0 ); } |
|||||||||||||
96
Cyberhawk
27.07.17
✎
17:25
|
(95) Было в (54)
|
|||||||||||||
97
Господин ПЖ
27.07.17
✎
17:39
|
лояльно если жить не мешает...
но например сейчас надо переносить обработку в 10 000 строк на УФ. глубокое "легаси" разработанное еще на 8.1 спагетти-код + везде использование "глобальных" флагов в виде экспортных переменных модуля объекта... все процедуры (которые будут выполняться на сервере что самое печальное) утыканы ими... все проклял уже |
|||||||||||||
98
elCust
27.07.17
✎
17:42
|
(97) Если за это хорошо платють, то что не переносить то!
|
|||||||||||||
99
Fragster
гуру
27.07.17
✎
17:47
|
вот копипаста из (91), например, не рассчитана на использование на широких мониторах. говно же!
и да, дарю 100 |
|||||||||||||
100
KnightAlone
27.07.17
✎
17:51
|
100 строк быдлокода!
|
|||||||||||||
101
ПиН
27.07.17
✎
17:53
|
запросы вместо скд... хм... однако
|
|||||||||||||
102
H A D G E H O G s
27.07.17
✎
17:55
|
(99) в 2010 не было широких мониторов
|
|||||||||||||
103
Access granted
27.07.17
✎
17:58
|
Сегодня перл прочитал:
ЕстьУОснованияОснованиеОснования = ОбщегоНазначения.ЕстьРеквизитДокумента("ДокументОснование", Основание.ДокументОснование.Метаданные()); Просто ржу и оставляю как есть. |
|||||||||||||
104
Вафель
27.07.17
✎
17:59
|
(102) Получается что когда то хороший код протухает со временем
|
|||||||||||||
105
Aleksey
27.07.17
✎
18:07
|
(104) Угу, типа писать сейчас на обычных формах многие назовут быдлокодерстов, хотя 10 лет назад это было пик и шик
|
|||||||||||||
106
H A D G E H O G s
27.07.17
✎
18:08
|
Блог Смокера - отличный образчик философий и переводов, почему и как надо писать кот.
Вот, отличный образчик того, что пользователям нельзя давать функционал http://www.transl-gunsmoker.ru/2008/11/x.html |
|||||||||||||
107
H A D G E H O G s
27.07.17
✎
18:08
|
||||||||||||||
108
Вафель
27.07.17
✎
18:11
|
(107) Если этой дорогой идти до конца получим iOS.
Когда ничего нельзя |
|||||||||||||
109
DomovoiAtakue
27.07.17
✎
18:17
|
(102)А что там за код, который обязательно требует наличие широкого монитора чтоб нормально писать?
(104)Если при функционале платформы на то время лучше нельзя было то код остается нормальным. |
|||||||||||||
110
Cyberhawk
27.07.17
✎
18:17
|
Прочел (106), не понял как оно относится к "пользователям нельзя давать функционал". Там же наоборот - почему не надо вмешиваться в то, что пользователь там себе понастраивал
|
|||||||||||||
111
H A D G E H O G s
27.07.17
✎
18:19
|
(110) Разработчики Windows не дали программистам-пользователям WinAPI получать уведомления от своего popup-сообщения, когда оно закрывается.
|
|||||||||||||
112
Cyberhawk
27.07.17
✎
18:25
|
(111) А, спс за разъяснение. Последний раз среду разработки помимо 1С видел в универе ))
|
|||||||||||||
113
Garykom
гуру
27.07.17
✎
18:28
|
(111) "Вы уверены что хотите меня закрыть? А может все таки передумаете? Ах нет... ну тогда я себя еще 10 раз запущу!"
|
|||||||||||||
114
Fragster
гуру
27.07.17
✎
18:56
|
и теперь мы имеем управляемые формы, в которых непонятно, что же пользователь на самом деле видит
|
|||||||||||||
115
Сильф
27.07.17
✎
19:14
|
(67) просто не надо впадать в крайности, и грести за всеми г-но в ущерб се6е.
|
|||||||||||||
116
4St
27.07.17
✎
19:57
|
(0) Не увидел вариант "CodeReview с чек-листом + рефакторинг + обсуждение стандартов кода в команде + взаимное обучение".
|
|||||||||||||
117
H A D G E H O G s
27.07.17
✎
20:03
|
(115) Вы - я уверен, не впадете.
|
|||||||||||||
118
Злопчинский
28.07.17
✎
11:22
|
Если снаружи это выглядит нормально и делает то что мне нужно с нужным мне качеством - то пофиг что там внутри
|
|||||||||||||
119
ILM
гуру
28.07.17
✎
17:48
|
Люблю его и холю. Иногда рефакторю. Особенно в запросах.
Просто ржу и оставляю как есть. |
|||||||||||||
120
vadim777
28.07.17
✎
22:28
|
А меня раздражают пустые строки в типовых конфигурациях. Если их вставляют для читабельности, то читабельность наоборот, становится хуже. Для этого давно еще придумали отступы.
Молча комментирую код пишу свой |
|||||||||||||
121
Mort
28.07.17
✎
23:08
|
5. Всё быдлокод.
|
|||||||||||||
122
Злопчинский
28.07.17
✎
23:32
|
(121) => 6. Кругом одни быдлокодеры..?
|
|||||||||||||
123
vadim777
29.07.17
✎
08:07
|
(101) Только что вычитал на sql.ru: система компоновки данных придумана, что бы можно было вложиться во время сдачи специалиста :))
|
|||||||||||||
124
vcv
29.07.17
✎
09:20
|
Быдлокод бывает разный и по разным причинам.
Большинство заявляющих "я перепишу быдлокод" выдёргивают из кода небольшой кусок, в меру своего понимания его работы ставят сами себе задание и переписывают. Без серьёзного покрытия тестами это хождение по минному полю. Сам сколько раз нарывался на своём же быдлокоде (на нормальные тесты-то никогда нет времени). Берёшь какой-нибудь быдлокод, исторически сложившийся от регулярных многолетних внесений изменений в один кусок. Переписываешь красиво. И обязательно, собака, перестаёт корректно отрабатывать в какой-нибудь редкой, встречающейся раз-два в квартал, ситуации. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |