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