Код для компьютеров или для людей? [закрыто]

Вопрос: Вам нужно использовать делегированные события? LIke LShetty сказал, что невозможно удалить делегированное событие для одного элемента. Вы либо удаляете всю делегацию событий, либо оставляете ее. Вместо этого вы можете попробовать использовать другой селектор, как в этом примере

$('button').on('click', function(ev) {
    $('#output').append('Clicked! ');
    $(this).off('click');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<button>One</button>
<button>Two</button>
<button>Three</button>
<div id="output"></div>

29
задан Chris 28 August 2012 в 08:34
поделиться

11 ответов

дурак “Any может написать код, который может понять компьютер. Хорошие программисты пишут код, который могут понять люди. ” - Martin Fowler, "Осуществляя рефакторинг: Улучшение Дизайна Существующего Кода"

, Но так как Вы уже сделали тот вывод самостоятельно, будьте достаточны, чтобы сказать, что это - огромная тема. Это не что-то, что Вы сможете надеть единственный ответ. Создание Вашего удобного в сопровождении кода не ограничено стилем кодирования, но также и включает Ваш общий замысел, а также Ваш процесс конструкции. Вот, некоторые наклеивают этот сайт, где в значительной степени все вопросы и ответы посягнут на эту тему:

46
ответ дан Community 28 August 2012 в 19:34
поделиться
  • 1
    Это однако создает дополнительное содержание в HTML, который часто не требуется. – Konrad Rudolph 29 January 2009 в 05:22

Программы должны быть записаны, чтобы люди читали, и только случайно, чтобы машины выполнились.

- от "Структуры и Интерпретации Компьютерных программ" Abelson и Sussman

28
ответ дан jalbert 28 August 2012 в 19:34
поделиться
  • 1
    " Для большей пользы жертвы... должны быть принесены..." – Adam Davis 29 January 2009 в 05:14

Да.

, Если компьютер не выполняет его, он повреждается. Если люди не могут считать его, это будет повреждено. Скоро.

59
ответ дан S.Lott 28 August 2012 в 19:34
поделиться
  • 1
    Если пользователь выключает CSS, it' s собирающийся показывать число дважды, который won' t быть очень хорошим для программ экранного доступа. Кроме того, это будет только работать на единственные числа цифры. Как только список имеет больше чем 10 объектов, только первая цифра собирается изменить цвет. – Rich Adams 29 January 2009 в 05:16

Недостающий объект: комментарии.

, Даже если код является совершенно четким своему автору, это не могло бы быть для всех.

1
ответ дан 28 August 2012 в 19:34
поделиться
  • 1
    @MartynChamberlin @kdgregory другой подход должен был бы использовать дочерний combinator, таким образом ol > li и ol > li::before - тот путь Вы только нацелены на этот определенный уровень li элементы. – Erwin Wessels 24 October 2017 в 16:22

мое взятие на этом - то, что все относительно.

, Когда необходимо изменить код, код для Вас, когда ее выполняемый для машины.

, Если код функционален, он имеет потенциал того, чтобы быть считанным.

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

, Чем легче код быть считанным людьми, тем легче он может изменяться и сохраняться, начиная с преимуществ эволюции от количества вкладов/участников, Вы обращаетесь к проблеме, этот тип кода может быть объявлен лучше, чем нечитабельный код.

, Но в конечном счете, код, чтобы быть превращенным в ряд инструкций к машине.

Человеческие намерения, переведенные во что-то, машина может следовать, таким образом, код для обоих по одному.

1
ответ дан Ric Tokyo 28 August 2012 в 19:34
поделиться
  • 1
    Вчера @kdgregory ну, @feelinferrety обновил его ответ. Это раньше было, что добавление селекторов к его решению повредило его для ol, но я вижу, что он решил ту проблему. Скала на... – Martyn Chamberlin 16 August 2015 в 23:38

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

Однако , когда дело доходит до обслуживания кода, чисто написанный код для людей будет очень полезным. С точки зрения экономической модели, чем короче это берет для понимания кода для нового программиста, тем меньше денег требуется, чтобы приносить новому человеку до скорости. Поэтому более чистый код имеет больше ценности. Какой смысл, когда нечитабельный код работает на 5% быстрее, когда потребуется на 100% больше времени для понимания программистом? В конце концов, программисты стоят довольно мало деньги.

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

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

Запись для людей, не машина.

12
ответ дан coobird 28 August 2012 в 19:34
поделиться
  • 1
    Это хорошо, если старый браузер (IE 6, и т.д.) поддержка не нужна. – cdeszaq 29 January 2009 в 05:07

Roedy Green записал обширному названному руководству: Неудобный в сопровождении Код .

, "Имея это в виду, что этот программист может сделать для создания кода более легко прочитанным людьми?"

Ответ: Прочитайте это руководство и примените реверс всего, что он говорит Вашим опытно-конструкторским разработкам.

Кавычка от раздела общих принципов:

, "Для помехи программисту обслуживания необходимо понять, как он думает. У него есть Ваша гигантская программа. У него нет времени читать все это, а тем более понимать это. Он хочет быстро найти, что место вносит его изменение, делает его и выходит и не имеет никаких неожиданных побочных эффектов от изменения.

Он просматривает Ваш код через трубу туалетной бумаги. Он может только видеть крошечную часть Вашей программы за один раз. Вы хотите удостовериться, что он никогда не может достигать большое изображение от выполнения этого. Вы хотите сделать его максимально трудно, чтобы он нашел код, который он ищет. Но еще более важный, Вы хотите сделать его максимально неловким, чтобы он безопасно проигнорировал что-либо.

Программисты убаюканы в самодовольство конвенциями. Время от времени, путем тонкого нарушения конвенции, Вы вынуждаете его прочитать каждую строку Вашего кода с лупой.

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

, В то время как это твердо язык в щеке, это - на самом деле очень полезный список (кроме неприятной рекламы) того, что избежать, если Вы на самом деле заботитесь о записи читаемого / удобный в сопровождении код.

5
ответ дан Ash 28 August 2012 в 19:34
поделиться
  • 1
    Это прохладно, но это повреждается ol start attribute' s значение... – Serj Sagan 24 May 2015 в 20:47

<sarcasm> Код только должен быть прочитан машиной. Пока конечный результат fulfulls потребность пользователя, не имеет значения, на что похож код. </sarcasm>

Теперь удобный в сопровождении код или код, который может измениться, это - совершенно другая история.

Вы создали бы дом с планом, набросанным в конце салфетки, или выбросили бы проекты после того, как Вы сделаны, создав дом, Вы могли бы хотеть добавить комнату на один день?

4
ответ дан Chris Ballance 28 August 2012 в 19:34
поделиться

Не используйте венгерская запись на безопасном с точки зрения типов языке.

2
ответ дан Dave Van den Eynde 28 August 2012 в 19:34
поделиться
  • 1
    Я wouldn' t предлагают встроенные стили, но это - по существу наилучший вариант. – Sampson 29 January 2009 в 05:17

Я бы порекомендовал взглянуть на Чистый код Роберта Мартина. Это отличное руководство о том, как сделать ваш код более читабельным и чистым.

3
ответ дан 27 November 2019 в 22:55
поделиться

Я отношусь к этому несколько косвенно - речь идет не о удобочитаемости, а о ремонтопригодности.

Чтение - это просто просмотр кода и мысль, что вы можете его прочитать. Обычно предполагается, что для того, чтобы его можно было прочитать, он должен быть доступен для чтения тем, кто не приложил усилий для его понимания.

Сопровождение - это внесение изменений для исправления ошибок или реализации новых / измененных требований. Чтение - лишь часть этого процесса. Я не знаю ни одного поддерживаемого кода, который не требовал бы кривой обучения со стороны сопровождающего, и для тех, кто не поднялся по этой кривой, код выглядит «нечитаемым».

В то же время я Думаю, что часть ответственности программиста - научить сопровождающего помочь им подняться по кривой обучения. Один из способов сделать это - оставить пошаговые инструкции о том, как выполнять те виды будущих изменений, которые можно было бы ожидать.

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

4
ответ дан 27 November 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: