|
OFF: Проверка на соответствие кода стандартам разработки. | ☑ | ||
---|---|---|---|---|
0
_Ramzes
03.11.11
✎
18:37
|
Добрый день. На предприятии руководитель вводит проверку кода Аудитом на соответствие стандартам разработки.
В связи с этим есть вопросы: 1)Кто сталкивался с таким, были ли проблемы связанные с придирками, к примеру отступы, названия переменных? 2)Какова стоимость аудита была? 3)Был ли реально прогресс или все заглохло? |
|||
1
rotting
03.11.11
✎
18:39
|
предприятие чем занимется? Если НЕ разработкой под 1С, тогда увольте руководителя
|
|||
2
smaharbA
03.11.11
✎
18:40
|
а где он возьмет эти стандарты ? или свои микалки напишет ?
|
|||
3
Ахиллес
03.11.11
✎
18:40
|
Ну вот скоро и узнаешь.
Видать крепко вы своим индусским (китайским) кодом достали руководителя. (2) На ИТСе скорее всего. |
|||
4
smaharbA
03.11.11
✎
18:41
|
а какая разница руководителю какой код ?
|
|||
5
Ахиллес
03.11.11
✎
18:43
|
Мож это начальник отдела разработки. Ему может по должности положено их авнокод проверять.
|
|||
6
smaharbA
03.11.11
✎
18:45
|
даже при том ему нах не нужен код, ему нужен результат
|
|||
7
_Ramzes
03.11.11
✎
18:46
|
(1) Внедрением УПП
(3) Код у всех разный. Он считает что если код соответствует стандартам, то 1С Будет работать без глюков. |
|||
8
Ахиллес
03.11.11
✎
18:46
|
Если продукт на поддержке, то качество кода не меньше важно, чем результат.
|
|||
9
Пришел в тапках
03.11.11
✎
18:47
|
(3) А что там на ИТСе такого лежит? Что-то не встречал ранее.
|
|||
10
_Ramzes
03.11.11
✎
18:47
|
И собственно кто может дать ответы на вопросы?
1)Кто сталкивался с таким, были ли проблемы связанные с придирками, к примеру отступы, названия переменных? 2)Какова стоимость аудита была? 3)Был ли реально прогресс или все заглохло? |
|||
11
Пришел в тапках
03.11.11
✎
18:48
|
(10) Я вот сразу приучился писать по стандартам, нормальные переменные, где нужно комментарии расставляю.
|
|||
12
Inform
03.11.11
✎
18:48
|
(4) да вариантов туча:
1. чтобы не только 1 разработчику было понятно, что откуда и куда 2. чтобы не ломать глаза, когда читаешь 3. чтобы можно было делать 1С:Совместимо 4. если есть методики и стандарты разработки созданные 1С, разумно придерживаться именно их при написании 5. если конфу увидят сторонние разработчики, то могут возникнуть какие-либо проблемы с объяснением того, что квалификация разработчиков конфы соответствует... и т.д. P.S.: когда читаю *овнокод нередко появляется желание оторвать руки тому, кто его написал (9) вот это: http://its.1c.ru/db/v8dev |
|||
13
Ахиллес
03.11.11
✎
18:49
|
(9) Мне лень тянутся за ИТСом, так, что раздел не скажу, но там есть типа рекомендаций по стилю программирования и стандартам к продуктам "1С совместимо".
|
|||
14
Mort
03.11.11
✎
18:50
|
Оформленный по всем стандартам г*код остается г*кодом.
|
|||
15
Ахиллес
03.11.11
✎
18:51
|
(14) Нет, оформленный по стандартам код может не работать или выдавать неверный результат, но это уже не авнокод.
|
|||
16
Пришел в тапках
03.11.11
✎
18:53
|
(15) Верно подметил.
|
|||
17
Inform
03.11.11
✎
18:54
|
(10)
1.) сталкивался но пишу по стандартам, придирки были наверно поначалу, но скорее не придирки, а наставления... 2.) непонятно про какой ты аудит, скорее всего почасовка, а дальше от объема вашей конфы, в одном из крупных моск. франчей, такой фигней занимаются отделы специальных работ, там вроде как стоимость часа выше чем в остальных 3.) конечно прогресс всегда есть при вылизывании кода, да и множество работодателей сейчас смотрят примеры кода и если он написан совершенно без соблюдения всех описанных 1С методик, то шансы попасть на нормальное место уменьшаются P.S.: для разработчиков - это только в плюс, потому как вас приучат нормально писать + самим начнет нравится так писать и смотреть такой код за коллегами |
|||
18
Mort
03.11.11
✎
18:55
|
(15) Г*внокод можно и в запросе написать и будет работать. Форматируй его сколько влезет по всем стандартам, хорошим он не станет.
|
|||
19
Alexandr Puzakov
03.11.11
✎
18:55
|
Стандарты разработки - хорошая вещь. Нужно их придерживаться.
Вываливай фрагменты своего кода, посмотрим. |
|||
20
Пришел в тапках
03.11.11
✎
18:56
|
(18) Видимо у тебя по этому поводу "пунктик" ))
|
|||
21
Ахиллес
03.11.11
✎
18:57
|
(18) Ну вообще то стандарты на код это далеко не стандарты на ширину отсупа :-)
|
|||
22
_Ramzes
03.11.11
✎
19:01
|
Проблема в том, что проверка будет выполнятся за деньги. И в случае нахождения расхождения со стандартами разработчик платит из своего кармана.
По формуле расчета 12,5% от заявленной стоимости разработки (которую проверяют на соответствие) * 4000 |
|||
23
_Ramzes
03.11.11
✎
19:01
|
Т.е. проверка недельного программного кода равна 20000 рублей.
|
|||
24
_Ramzes
03.11.11
✎
19:02
|
8*5*0,125*4000
|
|||
25
_Ramzes
03.11.11
✎
19:06
|
(17)
Ты выполняешь требование локализации: 1. Если в модулях конфигурации встречаются строки, предназначенные для пользовательского интерфейса (сообщения пользователю, надписи в формах, названия и подсказки команд и т.п.) необходимо обеспечить возможность локализации таких строк. Для этого необходимо применять функцию НСтр вместо прямого использования строковых литералов. Иное использование строк, предназначенных для пользовательского интерфейса, не допускается. |
|||
26
Ахиллес
03.11.11
✎
19:07
|
(24) Так, что зубрите стандарты, скоро тех авнокодеров из за которых контора будет постоянно попадать на бабки погонят ссаными тряпками.
|
|||
27
Ахиллес
03.11.11
✎
19:08
|
(25)Ну это они загнули. Этого даже в одинэсовских типовых днём с огнём искать. Не стоит стараться быть святее папы римского.
|
|||
28
Mort
03.11.11
✎
19:11
|
(19) Эт ты кому?
(21) А что же это тогда? Можешь перечислить стандарты из разряда хорошо и оптимально написать? Только рекомендации типа не юзать запросы в циклах и т.п. |
|||
29
Ахиллес
03.11.11
✎
19:13
|
(28) Ну например запрос к документам там где нужен запрос к регистрам это авнокод, хоть как его отформатируй.
|
|||
30
Mort
03.11.11
✎
19:17
|
(29) Ключевое здесь "там где нужен". Потому что иногда действительно нужно делать запросы к документам. И никаких жестких стандартов на этот счет нет, чтобы лицо далекое от программирования могло сказать "это г-код, потому что, не соответствует стандарту".
Т.е. распознать всё равно должен профессионал, и никакие стандарты тут не помогут. |
|||
31
Ахиллес
03.11.11
✎
19:19
|
Ну тык профессионал должен чем то руководствоваться? Это и есть стандарты для профессионалов, а не для вьетнамцев с Черкизона ретузами торгующими.
|
|||
32
Inform
03.11.11
✎
19:43
|
(25) в 8.1 не делал раньше, а в 8.2 уже выполняю
|
|||
33
Inform
03.11.11
✎
19:45
|
+ еще некоторые требуют, чтобы разработчики писали правильные запросы, с учетом всех требований, которые встречаются на kb.1c.ru, это так же быстро привык делать и ни капли об этом не жалею
|
|||
34
Inform
03.11.11
✎
19:51
|
(0) а ваще штрафовать за это - не дело, надо валить тебе оттуда, т.к. нормальный руководитель дал вам время переучиться и все исправить, чтобы привыкнуть к такому стилю, а то все будете без ЗП сидеть таким макаром...
|
|||
35
_Ramzes
04.11.11
✎
00:04
|
(34) Я месяц отработаю, посмотрю. На данный момент код пишу в соответствии со стандартами разработки. Просто с 7 ноября вводится аудит.
|
|||
36
Inform
04.11.11
✎
00:12
|
(35) качни конфу "1С:Автоматизированная проверка конфигураций", прогони ей тесты, по своим участкам поправь насколько возможно, может и не успеют по карману вдарить...
|
|||
37
smaharbA
04.11.11
✎
00:22
|
какие такие стандарты ? где их начальник брать собрался ?
если буквоедствовать - он обязан разработать, утвердить и сертифицировать стандарт предприятия (в простонародии - микалка) - иначе пшол на |
|||
38
cViper
04.11.11
✎
00:23
|
(34) Что есть нормальный руководитель? В некоторых компаниях этот самый руководитель пишет запросы в цикле который в цикле, указывает имена пользователей и доменные имена в коде.
|
|||
39
Злопчинский
04.11.11
✎
00:43
|
скажу сразу: разгоребаю вот сейчас 7.7 конфу полусамопальную - в первый же раз. когда я увидел код - я понял - будут проблемы! и что вы думаете - их есть у меня!!!
|
|||
40
Злопчинский
04.11.11
✎
00:43
|
(38) потому что проще затычку поставить, чем новый набор прав рисовать для этого юзверя..
|
|||
41
Inform
04.11.11
✎
00:44
|
(37) см. (12) или в гугле набери "Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие"
(38) вот я и говорю, что руководитель должен быть адекватным, а если он самодур и решает произвести какие-то кардинальные изменения в работе отдела, которые могут только лишь ударить по карману сотрудников, то это Не нормальный руководитель, т.е. человек рубит с плеча и при этом его решение смотивирует всех после получения очередной ЗП написать ПСЖ, хотя он мог бы нормально попросить ребят заточить код под стандарты своими силами, дал бы им некоторое время, глядишь, и все бы встало на свои места и без таких мер. Т.е. достаточно просто было нормально отнестись к этому нововведению и согласовать как-то с сотрудниками. И вообще с какого перепугу он вдруг решил, что необходимо ввести такую проверку, почему раньше она была не столь критична и т.д. Все это говорит только о чьем то больном воображении, которое уже вряд ли когда перестанет фонтанировать инновационными идеями "улучшающими" качество программных продуктов. А в компаниях, где руководитель пишет запросы в куче вложенных циклов, как правило, те кто привык писать правильно - долго не работает (если конечно руководитель не стремится к совершенству и не хочет вникать в правильность своих действий в конфигураторе)... |
|||
42
IamAlexy
04.11.11
✎
00:46
|
(0) хороший способ подчистить штат и убрать неугодных...
не ну а чо.. некодишь в соответствии со стандартами и методикам - досвидос.. с записью о несоответствии высокому званию "программист 1с" :) :) :) |
|||
43
Inform
04.11.11
✎
00:53
|
(42) тут еще можно предположить, что начальник прогонит конфу спец. средствами, выявит все недочеты и тупо получит откат от франча, потому что не очень понятно что там "аудиторы" будут проверять неделями...
|
|||
44
smaharbA
04.11.11
✎
01:00
|
(41) чего, какая система стандартов - эта липа от адинеснегов ?
стандарта не существует ! |
|||
45
_Ramzes
04.11.11
✎
23:21
|
||||
46
_Ramzes
04.11.11
✎
23:48
|
(36) Она работает под 8.1 а у меня конфа под 8.2
|
|||
47
Inform
05.11.11
✎
00:04
|
(46) вот тут написано как сделать АПК под 8.2:
v8: Автоматизированная проверка конфигураций для 8.2. делал также, вроде что-то где-то находила, но не факт что корректно, я лично долго не разбирался с этим, т.к. особой нужды не было, но способ описан работоспособный |
|||
48
VasilyKushnir
05.11.11
✎
02:21
|
(0) Ты пошутил? Если да, то весьма скверно... А теперь (лишь бы не забанили, лишь бы не забанили...). Впрочем небольшая предистория: у нас полностью поменялось руководство почти (да хрын там почти! - во всех!) во всех звеньях. Меня пока , а может не пока..., считают непотопляемым - 4-ю смену, практически полную, руководства переживаю. НЕ знаю... С одной стороны.... впрочем никаких сторон!: это мои проблемы и я их сам порешаю. Но! (ближе к теме), если бы меня хоть на пол-х.я заподозрили не в компетентности. А я уже не говорю за аудит - извини братан, но на твоем месте я бы не оказался, а если бы и оказался, то никакого аудита (!!!). НИ-КА-КО-ГО!!! Либо заявление ПСЖ, либо пошли они... (а вот здесь есть варианты - в или на).
|
|||
49
Alexandr Puzakov
05.11.11
✎
08:13
|
(44) быдлокодер?
|
|||
50
Визард
05.11.11
✎
09:47
|
(48) все хомяки офисные смелые и бравые в интернете
|
|||
51
Mort
05.11.11
✎
10:34
|
(44) Для некоторых одинэсников оказываются существует, о как. Когда знаешь с гулькин нос, кажется что применить к этому некий стандарт можно на раз-два.
|
|||
52
Sammo
05.11.11
✎
10:44
|
||||
53
NcSteel
05.11.11
✎
10:54
|
Если код работает , то нет смысла проводить аудит . Видимо в (0) уже всех косяками достал
|
|||
54
cViper
05.11.11
✎
12:19
|
(53) Тут многие с тобой не согласятся. Вопрос в том как он работает?
|
|||
55
МихаилМ
05.11.11
✎
12:29
|
вот сыылка по теме
http://brix8x.stavr.ru/ |
|||
56
NcSteel
05.11.11
✎
12:31
|
(54) Если при определенном наборе входных параметров код выдает ожидаемые выходные , то код корректен.
|
|||
57
Inform
05.11.11
✎
12:34
|
(53) проверять собрались не только (0), а всех разработчиков, как я понял
(56) код корректен, если при синтаксическом контроле нет ошибок, а вот алгоритм и стиль написания кода... |
|||
58
NDN
05.11.11
✎
12:35
|
Алгоритм - это определенным образом организованная последовательность действий, за конечное число шагов приводящая к решению задачи.
Свойства алгоритмов: Определенность Дискретность Целенаправленность Конечность Массовость А стиль - это субъективно |
|||
59
NcSteel
05.11.11
✎
12:36
|
(57) Все же код пишут не для самого процесса, а для выполнения задачи . Следовательно корректность кода тесно связана с выполнением поставленной задачи.
|
|||
60
vde69
05.11.11
✎
12:42
|
я:
ЗА стандарты ПРОТИВ аудита за соблюдением стандартов и стиля обязан следить ведущий или архитектор, если меня что-то не устраивает - я говорю, если человек не прислушивается - можно и растатся... из личного сам только недавно начал писать префикс локальных переменных "м" до этого использовал "_" сотрудник перебарщивает временными таблицами в запросе, несколько раз выговаривал, сдвиги есть но пока не слишком сильные :( сам привык результат запроса выгружать в ТЗ (там где надо и не надо), - тоже думаю менять свой стиль на использование выборки |
|||
61
Inform
05.11.11
✎
12:44
|
(59) да, но только при написании необходимо учитывать соглашения 1С и для того чтобы другой разработчик мог, не ломая глаз, что-либо исправить
Например, читать и править код написанный самой 1С гораздо проще, чем код после каких-либо супер-франчей |
|||
62
Inform
05.11.11
✎
12:51
|
(60) за использование такого подхода: выгрузка результата запроса в ТЗ без необходимости на экзамене 1С:Специалист снижают оценку на 1 балл и оправдано, так что переучивайся, а перебарщивание временными таблицами - это скорее плюс...
http://www.1c.ru/rus/partners/training/files/ATT82PL.zip |
|||
63
cViper
05.11.11
✎
13:06
|
(56) Простой пример: получить данные справочника запросом или обходом элементов справочника циклом. Результат одинаковый, но есть НЮАНС. А ведь есть программисты которые вообще не знают запросов, на мисте от кого-то слышал о таких.
|
|||
64
smaharbA
05.11.11
✎
13:14
|
(45) это чо ?!
|
|||
65
smaharbA
05.11.11
✎
13:16
|
Стандартов нет, "стандарты" от адинес - это микалки только для фирмы адинес, другие должны даже если их берут за основу выпустить стандарт предприятия, утвердить и сертифицировать, все. Иначе это филькина грамота и не более того.
|
|||
66
smaharbA
05.11.11
✎
13:17
|
(63) запросы чем лучше обхода ? патамушта эта крута ?!
|
|||
67
cViper
05.11.11
✎
13:22
|
(66)Это быстрее.
|
|||
68
Alexandr Puzakov
05.11.11
✎
13:22
|
(58) алгоритмы бывают разные... Часто встречаю код, который работает только в определенных условиях (!), и при этом код вроде бы даже дотягивает до стандартов разработки...
Например, распространенная ошибка: не предусмотрено, что в какой-то участок кода попадет пустая переменная (очевидно, тестировали на определенном наборе данных, который всегда приводил к определенному результату), или же логические конструкции охватывают не все возможные варианты. Но это еще пол беды. Все самое интересное начинается тогда, когда пытаешься доработать такой вот "ограниченный" алгоритм, и выясняется, что он буквально не предназначен для доработки (если тут поменяем, то там начнет рассыпаться)... |
|||
69
cViper
05.11.11
✎
13:25
|
(66) Что крутого в запросах?
|
|||
70
Alexandr Puzakov
05.11.11
✎
13:26
|
(65) с чего это? В стандартах от фирмы 1С есть даже "как делать нельзя". Ну разумеется, эти стандарты не на все случаи жизни, но даже судя по отраслевкам (и типовым), разработчикам не всегда удается выдерживать стандарты. Куда еще усложнять-то?
|
|||
71
smaharbA
05.11.11
✎
13:34
|
(67) правдо быстрее ?
|
|||
72
smaharbA
05.11.11
✎
13:35
|
(70) это не стандарты !
ты прочитай, что написал то хоть, второе предложение в (70) |
|||
73
smaharbA
05.11.11
✎
13:36
|
+ сложность/несложность не причем
|
|||
74
Alexandr Puzakov
05.11.11
✎
13:47
|
(73) а в чем же тогда дело? В стандартах описано: как образовывать имена переменных, процедур, функций, как организовывать структуру модуля, правила создания общих модулей... Вот именно эти штуковины не всегда выдерживают разработчики. Ну иногда бывают ляпсусы целые, но это отдельные ситуации.
Везде, где допущены несоответствия стандартам можно было бы выполнить в соответствии со стандартами. Несоответствие стандартам вызвано не производственной необходимостью, когда "пишем супер-пупер алгоритм и под стандарты код не ляжет", а даже фиг его знает чем... |
|||
75
Alexandr Puzakov
05.11.11
✎
13:49
|
(72) >>это не стандарты
А название "Система стандартов и методик разработки..." говорить об обратном. |
|||
76
ado
05.11.11
✎
13:56
|
(40) Потом про затычку благополучно забывают, юзер увольняется и внезапно обнаруживается, что никто не может выполнить операции, которые выполнял он. И никто нахер не может понять, в чем же дело. Плавали, знаем.
|
|||
77
ado
05.11.11
✎
13:59
|
(56) Ага, если автомобиль выехал своим ходом за ворота завода, значит он не ведро.
|
|||
78
Mort
05.11.11
✎
14:27
|
(67) Замечательный пример такого "стандарта". Для первокурсника потянет.
Стандарты хороши, когда не хватает знаний или банально мозгов сделать правильно основываясь исключительно на своём опыте. |
|||
79
smaharbA
05.11.11
✎
16:35
|
(75) на заборах тоже пишут
|
|||
80
smaharbA
05.11.11
✎
16:37
|
Стандарт это когда утвержден на предприятии и прошли акредитацию + аудит рабочих мест, но проблема в том что некому проводить аудит ибо нет государственного стандарта
|
|||
81
Inform
05.11.11
✎
17:52
|
(80) wiki:Стандарт
|
|||
82
abfm
05.11.11
✎
18:09
|
Были случаи когда запрос в цикле работает быстрее одного запроса, просто памяти не хватает и лезет в своп. А мелкие запросики на ура. Проверено практикой. И на прямых и на 1с. По стандартам получаеться хуже.
|
|||
83
Нуф-Нуф
05.11.11
✎
18:35
|
(85) ну это отдельные случаи, тоже с такими сталкивался. но в целом - стандарты рулят
|
|||
84
Нуф-Нуф
05.11.11
✎
18:36
|
кстати, смотрю продвинутый курс от Гилева - стандарты не соблюдаются :)
|
|||
85
Alexandr Puzakov
05.11.11
✎
18:36
|
(80) какой, нафиг, стандарт? А не фирме ли 1С создавать стандарты разработки на ее платформе...
|
|||
86
GROOVY
05.11.11
✎
18:43
|
(84) А что анонсировалось что будет полностью по стандарту? Я часто на начальном этапе вообще пказываю примеры разработки с дикими косяками, потом объясняю почему так не надо делать. О каких стандартах может идти речь? В обучении главное привить ПОНИМАНИЕ того что пишешь, как работают механизмы. А стандарты за пару дней усваиваются если есть понимание вышеперечисленного.
|
|||
87
Alexandr Puzakov
05.11.11
✎
18:44
|
(79) я вот никак не пойму, что Вы пытаетесь доказать? Что фирма 1С не компетентна в написании стандартов разработки на своей же платформе?
|
|||
88
Нуф-Нуф
05.11.11
✎
18:47
|
(86) да не, я же без претензии,.
главное познакомиться со стандартами до того как станешь прожженым прогером, ибо трудно переучиваться |
|||
89
Злопчинский
05.11.11
✎
18:51
|
> В стандартах описано: как образовывать имена переменных, процедур, функций, как организовывать структуру модуля, правила создания общих модулей... Вот именно эти штуковины не всегда выдерживают разработчики. Н
- для поддержания стандартов система проектирования/разработки должна максимально облегчать написание кода/использование стандартов, а не возлагать это 100% на разработчика.. |
|||
90
Alexandr Puzakov
05.11.11
✎
18:52
|
(86) судя по некоторым распространенным отраслевкам, у некоторых они не прививаются даже за годы разработки...
|
|||
91
Злопчинский
05.11.11
✎
18:54
|
(76) > Потом про затычку благополучно забывают, юзер увольняется и внезапно обнаруживается, что никто не может выполнить операции, которые выполнял он. И никто нахер не может понять, в чем же дело. Плавали, знаем.
- плавали, знаем. Но это не кртично, ибо если такой затык - то выясняется довольно быстро, ибо легко локализуется. это раз. два: потому как увольнение сделано из рук вон плохо. чел никому ничего не сдал, не обучил и прочее. если даже увольняется "срочно" - то описанные выше проблемы свидетельствуют лишь о том, что в конторе отсутсвуют какие-дибо подходы к СИСТЕМЕ организации работы - пожинаем плоды, ничего удивительного... |
|||
92
Alexandr Puzakov
05.11.11
✎
18:57
|
(89) как-как? Платформа сама должна писать код что-ли? :)
Хотя отчасти она это делает, например, в 8.2 в режиме управляемого приложения разработчику не удастся воплотить все свои извращенные фантазии... Мало-по-малу, но все ближе к армейскому принципу "безобразно, но однообразно". |
|||
93
Alexandr Puzakov
05.11.11
✎
18:58
|
+(92) в части интерфейса :)
|
|||
94
Злопчинский
05.11.11
✎
19:00
|
можно сказать, что я пишу - без стандартов, прост стараюсь создавать читабельный код для такого же как и я. По крайней мере с трудностями аналииза чужого кода сталкивался всего один лишь раз (когда читал код Садовникова - да и то, больше потому что "предметная" область новая...), да и по моему коду вроде никто ко мне никогда не стучался - по крайней мере несколько десятков продаж на Исе есть - ни возвратов, ни вопросв - не было за все время.
. мне кажется, что большую роль играет владение тем кто п ишет/анализирует код - знание предметной области... - если логика кода понятна - то вопрсов он не вызывает.. . конечно, возможно, что при промышленном подходе к кодированию на 1С - знание предметной области уходит подальше и на первый план особенно в 8-ке становится чтобы было понятно что куда обращается и сто откуда вызывает.. и прочее по СВЯЗЯМ кода... |
|||
95
Alexandr Puzakov
05.11.11
✎
19:01
|
Может, стоит "изобрести" конструктор кода?
|
|||
96
Злопчинский
05.11.11
✎
19:02
|
(92) - ты не поверишь - таки да!!! в свое время на Кларионе (и под досом, и под виндами) - код приложения генерился самсотяотельно - на сонвое схемы данных. а ручками - дописывали только "извращенную" логику.. ;-)
. в принципе, на 8-ке для типового функционала - вообще кода не надо - все автоматом строится. ;-) Коммунизм - близко!!! ;-) |
|||
97
Злопчинский
05.11.11
✎
19:04
|
(95) в принципе - да... такое даже в 7.7 в зачяточном состоянии было - конструкторы запросов например - генерили и процедуры и код выборки результатов запроса и вывод в таблицу..
. по идее д.б. кодогенерация для всех типовых вещейс ключевыми точками куда вставлять свои "допилки" |
|||
98
Alexandr Puzakov
05.11.11
✎
19:13
|
(97) задумался... Надо будет покурить код в разных конфигурациях, на предмет выявления закономерностей.
|
|||
99
abfm
05.11.11
✎
19:17
|
Машина думать не может, машина должна ездить.
|
|||
100
Torquader
05.11.11
✎
19:18
|
(97) Генератор кода может решить задачу стандартными методами, а когда нужно провести нестандартную обработку данных, он, скорее, вреден.
Что касается имён переменных, то писать по стандартам не очень удобно, так как получаются длинные имена, которые при использовании в выражениях не влазят в одну строку экрана, а потом бывает, что в начале кода было "КоличествоМатериаловВРезерве", а в другом месте получается "РезервКоличестваМатериалов". Кроме того, автоматическая система преобразования кода спасает любой язык программирования. |
|||
101
Alexandr Puzakov
05.11.11
✎
19:20
|
(100) was ist das "автоматическая система преобразования кода"?
|
|||
102
Torquader
05.11.11
✎
19:29
|
(101) Это когда ты в функции написал, скажем "Перем А //=> КоличествоТоваровНаСкладе", и везде используешь в коде переменную как А.
Если же тебе нужно собрать финальный код после отладки, то пропускаешь его через систему, и везде, где в функции было написано А - будет написано длинное название. Также и с макросами только 1С для такой системы не готова, так как код перез скармливанием самой 1С приходится преобразовывать, а внятного доступа к коду в момент разработки нету. |
|||
103
smaharbA
05.11.11
✎
19:29
|
еще раз о чем Вы говорите это не стандарт (речь не о качественности написания оного документа)
|
|||
104
smaharbA
05.11.11
✎
19:32
|
(81) чо это ?!
|
|||
105
smaharbA
05.11.11
✎
19:40
|
+ если напишу документ с заголовком
"Стандарт для всех разработчиков на платформе адинес (обязателен к исполнению!)" это будет являться стандартом ? |
|||
106
abfm
05.11.11
✎
19:46
|
Зачем завёлся так. Кино было "Старый новый год", фраза : отдыхай Вася Отдыхай. Старые Госты не работаютновых нет, на комбайнах в бамбантон играют, отдыхай а?
|
|||
107
Нуф-Нуф
05.11.11
✎
19:51
|
(66) запросы лучше выборки хотя бы потому что выборка при наличии РЛС может показать тебе большую и Толстую дулю
|
|||
108
Alexandr Puzakov
05.11.11
✎
19:52
|
(102) так ведь это умеет делать поиск и замена...
|
|||
109
Нуф-Нуф
05.11.11
✎
19:53
|
Мне кажется в смахарба вселился снук. Обычно он себя так ведет отставая свою позицию до последнего
|
|||
110
Alexandr Puzakov
05.11.11
✎
19:53
|
(105) нет.
|
|||
111
Нуф-Нуф
05.11.11
✎
19:54
|
Только снук в случае когда уже и дебил поймет сто спор проигран - просто теряется.
Смахарба неуподобляйся |
|||
112
abfm
05.11.11
✎
20:00
|
(111)Он не проигран, время покажет. ЕГАИС тоже по стандартам сделан, но эксперимент Фурсенко был признат неудачным.
|
|||
113
Alexandr Puzakov
05.11.11
✎
20:03
|
(105) в любом уважающем себя документе должен выполняться принцип приоритета содержания над формой. Так вот у стандарта от фирмы 1С такой принцип выполняется, а в Вашем документе навряд ли он будет выполняться... И давайте не будем опровергать/доказывать тут почему туалет, при навешивании на него таблички "коттедж", не перестает быть туалетом, и почему коттедж, при навешивании на него таблички "туалет", продолжает быть коттеджем.
|
|||
114
ОбычныйЧеловек
05.11.11
✎
20:19
|
Забавно читать о стандартах, особенно о стандартах от 1С :) Стандарты от 1С придуманы для всех остальных, но только не для самой 1С, ни одна из конфигураций 1С не пройдет "1С совместимо".
|
|||
115
smaharbA
05.11.11
✎
20:48
|
(110) почему ?
|
|||
116
smaharbA
05.11.11
✎
20:48
|
(109) я всегда прав )
|
|||
117
Inform
05.11.11
✎
20:53
|
(114) дело даже не в том для кого они придуманы, а в том, что если все будут их придерживаться, то уменьшится вероятность появления такого:
для й=1 по 10 цикл если й<5 тогда возврат истина иначе возврат ложь конецесли; конеццикла; а если такого "кода" на несколько разворотов, как еще, не сославшись на стандарты, доказать франчам или сотрудникам, что это не особо хорошо? Стандарты от 1С - упрощают нам жизнь, хотя бы даже тем что можно тыкнуть в них носом и в следующий раз спросить почему так получилось. (115) никто не говорит, что ты не можешь сам для себя создать какие-либо стандарты, но такие вещи как стандарты разработки от 1С и венгерская нотация являются общепринятыми, сможешь сделать лучше - размещай, авось кто-то начнет соблюдать твои стандарты |
|||
118
Feanor
05.11.11
✎
20:59
|
(117) и какому стандарту уважаемой фирмы адинэс этот код противоречит?
|
|||
119
smaharbA
05.11.11
✎
21:56
|
(117) общепринятым многое является, но не является Стандартом.
Вы сначала выясните, что является Стандартом, а после пишите свой бред. |
|||
120
cViper
05.11.11
✎
22:13
|
(118) Программист в первую очередь пишет код для другого программиста, а уже потом для машины. Из кода (117) абсолютно не понятно что он делает и для чего он.
|
|||
121
Inform
05.11.11
✎
22:37
|
(118) нет отступов (вертикальных и горизонтальных), название переменной не информативно, регистр в операторах везде нижний, такой код совершенно нечитабелен. Подробнее про стандарты см. (12)
(119) то, что является стандартом прекрасно описано в вики (81), вот еще варианты: http://slovari.yandex.ru/стандарт/ Коли уж называете мои слова бредом, будьте так любезны пояснить каким пунктам из определения "Стандарт" не соответствуют стандарты от 1С. |
|||
122
Torquader
05.11.11
✎
23:30
|
(117) Так вы куски кода не выкладывайте. Там, может быть, просто всё, что работало, живёт в комментариях.
Другое дело, что грамотная обработка ошибок требует оставлять "бесконечные" циклы, чтобы что-то можно было продолжить сначала, а также сделать завершающие действия при отказе на любой строчке кода. Поэтому и получается что-то типа: While 1=1 Do // Инициализация системы исполнения InitProcess(); GoodResult=0; While 1=1 Do // выполняем этап 1 If RunStage1()=0 Then Break;EndIf; // выполняем этап 2 If RunStage2()=0 Then Break;EndIf; // этапов может быть сколько угодно // и отлаживать их можно поэтапно // если выполнены все, то GoodResult=1; Break; EndDo; // выполняем корректное закрытие используемых объектов // здесь также нужно не забыть, что какие-то этапы были выполнены // и их нужно "откатить" назад CloseProcessObjects(); // теперь проверяем, что мы завершили исполнение успешно // тут, конечно, можно сообщить пользователю, что действие не удалось // но диалоговое окно с вопросом или сообщением - не есть хорошо If GoodResult<>0 Then Break;EndIf; EndDo; И на каком бы языке программирования код не писался, будет примерно тоже самое. |
|||
123
smaharbA
06.11.11
✎
11:37
|
(121) Вы кране не образованы.
|
|||
124
Zaval
06.11.11
✎
11:58
|
smaharbA
123 - 06.11.11 - 11:37 (121) Вы кране не образованы. Классный афоризм ))) |
|||
125
orefkov
06.11.11
✎
12:04
|
(122)
Вы таки считаете, что замаскировав брэйками голимые гоуту, они будут меньше вонять? Духами на монитор не брызгаете? |
|||
126
Torquader
07.11.11
✎
01:14
|
(125) Ну, можно их ещё и в процедуры спрятать, то есть цикл - в нём вызов единственной процедуры, которая при успешном завершении прерывает цикл.
Не все в этом goto узнают. P.S. а как ещё делать, если нормальной обработки ошибок с возвратом в точку ошибки в 1С не наблюдается и никогда не будет. |
|||
127
Alexandr Puzakov
07.11.11
✎
09:49
|
(126) писать код надо нормально, и не придется извращаться. В 99% случаев, при нормальной организации кода, ничего предусматривать и не надо. А реализуй такую возможность (требующуюся лишь в 1% случаев) и товарищи быдлокодеры начнут пихать ее куда ни попадя, еще больше усложняя свой быдлокод...
Платформа 1С:Предприятие узкоспециализированная, и нафиг на ней не нужны костыли от значительно более низкоуровневых систем. |
|||
128
Stepa86
07.11.11
✎
09:56
|
Следование стандартам разработки - вещь полезная, особенно если стандарты адаптированы под команду, а не тупо взяты откуда то еще...
Проведение аудитов кода еще одна весьма полезная вещь... но только если проверяется не стандарт, а качество кода. Отклонение от стандарта - тревожный звоночек, но не более, смотреть надо суть, объяснять автору почему так не надо делать и как надо было написать. ( Нарушение стандартов это не более 10% возможных запахов кода по Фаулеру и Мартину) Попытка проаудитить существующий код стандартам тож полезная вещь - поможет выявить очаги косяков и принять решение о проведение рефакторинга, но лучше это делать силами команды, а не на аутсорс отдавать. В чужом коде почти всегда есть места, где можно придраться. И команде полезнее будет и дешевле. Штрафы за найденные косяки - большое зло, команда разбежиться тут же или просто перестанет писать хоть какой то код - меньше кода, меньше косяков, меньше штрафов... В идеале аудитеть код при отработке задания, есть косяки - назад на исправление, нету - в хранилище. И никаких штрафов, бонусов и других мотиваций |
|||
129
Alexandr Puzakov
07.11.11
✎
18:20
|
Апнем. Вдруг кто чего интересного напишет.
|
|||
130
Torquader
08.11.11
✎
00:46
|
Ещё не стоит забывать, что 1С - интерпретатор с предварительной компиляцией.
То есть при написании кода нужно учитывать, что время выполнения может зависеть от длины переменных (хотя в случае 1С будет зависеть только время начальной загрузки, когда имени переменной сопоставляется ячейка). Также надо понимать, что система подготовки кода к исполнению преобразует код немного в другой вид, так что стандарты, прежде всего, не должны вредить скорости исполнения. |
|||
131
Inform
08.11.11
✎
01:09
|
(130) на современных ПК вряд ли время выполнения кода будет отличаться в зависимости от имени переменных
Стандарты точно не смогут вредить времени выполнения, тем более если 1С рекомендует писать, например: Если <Условие> Тогда <Операторы> Иначе <Операторы> КонецЕсли; а не: Если <Условие> Тогда <Операторы> Иначе <Операторы> КонецЕсли; То целесообразно полагать, что когда интерпретатор начинает работать - первоначально он разбирает код преобразуя строки в определенный набор операций и если в 1 строке встречается множество операторов, то это может значительно увеличить время разбора (естественно не значительно на современных ПК). |
|||
132
Alexandr Puzakov
08.11.11
✎
04:38
|
(130) на современных ПК выруливать копеечную производительность - не имеет смысла. Тем более "неаккуратный" фрагмент кода, обращающийся к данным, на раз-два может свести на нет всю экономию производительности на длинне кода...
И тем более пишем на русскоязычном встроенном языке, а он не допускает "обрезаний" слов, как это допускают англоязычные ЯП... Это особенность русского языка. |
|||
133
Alexandr Puzakov
08.11.11
✎
04:43
|
И вообще, товарищам, постоянно пишущим переменные:
Кол З Стро В Ост Мас Струк и тому подобные, я бы посоветовал не мучать себя и других, а тихонько разогнаться - и об стенку. |
|||
134
skunk
08.11.11
✎
06:13
|
я вот про стандарты тоже не слыхал ... в лучшем случае рекомендации ... notation
|
|||
135
mishaPH
08.11.11
✎
06:18
|
(133) а чем тебе это не нравится?
|
|||
136
Нуф-Нуф
08.11.11
✎
06:19
|
мсье из (135) шутит?
|
|||
137
Alexandr Puzakov
08.11.11
✎
06:27
|
(135) ненравится сложность восприятия этого кода. Нормальный код должен быть самодокументируемым (т. е. из кода должно быть понятно, что он делает), а это какой-то винегрет... Не ну ладно еще можно из сокращений понять, что "Мас" - это массив (но опять же остается совершенно не ясным из названия, что содержит этот массив), но когда такие вот сокращения имеют переменные, носящие "прикладной" смысл, начинаются писдецы: один раз УчПолит, другой раз ПолУ, третий раз Учет...
|
|||
138
skunk
08.11.11
✎
06:30
|
(137)стесняюсь спросить ... а для кода вида
х - обязательно писать ЦелоеСчетчик |
|||
139
Нуф-Нуф
08.11.11
✎
06:31
|
(138) не обязательно, достаточно просто писать Счетчик
|
|||
140
smaharbA
08.11.11
✎
06:32
|
(133) советую сменить мозг
|
|||
141
smaharbA
08.11.11
✎
06:32
|
(131) какие стандарты ?
|
|||
142
smaharbA
08.11.11
✎
06:35
|
(139) а почему не Счётчик ?
|
|||
143
skunk
08.11.11
✎
06:38
|
(139)а тогда как быть здесь
сразу за кодом из (138) ... ведь Счетчик из предыдущего кода целое |
|||
144
Alexandr Puzakov
08.11.11
✎
06:43
|
(138) для счетчиков это нормально. Для остальных переменных - нет (кроме общепринятых сокращений).
|
|||
145
0xFFFFFF
08.11.11
✎
06:45
|
(144) Хотя некоторые чудики пишут
Для ё=1 по 100 Цикл... |
|||
146
Alexandr Puzakov
08.11.11
✎
06:46
|
(140) а что, с другим мозгом быдлокод станет для меня родным и приятным? :)
|
|||
147
Alexandr Puzakov
08.11.11
✎
06:47
|
Обычно счетчик все же обозначают "Сч".
|
|||
148
skunk
08.11.11
✎
06:54
|
(147)обычно счетчики обазначают - i, x, y, z ... это по популярности
i - для одиночных циклов x, y, z - для вложенных ... более трех вложенных не рекомендуют(обращаю внимание "не рекомендует" <> "станадрт" ... то есть при необходимости вложить четвертый цикл тебе ни кто не запрещает) |
|||
149
Alexandr Puzakov
08.11.11
✎
07:09
|
(148) для счетчиков пускай. А за попытки на русском ЯП применять англоязычный стиль написания переменных - руки надо отбивать. Между английским и русским языком - целая пропасть, и если на английском языке слово с выкинутыми гласными или отсеченым окончанием нормально читается, то на русском оно почти всегда превращается в непонятный набор букв...
|
|||
150
smaharbA
08.11.11
✎
07:16
|
(146) смею заверить код написанный Вами является быдлокодом - просто поверьте
быдлокод определяется не по именам переменным и операторам перехода и бесконечным циклам |
|||
151
smaharbA
08.11.11
✎
07:20
|
еще раз - стандартов на программирование в России нет, это до сих пор является проблемой в космостроении и ядренобатоностроении, а тут на тебе у тупых снеговиков нате есть оказывается стандарт.
|
|||
152
Rovan
гуру
08.11.11
✎
07:25
|
а у нас вот такие требования начальник ставит:
- не должно быть пустых строк - после "(" и перед ")" не должно быть пробелов - не должно быть переводов строк (даже если в строке 300 символов, то они должны быть в 1 строку) |
|||
153
Кириллка
08.11.11
✎
07:25
|
1. Стандарты не совсем удачное слово, как и notation. У буржует есть термин CODE GUIDE. И если уж использовать что-то русское, то Рекомендации по оформлению кода. Как было замечено выше, не может быть стандартов по оформлению. Потому что стандарты подразумевают четкое и неприкословное следование им. В оформлении кода такого не может быть.
2. Применение Рекомендаций в программировании полезно, а в командной разработке просто необходимо. Люди разные и пишут по разному - изучать код, написанный разными разрабами, с разным оформлением, как минимум, не комфортно. |
|||
154
Rovan
гуру
08.11.11
✎
07:25
|
(151) на ИТСах есть рекомендации по оформлению кода от фирмы 1С !
|
|||
155
Alexandr Puzakov
08.11.11
✎
07:37
|
(150) конкретнее. Почему?
|
|||
156
Alexandr Puzakov
08.11.11
✎
07:40
|
(151) опять двадцать пять... Есть стандарты разработки на платформе 1С от самой фирмы 1С. И совершенно покуй, что они в Госстандарте никак не обозначены.
|
|||
157
smaharbA
08.11.11
✎
07:40
|
(156) писец, вы не пту оканчивали ?
|
|||
158
smaharbA
08.11.11
✎
07:41
|
(154) рекомендации !
|
|||
159
Alexandr Puzakov
08.11.11
✎
07:42
|
(153) куйня. Либо Вы даже не читали ГОСТов, либо какое-то религиозное воззрение...
|
|||
160
Alexandr Puzakov
08.11.11
✎
07:44
|
(158) это не рекомендации, а именно часть "Системы стандартов и методик разработки...".
|
|||
161
Alexandr Puzakov
08.11.11
✎
07:45
|
(157) нет.
|
|||
162
smaharbA
08.11.11
✎
07:45
|
(160) Вы однозначно пту-шник. все.
|
|||
163
smaharbA
08.11.11
✎
07:46
|
начинаю писать "Система стандартов и методик разработки тупых снеговиков. (Обязателен к исполнению)"
|
|||
164
Alexandr Puzakov
08.11.11
✎
07:50
|
(163) не выйдет, Вы не компетентны...
|
|||
165
Stepa86
08.11.11
✎
07:52
|
(138) Чем меньше область видимости переменной, тем больше пофик, что имя у нее короткое. Для мелких циклов одной буквы достаточно (я пишу или ц, или цЭлемент или цСтрока в зависимости от контекста)
(162) я Вас тож не понимаю, есть документ по стилю программирования от 1С, который называется "Система стандартов и методик...", и все, кто его так называет закончили ПТУ? |
|||
166
smaharbA
08.11.11
✎
07:53
|
(165) все кто называет Это - стандартом.
|
|||
167
smaharbA
08.11.11
✎
07:55
|
о качественности Этого речи не шло и не идет.
в свете сабжа Это не может применяться на предприятии, не более чем памятка для программиста. |
|||
168
Stepa86
08.11.11
✎
07:55
|
+(165) для глобальных переменных очень рекомендуют писать основательные имена, а для переменных метода обычные, и чтоб в них было понятно что там... Про венгерскую нотацию холиварить будем?
|
|||
169
Starhan
08.11.11
✎
07:55
|
(52)(117) А Мартин пишет что что Венгерская Нотация устарела. Не нужны сейчас префиксы типа переменной :)
|
|||
170
smaharbA
08.11.11
✎
07:56
|
(169) как будете различать переменные разной области видимости ?
|
|||
171
Кириллка
08.11.11
✎
07:57
|
(159) Далеко ходить не надо - 19-е ГОСТы. Либо ты оформляешь все в точности как требует ГОСТ, либо тебе это заварачивают с формулировкой не-поГОСТу.
Я спорить не собираюсь. Мне ни какого профита не принесет, если я кого-то смогу переубедить :) Вообще забавно, что спор начался за СЛОВО, а не по сути. |
|||
172
Starhan
08.11.11
✎
07:57
|
(170) пример пжлста.
|
|||
173
Кириллка
08.11.11
✎
07:59
|
(170)Дополнение по Фаулеру: он заверяет, что не нужны префиксы, описывающие тип этой переменной, например, szSomeStringNullTerminated.
|
|||
174
Stepa86
08.11.11
✎
08:00
|
(169) 1) Венгерская нотация в понимании Мартина устарела для языков с типизацией, в 1Ске тип переменной в любом месте в конфигураторе не узнать
2) Это все равно иногда полезнее, и больше определяется применяемым стилем (кодируется область видимости, тип и вид переменной) 3) Венгерская нотация на самом деле не то, о чем думают 90% разработчиков, у Джоэла Спольски есть пост на эту тему |
|||
175
Starhan
08.11.11
✎
08:02
|
я в (169) уже написал что речь про префикс типа переменной :)
|
|||
176
Alexandr Puzakov
08.11.11
✎
08:05
|
(166) Вы бы лучше удосужились Это прочитать сначала. Там вместе с руководством по стилю мож чуть больше 100 станиц А4 будет, делов на 2 часа.
|
|||
177
vs84
08.11.11
✎
08:06
|
КаждоеСловоСБольшойБуквы
Информативные имена переменных и функций Пробелы между операторами Лаконичные, но информативные комментарии Хотя бы это и уже будет неплохо. Стандарты нужны, в значительной степени для того, что бы кто то кроме автора решения мог быстро в нем разобраться и не испытывали культурный шок. |
|||
178
skunk
08.11.11
✎
08:06
|
(176)что за гост по стилю вы откапали ... хоть номер госта огласите
|
|||
179
mishaPH
08.11.11
✎
08:07
|
(152) по моему ваш начальник слегка не в себе. пробелы и пустые строки как-бы улучшают читабельность кода. некоторые блоки функциональные внутри процедуры выделять пустой строкой до и после - это даже хорошо.
|
|||
180
Stepa86
08.11.11
✎
08:07
|
+(174) 3) http://www.livelib.ru/quote/121070 вот выдержка, остальное есть видимо или у Джоэла в блоге на иностранном или в книге
|
|||
181
Stepa86
08.11.11
✎
08:09
|
(152) Макконнелл пишет свой код (и рекомендует писать) с точностью до наоборот =)
|
|||
182
Alexandr Puzakov
08.11.11
✎
08:09
|
(167) пример качественных стандартов, разработанных на предприятии - в студию!
Забегая вперед скажу, что вероятнее всего там будет лишь воплощение привычек программирования нач. ИТ, перетянутые им с других ЯП (ну мол риальные пасаны пишут так)... |
|||
183
Alexandr Puzakov
08.11.11
✎
08:13
|
(171) всю ветку я пытаюсь цепляться за суть, а некоторые товарищи настойчиво доказывают, мол фирма 1С не доросла до написания стандартов разработки на собственной же платформе...
|
|||
184
Alexandr Puzakov
08.11.11
✎
08:14
|
(178) это не гост, а все тот же материал с ИТСа.
|
|||
185
mishaPH
08.11.11
✎
08:30
|
Александр, я понял корень ваших проблем. Простите но вы зануда.
|
|||
186
Alexandr Puzakov
08.11.11
✎
08:44
|
(185) пускай зануда, и что?
Мне остается неясным один момент. Если вы не хотите, или религия не позволяет использовать стандарты от 1С, то зачем какахами в них кидать? |
|||
187
skunk
08.11.11
✎
08:46
|
(184)ты кричал про ГОСТ ... материал с ИТСа не может быть ГОСТом ... и если ГОСТ еще можно воспринимать как требование к оформлению текста ... то материалом с ИТСа можно вытереть место после испоражнения фекалий ... это просто рекомендации ... и ни йотой больше
|
|||
188
Stepa86
08.11.11
✎
08:53
|
[off]
есть 3 уровня мастерства (я хз как они по кетайски зовутся, но как то зовутся) 1) Молчаливое следование правилам (стандартам,рекомендациям, стилю, ЭТОМУ итп), никаких вопросов "Почему?" и "Зачем?". За любое отступление от правил - удар табуреткой. 2) Активное изучение границ правил и исключений, понимание когда можно использовать это правило, а когда нет и к чему приведет его использование 3) Правил больше нет, просто очевидно когда и что нужно делать и что будет, если сделать не так. В любой новой ситуации легко придумывается новое правило и рассказывается первому уровню [/off] |
|||
189
mishaPH
08.11.11
✎
08:55
|
(186) нету у 1с стандарта. у 1с есть рекомендации.
|
|||
190
mishaPH
08.11.11
✎
08:56
|
+ 189 мне вот труднее понять код по стандарту 1С когда блин пока прочитаешь название переменной или функции процедуры, из бошки вылетит что ты хочешь вообще тут делать.
|
|||
191
Alexandr Puzakov
08.11.11
✎
09:06
|
(187) и снова же. Не нравится, зачем в него какахами кидать? Разработчикам типовых он не мешает, целой толпе программистов он не мешает, мне он не мешает. А Вас он чем задел?
|
|||
192
Alexandr Puzakov
08.11.11
✎
09:08
|
(190) у меня таких проблем не возникает...
|
|||
193
Alexandr Puzakov
08.11.11
✎
09:14
|
(189) не пойму, юридический пинок что-ли требуется, чтобы начать использовать стандарты от 1С? Эти стандарты разработаны для повышения культуры разработки, и для единого стиля написания конфигураций. Применять их никто насильно не заставляет, но намного лучше, когда их применяют.
|
|||
194
skunk
08.11.11
✎
09:15
|
(191)меня стандарт лично никак не задел ... задевают, если так можно выразиться, ваши высказывания про стенку ... и не следованиям каких-то ГОСТов
еще раз вы разницу между ГОСТом и рекомендацией понимаете? |
|||
195
Fish
08.11.11
✎
09:20
|
Почти 200 постов и все практически ни о чём :)) А на самом деле, вопрос простой: есть определенные методики программирования и оптимизации кода, справедливые для ВСЕХ языков. А так называемые "стандарты 1С" придуманы для тупых быдлокодеров, которые в программировании ничего не понимают, и для них придерживаться стандартов - это значит меньше накосячить :)) А если программист грамотный и понимает, что и зачем он пишет, и как это работает (т.е. хотя бы представляет, как этот код будет выполнятся на уровне процессора) - то ему никакие "стандарты 1С" не нужны - он и так напишет оптимальный по работе код. А читабельность названий переменных - это всего лишь дань уважения тем, кто будет дорабатывать твой код после тебя, и не более того.
|
|||
196
Волесвет
08.11.11
✎
09:23
|
всё о старом?
ЭтаПеременнаяЯвляетсяСчетчикомДляПеребораМассиваДанныхВыгруженныхПоЗапросуВБазеНаТекущийДень //ии-счетчик ии |
|||
197
Fish
08.11.11
✎
09:24
|
+(195) К тому же, если быдлокодер выполняет "стандарты 1С", то после него будет легче править косяки, а у грамотного программиста код будет нормально работать и с переменными i,x,y,z :))
|
|||
198
Vetal_978
08.11.11
✎
09:25
|
(195) Пример кода в студию, поржать охота :)
|
|||
199
Fish
08.11.11
✎
09:27
|
(198) Код не мой, но на, поржи:
Функция ГлПадежС(z1,Знач z2=2,Знач z3="*",z4=0) Экспорт z5=Найти(z1,"-"); z6=?(z5=0,"","-"+ГлПадежС(Сред(z1,z5+1,СтрДлина(z1)-z5+1),z2,z3,z4)); z1=НРег(?(z5=0,z1,Лев(z1,z5-1))); z7=Прав(z1,3);z8=Прав(z7,2);z9=Прав(z8,1); z5=СтрДлина(z1); za=Найти("ая ия ел ок яц ий па да ца ша ба та га ка",z8); zb=Найти("аеёийоуэюяжнгхкчшщ",Лев(z7,1)); zc=Макс(z2,-z2); zd=?(za=4,5,Найти("айяь",z9)); zd=?((zc=1)или(z9=".")или((z4=2)и(Найти("оиеу"+?(z3="ч","","бвгджзклмнпрстфхцчшщъ"),z9)>0))или((z4=1)и(Найти("мия мяэ лия кия жая лея",z7)>0)),9,?((zd=4)и(z3="ч"),2,?(z4=1,?(Найти("оеиую",z9)+Найти("их ых аа еа ёа иа оа уа ыа эа юа яа",z8)>0,9,?(z3<>"ч",?(za=1,7,?(z9="а",?(za>18,1,6),9)),?(((Найти("ой ый",z8)>0)и(z5>4)и(Найти("опой вбой",Прав(z1,4))=0))или((zb>10)и(za=16)),8,zd))),zd))); ze=Найти("лец нёк вей бей дец пец мец нец рец вец аец иец ыец бер",z7); zf=?((zd=8)и(zc<>5),?((zb>15)или(Найти("жий ний",z7)>0),"е","о"),?(z1="лев","ьв",?((Найти("аеёийоуэюя",Сред(z1,z5-3 ,1))=0)и((zb>11)или(zb=0))и(ze<>49),"",?(za=7,"л",?(za=10,"к",?(za=13,"йц",?(ze=0,"",?(ze<16,"ь"+?(ze=1,"ц",?(ze=5,"к","")),?(ze<41,"ц",?(ze<53,"йц","р")))))))))); zf=?((zd=9)или((z4=3)и(Прав(z1,1)="ы")),z1,Лев(z1,z5-?((zd>6)или(zf<>""),2,?(zd>0,1,0)))+zf+СокрП(Сред("а у а "+?((z8="ич")или(z8="ыш"),"е",?((z8="ов")or(z8="ин"),"ы","о"))+"ме "+?(Найти("гжкхш",Лев(z8,1))>0,"и","ы")+" е у ойе я ю я ем"+?(za=16,"и","е")+" и е ю ейе и и ь ьюи и и ю ейи ойойу ойойойойуюойойгомуго"+?((zf="е")или(za=16)или((zb>12)и(zb<16)),"и","ы")+"мм",10*zd+2*zc-3,2))); Возврат ?(""=z1,"",?(z4>0,ВРег(Лев(zf,1))+?((z2<0)и(z4>1),".",Сред(zf,2)),zf)+z6); КонецФункции // z1 - фамилия имя отчество например Железняков Юрий Юрьевич // z2 - Падеж ( по умолчанию = 2 - родительный) // 2 - родительный ( нет кого? ) Железнякова Юрия Юрьевича // 3 - дательный ( кому? ) Железнякову Юрию Юрьевичу // 4 - винительный ( вижу кого? ) Железнякова Юрия Юрьевича // 5 - творительный ( кем? ) Железняковым Юрием Юрьевичем // 6 - предложный ( о ком? ) Железнякове Юрии Юрьевиче // Если задать Z2 меньше 0, то на выходе получим от -1=Железняков Ю. Ю. до -6=Железнякове Ю. Ю. // z3 - параметр Пол может не указываться, но при наличии фамилий с // инициалами точное определение пола невозможно, поэтому предлагается задавать пол этим // параметром 1 - мужской 2 - женский // ДЛЯ СКЛОНЕНИЯ ПРОФЕССИЙ ИСПОЛЬЗУЙТЕ ФУНКЦИЮ ПАДЕЖП И БУДЕТ ВАМ СЧАСТЬЕ! // --------------------------------------------------------------------------------------- // Бибик Галушка Цой Николайчик Наталия Петровна Герценберг Кривошей Капица-Метелица // Если Падеж(Фио ,1 ,3), то на выходе получим Фамилия Имя Отчество и т.д. // Если Падеж(Фио ,1 ,3,"1" ), то Фамилия // Если Падеж(Фио ,1 ,3,"2" ), то Имя // Если Падеж(Фио ,1 ,3,"3" ), то Отчество // Если Падеж(Фио, 1 ,3,"12" ), то Фамилия Имя // Если Падеж(Фио, 1 ,3,"23" ), то Имя Отчество // Если Падеж(Фио,-1 ,3,"231" ),то И. О. Фамилия // Если Падеж(Фио,-1 ,3,"23" ), то И. О. // 10-11-2003 3-20 Функция ГлПадеж(z1,z2=2,z3=3,z4="123",z5=1) Экспорт z6=Нрег(Прав(СокрП(z1),4)); z7=Прав(z6,1); Возврат?(z5<4,ГлПадеж(СокрЛП(СтрЗаменить(Сред(z1,Найти(z1+" "," ")+1),".",". ")),z2,z3,СтрЗаменить(z4,z5,ГлПадежС(?((z5=3)и(z7="ы"),z1,Лев(z1,Найти(z1+" "," ")-1)),z2,Сред("ча"+z7,?(z3=3,?(z6="оглы",1,?(z6="кызы",1,3)),z3),1),z5)+" "),z5+1),z4); КонецФункции //склонение профессии/должности Функция ГлПадежП(Знач z1,Знач z2,z3=0) Экспорт z1=СокрЛП(z1);z4=Найти(z1+" "," ")+1;z5=Лев(z1,z4-2);z6=Прав(z5,2); z7=?((Найти("ая ий ый",z6)>0)и(Найти("ющий нный",Сред(z1,z4-5,4))=0)и(z3=0),"1","*"); Возврат НРег(?((z6="ая")или(Прав(z6,1)="а"),ГлПадежС(z5,z2,z7,1)+" "+ГлПадежС(Сред(z1,z4),z2),ГлПадежС(z5,z2,"ч",1)+?((z6="ий")и(Найти(z1," ")=0),""," "+?(z7="1",ГлПадежП(Сред(z1,z4),z2,Число(z7)),Сред(z1,z4))))); КонецФункции |
|||
200
Alexandr Puzakov
08.11.11
✎
09:28
|
(194) понимаю. И что? Стандарты от фирмы 1С не имеют юридической силы, однако, от этого не перестают быть стандартами. И совершенно пофиг, что у кого-то там в голове возникла ассоциация с какими-то там стандартами, имеющими юридическую силу, и он пытается эту ассоциацию проецировать на стандарты от фирмы 1С.
|
|||
201
Fish
08.11.11
✎
09:29
|
+(199) А большинство моего кода, боюсь, матофильтр не пропустит, т.к. велик и могуч русский язык :)))
|
|||
202
skunk
08.11.11
✎
09:32
|
(200)стандарт становится стандартом когда он стандарт ... то есть шаг вправо/влево расстрел на месте ... иначе он просто рекомендация ... и если кто-то не следует рекомендациям то еще не значит, что ему надо убиться апстену... вот как раз таки ярым стороникам "стандарта" надо подумать над вопросом "а не сменить ли мне профессию"
|
|||
203
Alexandr Puzakov
08.11.11
✎
09:33
|
(195) проблема в том, что автоматизация на 1С - это отрасль, в которой работает целая армия программистов. Так вот любому из этой армии гораздо проще будет разобраться в быдлокоде оформленном по стандартам, чем разгребать якобы грамотный код за якобы грамотным программистом.
1С:Предприятие - открытая система, и очень важно, чтобы было ЕДИНООБРАЗИЕ. |
|||
204
Alexandr Puzakov
08.11.11
✎
09:36
|
(196) стандарты как раз рекомендуют избегать длинных имен переменных. Да и здравый смысл никто не отменял.
|
|||
205
Stepa86
08.11.11
✎
09:37
|
(199) я конечно дико извиняюсь, но это пездец... как такой код отлаживать?
(195) а я чо то и не знаю, как код 1Сный выполняется на уровне процессора =( и вообще единый стиль в разработке нужен в любой команде, независимо от уровня разработчиков. Как минимум чтоб не допустить холиваров на ровном месте, код одного стиля проще потом читать/отлаживать другим и выглядит это профессионально, а не поделкой школьника |
|||
206
Fish
08.11.11
✎
09:37
|
(203) за грамотным программистом код "разгребать" не придется, ты уж мне поверь :))) Просто проблема в том, что сейчас каждый второй, прослушавший курсы 1С гордо называет себя "программистом", каковым на деле не является :))
А про армию я соглашусь - только армия не программистов, а именно "быдлокодеров". Грамотных программистов сейчас, к сожалению, раз, два и обчелся :))) |
|||
207
Fish
08.11.11
✎
09:39
|
(205) А нафига тебе этот код отлаживать? он работает и без твоих отладок, и очень грамотно работает - можешь проверить и сравнить, как, например, в ЗУПе фамилии склоняются :)))
|
|||
208
Alexandr Puzakov
08.11.11
✎
09:41
|
(199 :) а вот и пример "грамотного" кода якобы грамотного специалиста.
|
|||
209
Кириллка
08.11.11
✎
09:43
|
(194) Справедливости ради: Стандарт != ГОСТ в общем смысле. ГОСТ - это стандарт, но Стандарт не ГОСТ. Стандарт - это согласованные правила, которым необходимо придерживаться. А на каком уровне он утвержден - дело десятое (на международном уровне, на уровне компании 1с или вообще в пределах отдела).
|
|||
210
Alexandr Puzakov
08.11.11
✎
09:44
|
(202) :) вот вам ГОСТ 34, и найдите-ка мне там жесткие требования. Да такие, чтобы были жестче, чем в стандартах от 1С.
|
|||
211
Stepa86
08.11.11
✎
09:44
|
(207) не касаясь конкретно это примера, очень часто бывают исключительные ситуации, не учтеные при первоначальной разработке (особенно если в системе чо то сменилось), бывают ошибки (они у всех бывают) и бывает необходимость выправить код под новые требования/задачи. Поэтому код неплохо бы писать так, чтоб там потом смогли разобраться. Да и сам автор потом тратит на такой код больше времени через 1-2 месяца после создания.
Ухудшение читаемости допустимо тока в одном случае - агрессивная оптимизация, при которой невозможно оставить читаемость на должном уровне. Все остальное - левые отмазки |
|||
212
smaharbA
08.11.11
✎
09:46
|
(200) у Вас в голове бардак - перечитайте сабж и не впаривайте липу как стандарт.
|
|||
213
smaharbA
08.11.11
✎
09:47
|
(209) именно по сабжу и не десятое, а первое
|
|||
214
Alexandr Puzakov
08.11.11
✎
09:47
|
(209) я еще раз спрашиваю, неужели без содержания в себе юридического пинка стандарт не может быть стандартом?
|
|||
215
Fish
08.11.11
✎
09:47
|
(208) Это пример между прочим с проклуба, и он даже вставлен в типовые конфы Раруса, который сертифицирован на 1С:Совместимо. А склоняет фамилии и профессии грамотней всех функций, виденных мной ранее. А если у тебя мозгов не хватает этот код осилить - то пиши по "стандартам 1С" :))
|
|||
216
Stepa86
08.11.11
✎
09:52
|
(215) я правильно понимаю, что для вас грамотный спец это тот, кто пишет методы которые выполняют поставленную задачу, и пофик как они выглядят внутри?
|
|||
217
Кириллка
08.11.11
✎
09:53
|
(213) Дело личное, но так формально подходить к терминалогии не нужно. Это тупо калька с английской терминалогии - нужно об этом помнить. Назвали в 1с этот документ Стандартом, значит хотели ему значимость поднять, не более.
Однако, по мне, документ должен называться Рекомендацией. |
|||
218
Alexandr Puzakov
08.11.11
✎
09:54
|
(212) ладно, тогда будем иначе.
Привидите-ка ссылку на юридический документ, в котором четко прописано, что любой стандарт в обязательном порядке должен сертифицироваться, утверждаться, а иначе он не может считаться стандартом. Сможете? |
|||
219
Fish
08.11.11
✎
09:58
|
(216) Абсолютно так :)) Если программа работает - значит она написана правильно. А если не работает - то нет. И все.
|
|||
220
Alexandr Puzakov
08.11.11
✎
10:00
|
(217) почему рекомендацией-то?
|
|||
221
cViper
08.11.11
✎
10:00
|
(219) Стив Макконелл и Мартин Фаулер с вами не согласны!
|
|||
222
smaharbA
08.11.11
✎
10:02
|
(217) о чем и талдычу с первых постов, если нужно и хочется ее использовать именно по сабжу - то начальнеги обязаны узаконить ее.
|
|||
223
Stepa86
08.11.11
✎
10:03
|
(219) а я всегда считал, что это быдлокодер, ну или просто кодер, но никак не спец.
|
|||
224
Кириллка
08.11.11
✎
10:03
|
(219)Солнце видно - день, Солнце не видно - ночь.
|
|||
225
Fish
08.11.11
✎
10:04
|
(217) +100500 В других языках эти "стандарты" являются всего лишь "советами по программированию", и только 1С называет "стандартами". Это правда не значит, что их вовсе не нужно знать - этого я не утверждаю, но тупо следовать им - нет уж, увольте :))
(221) Это я немного утрирую конечно. Код конечно же должен быть еще и оптимизирован с точки зрения быстродействия, использования памяти и т.п. :))) |
|||
226
Кириллка
08.11.11
✎
10:05
|
(222)Начальник называет документ "ВНУТРЕННИЕ стандарты ..." - все, узаконил. В суть нужно смотреть, а не в обложку.
|
|||
227
Stepa86
08.11.11
✎
10:07
|
(225) то есть если стоит задача сделать некоторый механизм, который может работать (время на разработку x) и может работать быстро (время на разработку 3x), то грамотный спец. сделает по второму варианту и будет молодец?
|
|||
228
Fish
08.11.11
✎
10:07
|
(223) Молодой человек, может я и быдлокодер, но когда Вы еще только родились, я уже программировал на Фортране 4, если Вам это о чем-то говорит.
|
|||
229
Alexandr Puzakov
08.11.11
✎
10:08
|
(219) мы имеем дело с системами автоматизации, и кроме работает/не работает есть еще куча требований:
- возможность разобраться в коде; - возможность доработки; - производительность; - правильность использования тех или иных объектов; - ну и т. п. |
|||
230
Fish
08.11.11
✎
10:10
|
(229) Во-во и я про производительность - А как Вы объясните, что если написать запрос так, как это рекомендует 1С (одним запросом с кучей левых соединений и вложенных запросов) то он отработает в РАЗЫ дольше, чем несколько небольших запросов?
|
|||
231
Stepa86
08.11.11
✎
10:11
|
(228) вот на личности переходить не надо, у меня свое мнение по поводу определения слов быдлокодер, кодер, разработчик и спец., у вас свое... мое мнение подтверждают (точнее оно сформировалось после прочтения их) работы Макконелла, Фаулера, Мартина, Спольски, Гудлиф, Бек итп. Вы можете быть не согласны с моим мнением и мне как то пофик, потому что в этом споре я для себя ничего нового и полезного не вынесу. Но на личности не надо переходить
|
|||
232
cViper
08.11.11
✎
10:12
|
На мой взгляд код в (199) имеет место быть. Это не идеально конечно, но наврятли кому-то придется дорабатывать эту функцию. Вот если бы в обработчике проведения были такие переменные как в этой функции, то можно было бы смело ставить диагноз.
|
|||
233
Stepa86
08.11.11
✎
10:13
|
(232) а если появиться новая фамилия, которая неправильно отрабатывает, то что делать? Если мне такой код попадется, то перед тем, как его менять, я его буду долго рефакторить
|
|||
234
Alexandr Puzakov
08.11.11
✎
10:13
|
(230) кхм. А где фирма 1С такое рекомендует?
|
|||
235
Vetal_978
08.11.11
✎
10:15
|
авнокод из (199) ничем не отличается от байт-кода. :) Выложил бы уж тогда текст бинарника, еще веселей было бы.
|
|||
236
Alexandr Puzakov
08.11.11
✎
10:16
|
(232) если такой код более чем в 1 функции, то вероятность, что его придется дорабатывать повышается ты количеством кода. И я более чем уверен, что у автора этого кода такие нагромождения сплошь и рядом...
|
|||
237
Alexandr Puzakov
08.11.11
✎
10:18
|
*повышается с количеством кода
|
|||
238
smaharbA
08.11.11
✎
10:18
|
(226) с таким "ВНУТРЕННИМ..." начальника можно слать в сад ибо это не соответствует Стандарту ?
Как требовать выполнения правил нарушающих правила ? |
|||
239
cViper
08.11.11
✎
10:19
|
(236) Я не всматривался в алгоритм вычисления падежа, но если эта функция отрабатывает как надо, то лезть в нее я бы не стал. Если бы мне потребовалась такая функция, то я бы ее позаимстввовал.(233) Что там долго рефакторить? Заменить z-переменные на другие имена долго?
|
|||
240
Fish
08.11.11
✎
10:21
|
(243) Во всяком случае, на ВСЕХ сертифицированных курсах 1С преподы говорят именно так: "1С рекомендует делать всё одним большим запросом, а не кучей маленьких" :)) Да хотя бы посмотреть типовые отчеты в ЗУПе, где запросы на несколько страниц :)))
(236) Вы невнимательно читали мой пост (215) :)) (233) А ты проверь её на разные фамилии - будешь удивлён :))) |
|||
241
Fish
08.11.11
✎
10:23
|
(243) к (234)
|
|||
242
Кириллка
08.11.11
✎
10:23
|
(238)Я начальник - ты дурак, Ты начальник - я дурак.
|
|||
243
Stepa86
08.11.11
✎
10:25
|
(240) то, что я не смогу придумать фамилии, на которой сломается этот алгоритм ни разу не означает, что такой фамилии нет
|
|||
244
orefkov
08.11.11
✎
10:26
|
(228)
Оно и видно, по (199). А вы вот в таком ключе не маленькую функцию напишите, а хотя бы что-то уровня УТ, а потом посопровождайте это. |
|||
245
smaharbA
08.11.11
✎
10:26
|
(242) согласен )
|
|||
246
Fish
08.11.11
✎
10:28
|
(243) Я этого и не говорил, конечно она ломается на некоторых сложных составных фамилиях, я только говорил, что эта функа склоняет правильно гораздо больше фамилий, чем та же функа в типовой ЗУП. А склонения профессий в ЗУПе и в помине нету :))
|
|||
247
Vetal_978
08.11.11
✎
10:29
|
(244) Хотелось бы посмотреть на такое чудо :)
|
|||
248
Волесвет
08.11.11
✎
10:32
|
они скоро будут просить, чтобы в начале вставлялась презентация твоего кода с няшечками и грудастыми эльфийками + музыка релаксационная для лучшего понимания)))))))
|
|||
249
Vetal_978
08.11.11
✎
10:32
|
(246) шо вы говорите? Там функции склоняют даже фразы. Практически ИИ :))
|
|||
250
Fish
08.11.11
✎
10:34
|
(244) Еще раз повторюсь, код не мой, а взят с проклуба, и встречал я его не далеко не в одной конфигурации, которая "1С совместима" :))
(249) Пример приведите, может я плохо искал :) |
|||
251
Fish
08.11.11
✎
10:34
|
*не далеко не в одной -> далеко не в одной :))
|
|||
252
Alexandr Puzakov
08.11.11
✎
10:36
|
(247) не лучше такого не видеть, и *зажмурившись* не дай бог случится сопровождать дорабатывать.
|
|||
253
Vetal_978
08.11.11
✎
10:36
|
(250)
// Функция склоняет переданую фразу // Параметры: // Фраза (обязательный), тип строка // Параметр должен содержать фразу. Каждое слово фразы будет просклонено отдельно // // Падеж (обязательный), тип число // Падеж, в который необходимо поставить ФИО. // 1 - Именительный // 2 - Родительный // 3 - Дательный // 4 - Винительный // 5 - Творительный // 6 - Предложный // Функция Просклонять(Компонента, Знач Фраза = "", Падеж = 1, Пол = Неопределено, Результат) Экспорт |
|||
254
Fish
08.11.11
✎
10:42
|
(253) Про эту функу я и говорил, должности она склонять не умеет правильно, да и с фамилиями у нее большие проблемы :))
И читаем комменты из нее: // Выделим первые 3 слова, так как компонента не умеет склонять фразу большую 3х символов Прямо обалдеть какой ИИ :))) |
|||
255
Fish
08.11.11
✎
10:46
|
(244) Жаль, что вы не умеете читать внимательно посты. Вас я уважаю, как профессионала за ваши разработки. А по поводу своих разработок уровня УТ, я хвалиться не буду, но те разработки что я писал, работают успешно как минимум на 3-х предприятиях до сих пор, и серьезных доработок пока не требуют :))
|
|||
256
Mort
08.11.11
✎
10:47
|
(125) И как из цикла выходить?
|
|||
257
Vladal
08.11.11
✎
10:48
|
(199) А!!! У нас такой же!
Видать, с 2003 года примерно в сети появился этот код. |
|||
258
Mort
08.11.11
✎
10:49
|
+(256) Им. ввиду остальные варианты не менее отстойные.
|
|||
259
Fish
08.11.11
✎
10:50
|
(256) Просто стараться не использовать бесконечные циклы :)))
|
|||
260
Fish
08.11.11
✎
10:52
|
(256) Или следовать такой рекомендации: "Правильнее считается не использовать операторы прерывания цикла, а возлагать логику управления на условие. Старайтесь организовывать циклы именно так."
|
|||
261
Mort
08.11.11
✎
11:00
|
(260) Да это понятно, в условие цикла ставится флаг прерывания, а итератор организуется ручками. Один хрен читается хуже чем break.
|
|||
262
Stepa86
08.11.11
✎
11:02
|
Возврат в середине метода это тот же гото, дада
|
|||
263
Feanor
08.11.11
✎
11:06
|
бедный оператор гоуту, никто его не любит, даже фирма 1С в своих рекомендациях (хотя не понятно, за каким он тогда был добавлен в платформу)
|
|||
264
Stepa86
08.11.11
✎
11:09
|
(263) если можно реализовать хитрый алгоритм проще и быстрее с гото и дольше и запутанней без него, то есть смысл пойти по первому пути.
|
|||
265
Fish
08.11.11
✎
11:13
|
(263) Почему же никто не любит? просто выходить из цикла по GOTO, считается некорректным, и это было задолго до 1С :))
(264) Если бы вы внимательно прочитали книжки, на которые ссылались, то знали бы, почему выходить из цикла по GOTO неправильно :)) |
|||
266
Feanor
08.11.11
✎
11:15
|
(265).1 не видел ни одного гоуту в работающем код за последние лет этак 10
|
|||
267
Stepa86
08.11.11
✎
11:17
|
(265) а где я написал, что выходить из цикла по гото корректно? Прервать и Продолжить юзаю там, где это облегчает и жизнь и код и в книжках как раз и рекомендуют головой работать в такие моменты, а не тупо не использовать брейк никогда
ЗЫ ни разу не юзал гото в коде в явном виде |
|||
268
Fish
08.11.11
✎
11:18
|
(267) Читаем внимательно: "С точки зрения структурного программирования команды досрочного выхода из цикла и продолжения итерации являются избыточными, поскольку их действие может быть легко смоделировано чисто структурными средствами. Более того, по мнению ряда теоретиков программирования (в частности, Эдсгера Дейкстры), сам факт использования в программе неструктурных средств, будь то классический безусловный переход или любая из его специализированных форм, таких как break или continue, является свидетельством недостаточно проработанного алгоритма решения задачи."
(266) Я видел. Сразу оговорюсь, что код не мой, а то опять набегут и обзовут быдлокодером :)) |
|||
269
Stepa86
08.11.11
✎
11:25
|
(268) Макконнелл: http://screencast.com/t/RFXYvEeUvL
если не юзать гото, то и не юзать возвраты из середины метода, продолжить и прервать и даже попытка/исключение. Без них можно обойтись в большенстве случаев, но иногда проще и быстрее не делать правильно и долго, а отойти от правила и решить задачу быстро, особенно если нарушение правила не несет в себе никаких проблем |
|||
270
Fish
08.11.11
✎
11:34
|
(269) Вы тут приводили много умных фамилий, но судя по (267) даже не знаете, что для компьютера команды GOTO, Break, Continue - суть одно и тоже, т.е. варианты безусловного перехода. Вы хотя бы представляете, в какие команды МАШИННОГО кода преобразуется ваш код на 1С при выполнении, и какие сегменты памяти подо что выделяются? Если бы Вы это представляли, то не говорили бы "нарушение правила не несет в себе никаких проблем". Может они и не критичные, но могут привести к переполнению стека, например. Или попробуйте в 1С запустите бесконечную рекурсию :)) Тут речь идет о том, что если правильно продуман сам алгоритм решения задачи, то можно легко обойтись и без прерывания циклов.
|
|||
271
cViper
08.11.11
✎
11:38
|
(265) Дейкстра об этом писал.
|
|||
272
Inform
08.11.11
✎
11:45
|
(222) smaharbA, Вы наверняка "кране" образованный человек, не поленитесь и ответьте пожалуйста на мой вопрос, от которого Вы ушли, в виду того, что я "кране" не образован:
Есть определение стандарта: СТАНДАРТ — подвид нормативного издания, нормативно-техн. документ, устанавливающий требования к группам однородной продукции (в необходимых случаях и к конкретной продукции), правила ее разработки, производства и применения, а также требования к иным объектам стандартизации. Под какие слова из определения не попадают стандарты фирмы 1С? P.S.: не надо так часто упрекать людей в их образовании и компетентности, судя по возрасту Вы уже не молоды, а ведете себя как ребенок. P.P.S.: если считаете, что фирма 1С совершила оплошность, прошу написать здесь в чем же все таки различия между стандартом и стандартами от 1С и при желании обратиться в саму фирму 1С раз там одни ПТУ-шники, может быть к Вам прислушаются P.P.P.S.: стандарты 1С - это не только рекомендации по написанию кода, не надо путать. |
|||
273
Mort
08.11.11
✎
11:45
|
(270) Переход он есть переход, все описанные ужасы (270) касаются и условных и безусловных переходов. Кроме читабельности и логики структуры ничто не страдает. Если Goto нарушает объектную логику, то "продолжить" в неё вполне вписывается. Неиспльзование "продолжить" приводит к куче условий на всё тело цикла, что выглядит по большей части отвратительно.
|
|||
274
Stepa86
08.11.11
✎
11:47
|
(270) Перечитайте (269) еще два раза, там как раз и сказано, что под гото можно так же подразумевать. И мне как бэ глубоко пофик в какие именно команды машинного кода преобразуется код, особенно учитывая, что 1С интерпретируемый язык и одна и таже конфа под разными версиями платформы может вызывать разные команды, а закон дырявых абстракций обходить вплоть до машинных кодов вот вообще неохото... Про бесконечную рекурсию прекрасно знаю, и прекрасно умею переписывать любой код без всех эмуляций гото... В вашей конфе размера УТ наверняка нет ни продолжить, ни прервать, ни возвратов в середине, ни попыток/исключения (кроме случаев, когда без них вообще никак)
и вообще ваши нападки выглядят как попытка восстановить свое ЧСВ после (199), это как минимум не профессионально, обсуждайте проблему и ее решение, а не человека |
|||
275
Fish
08.11.11
✎
11:50
|
(271) Видимо как раз Дейкстра человек и не читал, не знаю, что говорили по этому поводу Макконелл, Фаулер, Мартин и все, на кого ссылался молодой человек, но мало прочитать книгу, надо её еще и понять, а не имея базовых знаний в компьютерных технологиях, ИМХО, довольно сложно понять про что идет речь.
(273) Не буду с Вами спорить, видимо Вы умнее Дейкстры :)) (274) Для особо тупых - повторю, код в (199) не мой, но мне он кажется вполне нормальным :)) |
|||
276
Fish
08.11.11
✎
11:56
|
(274) А вообще я на Вас не нападал, просто после поста (199) все, не удосужившись прочитать, откуда мной был взят код, бросились обвинять меня в непрофессионализме и быдлокодерстве. Прочитайте мой пост (215) внимательно.
В топике речь шла о "стандартах 1С", а я всего лишь привел наглядный пример того, как сама 1С или компании, которые 1С совместимы, сами не выполняют этих стандартах. А по поводу профессионализма могу сказать лишь то, что для настоящего программиста все равно на каком языке писать - на С, Паскале, Ассемблрере или 1С. Главное - правильно продумать алгоритм. Вот Вы, например, на скольких языках, кроме 1С, программируете либо программировали? |
|||
277
Feanor
08.11.11
✎
12:03
|
(276) увы, для многих сейчас главное - это подтирка от 1С, ну и знание и почитание "стандартов" от 1С как следствие.
|
|||
278
Mort
08.11.11
✎
12:07
|
(275) Не умней Дейкстры, но Дейкстра сформировал эти принципы довольно давно, а область не такая постоянная (Бруксу тут больше повезло).
Вот простой пример из книги C++ for real programmers Джефа Элджера: FreeList* fl = NULL; for (fl = all_lists; fl != NULL; fl = fl->next) if (fl->chunk_size == bytes) break; if (fl == NULL) // Списка для такого размера нет {.... Интересно бы посмотреть на реализацию без break. Была бы она столь же понятной и короткой. |
|||
279
Stepa86
08.11.11
✎
12:10
|
(275) а заказчиков вы тоже оскорбляете, если их не понимаете?
(276) настоящий разработчик не характеризуется количеством изученных языков (до 1С я программировал и на паскале и на си и на с++ и на sql и на матлабе), а скорее качеством решения проблем и количеством проблем после того, как спец. решил проблему. Относительно (199) у меня вообще подозрение, что код написан специально максимально запутанно и сжато Относительно Дейкстры: он писал тогда, когда программы писались для компов, а не для людей, сейчас читабельность важнее, чем более правильный код с точки зрения структурного программирования |
|||
280
smaharbA
08.11.11
✎
12:12
|
(272) по словам "стандарты фирмы 1С"
|
|||
281
smaharbA
08.11.11
✎
12:14
|
читаем сабж внимательно и автор тоже
"вводит проверку кода Аудитом на соответствие стандартам разработки" и не парим мозги "стандартом фирмы 1с" |
|||
282
Mort
08.11.11
✎
12:16
|
(281) Приведи пример "стандарта разработки".
|
|||
283
Mort
08.11.11
✎
12:17
|
+(282) В том смысле, чтобы по этому стандарту можно было отличить быдлокод от хорошего.
|
|||
284
Fish
08.11.11
✎
12:17
|
(277) Хорошо сказано :))
(278) Да я не против, иногда без этого действительно не обойтись, на самом деле сколько людей, столько и мнений, тут можно спорить хоть до усрачки. :)) (279) Извините, если я Вас чем-то задел :)) Со второй фразой полностью согласен. Просто мне было довольно странно, что я привел пример из конфигурации Раруса, чтобы показать, как 1С или то, что признано "1С совместимо" нарушает свои же стандарты, а на меня сразу стали нападать, как на непрофессионала в программировании. Пока что на качество решенных мной проблем никто еще не жаловался, так что, хоть я не считаю себя "крутым спецом", но в непрофессионализме меня еще никто из заказчиков не обвинял :)) |
|||
285
smaharbA
08.11.11
✎
12:19
|
(282) не могу, ибо нету такого
|
|||
286
Mort
08.11.11
✎
12:23
|
(285) Вот и я о том же. Фаулер в №чистом коде№ привел отличие плохого кода от хорошего в виде рисунка, на котором две двери за которыми читают код. Откуда слышно больше матерных слов - тот код хуже.
|
|||
287
Stepa86
08.11.11
✎
12:25
|
(284) я вас и не обвинял, вот код в (199) - пипец (именно код, даже не автор), разработчик, который решает только то, что написано в тз, не удосуживаясь даже код в порядок привести и шаг влево/вправо все падает с рантаймовой ошибкой - быдлокодер или кодер (в зависимости от херовости кода). То, что Рарус получает 1ССовместимо просто так, эт всем известно (УАТ же тоже совместим, а внутри там адово), я проходил его, утомился вылизывать код изза придирок на ровном месте. И именно вас в непрофессионализме никто не обвинял...
(286) показатель "вотзефак", вроде б называется |
|||
288
Starhan
08.11.11
✎
12:28
|
(287) скорее фак пер минутс :)
|
|||
289
Inform
08.11.11
✎
12:29
|
(280) название стандартов таково: "Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8" (слова "фирма 1С" не фигурируют в названии, это Ваши домыслы)
(279) код приведенный в (199) вряд ли может быть написан с использованием других имен переменных, т.к. если вглядеться - там фигурируют какие-то неопределенные (в русском языке) части слов, поэтому даже если назвать переменные как-то более информативно, смысл не поменяется, а только запутает того, кто будет это дописывать, а в некоторых рарусовских конфах этот код присутствует с нормальным форматированием кстати, не буду показывать пальцем, но кое-где это есть. И вообще этот код наверняка повторяет код компоненты NameDecl, которая используется в типовых. |
|||
290
smaharbA
08.11.11
✎
12:33
|
(286) это Ваши слова, но дело не в этом
слова "Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8" - уже нарушают Стандарт, когда они не будут нарушать Стандарт тогда и будут Стандартом. (не ищите в них, к чему придрался - никчему не придрался) |
|||
291
Fish
08.11.11
✎
12:37
|
(286) И чем же матерный код "хуже" нематерного? Если процедура названа, например "ТупоЖдатьБл..." и внутри неё просто пустой цикл на определённое кол-во итераций, то в принципе, она подпадает под "стандарты 1с", т.к. название полностью отражает суть :)))
А материться или нет в коде - это моё неотъемлемое право. Заказчику по барабану - матерный код или нет, заказчику надо, чтобы программа работала так, как он заказывал, а мат в коде его волновать не должен. :)) |
|||
292
Starhan
08.11.11
✎
12:39
|
(291) ты не уловил сути. речь не про мат в коде а про мат из уст смотрящего в чужой код
|
|||
293
Fish
08.11.11
✎
12:43
|
(292) А с точки зрения коммерции,то если я пишу коммерческий продукт на продажу, т.к. идеальных методов защиты не существует, то самым действенным является как раз "обфускация" кода, и даже есть куча обработок для этого :))
|
|||
294
Jofa
08.11.11
✎
13:04
|
Всё чушь если руки кревые то идеально написанный код не будет работать !!!
А стандарт нужен для того чтобы если этот код будет читать другой прог он мог быстро разобраться в этом коде !! Для того чтобы код работал правильно нужно проверять на коректность использования тех или иных методов !! |
|||
295
Alexandr Puzakov
08.11.11
✎
13:12
|
(289) может тот код быть описан "человеческими" словами, не вводите в заблуждение. Есть правила русского языка, они написаны русскими словами, и нигде там не встречается ни обозначений слов на санскрите, ни набора символов вместо слов...
|
|||
296
Alexandr Puzakov
08.11.11
✎
13:15
|
(290) Вы так и не ответили, по каким-таким магическим законам стандарты от фирмы 1С не могут считаться стандартами?
|
|||
297
Inform
08.11.11
✎
13:18
|
(295) может конечно, но если заменить "z" на "ЧастьСлова" к примеру, то код от этого более читабельным и понятным не станет
|
|||
298
Alexandr Puzakov
08.11.11
✎
13:18
|
Есть отрасль, в основе этой отрасли стоит фирма. И уж не этой ли фирме устанавливать стандарты для отрасли?
|
|||
299
Alexandr Puzakov
08.11.11
✎
13:22
|
(297) эти "часть слова" носят названия "суффиксы" и "окончания". Видоизменения слов также имеют четкое названия.
|
|||
300
Feanor
08.11.11
✎
13:23
|
(298) есть компьютерная наука, есть множество парадигм, теорий и подходов, а в фирме 1С такие умные ребята сидят, "стандарты" на ура выдают, право, забавно :)
|
|||
301
Stepa86
08.11.11
✎
13:24
|
(297) там хотя бы с обилием скобок нужно разобраться, а то 10 закрывающихся скобочек как бэ сильно ржут над тобой... я вообще не представляю как алгоритм такой сложности можно записать в таком стиле, чтоб он работал корректно...
ЗЫ хороший программист пишет гениальные вещи простым кодом, а не наоборот (с) |
|||
302
Alexandr Puzakov
08.11.11
✎
13:24
|
Корень, приставка, суффикс, окончание - вполне себе определенные слова.
|
|||
303
Feanor
08.11.11
✎
13:29
|
+(300) это примерно тоже самое, как уважаемая фирма Майкрософт написала бы для своих API "стандарты" и пыталась бы всех разработчиков нагибать на эти стандарты, мотивируя это тем, что она автор этих самых API и лучше всех знает, когда, что и почему нужно использовать. Но вроде от Майкрософт такого "стандарта" нет, или я чего-то не знаю?
|
|||
304
Alexandr Puzakov
08.11.11
✎
13:46
|
(300) они же платформу написали, кому как ни им устанавливать стандарты разработки?
|
|||
305
Starhan
08.11.11
✎
13:47
|
Венгерскую нотацию придумал в МС )
правда с выходом .нет сами же от нее отказываются |
|||
306
Stepa86
08.11.11
✎
13:49
|
(305) я про нее еще в (174) и (180) написал
|
|||
307
Starhan
08.11.11
✎
13:50
|
(305) было ответом (303)
|
|||
308
Stepa86
08.11.11
✎
13:54
|
(307) в ссылке по (180) кратко причины отказа, и венгерскую нотмацию придумали В мс, а стандарты придумала фирма 1С, это немного разные вещи все же... но гуайд стайл вроде б есть для программ под винду, под макось он точно есть
|
|||
309
Feanor
08.11.11
✎
13:58
|
годный получился вброс :)
|
|||
310
Stepa86
08.11.11
✎
13:58
|
(309) ты про какой из?
|
|||
311
Feanor
08.11.11
✎
14:01
|
(310) в целом про ветку
|
|||
312
Starhan
08.11.11
✎
14:16
|
Куда то потерялся ТС. ) Интересно развитие ситуации. И ответы на его вопросы им же самим.
|
|||
313
chingiz
08.11.11
✎
14:47
|
А кто пользовался http://infostart.ru/public/77909/ этим Анализатором? Есть авторитетные мнения?
|
|||
314
Alexandr Puzakov
08.11.11
✎
15:27
|
(313) *басистым голосом*
Я не пользовался. Авторитетно получилось? :) |
|||
315
Inform
08.11.11
✎
17:29
|
(299) разве это:
z7=Прав(z1,3);z8=Прав(z7,2);z9=Прав(z8,1); похоже на приставку, корень, суффикс или окончание? P.S.: для морфемного анализа слова совсем недостаточно 1 процедуры на 1 экран |
|||
316
_Ramzes
08.11.11
✎
22:02
|
А все начиналось так красиво и легко
|
|||
317
Inform
08.11.11
✎
22:06
|
(316) однако, никто и не ожидал другого конца :)
|
|||
319
skunk
09.11.11
✎
07:01
|
(303)если стандартом называть то, что называет много уважаемый Alexandr Puzakov ... то есть
http://msdn.microsoft.com/en-us/library/aa260976(v=vs.60).aspx только вот тебе ни кто не предложит убиться об стену если ты с++ напишешь так: std::string HowKillTheWall(void) { Return "like this http://www.eblog.ru/index.php?newsid=1961 " } |
|||
320
Alexandr Puzakov
09.11.11
✎
07:49
|
(315) это не похоже на приставку, суффикс или окончание. Это есть г@внокод. Из которого ничуть не понятно, что же он выполняет и как он работает. Нормальный код должен сам про себя рассказывать, что же он делает...
Вы сейчас отталкиваетесь от этого кода. А у него проблема не только в переменных, он говнисто организован... Переписать его можно в различных вариантах и намного грамотнее, и читабельнее. |
|||
321
skunk
09.11.11
✎
07:51
|
(320)хм ... а мне вот было все понятно ... в том числе и как он работает ... что я делаю не так?
|
|||
322
Alexandr Puzakov
09.11.11
✎
07:53
|
(319) я не понял, это Вы сейчас путем отталкивания от погоды, широты и долготы, и от настроения Васи сантехника пытаетесь вывести, что стандарты от фирмы 1С не могут быть стандартами?
|
|||
323
Alexandr Puzakov
09.11.11
✎
07:54
|
(321) не надо сказки рассказывать, код построен, что называется "черт голову сломит".
|
|||
324
skunk
09.11.11
✎
07:58
|
(323)я тебе говорю я прекрасно в нем разобрался ... и даже в году 2006 специалисту по стандартам объяснял как он работает
|
|||
325
skunk
09.11.11
✎
07:58
|
объяснял рисуя ему блок схемы как на уроках алгоритмического языка
|
|||
326
Alexandr Puzakov
09.11.11
✎
08:03
|
(324) в таком случае распишите алгоритм его работы по пунктам. Для Вас это не составит труда. Ну или нарисуйте блок-схему, раз уж делали это.
|
|||
327
skunk
09.11.11
✎
08:14
|
ломает ... да и мне кажеться мало поможет ... как и не помогло в (324) ... программист - это не блок схемы рисовать ... тут думать надо
|
|||
328
Alexandr Puzakov
09.11.11
✎
08:15
|
(327) все ясно.
|
|||
329
skunk
09.11.11
✎
08:19
|
(328)давай пойдем другим путем ... напиши анналогичное ... понятным и доступным языком согласно установленных стандартов
|
|||
330
Alexandr Puzakov
09.11.11
✎
08:37
|
(329) это требует много времени, для начала мне придется изрядно покурить правила русского языка...
|
|||
331
skunk
09.11.11
✎
09:04
|
(330)мне сказать все ясно ... или намекнуть, что я говорил ... переведи на "стандартный" язык 1С быдлокод про склонение по падежам
|
|||
332
smaharbA
09.11.11
✎
09:14
|
стандарты от фирмы 1С могут быть стандартами, при соблюдении ряда условий
|
|||
333
Alexandr Puzakov
09.11.11
✎
10:30
|
(331) видите ли, описать что же делает этот код, знающему, что же делает этот код, будет гораздо проще, чем "с нуля" написать код, который будет выдавать такой же результат.
И не понятно, Вы что, пытаетесь настоять на том, что в данном случае кроме как быдлокодом нельзя было выкрутиться? (332) каких? |
|||
334
Inform
09.11.11
✎
10:32
|
(330) ну, не надо преувеличивать, в любом ховнокоде можно разобраться при желании, тем более в той процедуре с небольшим количеством строк, тем более в том коде используются достаточно простые для понимания операторы.
P.S.: тот код существует уже много лет, может даже со времен клюшек и никто его более понятным языком еще не переписал, может быть Вам повезет... |
|||
335
ОбычныйЧеловек
09.11.11
✎
10:35
|
(334) Уверен, что "и никто его более понятным языком еще не переписал" ?!
|
|||
336
Sammo
09.11.11
✎
10:36
|
(334) Видел в начале 2000, емнип, там шел комментарий автора с 1999 (но могу ошибаться за давностью лет). На 7.7.
В 8-ке, емнип, может решаться другими средствами - dll для склонения. |
|||
337
skunk
09.11.11
✎
11:06
|
(336)лучшее данного кода в правильности склонения я пока не видел ... кстати у самого автора есть данные реализации и на других языках
|
|||
338
Inform
09.11.11
✎
11:14
|
(335) я не видел в общем доступе более читабельного варианта (за исключением структурированного варианта), но мне кажется в этом коде читабельности не прибавить (кроме как отструктурировать), если у Вас есть более читабельный вариант - выложите пожалуйста
|
|||
339
ОбычныйЧеловек
09.11.11
✎
11:24
|
(338) "если у Вас есть более читабельный вариант..." - алгоритм должен быть таким, что бы в нем не было необходимости вообще разбираться т.е. он написан один раз и на все случаи жизни.
Вот ссылка: http://wiki.kint.ru/index.php/Регистры_правил._Развитие_парадигмы - это теория (а ссылку на реализацию (готовый алгоритм) думаю легко найдете сами) |
|||
340
Sammo
09.11.11
✎
11:28
|
(339) Возможно это по второму кругу, но для чего должен быть?
Для чего нужно следовать стандартам: 1. Уменьшение вероятности глупых ошибок. 2. Повышение читабельности кода для его дальнейшего сопровождения и развития (например, в случае, если сменилась команда разработчиков). Если это не требуется, то допустимо использование кода как черного ящика - вызывается функция, параметры такие, возвращаемое значение такое. А что внутри - да хоть goto в каждой строке... :) Так с и приведенным примером, имхо. |
|||
341
Кириллка
09.11.11
✎
11:32
|
(340)"...то допустимо использование кода как черного ящика..." - допустимо только в одном единственном случае, когда этот код зашивается в какую-то железку и он там работает до конца свей жизни. Все остальное - успокоение собственного бескультурья.
|
|||
342
ОбычныйЧеловек
09.11.11
✎
11:44
|
(340) это точно мне? :)
кстати с первым пунктом не согласен, так как одно с другим вообще никак не связано. |
|||
343
Inform
09.11.11
✎
11:56
|
(342) в хорошо структурированном коде легче искать ошибки (ни для кого не секрет) => разработчик при написании сразу увидит свои ляпы, исправит => вероятность появления ошибок в хорошем коде меньше :)
Например: очень много ошибок появляется когда имеется куча вложенных циклов с множеством условий, люди тупо путаются с местом размещения последовательности операторов. Может и не очень удачный пример, но думаю, суть ясна. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |