Как стать автором
Обновить
253
0.2

Пользователь

Отправить сообщение
Хорошо хоть, скрепы через визуальный канал вводят.
Хабравчане, кто занимается поддержкой посещаемого сайта или кто владеет посещаемым сайтом, вы будете как-то реагировать на закон? Если предположить, что он всё таки будет работать (не избирательно), то в блок можно будет уйти без предупреждения за запрещенный комментарий любого хулигана. Кто-то собирается премодерацию или постмодерацию всех комментариев вводить?
Схему я видел, просто ранее, если не ошибаюсь, была проблема, что провайдеры заблокировать url или домен (не IP) не могут технически. Вот мне и интересно: сейчас, получается, могут?

Шрифт почему такой? :)
А расскажите, пожалуйста, кто в курсе, блокировка будет по IP?
Кто не читал «Совершенный код», почитайте обязательно — не пожалеете. Там очень подробно разобран в том числе и вопрос комментирования программ.

32.3. Комментировать или не комментировать?
Комментарии легче написать плохо, а не хорошо, и комментирование иногда бывает скорее вредным,
чем полезным. Жаркие дискуссии по поводу достоинств комментирования часто напоминают
философские дебаты о моральных достоинствах, и это наводит меня на мысль о том, что, будь Сократ
программистом, между ним и его учениками могла бы произойти следующая беседа.

Комменто

Действующие лица:

ФРАСИМАХ Неопытный пурист теории, который верит всему, что читает.
КАЛЛИКЛ Закаленный в боях представитель старой школы — «настоящий» программист.
ГЛАВКОН Молодой, самоуверенный, энергичный программист.
ИСМЕНА Опытная разработчица, уставшая от громких обещаний и просто желающая найти
несколько работающих методик.
СОКРАТ Мудрый опытный программист.

Мизансцена:

Завершение ежедневного собрания группы

— Желает ли кто-то обсудить еще что-нибудь, прежде чем мы вернемся к работе? — спрашивает Сократ.
— Я хочу предложить стандарт комментирования для наших проектов, — говорит Фрасимах. —
Некоторые наши программисты почти не комментируют свой
код, а всем известно, что код без комментариев нечитаем.
— Ты, должно быть, еще менее опытен, чем я думал, — отвечает Калликл. — Комментарии — это
академическая панацея, и любому, кто писал реальные программы, известно, что комментарии
затрудняют чтение кода, а не облегчают. Естественный язык менее точен, чем Java или Visual
Basic, и страдает от избыточности, тогда как операторы языков программирования лаконичны и
попадают в самое яблочко. Если кто-то не может написать ясный код, разве ему удастся
написать ясные комментарии? Кроме того, комментарии устаревают при изменениях кода. Доверяя
устаревшим комментариям, ты сам себе роешь яму.
— Полностью согласен, — вступает в разговор Главкон. — Щедро прокомментированный код читать
труднее, потому что в этом случае читать приходится больше. Мало того, что я должен читать код,
так мне нужно читать еще и кучу комментариев!
— Подождите минутку, — вставляет свои две драхмы Исмена, ставя чашку кофе.
— Конечно, злоупотребление комментариями возможно, но хорошие комментарии ценятся на вес золота.
Мне приходилось сопровождать код как с комментариями, так и без них, и, будь у меня выбор, я бы
предпочла первый вариант. Не думаю, что нам нужен стандарт, заставляющий писать один
комментарий на каждые x строк кода, но побудить всех программистов комментировать код не
помешает.
— Если комментарии — пустая трата времени, почему все их используют, Калликл? — спрашивает Сократ.
— Или потому, что таково требование, или потому, что человек прочитал где-то о пользе
комментариев. Ни один программист, когда-либо задумавшийся об этом, не пришел к выводу, что
комментарии полезны.
— Исмена считает, что они полезны. Она уже три года сопровождает твой код без комментариев и чужой
код с комментариями. Ее мнение ты уже слышал. Что ты скажешь на это?
— Комментарии бесполезны, потому что они просто повторяют код в более многословной…
— Подожди, — прерывает Калликла Фрасимах. — Хорошие комментарии не повторяют код и не объясняют
его. Они поясняют его цель. Комментарии должны объяснять намерения программиста на более
высоком уровне абстракции, чем код.
— Верно, — соглашается Исмена. — Если я ищу фрагмент, который мне нужно изменить или исправить,
я просматриваю комментарии. Комментарии, повторяющие код, на самом деле бесполезны, потому что
все уже сказано в самом коде. Когда я читаю комментарии, я хочу, чтобы они напоминали оглавление
книги. Комментарии должны помочь мне найти нужный раздел, а после этого я начну читать
код. Гораздо быстрее прочитать одно предложение на обычном языке, чем анализировать 20 строк
кода на языке программирования.

Исмена наливает себе вторую чашку кофе.

— Мне кажется, что люди, отказывающиеся писать комментарии, (1) думают, что их код понятнее,
чем мог бы быть, (2) считают, что другие программисты гораздо сильнее интересуются их кодом,
чем есть на самом деле, (3) думают, что другие программисты умнее, чем есть на самом деле, (4)
ленятся или (5) боятся, что кто-то другой узнает, как работает их код.
— В этом смысле очень помогли бы обзоры кода, Сократ, — продолжает Исмена.
— Если кто-то утверждает, что комментарии писать не нужно, и получает во время обзора кучу
вопросов — если сразу несколько коллег спрашивают его: „Что происходит в этом фрагменте твоего
кода?“ — он начинает писать комментарии. Если программист не дойдет до этого сам, его руководитель
сможет заставить его писать комментарии.
— Я не утверждаю, Калликл, что ты ленишься или боишься, что кто-то другой поймет твой код. Я
работала с твоим кодом и могу сказать, что ты — один из лучших программистов компании. Но будь
чуточку добрее, а? Мне было бы легче сопровождать твой код, если бы ты писал комментарии.
— Но это пустая трата времени, — не сдается Калликл. — Код хорошего программиста должен быть
самодокументирующимся: все, что нужно знать другим программистам, должно быть в самом коде.
— Нет! — Фрасимах вскакивает со стула. — В коде и так уже есть все, что нужно знать компилятору!
С таким же успехом можно было бы сказать, что все, что нужно знать другим программистам, уже
есть в двоичном исполняемом файле! Если бы мы только были достаточно умны, чтобы уметь читать
его! Информации о том, что программист собирался сделать, в коде нет.
Фрасимах замечает, что вскочил с места, и садится.
— Сократ, это немыслимо. Почему мы спорим о важности комментариев? Во всех книгах, которые я
читал, говорится, что комментарии полезны и что на них не стоит экономить. Мы зря теряем время.
— Успокойся, Фрасимах. Спроси у Калликла, как давно он программирует.
— Действительно, как давно, Калликл?
— Ну, я начал с системы Акрополь IV где-то 15 лет назад. Думаю, что я стал свидетелем рождения и
гибели примерно десятка крупных приложений. А еще в десятке проектов я работал над крупными
компонентами. Две из этих систем включали более полумиллиона строк кода, так что я знаю, о чем
говорю. Комментарии совершенно бесполезны.

Сократ бросает взгляд на более молодого программиста.

— Как говорит Калликл, с комментариями действительно связано много проблем, и ты не поймешь это,
пока не приобретешь больше опыта. Если комментировать код неграмотно, комментарии не просто
бесполезны — они вредны.
— Они бесполезны, даже если комментировать код грамотно, — заявляет Калликл.
— Комментарии менее точны, чем язык программирования. Лично я думаю, что лучше вообще их не
писать.
— Постой, — говорит Сократ. — Исмена согласна с тем, что комментарии менее точны, но она
утверждает, что комментарии поднимают программиста на более высокий уровень абстракции, а все мы
знаем, что абстракция — один из самых эффективных инструментов, имеющихся в нашем распоряжении.
— Я с этим не согласен, — заявляет Главкон. — Нам следует концентрироваться не на комментариях,
а на читабельности кода. При рефакторинге большинство
моих комментариев исчезает. После рефакторинга мой код может включать 20 или 30 вызовов
методов, не нуждающихся в каких бы то ни было комментариях. Хороший программист способен
определять цель автора по самому коду; к тому же какой толк в чтении о чьей-то цели, если
известно, что код содержит ошибку?

Главкон умолкает, удовлетворенный своим вкладом в беседу. Калликл кивает.

— Похоже, вам никогда не приходилось изменять чужой код, — говорит Исмена. Калликл делает вид,
что его очень заинтересовали плитки на потолке.
— Почему бы вам не попробовать прочитать собственный код через шесть месяцев или год после его
написания? Вы можете развивать и навык чтения кода, и навык его комментирования. Никто не
заставляет вас выбирать что-то одно. Если вы читаете роман, вам, может, и не нужны названия
глав. Но при чтении технической книги вам, наверное, хотелось бы иметь возможность быстро найти
то, что вы ищете. Тогда мне не пришлось бы переходить в режим сверхсосредоточенности и читать
сотни строк кода для нахождения двух строк, которые я хочу изменить.
— Хорошо, я понимаю, что возможность быстрого просмотра кода была бы удобной, — говорит Главкон.
Он видел некоторые из программ Исмены, и они не оставили его равнодушным. — Но как быть с
другим утверждением Калликла — что комментарии устаревают по мере изменений кода? Я программирую
лишь пару лет, но даже я знаю, что никто не обновляет свои комментарии.
— Ну, и да, и нет, — говорит Исмена. — Если вы считаете комментарии неприкосновенными, а код
подозрительным, у вас серьезные проблемы. На самом деле несоответствие между комментарием и кодом
обычно говорит о том, что неверно и то, и другое. Если какие-то комментарии плохи, это не
означает, что само комментирование плохо. Пойду налью себе еще чашку кофе.

