|
OFF: Проверка на соответствие кода стандартам разработки. | ☑ | ||
---|---|---|---|---|
0
_Ramzes
03.11.11
✎
18:37
|
Добрый день. На предприятии руководитель вводит проверку кода Аудитом на соответствие стандартам разработки.
В связи с этим есть вопросы: 1)Кто сталкивался с таким, были ли проблемы связанные с придирками, к примеру отступы, названия переменных? 2)Какова стоимость аудита была? 3)Был ли реально прогресс или все заглохло? |
|||
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) в хорошо структурированном коде легче искать ошибки (ни для кого не секрет) => разработчик при написании сразу увидит свои ляпы, исправит => вероятность появления ошибок в хорошем коде меньше :)
Например: очень много ошибок появляется когда имеется куча вложенных циклов с множеством условий, люди тупо путаются с местом размещения последовательности операторов. Может и не очень удачный пример, но думаю, суть ясна. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |