Имя: Пароль:
LIFE
 
OFF: Как вы относитесь к неоптимальному коду в Ваших проектах?
,
0 drumandbass
 
27.07.17
12:54
1. Молча комментирую код пишу свой 50% (5)
2. Просто ржу и оставляю как есть. 50% (5)
3. Начинаю орать на быдлокодера 0% (0)
4. Говорю о быдлокодинге заказчику 0% (0)
Всего мнений: 10

Например, не обработка исключений.
Не красивый код, с тупыми переменными аля "а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
Быдлокод бывает разный и по разным причинам.
Большинство заявляющих "я перепишу быдлокод" выдёргивают из кода небольшой кусок, в меру своего понимания его работы ставят сами себе задание и переписывают. Без серьёзного покрытия тестами это хождение по минному полю.
Сам сколько раз нарывался на своём же быдлокоде (на нормальные тесты-то никогда нет времени). Берёшь какой-нибудь быдлокод, исторически сложившийся от регулярных многолетних внесений изменений в один кусок. Переписываешь красиво. И обязательно, собака, перестаёт корректно отрабатывать в какой-нибудь редкой, встречающейся раз-два в квартал, ситуации.