Форматирование кода: выстраивает в линию подобные строки хорошо? [закрытый]

actif[elements[i]] = false; не сохраняет элемент html, преобразуя ссылку на объект в строку [object HTMLDivElement]

console.log(String(document.querySelector('div')))
console.log(String(document.querySelector('div')).style)
<div></div>

[ 1113]
const actif = {};
const elements = document.querySelectorAll(".draggableBox");

document.addEventListener("mousemove", deplacer);

elements.forEach(init)

function init(element, index) {
  actif[index] = {
    active: false,
    element
  };
  element.addEventListener("mousedown", activerDeplacement);
  element.addEventListener("mouseup", e => activerDeplacement(e, false));
}

function deplacer(argument) {
  Object
    .values(actif)
    .forEach(e => assignXY(argument, e))
}

function assignXY(argument, { active, element }) {
  if (active) {
    element.style.top = argument.clientY + "px";
    element.style.left = argument.clientX + "px";
  }
}

function activerDeplacement(arg, active = true) {
  Object.assign(getFromEvent(arg), { active });
}

function getFromEvent({ target }) {
  return actif[Array.from(elements).indexOf(target)];
}
.draggableBox {
  position: absolute;
  width: 80px;
  height: 60px;
  padding-top: 10px;
  text-align: center;
  font-size: 40px;
  background-color: #222;
  color: #CCC;
  cursor: move;
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>Page drag and drop</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>

  <div class="draggableBox">1</div>
  <div class="draggableBox">2</div>
  <div class="draggableBox">3</div>

  <script type="text/javascript" src="script.js"></script>
</body>

</html>

19
задан Ned 19 September 2008 в 13:49
поделиться

14 ответов

Это - ТОЧНО причина, которую господь привел как Вкладки - добавление, что символ посреди строки не завинчивает выравнивание.

-2
ответ дан 30 November 2019 в 01:54
поделиться

Можно установить различный инструмент для игнорирования пробела (разность GNU:-w). Таким образом, Ваш diffs пропустит те строки и только покажет реальные изменения.Очень удобно!

0
ответ дан 30 November 2019 в 01:54
поделиться

Мне нравится первое и последнее, но не середина так.

0
ответ дан 30 November 2019 в 01:54
поделиться

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

Пример: Мне нравится, когда 2 вкладки пространства кодируют, очень компактно слева, но значение по умолчанию равняется 4, поэтому хотя это выглядит очень отличающимся до отступов, и т.д. пойдите на наши различные экраны, diffs идентичны, и не вызывает проблемы с управлением исходным кодом.

0
ответ дан 30 November 2019 в 01:54
поделиться

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

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

, по моему скромному мнению, выстраивание в линию подобных строк действительно значительно улучшает удобочитаемость. Кроме того, это позволяет более легкий cut-n-pasting с редакторами, которые разрешают вертикальный выбор.

15
ответ дан 30 November 2019 в 01:54
поделиться

Так как я контролирую ежедневные слияния исходного кода... Я могу только рекомендовать против него.

Это симпатично, но если Вы делаете слияния регулярно, преимущество 'легче читать' является быстро намного меньше, чем усилие, вовлеченное в слияние того кода.

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

не забывают, что в слиянии исходного кода, нельзя попросить, чтобы различный инструмент проигнорировал пробелы :
Иначе, "" и "" будет выглядеть одинаково во время разности, не означая слияния, необходимого... компилятор (и кодер, который добавил пространство между Строковыми двойными кавычками) не согласится с этим!

23
ответ дан 30 November 2019 в 01:54
поделиться

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

я также оспариваю преимущество удобочитаемости. Этот стиль форматирования создает столбцы в файле. Однако мы не делаем , читает в стиле столбца, от начала до конца. Мы читаем слева направо. Столбцы отвлекают от стандартного стиля чтения и вытягивают глаза вниз. Столбцы также становятся чрезвычайно ужасными, если они все отлично не выравниваются. Это относится к постороннему пробелу, но также и нескольким (возможно не связанный) группы столбцов, которые имеют другой интервал, но падают один за другим в файле.

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

15
ответ дан 30 November 2019 в 01:54
поделиться

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

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

12
ответ дан 30 November 2019 в 01:54
поделиться

Лично я предпочитаю большую удобочитаемость кода за счет немного тяжелее к чтению diffs. Мне кажется, что в конечном счете улучшение надежности кода - тем более, что разработчики приходят и уходят - стоит компромисса.

5
ответ дан 30 November 2019 в 01:54
поделиться

Существует некоторое обсуждение этого в когда-либо полезном Код, Завершенный Steve McConnell. Если Вы не владеете копией этой основополагающей книги, делаете себе одолжение и покупаете то. Так или иначе обсуждение находится на страницах 426 и 427 в первом выпуске, который является выпуском, у меня есть рука.

<час>

Редактирование:

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

Employee.Name  = "Andrew Nelson"
Employee.Bdate = "1/1/56"
Employee.Rank  = "Senator"
CurrentEmployeeRecord = 0

For CurrentEmployeeRecord From LBound(EmployeeArray) To UBound(EmployeeArray) 
. . .

, В то время как это не было бы

Employee.Name         = "Andrew Nelson"
Employee.Bdate        = "1/1/56"
Employee.Rank         = "Senator"
CurrentEmployeeRecord = 0

For CurrentEmployeeRecord From LBound(EmployeeArray) To UBound(EmployeeArray) 
. . .

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

7
ответ дан 30 November 2019 в 01:54
поделиться

С хорошим редактором их точка просто не верна. :)

(См. "визуальный блок" режим для энергии.)

P.S.: хорошо, все еще необходимо изменить каждую строку, но это быстро и просто.

2
ответ дан 30 November 2019 в 01:54
поделиться

Если Вы запланируете использовать автоматизированную проверку стандарта кода (т.е. CheckStyle, ReShaper или что-либо как этот), то те дополнительные пространства сделают довольно трудным записать и осуществить правила

1
ответ дан 30 November 2019 в 01:54
поделиться

Я пытаюсь следовать двум инструкциям:

  1. вкладки Use вместо пробелов, когда это возможно, для уменьшения потребности переформатировать.

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

Общедоступное телесное наказание допустимо, если ошибки представлены в "косметическом" изменении. :-)

2
ответ дан 30 November 2019 в 01:54
поделиться

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

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

Одно решение состояло бы в том, чтобы использовать вкладки, но наши редакторы не могут автоматически выровнять вкладки в последовательных строках (который сделал бы так многих вещью настолько более легкий). И добавить травму оскорблению, если Вы смешиваете с вкладкой width (в основном что-либо! = 8), можно читать Ваш исходный код, но никакой код от кого-либо еще, скажем, пример кода, который идет с библиотеками, которыми Вы пользуетесь. И наконец, наши различные инструменты не имеют никакой опции, "игнорируют пробел кроме тех случаев, когда он рассчитывает", и компиляторы не могут произвести diffs, также.

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

1
ответ дан 30 November 2019 в 01:54
поделиться
Другие вопросы по тегам:

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