Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Большие комментарии это хорошо или плохо? (https://javascript.ru/forum/offtopic/37694-bolshie-kommentarii-ehto-khorosho-ili-plokho.html)

megaupload 02.05.2013 15:25

Большие комментарии это хорошо или плохо?
 
Вот собственно мой код https://github.com/iMaxmaxmaximus/fi...r/build/fix.js



megaupload 02.05.2013 15:30

А что если добавить теги и картинки вхуяривать в jsdoc или фильмы с ютьюба с примерами использования?? О_О

l-liava-l 02.05.2013 16:46

:lol:
Цитата:

А что если добавить теги и картинки вхуяривать в jsdoc или фильмы с ютьюба с примерами использования?? О_О
Большие коменты это хорошо, лучше чем без коментов.
В общем чтобы не быть извращенцем сделай две версии. С большими коментами для полного понимания и версию без них(или не такими большими) для загрузки, чтобы сразу прицепить к сайту, не удаляя твои килобайты лишнего)

megaupload 02.05.2013 17:38

l-liava-l, ты типа про компиляцию не знаешь?
Я имею ввиду в исходниках это ухудшает чтение и понимание кода или улучшает?

Dim@ 02.05.2013 18:01

megaupload,
конечно улучшает, просто есть люди которые не любят больших комментариев

megaupload 02.05.2013 18:17

Цитата:

Сообщение от Dim@
просто есть люди которые не любят больших комментариев

да да да, много я ко ко ко на хабре слышал что хороший код это код без каментов, когда все и так понятно из названий функций. Но по моему это бред, абстракции надо поднимать в каментах, СМЫСЛ функций надо описывать в каментах, как сделал я, вот в реализации не должно быть комментариев разве что в местах требующих уточнения и пояснения логики, вот я о чем. Мы же работаем с языком на уровне функций и методов. По этому надо описывать их чтобы при нажатии ctrl и наведении на метод показывалась его дока и.т.п. )

ну лан, кстати оцените код и его понятность, и структуру кода в целом, это пойдет в портфолио..
https://github.com/iMaxmaxmaximus/fix

Tim 02.05.2013 20:55

Не до комментариев, с форматированием кода сначала разберись :)

Экономь место по вертикали. Легче читать код когда видишь больше функций, то как они, связаны между собой.

Есть некоторые расхождения в стиле от ф-и к функции
Код:

} else {
Код:

}
        else {


тут тоже перевод строки лишний
Код:

for (var property in css) {
                element.style[property] = css[property];
        }

        return element;


Тут я бы выровнял по знаку =
Код:

Notifier.HEADER_TEXT = 'Вообще-то, :';
Notifier.DETAILS_TEXT = 'Что именно не поддерживает мой браузер?';
Notifier.CLOSE_TEXT = 'закрыть';


Код:

if (key in target)return;
где пробел?

Код:

var fix = new Fix;
var notifier = new Notifier;

сделай один var и выровняй по =. Не красиво из-за разной длины переменных? подбери имена получше!

Код:

for (var i = 0; i < elements.length; i++) {
        if (elements[i] === this) {
                return true;
        }
}

Код:

for (var i = 0; i < elements.length; i++) if (elements[i] === this) {
        return true;
}

так вроде лучше. нет?


Хз, так то нормально, но я стараюсь всё до каждого символа вылизывать.

Dim@ 02.05.2013 21:04

Tim,
да форматирование вещь такая :lol:, вот стал писать месяц назад форматированным кодом - и не трудно, и приятно читать

megaupload 02.05.2013 21:19

Tim, ты прикалываешься? там такого нет О_О


Цитата:

Сообщение от Tim
Экономь место по вертикали

всегда считал что нужно экономить место по горизонтали О_О

Цитата:

Сообщение от Tim
сделай один var

ни когда не буду делать один var так как это не очевидно

выровнять по ровно не знаю как(( я вообще форматированием кода не занимаюсь, 21 век, этим занимается PhpStorm ((
а он не умеет выравнивать по ровно(

Я делаю акцент на ОЧЕВИДНОСТИ, то есть мне даже не лень написать лишний раз

if( ololo instanseOf Ololo === false )


чем убогое

if( !(ololo instanseOf Ololo) )

Dim@ 02.05.2013 21:31

megaupload,
мдаа я наверно бы сделал бы акцент на лаконичность
if( !(ololo instanseOf Ololo) )

megaupload 02.05.2013 21:35

Цитата:

Сообщение от Dim@
мдаа я наверно бы сделал бы акцент на лаконичность

компилятор не, не слышал?

код пишется ДЛЯ ЛЮДЕЙ и , как мне кажется === false очевиднее восклицательного знака, и я где-то уже писал что у восклицательного знака смысл больше не отрицание а "реверс"

tenshi 03.05.2013 10:14

> Я имею ввиду в исходниках это ухудшает чтение и понимание кода или улучшает?

Коментарии лучше делать краткими, по делу, не описывать очевидное, без философских рассуждений и грамотными. И лучше избегать сложных предложений. И зачастую короткий пример полезней абзаца текста.

> на хабре слышал что хороший код это код без каментов, когда все и так понятно из названий функций

Это идеал, к которому стоит стремиться.

> Не до комментариев, с форматированием кода сначала разберись

Изменить форматирование - дело пары кликов. Коментарии никакой скрипт за автора не напишет.
Далее у тебя понеслись вредные советы из разряда "я привык так фигачить и щитаю, что все должны писать код также, иначе я не могу его понять".

> Тут я бы выровнял по знаку =

Мартышкин труд. Если редактор умеет выравнивать по равенсту - замечательно. Иначе это бесполезные рюшечки.

> где пробел?

Какой ужас, не хватает пробела))

> сделай один var и выровняй по =

С ветками никогда не работал? При слиянии оных _крайне_ удобно, когда строки синтаксически друг от друга не зависят.

> Не красиво из-за разной длины переменных? подбери имена получше!

Ага, все имена должны быть ровно 4 символа и всё будет гламурненько)

> так вроде лучше. нет?

Лучше так:

for (var i = 0; i < elements.length; i++) {
    if (elements[i] !== this) continue
    return true
}


> у восклицательного знака смысл больше не отрицание а "реверс"

Это твои личные неправильные ассоциации) И чем "логическое отрицание" не "реверс" - не понимаю.

Tim 03.05.2013 10:34

tenshi,
megaupload,
говнокодеры :D

megaupload 03.05.2013 11:29

Цитата:

Сообщение от tenshi
Это идеал, к которому стоит стремиться.

То есть я идеале в jsdoc описания нет?

Цитата:

Сообщение от tenshi
Ага, все имена должны быть ровно 4 символа и всё будет гламурненько)

вот вот и действительно, зачем основывать именование на ЛОГИЧЕСКОЙ ЧАСТИ, главное это как код смотреться на фоне моей новой сумочки будет... лол, по моему это самый ебанутый совет был бро, безобид)
Но все ровно всем спасибо что помогаете нубу

Цитата:

Сообщение от tenshi
Лучше так:

ха, точно) мы же "от обратного" всегда идем в иафх, забыл, спасибо)

Цитата:

Сообщение от Tim
говнокодеры

Tim,
почему говнокодеры? вот скажи ты чо код вручную форматируешь, правда)???

tenshi,
блин, дааа)) клеева


Tim 03.05.2013 11:44

Цитата:

вот скажи ты чо код вручную форматируешь, правда
нет, так же как и ты - штормом, но он не всё умеет

megaupload 03.05.2013 11:54

Цитата:

Сообщение от tenshi
Это твои личные неправильные ассоциации) И чем "логическое отрицание" не "реверс" - не понимаю.

toggle = !toggle здесь мы переключаем toggle и делаем реверс

а здесь
if(toggle === false) мы проверяем, если toogle равен false то сделаем что-то.

если бы мы написали if(!toggle) то нам бы в уме пришлось просчитывать логическое действие реверс toggle

Дело в том то что if принимает true и мы хотим получить туда true..
Делать это путем реверса??? Не кажется ли это вам костылем?
Не лучше ли писать код как ты думашеь

если в toggle лежит ложь то...
if( toggle === false )


а не

если отрицать toggle и сделать его реверс, то...
if( !toggle )


понимаете о чем я?

и кроме того, бывает так что тебе, чтобы сделать реверс, приходится брать целые выражения в скобки и ставить перед ними воскливательный знак... и он менее очевиден чем выражение === false то есть (выражение вернет false)

например сравните if(!(keys instanceof Array)) и if(keys instanceof Array === false)

Цитата:

Сообщение от Tim
но он не всё умеет

но он же портит твое выравнимание О_О не?

tenshi 03.05.2013 12:12

> и кроме того, бывает так что тебе, чтобы сделать реверс, приходится брать целые выражения в скобки и ставить перед ними воскливательный знак..

Угу, это бесит, особенно с instanceof. Другое дело, что instanceof имеет смысл использовать лишь в очень редких случаях. Тот же instanceof Array будет не со всеми массивами давать true.

> if(toggle === false)

Тогда уж if(toggle !== true) потому что toggle может оказаться равен undefined

tenshi 03.05.2013 12:14

> То есть я идеале в jsdoc описания нет?

В идеале вообще jsdoc-а быть не должно) Но это уже TypeScript какой-нибудь нужен.

megaupload 03.05.2013 15:33

Цитата:

Сообщение от tenshi
Тот же instanceof Array будет не со всеми массивами давать true.

да ладно а можно пример?

Цитата:

Сообщение от tenshi
Тогда уж if(toggle !== true) потому что toggle может оказаться равен undefined

не может у нас jsdoc и {boolean} а в случае когда может быть а может и не быть то можно и if(!toggle)
... чо то я загнался)

Цитата:

Сообщение от tenshi
В идеале вообще jsdoc-а быть не должно)

не путаешь ли ты (и я) jsdoc (документацию) с комментариями)?

tenshi 03.05.2013 21:37

> да ладно а можно пример?

В разных фреймах разные объекты Array.

> не путаешь ли ты (и я) jsdoc (документацию) с комментариями)?

А в чём принципиальное отличие?)

megaupload 03.05.2013 22:03

Цитата:

Сообщение от tenshi
А в чём принципиальное отличие?)

В том что документация для пользователей скрипта, а комментарии для разработчиков скрипта. кэп

tenshi 04.05.2013 11:33

Пользователи тоже разработчики и вполне в состоянии читать исходный код, если он конечно не воняет.

megaupload 04.05.2013 17:27

Цитата:

Сообщение от tenshi
Пользователи тоже разработчики

в состоянии, и...? продолжай мысль...

tenshi 05.05.2013 09:59

и у него нет основных проблем документации: "устарела" и "нихрена не понятно"


Часовой пояс GMT +3, время: 14:26.