Исмена выходит из комнаты.

— Мое главное возражение против комментариев, — заявляет Калликл, — в том, что они тратят
ресурсы.
— Можете ли вы предложить способ минимизации времени написания комментариев? — спрашивает Сократ.
— Проектирование методов на псевдокоде, преобразование псевдокода в комментарии и написание
соответствующего им кода, — говорит Главкон.
— OK, это сработает, если комментарии не будут повторять код, — утверждает Калликл.
— Написание комментария заставляет вас лучше подумать над тем, что делает ваш код, — говорит
Исмена, возвращаясь с новой чашкой кофе. — Если комментарии писать трудно, это означает, что
код плох или вы недостаточно хорошо его понимаете. В обоих случаях вы должны поработать над
кодом еще, так что время, потраченное на его комментирование, не пропадает — оно указывает вам
на необходимую работу.
— Хорошо, — подводит итоги Сократ. — Не думаю, что у нас остались еще вопросы. Похоже, Исмена
сегодня была самой убедительной. Мы будем поощрять комментирование, но не будем относиться к
нему простодушно. Мы будем выполнять обзоры кода, чтобы все поняли, какие комментарии на самом
деле полезны. Если у вас возникнут проблемы с пониманием кода другого программиста, подскажите
ему, как он может его улучшить.
Всё, в общем-то, ясно: бабло за баги — пиар мессенджера, выплачивать деньги никто не собирается. К первому случаю, когда вознаграждение якобы было, есть серьезные вопросы.
А я вот не сомневаюсь, что на Python или Ruby будет гораздо быстрее. Я не предлагаю соглашаться со мной, но, быть может, вам самому, для себя будет это интересно проверить. Попробуйте ради интереса самый простенький сайт наклепать на C++ и на Python/Ruby. Чтоб прочувствовать.
Отнюдь! Для своих задач и PHP хорош. Но, пускай, с Python или Ruby: на C++ разработка простенького интернет-магазина (карточки товаров, корзина) сколько времени займёт? Хотя бы примерно?
Сделаете мне сайт на C++? Разумеется, не дольше и не дороже, чем аналогичный на PHP? :)
Слушайте, я не имею ничего против статически типизированных языков. Просто в некоторых случаях динамически типизированные лучше помогают решить задачу. Об этом речь.

Если не верите Википедии, посмотрите на мир вокруг: сайты сейчас делают в основном на динамически типизированных языках. А студентота вчерашняя от студентоты сегодняшней ничем не отличается.
Вы сейчас с Википедией спорите? :)
О! Расскажите, пожалуйста, если вы в курсе, этот QtWebEngine заменит QtWebkit?
Писать больше кода и требовать с пользователей платить за программы, которые дороже разрабатывать?
Нет, нормальные преимущества.
> Приведите примеры превосходства динамической типизации перед статической?

Пожалуйста.
Я с вами не соглашусь. На ассемблере я разрабатываю приложения на много порядков быстрее (и при этом они стабильнее), чем на C++ (при чем как десктоп, так и веб). Все дело в опыте. А то, что современная студентота неспособна осилить языки без типизации и с ручным управлением памятью, очень печально.
Посадочный модуль сфоткал меня, пока я ехал по Луне. Люблю его <3
Понял, спасибо. Тут даже не ожидание «впаривания», а, мне кажется, больше время, которое у тебя «отнимают», что ли. Я просто представил, что после каждой покупки в любом магазине мне будут звонить и интересоваться, всё ли хорошо. Такая перспектива, конечно, совсем не обрадовала бы.
А вы проводили какие-нибудь исследования об отношении клиентов к таким звонкам? Сужу по себе: мне, например, не нравится, когда после продажи или услуги мне звонят. Если есть вопросы или пожелания, я бы хотел сам позвонить, а не чтобы звонили мне.
Та статья была про законопроект, эта — про закон.

К причине удаления это никак не относится. Причина удаления, которую озвучило НЛО не в том, что пост был про законопроект, а в том, что «Хабр — не для политики».

Информация

В рейтинге
2 203-й
Зарегистрирован
Активность