dlinyj: (Default)
[personal profile] dlinyj
Представте себе, что на дворе 198*-какой-то год. Вы выпускник ВУЗа. Единственный язык, который вы знаете - паскаль. Вы устраиваетесь в компанию IBM. Они вам говорят: мы разработали новый х86 компьютер. Тебе нужно написать программу самотестирования железа на с++. Вот тебе документация на наш компьютер (папка весом два гигабайта), там надо прочитать ... (около 10 док файлов, суммарным обьёмом около 600 страниц), и вот наша программа и библиотека (сотни тысячь строк кода). Тебе три дня разобратся и написать свою программу... Представили? Примерно тоже самое и у меня. Вот ещё программа, на основе которой стоит написать


Программа без ЕДИНОГО комментария

При чёём автор программу практически не ставил комментариев, вводил штук 300 переменных с названиями типа: lkhslyhklk, плюс работает с классами другой библиотеки. Я просто взрываю себе мозг!

Совет: Хорошо комментируйте код, даже для себя. Ставьте осмысленные переменные, не скупитесь на буквы! А если вы пишете программу для производства - ОБЯЗАТЕЛЬНО ставьте много комментариев. Желательно писать комментарии транслитом или на английском, чтобы небыло проблем с кодировкой.
(deleted comment)

Date: 2009-10-19 07:29 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Ну да чистый, когда там в инклудниках подключается класс Map, и там уже идёт полным ходом работа с ним.

Date: 2009-10-19 07:29 am (UTC)
From: [identity profile] i-muxamor.livejournal.com
Угу по поводу комментраиев категорически поддерживаю. Всю силу комментариев я оценил только тогда когда мне пришлось через год как написал прогу на асемблере ее модифицировать, ну и как следствие разбираться было ой как не просто.

Date: 2009-10-19 08:58 am (UTC)
From: [identity profile] fortunator.livejournal.com
Я как професиональный программист скажу:
коментировать код неправильно, код должен быть таким чтобы и без коментариев понятно,
переменные и методы должны называться по функциональности, а не (kgfhyui),
при правильном коде названия переменных, методов и классов являются уже достаточными комментариями.
Я правда не на плюсах работаю, а на шарпе.

Date: 2009-10-19 09:51 am (UTC)
From: [identity profile] maddev.livejournal.com
В некоторых случаях комментарии все же требуются. Например, для описания целостного алгоритма в ассемблерном коде, но не функций каждой отдельной инструкции — язык сам с этим справляется. Т. е., у каждого ЯП есть уровень «самопоясняемости» (self-explanatoryness) алгоритма, выше которого уже требуется комментирование кода.

Date: 2009-10-19 10:53 am (UTC)
From: [identity profile] fortunator.livejournal.com
Да извиниюсь, здесь согласен, только разве целостный алгоритм не должен объяснятся в мануале?

Date: 2009-10-19 11:03 am (UTC)
From: [identity profile] maddev.livejournal.com
А мануала часто вообще нет :-) К тому же, я имел в виду алгоритм какого-то ограниченного участка кода — не всей программы. Ну, например, вычисление достаточно сложного выражения, которое уже проблематично быстро выделить из последовательности инструкций.

Date: 2009-10-19 11:07 am (UTC)
From: [identity profile] fortunator.livejournal.com
Ну здесь один вариант, каммент.
Это если выделить не сложно, выделяешь метод и называешь его ВычислениеСложногоВыражения().

Date: 2009-10-19 04:22 pm (UTC)
From: [identity profile] arkamax.livejournal.com
> коментировать код неправильно

Извините, но при всем уважении, такое утверждение не может считаться знаком профессиональности в данном поле деятельности. Self-commented code никто не отменял, да - у меня тоже имена зачастую под 30 символов (иногда более), но логику кода в символике не пропишешь. Да что я объясняю...

Date: 2009-10-19 09:34 am (UTC)
From: [identity profile] brakhma.livejournal.com
Всегда комментирую то, что могу со временем забыть. То есть фактически всё, кроме арифметических операций. %) Мне часто говорили, что это не тру, но как-то фиолетово, потому что мне так удобнее.

Date: 2009-10-19 10:02 am (UTC)
From: [identity profile] maddev.livejournal.com
// тру, потому что ты таким образом предусматриваешь возможность вероятных изменений (помнил -> забыл), а это один из основополагающих (тру!) принципов разработки.

Date: 2009-10-19 10:11 am (UTC)
From: [identity profile] r-a-d.livejournal.com
В целом соглашусь, только призыв использовать транслит удивляет.
Ладно не все ещё используют UTF-8 в призрачной экономии места на НЖМД.
Но знать о волшебной утилите iconv (на Windows, думаю, есть платные аналоги) должны обязательно.

Date: 2009-10-19 01:41 pm (UTC)
From: [identity profile] r-a-d.livejournal.com
Грузанись с Linux LiveCD, перекодируй куда хочешь. И в DOS.

Date: 2009-10-19 01:49 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Люблю практологов!

Date: 2009-10-19 03:12 pm (UTC)
From: [identity profile] r-a-d.livejournal.com
От слова "практика"? :)

Date: 2009-10-19 03:14 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Поясню: пишу код под виндой, для доса. Компилю досовским компилером. Иногда код приходится редактировать под чистым досом. IDE интерфейса там нет. Всё грузится с флеши (не USB). О каком лайф сиди может идти реч, если там даже может не быть монитора?

Date: 2009-10-19 04:50 pm (UTC)
From: [identity profile] vshmuk.livejournal.com
А почему не DosBox?

Date: 2009-10-19 04:57 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Всё гениальное просто: пишу под железо, на х86 камне.

Date: 2009-10-19 07:28 pm (UTC)
From: [identity profile] vshmuk.livejournal.com
>Компилю досовским компилером. Иногда код приходится редактировать под чистым досом.
Повторю вопрос. Почему не DosBox?

Date: 2009-10-19 03:55 pm (UTC)
From: [identity profile] arush-damage.livejournal.com
Дос?
Дос навигатор юзай - там и редактор нормальный встроенный.
Necromancer Dos Navigator вроде должен живой быть.

Date: 2009-10-19 10:42 am (UTC)
From: [identity profile] dlinyj.livejournal.com
И с каких пор ДОС стал понимать юникод? Не думайте что ДОС мёртв, он цветёт и пахнет. Только под свои задачи

Date: 2009-10-19 01:42 pm (UTC)
From: [identity profile] r-a-d.livejournal.com
http://freedos-32.sourceforge.net/showdoc.php?page=unicode

Date: 2009-10-19 02:19 pm (UTC)
From: [identity profile] neurocod.livejournal.com
см. википедию - уже есть бесплатные аналоги iconv под винду, я как раз туда добавил ссылку, так как недавно сталкивался с этой задачей ))

Date: 2009-10-19 11:22 am (UTC)
From: [identity profile] gorl.livejournal.com
комментарии необходимы там, где без них не понять.
код должен документировать сам себя.

Date: 2009-10-19 03:20 pm (UTC)
From: [identity profile] invcoder.livejournal.com
Для упрощения задачи, могу посоветовать Doxygen.
Получите удобную навигацию по коду, хотя комментарии оно автоматом не подхватит
т.к. для этого их нужно оформить по его правилам. Хотя можно сделать автозамену // на /// и /* на /** и читать комменты.
http://ru.wikipedia.org/wiki/Doxygen
http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc
Есть ГУИ фронтенд, и под винду и под линукс.

Date: 2009-10-19 03:22 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Да, уже попробовал. Сгенерил код. Но чт-то он инклудники такого вот вида:

#include "..\TESTS\PARAM.H"

Не переваривает :(. Но он сделал хотя бы весь класс в одном месте, что тоже удобно.

Date: 2009-10-19 04:00 pm (UTC)
From: [identity profile] invcoder.livejournal.com
На вкладке Project галочку Scan Recursively.
На вкладке Mode Include Cross referenced source code in the output.
Поиграй с опциями на вкладке эксперт, все пункты с комментариями.

Date: 2009-10-20 06:42 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Громадное спасибо! Всё сгенерилось как надо!

Date: 2009-10-20 06:56 pm (UTC)
From: [identity profile] invcoder.livejournal.com
Enjoy ;).

Date: 2009-10-19 04:19 pm (UTC)
From: [identity profile] arkamax.livejournal.com
> Желательно писать комментарии транслитом или на английском, чтобы небыло проблем с кодировкой.

Я бы переквалифицировал на "обязательно на английском". Если не знаете - отличная возможность его выучить. Потому что читать много смыслового текста на транслите - отличная возможность взорвать мозг еще быстрее.

Date: 2009-10-20 05:05 am (UTC)
From: [identity profile] woodocat.livejournal.com
Нормальный такой код. С подсветкой еще красивее будет.
А транслит в комментах - я считаю это настоящий моветон.
Чистый код должен быть легко понятен без коментов.

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 11:52 am
Powered by Dreamwidth Studios