|
Быдлокод | ☑ | ||
---|---|---|---|---|
0
Маленький Вопросик
20.08.11
✎
17:23
|
Как считают местные обитатели, что такое быдлокод? И кто в праве оценивать его "быдлокодовость", если и так все работает?
|
|||
128
byxtello
20.08.11
✎
21:15
|
||||
129
Злопчинский
20.08.11
✎
21:16
|
(127) там Возврат внутрях
|
|||
130
Злопчинский
20.08.11
✎
21:17
|
Да нету быдлокода.. есть или работающий или неработающий код...
|
|||
131
CepeLLlka
20.08.11
✎
21:19
|
(129) Спасибо.
|
|||
132
andrewks
20.08.11
✎
21:32
|
(123) иногда действительно бывает необходимо делать такие псевдо-"вечные" циклы. но зачастую это неоправданно, как и в данном случае. например, лучше, на мой взгляд, сделать так:
Поз=-1; Пока Поз>=0 Цикл Поз = Найти(Стр, Разделитель); Если Поз = 0 Тогда Если (СокрЛП(Стр) <> "") Тогда МассивСтрок.Добавить(Стр); КонецЕсли; Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз - 1)); Стр = Сред(Стр, Поз + ДлинаРазделителя); КонецЦикла; |
|||
133
andrewks
20.08.11
✎
21:33
|
+(132) извиняюсь, в начале Поз=0; конечно
|
|||
134
andrewks
20.08.11
✎
21:34
|
или так:
Поз=Найти(Стр, Разделитель); Пока Поз>=0 Цикл Если Поз = 0 Тогда Если (СокрЛП(Стр) <> "") Тогда МассивСтрок.Добавить(Стр); КонецЕсли; Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз - 1)); Стр = Сред(Стр, Поз + ДлинаРазделителя); Поз = Найти(Стр, Разделитель); КонецЦикла; |
|||
135
andrewks
20.08.11
✎
21:37
|
в (123) аналог конструкции do {} while, которой нет в языке 1С
|
|||
136
Aleksey
20.08.11
✎
21:38
|
(10)
В топку список "изобретение кривых велосипедов там, где имеются гибкие встроенные механизмы; " Ты хоть раз пробовал вставлять в свои отчеты вызов типовых процедур из ГМ. А я пробовал, к 3-му релиза забодался разбираться куда они в этот раз перенесли процедуру (в какой ГМ) и за что теперь отвечают новые параметры. |
|||
137
andrewks
20.08.11
✎
21:40
|
(136) не, ну если имеются в виду механизмы платформы, то озвучено верно. другое дело, что не всегда надо им руководствоваться. тут только поставленная задача и здравый смысл помогут определится. яркий пример - работа с xml в 7.7 ч/з штатную v7plus никуда не годится
|
|||
138
CepeLLlka
20.08.11
✎
21:41
|
Я и заметил что они по разному делают.. в одном месте так разбирают строку.. в другом иначе..
|
|||
139
Aleksey
20.08.11
✎
21:44
|
(137) Ну если исходить из (1), то перебор на языке 1С по сравнению с прямым запросом - быдлокод
|
|||
140
popcorn
20.08.11
✎
21:44
|
Интересно, есть аналог YUI Compressor для 1С ? Я бы его использовал )))
|
|||
141
bazvan
20.08.11
✎
21:45
|
Вот веть офигеть.
Даже незанаю как сказать что бы не получить. Смешные, особенно некоторый он даже на т1с пытается свой писюн выстовить. смешной чесслово |
|||
142
proger2011
20.08.11
✎
21:53
|
Быдлокод это когда процедуры и функции больше одного экрана и глобальные переменные.
|
|||
143
zak555
20.08.11
✎
22:07
|
(134) нет переменной поз
хотя не знаю, что это в 8 значит |
|||
144
CepeLLlka
20.08.11
✎
22:20
|
(143) Да ты чё.. это же просто переменная которая указывает на позицию разделителя..
|
|||
145
CepeLLlka
20.08.11
✎
22:24
|
Никак не могу разобраться с печатью этой :( Мозга не хватает :( Хнык, хнык...
|
|||
146
cViper
20.08.11
✎
22:46
|
(119) В пятницу видел в конфе кусок кода, в котором с структуру записывались имена директоров(соответствует пункту 5) и как-то там обрабатывались. Наиболее оптимальный(безопасный) способ в такой ситуации использовать предопределенный элемент справочника? Может быть даже регистр?
|
|||
147
Злопчинский
20.08.11
✎
22:54
|
(142) быдлокод, это когда где надо и не надо функции и процедуры ляпают, да еще с выносом в глобмодуль... а потом удивляются - а чего так медленно...
|
|||
148
Лефмихалыч
20.08.11
✎
22:57
|
(0) быдлокод - это такой код, который кодит быдлокодер. Это ж очевидно.
ЗЫ Так-то |
|||
149
andrewks
20.08.11
✎
22:58
|
(148) жди следующую ветку от ТС "Как вы думаете, кто такие быдлокодеры?" :)
|
|||
150
Лефмихалыч
20.08.11
✎
23:09
|
(149) жду с нетерпением, у меня уж и банхаммер с надписью "за беспробудный вндализм и тупую копипасту самого себя" в руках
|
|||
151
proger2011
20.08.11
✎
23:23
|
(147) Я уж думал не дождусь поклонников оптимизации и любителей процедур в 2000 строк.
|
|||
152
Злопчинский
20.08.11
✎
23:48
|
(151) открой в типовой бухии 7.7 какой-нибудб код по зарплате/НДФл - и втыкай до изнемозжения.. ;-)
|
|||
153
proger2011
21.08.11
✎
00:12
|
(152) А что там? Я с 7.7 уже лет 6 не работал. Там портянки штоли, ну так типовые далеко не образец для подражания.
|
|||
154
VasilyKushnir
21.08.11
✎
00:12
|
Да не спорьте вы , ребята. Знаю одного проггера и весьма нефигового (не 1с-ника, хотя 1С он тоже занимается по необходимости), который считает, что быдло-код = это все, что не он написал. И что интересно - он где-то прав... Не буду скромничать - сам иногда так считаю (хотя есть гуру, перед которыми сниму шляпу и поклонюсь). А все потому, что нет предела совершенству (это не я придумал) и любую программу можно оптимизировать и совершенствовать до бесконечности. Следовательно: совершенству нет предела и соответственно определения. То же можно сказать о быдлокоде, если идти от обратного. Не забываем, что бадлокодируемая, но работающая обработка сегодня всегда лучше самой красивой и оптимальной, но заработающей (и то еще вопрос) через год.
|
|||
155
Aleksey
21.08.11
✎
00:30
|
(154) Совершенство без контекста есть null.
Ибо совершенство зависит от системы координат |
|||
156
Aleksey
21.08.11
✎
00:32
|
Можно привести базу к нормальной формы Бойса — Кодда
Но тогда придется данный получать методом как в (0) Зато с точки зрения нормализации - база будет совершенна |
|||
157
VasilyKushnir
21.08.11
✎
00:41
|
(155) "Ибо совершенство зависит от системы координат" +10000
Этим ты полностью подтвердил мою мысль, но более лаконично (браво!). Смени систему координат (цена , сроки и т.д и т.п.) и быдлокод уже не совсем быдлокод. Хотя... Если помои посолить, они лучше пахнуть не станут (с) Ликвидация - Фима. |
|||
158
syktyk
21.08.11
✎
00:41
|
Не может быть ни одного прога, который бы не написал быдлокод. Хоть один раз в своей жизни. Аксиома.
|
|||
159
VasilyKushnir
21.08.11
✎
00:49
|
(158) +100500 Иногда (как выпадает немного свободного времени на работе, хотя это редкоо бывает), свои старые обработки переписываю с нуля. Зачастую ради повышения быстродействия. Об одной (написанной года 4 назад) уже и забыл - оказывается пользуются! Отойдя от шока, переписал. Вместо 30-40 минут (писалась обычными запросами под ДБФ-ную базу) отрабатывает 2-3 минуты (прямые запросы, но уже на скуле).
|
|||
160
syktyk
21.08.11
✎
00:56
|
(159) Ага, я споминаю бесмертное - "Над кем смеетесь? Над собой смеетесь!"
ЗЫ. А пасаны просто такого и не знают :) |
|||
161
syktyk
21.08.11
✎
00:57
|
+(160) **сорестион** сс
|
|||
162
Jofa
21.08.11
✎
06:23
|
Кстати на лукоморье есть один пункт из поведения быдлокодера:
10.Считает, что все вокруг тупые уроды, так как не знают некоторых вещей (конечно же, охренительно серьёзных и профессиональных), которые знает он, или потому, что пытаются объяснить ему то (конечно же, никому не нужное), чего он не знает. |
|||
163
Luhtas
21.08.11
✎
07:53
|
Вот два примера решения одной и той же задачи:
Какой из них оптимальнее? Первый: ////////////////////////////////////////////////////////////// Процедура ПриНачалеРаботыСистемы() ОбщегоНазначения.СообщитьИменинников(); КонецПроцедуры Процедура СообщитьИменинников() Экспорт ДеньГода=День(ТекущаяДата()); МесяцГода=Месяц(ТекущаяДата()); Выборка=Справочники.Сотрудники.Выбрать(); Пока Выборка.Следующий() Цикл Если День(Выборка.ДатаРождения)=ДеньГода И Месяц(Выборка.ДатаРождения)=МесяцГода Тогда Сообщение=Новый СообщениеПользователю; Сообщение.Текст="Сегодня день рождения у сотрудника: "+Выборка.Наименование+"."; Сообщение.Сообщить(); КонецЕсли; КонецЦикла; КонецПроцедуры ///////////////////////////////////////////////////////// Второй: ///////////////////////////////////////////////////////// Процедура ПриНачалеРаботыСистемы() СписокИменинников=ОбщегоНазначения.ПолучитьСписокИменинников(); Для Каждого Сотрудник ИЗ СписокИменинников Цикл Сообщение=Новый СообщениеПользователю; Сообщение.Текст="Сегодня день рождения у сотрудника: "+Сотрудник+"."; Сообщение.Сообщить(); КонецЦикла; КонецПроцедуры Функция ПолучитьСписокИменинников() Экспорт ТекДень=День(ТекущаяДата()); ТекМесяц=Месяц(ТекущаяДата()); Массив=Новый Массив; Выборка=Справочники.Сотрудники.Выбрать(); Пока Выборка.Следующий() Цикл Если ТекДень=День(Выборка.ДатаРождения) И ТекМесяц=Месяц(Выборка.ДатаРождения) Тогда Массив.Добавить(Выборка.Наименование); КонецЕсли; КонецЦикла; Возврат Массив; КонецФункции /////////////////////////////////////////////////////// |
|||
164
Luhtas
21.08.11
✎
08:03
|
(141) Быдлокод:
НУ вот наконец то спустя 5 лет я был удастоен звезд. Я их очень ждал. И Волшебник мне их обещал в 2012 но Асмодя выдал сейчас. |
|||
165
Jofa
21.08.11
✎
08:05
|
(164)Запрос для умников?
|
|||
166
jump if zero
21.08.11
✎
11:28
|
Быдлокод - это код написанный профессиональным программистом
вынужденного работать в условиях скромного бюджета. |
|||
167
Злопчинский
21.08.11
✎
11:38
|
(153) а пресловуьые 8-ые запросы на несколько страниц...?
|
|||
168
proger2011
21.08.11
✎
11:41
|
(167) Их уже даже в типовых выносят в отдельные функции.
|
|||
169
vde69
21.08.11
✎
11:59
|
(163) оба примера - быдлокод причем поганый быдлокод,
для этого запрос нужно использовать |
|||
170
vde69
21.08.11
✎
12:04
|
я отношу к былокодерству
1. отсутствие стиля (не соблюдение нотаций, пускай и своих собственых) 2. излишнее использование циклов (в частности объектная модель вместо запроса) 3. не умение работать с тразакциями и непонимание блокировок все остальное можно и принять |
|||
171
Escander
21.08.11
✎
13:34
|
(169)есть мнение, что чел какие-то курсы учит и до запросов ещё не дошёл.
|
|||
172
Alexandr Puzakov
21.08.11
✎
14:51
|
(136) глобальный поиск по модулям отменили?
|
|||
173
Лефмихалыч
21.08.11
✎
15:22
|
(163) быдлокод - это и то, и другое. Данные надо выбирать запросом
|
|||
174
Злопчинский
21.08.11
✎
15:22
|
(173) а объекты - выборкой?
|
|||
175
Лефмихалыч
21.08.11
✎
15:25
|
(174) не понял.
|
|||
176
Steel_Wheel
21.08.11
✎
15:26
|
(174) объекты -- тоже данные
|
|||
177
Лефмихалыч
21.08.11
✎
15:28
|
(176) а, теперь понял. Вопрос (174) идиотский
|
|||
178
Aleksey
21.08.11
✎
15:34
|
(172) Спасибо поржал
Как ты думаешь, правильнее после каждого релиза тратить по 2-3 часа в поисках потерявщих моделей во всех обработках и ездить по клиентам и обновлять или скопировать один раз и использовать? Что скажут клиенты, если после каждого обновления придется вызывать тебя, потому что твой отчет не работает? |
|||
179
Злопчинский
21.08.11
✎
15:36
|
(177) все данные надо выбирать запросом?
|
|||
180
Злопчинский
21.08.11
✎
15:38
|
(176) Объект - это дофигища данных. где-то преимущество запросов в т.ч. писалось что типа для получения датыдокумента - запросом выдираем именно дату, ане весь объект..
|
|||
181
Alexandr Puzakov
21.08.11
✎
16:27
|
(178) это решается простым копированием процедуры/функции из общего модуля в модуль отчета. И не надо вот так громко говорить о плясках процедур из модуля в модуль, большинство из них годами в одном и том же модуле находятся, и в неизменном виде.
|
|||
182
Chai Nic
21.08.11
✎
16:35
|
"наименование обработок длинные и с пробелами, вместо лаконичных сокращенных наименований"
Вспомним хотя бы ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокументИмениБорисаГеоргиевичаНуралиева ;) |
|||
183
Torquader
21.08.11
✎
16:38
|
(180) Если один реквизит, то быстрее, а если несколько, то скорость уже сомнительна.
Кроме того, никто не гарантирует, что отчёт будет выбирать только одно поле, а не делать внутри себя выборку всего объекта и считывание из него только одного поля. |
|||
184
Jolly Roger
21.08.11
✎
16:55
|
капитан очевидность скромно напоминает, что в терминах 1с объект и ссылка - не одно и то же...
|
|||
185
НеЛюблюФорумы
21.08.11
✎
17:54
|
я придерживаюсь вот такой стратегии оценки
http://glenndejaeger.files.wordpress.com/2010/04/wtfm.jpg |
|||
186
smaharbA
21.08.11
✎
19:07
|
Если присутствует процедура ПоКнопке...
|
|||
187
MikleV
02.09.11
✎
22:56
|
чего то все забыли..
только вчера узрел: Объект.Соглашение = Справочники.СоглашенияСКлиентами.НайтиПоНаименованию("БлаБла"); |
|||
188
Лефмихалыч
02.09.11
✎
23:22
|
(185) вмемориз!
надо бы это высечь в граните, об который потом несознательных коллег головой прикладывать |
|||
189
smaharbA
02.09.11
✎
23:26
|
тоже самое что и "хомячки"
произносится самими |
|||
190
IamAlexy
02.09.11
✎
23:40
|
||||
191
Икогнито
02.09.11
✎
23:48
|
(0) Быдлокод - это когда конфа не проходит тестирование в режиме тонкого клиента и архитектор говорит писать код для "толстого клиента" и отключить отладку "тонкого клиента" в конфигураторе.
|
|||
192
Лефмихалыч
02.09.11
✎
23:51
|
(191) даже если конфа получена конвертацией из 8.1, находится в режиме совместимости и не предназначена для использования в режиме тонкого клиента?
|
|||
193
Икогнито
02.09.11
✎
23:58
|
(192) нет, если в конфе настройка "Управляемое приложение" стоит и совместимости с 8.1 нет
|
|||
194
Икогнито
03.09.11
✎
00:00
|
(192) а разрабатывать новую конфу в режиме совместимости с 8.1. - это тоже быдлокод.
Это тупо говорит о том, что челы, которые её разрабатывают, просто не владеют навыками работы с управляемым приложением. |
|||
195
Лефмихалыч
03.09.11
✎
00:01
|
(193) тогда надо бы обобщить: "Быдлокод - это когда конфигурация не проходит ситнтаксический контроль в тех режимах, в которых она используется в продуктиве" иначе абсурд получается.
(194) это седствие |
|||
196
Икогнито
03.09.11
✎
00:02
|
(195) слишком заумные фразы, работодателю на стороне Заказчика они будут не понятны.
|
|||
197
IamAlexy
03.09.11
✎
00:03
|
(196) заказчик не будет запускать синтаксисконтролью... заказчик запустит базу в том режиме в котором она должна работать и проверит работоспособность оной...
|
|||
198
Лефмихалыч
03.09.11
✎
00:04
|
(196) а (191) заказчику будет понятно и он сделает из этого адекватные выводы?
|
|||
199
Икогнито
03.09.11
✎
00:05
|
(197) это из разряда
-"прогнуть Заказчика под свое решение" - "Заказчик же не видит, какое *овно написано внутри, ему конфетку снаружи показывают" |
|||
200
Лефмихалыч
03.09.11
✎
00:05
|
(200)
|
|||
201
Икогнито
03.09.11
✎
00:07
|
(198) грамотный программист на стороне Заказчика сделает адекватные выводы.
Хватит уже мыслить узкими категориями, что если есть Заказчик, то у заказчика нет своего программиста (представителя Заказчика) :) |
|||
202
Лефмихалыч
03.09.11
✎
00:07
|
(199) нет, это из совсем другого разряда. Это из разряда "не вводить заказчика в заблуждение"
|
|||
203
Лефмихалыч
03.09.11
✎
00:08
|
(201) и я про то же - хватит уже мыслить узкими категориями - думай, что говоришь
|
|||
204
Икогнито
03.09.11
✎
00:09
|
(202) Видимо у нас разные позиции.
Франч исходит из позиций: - на*овнокодю внутри, снаружи конфетку сделаю; - потом, когда возникнут проблемы оптимизации - срублю еще бабок Представитель Заказчика исходит и качества и стоит на страже интересов Заказчика. |
|||
205
IamAlexy
03.09.11
✎
00:12
|
(199) ты конечно же когда от заказчика деньги будешь получать потребуешь полной истории каждой полученной копейки.. ибо недайбог пара рублей будет получена незаконным путем.. правильно же?
|
|||
206
IamAlexy
03.09.11
✎
00:12
|
(199) а вообще это из разряда "не надо придумывать сложностей сверх необходимого"
|
|||
207
Икогнито
03.09.11
✎
00:13
|
(205) С недавних пор, принял решение, что работаю только на стороне Заказчика :)
|
|||
208
IamAlexy
03.09.11
✎
00:13
|
(204) ты прог, по часам работаешь.. зачем мне как заказчику оплачивать твою работу над исправлением ошибок режимов которые я не собираюсь использовать никогда никогда?
|
|||
209
IamAlexy
03.09.11
✎
00:13
|
(207) ты просто двуличен.. свои Nрублй за час ты с заказчика слупишь.. просто ты ему впариваешь ненужную услугу.. вот и все..
|
|||
210
Икогнито
03.09.11
✎
00:14
|
(208) не понял, что ты написал. Два раза прочитал, не понял.
|
|||
211
Лефмихалыч
03.09.11
✎
00:14
|
(204) я не франч, я в душе не знаю, на какой ты там позиции стоишь
|
|||
212
Икогнито
03.09.11
✎
00:15
|
(209) С каких пор качество стало называться "ненужная услуга"?
|
|||
213
Лефмихалыч
03.09.11
✎
00:16
|
(212) ни с каких. Просто значение слова Качество у заказчика совсем не такое, как у тебя
|
|||
214
IamAlexy
03.09.11
✎
00:16
|
(210) расшифровываю как все происходит на самом деле:
я заказчик, заказал разработку конфы на 8.2, не на управляемом интерфейсе. ты разработчик потратил время на исправление ошибок управляемого интерфейса, на рисование совместимых форм, на отладку модулей и тд и тп а затем- выставил мне счет за потраченное время. вопрос: зачем мне оплачивать навязанную мне услугу которая мне нахрен не сдалась и которой я пользоваться никогда не буду.. каким боком ты тут на моей, на заказчика, стороне то? |
|||
215
Икогнито
03.09.11
✎
00:16
|
(208) работа по часам - это работа в угоду галочке в плане выполнения работ.
|
|||
216
IamAlexy
03.09.11
✎
00:18
|
(215) так или иначе ты по часам работаешь и начальство тебе часы закрывает.. и по этому оно тебя пинает - не надо тратить время на то что заказчиком будет неоплачено..
|
|||
217
Икогнито
03.09.11
✎
00:19
|
(216) Да заказчик может и не знать, что за два часа можно на*овнокодить так, что потом вынужден будет платить за неделю работы, чтобы разобраться, почему база тормозит.
|
|||
218
IamAlexy
03.09.11
✎
00:20
|
(217) приведенный тобой пример про ошибки управляемого и вебинтерфейса этому отношения не имеют..
|
|||
219
Лефмихалыч
03.09.11
✎
00:21
|
(218) пустая трата буков
|
|||
220
IamAlexy
03.09.11
✎
00:22
|
(219) да я сегодня мало флудил.. пришлось утром поработать а днем спал весь день.. запас буков велик и неистрачен..
|
|||
221
Икогнито
03.09.11
✎
00:23
|
(219) Ну наконец-то до тебя дошло, что разговор неконкретен.
|
|||
222
Икогнито
03.09.11
✎
00:23
|
(220) не оправдывайся
|
|||
223
IamAlexy
03.09.11
✎
00:25
|
(222) странные выводы...
|
|||
224
Лефмихалыч
03.09.11
✎
02:03
|
(221) жаль, что до тебя так и не дошел смысл сказанного в (208)
(222) тебя жизнь ни чему не учит |
|||
225
Cthulhu
03.09.11
✎
02:10
|
(208): ну, наверное, потому, что в 99% случаев то, что по мнению заказчика "не будет использоваться никогда", "у них такого не будет", и т.п. - но что, исходя из анализа задания предполагается грамотным разработчиком - рано или поздно и используется, и бывает, и если вдруг оно все ломает - то "вы же специалист - вы были должны это предусмотреть!".
|
|||
226
IamAlexy
03.09.11
✎
02:27
|
(225) каким боком это относится к теме обсуждения?
обсуждается же - стоит ли тратить время на написание кода совместимого для тонкого и вебклиента если все решение проектируется как решение без использование управляемых форм вообще... |
|||
227
Asirius
03.09.11
✎
11:14
|
(119) Работал я с одной такой базой, к которой применимы пожалуй все пункты, кроме 2). Хотя у меня ситуация еще более запущенная, туда можно еще добавить несколько пунктов:
а) Эта конфа, писавщеяся с нуля с 2003 года десятью разными программистами, в которой никогда не сворачивались остатки. За это время фирма несколько раз претерпела структурные преобразования, когда-то там даже велась розница с УРБД, но сейчас там остался только корпоративный сегмент, а базу никто не менял, так и работают в центральной базе. Особенно весело разбирать код типа если Пользователь = "Иванов", когда Иванов уже лет пять как не работает. б) Криво закрываются регистры остатков по измерениям. За почти 10 лет ведения базы мусора в остатках столько, что открытие следующего периода занимает пару часов. Соответственно про бекапы средствами 1С-ки можно забыть, т.к. пересчет итогов за 10 лет, который делается при загрузке данных делается несколько дней. в) Куча тормозных алгоритмов использующих запросы в цикле, разименовывание через десять точек, итп. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |