22 сентября 2011

Почему я за уничтожение пробелов в конце строк

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

Спички и экономия

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

Интерпретируемые языки и пробелы в конце строки

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

Веб и пробелы в конце строки

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

Заключение

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

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