Комментарии 58
Это кажется называется «обсуфикация кода», не? )))
Счас поначитаются, и начнут развлекаться… А потом сами-же в своём «чистописании» не разберутся )))
Счас поначитаются, и начнут развлекаться… А потом сами-же в своём «чистописании» не разберутся )))
habrahabr.ru/blogs/arbeit/99016/#comment_3053049
Совершенно разучилась попадать по правильной ссылке для ответа :-(
Совершенно разучилась попадать по правильной ссылке для ответа :-(
Счас поначитаются, и начнут развлекаться… А потом сами-же в своём «чистописании» не разберутся )))Для того чтобы потом не огрести есть всякие SVN'ы, git'ы, mercurial'ы и прочие приблуды, облегчающие последствия экспериментов.
Обфускация. Обсуфикация — это, надо полагать, что-то вроде добавления суффикса _l локальным переменным, _g — глобальным и _p — параметрам? :-)
Надо было добавить дисклеймер — ни переводчик, ни автор не несут ответственности за возможные применения текста? :-)
Надо было добавить дисклеймер — ни переводчик, ни автор не несут ответственности за возможные применения текста? :-)
Обфускация — она самая, попутался малость.
Я под обфускацией всегда понимал немного друг
А в чем разница? Обфускация, на уровне исходных текстов, назначение — усложнение исследования кода, что не так? Ну разве что делаться может вручную, а не автоматизированно, но это не основополагающая часть определения.
Вы уверены, что хотели написать именно «Хампти Дампти», а не «Шалтай-Болтай»?)
Произвольно смешивайте несколько языков (человеческих или компьютерных).
У нас есть возможность сложных комбинаций: транслит, неграмотный английский, точно такие же имена на грамотном английском, неправильный перевод (good — well) и комбинации всех методов именований в одной переменной.
The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.
Tom Cargill
Tom Cargill
А.К.Р.О.Н.И.М. / псть скрщнми грзд интрсн
На ум сразу приходит Стив Макконнелл и:
mov AX, 732h ; R. I. P. L. V. B.
Жаль, что в университете редко объясняют студентам, о том, что чистота и хорошая документированность кода важна не менее, чем его работоспособность — намного проще работать, когда чистый код с внятными комментариями входит в привычку. Хотя все же есть преподаватели, которые это делают — огромное им спасибо.
А лучше, когда код не требует комментариев. То есть код и переменые строятся таким образом, что читаются нативно.
Угу. При этом не использует рекурсию, в каждой строчке не больше 80 символов и всего не более 30 строк кода.
Чего вы нашли неподдерживаемого в рекурсии?
Легкоподдерживаемый код это простой код. Рекурсия не является простым кодом. И именно к простому коду не нужны комментарии.
> Рекурсия не является простым кодом.
С каких пор?
> Легкоподдерживаемый код это простой код.
То есть рекурсию использовать нельзя, по-Вашему?
С каких пор?
> Легкоподдерживаемый код это простой код.
То есть рекурсию использовать нельзя, по-Вашему?
Ладно, тогда чего вы нашли сложного в рекурсии?
а мне пришли в голову мысли о сокращениях directX, то еще чудо:)
Как это знакомо, боже мой. Радует лишь то, что мы уже закончили тащить тот проект.
_getSomethingGet()
getSomethingGet()
__getSomethingGet()
три разные функции, комментарии есть только к одной, в зависимости от входящих данных либо вызывается callback функция(как оно там называлось) и делает что угодно.
Комментарии: 70% пустышки-шаблоны, 20% ломаный английский, 10% русский.
_getSomethingGet()
getSomethingGet()
__getSomethingGet()
три разные функции, комментарии есть только к одной, в зависимости от входящих данных либо вызывается callback функция(как оно там называлось) и делает что угодно.
Комментарии: 70% пустышки-шаблоны, 20% ломаный английский, 10% русский.
а шаблоны случайно не такие?
Как же я Вас понимаю, недавно пришлось видеть проект от которого ночь не спать можно, вот выдержка:
Это ещё достаточно безобидный кусок кода.
Остальные функции и переменные в таком же стиле…
- private void w_hlink_w_r_w_rPr(XmlNode rPr, ref Paragraph p)
- {
- Style stl = new Style();
- foreach(XmlNode node in rPr.ChildNodes)
- switch (node.Name)
- {
- case "w:rStyle":
- string seed = node.Attributes["w:val"].Value;
- stl = styles.GetStyle(seed).FullCopy();
- SetStyleToP(stl, ref p);
- break;
- }
- tip_w_rPr(rPr, ref stl);
- SetStyleToP(stl, ref p);
- }
Это ещё достаточно безобидный кусок кода.
Остальные функции и переменные в таком же стиле…
НЛО прилетело и опубликовало эту надпись здесь
6 из 20 я наблюдаю прямо сейчас :(
найдите разработчика и напомните ему легенду про маньяка-кодера
Вот поэтому практика «no review — no submit», несмотря на вызываемые тонны раздражения и немотивированную агрессию, когда твой код попал к человеку, который докапывается до каждой буквы, зачастую если и не гарантирует, то очень сильно повышает вероятность того, что потом это можно будет поддерживать и ре-использовать.
автор забыл про фундаментальные истины
-1. Блоки кода, классы функции, которые есть в коде, но они нигде не используются.
0. Полотнища с закомментированным кодом непонятного назначения, иногда, после удаления таких полотнищ все перестает работать.
ПРЕЛЕСНО )))
а нате вам виртуальный + в репу
-1. Блоки кода, классы функции, которые есть в коде, но они нигде не используются.
0. Полотнища с закомментированным кодом непонятного назначения, иногда, после удаления таких полотнищ все перестает работать.
ПРЕЛЕСНО )))
а нате вам виртуальный + в репу
-1 — это легко отслеживается, по крайней мере в Java в современных IDE. В плюсах сложнее, но опять же можно отследить.
Если же используются плюсы, то там такой простор для экспериментов и мелкого вредительства, что просто дух захватывает ;-) Знамя Александреску мы несем гордо!
Если же используются плюсы, то там такой простор для экспериментов и мелкого вредительства, что просто дух захватывает ;-) Знамя Александреску мы несем гордо!
что можно, то я согласен, но у меня было не тривиально: маловремени, запрет переписывать код впринципе, нет манов по ядру проги, нет коментов вприципе (кроме мистических ссылок на багтрекер, который умер 2 года назад), куча патченных чужих библиотек (исходных кодов нет), грязный код по всей плоскости кроме ядра, в ядре просто ппц какой заумный код (вплоть до указателей на куски кучи и операции с двоичным кодом).
ну и финалом — это крякнутая патченная делфа 3,1
фаталити — полное отсутствие видения проекта у заказчика
это был мой кошмар-на-яву
ЗЫ да и не такой я матерый делфист тогда был, мягко говоря новичек, возможно для спецов все там выглядело по-другому
ну и финалом — это крякнутая патченная делфа 3,1
фаталити — полное отсутствие видения проекта у заказчика
это был мой кошмар-на-яву
ЗЫ да и не такой я матерый делфист тогда был, мягко говоря новичек, возможно для спецов все там выглядело по-другому
Александреску раскаялся и написал TDPL. ;)
Я думал, что слово «пролог» относится к Прологу. Вот где все, что нужно сделано уже на уровне языка!
Гениально :) И, к сожалению, встречается в живом коде.
ааа, теперь-то я понял, наконец, почему в проекте, который мне был передан все было так ужасно. автор имел чувство юмора и оставил мне прекрасный код, написанный, видимо, по этой статье. пример:
pastebin.com/N3XCBCcS
pastebin.com/N3XCBCcS
Я видал людей, которые пишут программы в мэйне (иногда в паре-другой функций), на переписывание с нуля которых даже с ООП и «правильными подходами» у опытных программистов уходило несколько месяцев. Размеры программ потрясали — 10000-20000 тысяч строк. И все это в одной-двух функциях. И что самое удивительное, эти программы даже иногда работали, с утечками памяти, заваливанием через 20 минут работы, случайным удалением всех файлов в каталоге куда ты сохраняешь другой файл, сообщениями «произошла какая-то ошибка» и падением. Но они работали. Программистам, которым удается запустить такой код необходимо вручать «программистскую премию Дарвина».
А получится? Премия Дарвина требует изъятия своих генов из генофонда человечества. По аналогии, такая же премия для программистов должна требовать полного изъятия своего кода из рабочего кода человечества — не уверена, что такое реализуюется.
Получится! Если код, попадающий под хотя бы один из вышеприведенных пунктов, не будет становиться рабочим и будет изыматься сразу при рождении. Хотя, я конечно немного идеалистичен. Всегда будут такие программисты, всегда будут компании, в которых работают такие программисты… Но премию выдавать уж точно можно!
> 8. веРхНий реГисТр
> Произвольно переводите в верхний регистр первую букву слога, а также другие буквы.
ЭтО жЕ лАфФныЙ эМО-кОд))))))))))))))))))))) чМаФФФФ))))))))
headrush.typepad.com/photos/uncategorized/emobookcover.jpg
> Произвольно переводите в верхний регистр первую букву слога, а также другие буквы.
ЭтО жЕ лАфФныЙ эМО-кОд))))))))))))))))))))) чМаФФФФ))))))))
headrush.typepad.com/photos/uncategorized/emobookcover.jpg
Гуд.
Спасибо! Такие вещи обязательно надо переводить на русский.
Спасибо! Такие вещи обязательно надо переводить на русский.
Отлично подходят Эсперанто, Клингонский язык и хоббитон.
Хоббитон — это название селения, а хоббиты разговаривали на вестроне, он же всеобщий. Или Вы что-то другое имели в виду? Если просто нужен фантастический язык, можно было бы упомянуть синдарин или квэнью.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Код, который невозможно поддерживать