За или против разстоянията в кода?

За или против разстоянията в кода?

  • За.

    Votes: 0 0.0%
  • За, ако е с мярка.

    Votes: 0 0.0%
  • Против.

    Votes: 0 0.0%

  • Общо гласове
    0

gLaVoReZa

Registered
Привърженици ли сте на практиката да се добавят табове, повече разстояния и празни линии в програмния код, с цел да се направи по-четлив, или смятате това за излишно?

Аз лично пиша максимално сбит код, без никакви табове, разделям само цели функции с един празен ред, или евентуално блокове от променливи. Според мен това е правилно поради следните причини:

1. С табове кодът вместо да стане по-четлив, често става пълна манджа.
2. Изглежда грозно всичко да е разбъркано и разтегнато.
3. Файловете стават с по-малък размер, ако няма такива работи.
4. Когато е по-сбито, повече код ти е под ръка.
5. Има отлични програми като Notepad++, които правят кода четлив.
6. Всеки програмист има различна логика за структурата на тея разстояния, и става какофония.
7. Кодът се пише веднъж, а се изпълнява милиони пъти.
 
Според мен табовете за блоковете код са си must. Не знам дали имаш предвид точно това, но без табове е грозно и нечетимо.

Но ме подсещаш за интересна тема - Объектная гимнастика

Накратко:

1. Само едно ниво на отстъп в метода
2. Не използвайте Else
3. Една точка на ред
4. Не използвайте съкращения
5. Никакви класове с повече от 2 атрибута
6. Никакви getters/setters

:D

П.С. Какво имаш предвид под точка 7 - пише веднъж, изпълнява милион пъти, и какво общо има с табовете?
 
П.С. Какво имаш предвид под точка 7 - пише веднъж, изпълнява милион пъти, и какво общо има с табовете?
Мисълта ми е, че е много по-приоритетно компътърът да може да чете кода (бързо), а не човек. Тук разбира се говорим за езиците, които се интерпретират. Темата е по-скоро свързана с тях.
 
gLaVoReZa каза:
...
1. С табове кодът вместо да стане по-четлив, често става пълна манджа.
2. Изглежда грозно всичко да е разбъркано и разтегнато.
3. Файловете стават с по-малък размер, ако няма такива работи.
4. Когато е по-сбито, повече код ти е под ръка.
5. Има отлични програми като Notepad++, които правят кода четлив.
6. Всеки програмист има различна логика за структурата на тея разстояния, и става какофония.
7. Кодът се пише веднъж, а се изпълнява милиони пъти.
Щях да пиша по ред за всяка твоя точка, но накрая сметнах за безмислено.
Накратко, бих ти дал като идея, да разгледаш няколко фреймуорка. Забележи, че почти всички (е, по-големите поне, Symfony, Kohana, Zend) в документацията се споменава нещо наречено Coding Standarts (PSR-1).
Разбира се, ти спокойно може да не се влияеш от тях :)
 
@Replace аз пък ще му отговоря точка по точка. Нищо, че е 1 и 30 и утре ще ставам в 9. Просто като видя такъв пост и нещо в мен прещраква :D

gLaVoReZa каза:
Привърженици ли сте на практиката да се добавят табове, повече разстояния и празни линии в програмния код, с цел да се направи по-четлив, или смятате това за излишно?
Абсолютен привърженик на четимия код съм.

1. С табове кодът вместо да стане по-четлив, често става пълна манджа.
Става манджа ако слагаш табове безразборно. Ако всеки блок от кода (блок са нещата между { и } ако ще говорим за C-like синтаксис) е правилно индентиран няма как да стане по-нечетим кода. Освен това е много по-лесно да разбереш кой ред код в кой блок се намира само като видиш индентацията. Когато няма правилна такава ще трябва да броиш скоби.

Дай ми пример за нещо, което е > 10 реда и е по-четимо без индентация.

2. Изглежда грозно всичко да е разбъркано и разтегнато.
Не е разбъркано и разтегнато когато си имаш правила кога да слагаш празни места и кога не. Отделяйки групи операции с по един празен ред ти дава бърза представа какви стъпки прави дадено парче код, за да си свърши работата.

3. Файловете стават с по-малък размер, ако няма такива работи.
Това е най-лошия аргумент. Размера на файла дали ще е 1kb или 2kb (въпреки, че 2 пъти няма как да увеличиш размера с табове и спейсове) няма никакво значение. Знаеш ли колко пъти може да се извърти един цикъл за 100ms ? Не ми се прави бенчмарк, но можеш да пробваш. Всичко, което чете кода игнорира празните места с такава бързина (на същия този цикъл), че няма никакво значение колко са (освен ако не набухаш 1 милион спейса).

А всъщност, ако ще си говорим за PHP, кода ти се зарежда веднъж, обработва се и повече не се чете, освен ако не се промени файла (прочети за APC). Тоест аргумента ти за бързината с по-малък размер изчезва.

4. Когато е по-сбито, повече код ти е под ръка.
И ти трябва повече време да се ориентираш в него. А когато е добре форматиран намираш всичко много лесно.
Вземи една добре подредена тетрадка от някой предмет в училище. Вземи и пищов с много информация. Кое е по-удобно да се чете? Тетрадката или пищова със ситните и сбити букви? Аз не смятам, че е пищова.

5. Има отлични програми като Notepad++, които правят кода четлив.
Тоест е добре кода да е четлив? Защо тогава просто не го пишеш четлив, ами трябва този, който се опитва да го чете да си играе да го форматира?

6. Всеки програмист има различна логика за структурата на тея разстояния, и става какофония.
Това е така - има различни стилове. Затова като се пише един проект от повече от един човек се разбират за стила и го спазват. За някои езици си има и стилови конвенции - правила за форматиране, които се спазват от всички, които пишат на съответния език (Java, Python, Ruby например).

7. Кодът се пише веднъж, а се изпълнява милиони пъти.

Както споменах по-горе кода се обработва от компютъра веднъж и се изпълнява байт код много пъти. Това колко спейса и табове имаш не играе роля.

My work here is done...
 
gLaVoReZa като човек който последната половин година използва Python четеики първото ти мнение направо косата ми настръхва. :D

Можеш ли да копираш произволен код който си писал следвайки точките в първото ти мнение, за да мога да си дам нагледна представа? :)
 
@qazxsw

Аз на Python не пиша. От около 2 години се занимавам почти само с CMS-и, и съответно пиша PHP и JS. Даже и SQL не съм писал от доста време. Пиша в такъв, бих казал сбит и изчистен стил... Поне според мен де. Някои хора казват, че нищо не ми се разбира, но според мен е четимо.
 
Примера който си дал според мен изобщо не е четим... Не бих искал да работя с твой код. :D Изобщо не виждам плюсове в такъв стил на писане, по-скоро само минуси...
 
gLaVoReZa каза:
@qazxsw

Аз на Python не пиша. От около 2 години се занимавам почти само с CMS-и, и съответно пиша PHP и JS. Даже и SQL не съм писал от доста време. Пиша в такъв, бих казал сбит и изчистен стил... Поне според мен де. Някои хора казват, че нищо не ми се разбира, но според мен е четимо.
Ужас, това ако е четим код не знам...
 
мда ужас, твърдо за. като видя такъв код, зле ми става. предпочитам да си поиграя и да го форматирам колкото мога, вместо да работя директно така с него :)
 
Alt + Shift + F в NetBeans поправя подобни недоразумения.
Не мога да се съглася, че производителността трябва винаги да е с предимство пред четимостта на кода. За да се развива софтуера, който пишеш, кодът ще бъде многократно препрочитан и осмислян от теб след време или от други хора. Без форматиране... Не би искал да причиниш това никому, повярвай ми! :wink:
 
gLaVoReZa каза:
@qazxsw

Аз на Python не пиша. От около 2 години се занимавам почти само с CMS-и, и съответно пиша PHP и JS. Даже и SQL не съм писал от доста време. Пиша в такъв, бих казал сбит и изчистен стил... Поне според мен де. Някои хора казват, че нищо не ми се разбира, но според мен е четимо.

Добре де, използвал си 1/3 от ширината на екрана си. Какво ти пречи да удариш по един таб където трябва? Всичко което се вижда в момента ще се вижда и после.

Мисля, че всички стигнахме до извода, че горепоказаният код не е лесно четим :) Аз ако трябва да работя с такъв код например първо ще мина през него, ще го подредя и тогава ще почна да го променям. :)
 
gLaVoReZa каза:
@qazxsw

Аз на Python не пиша. От около 2 години се занимавам почти само с CMS-и, и съответно пиша PHP и JS. Даже и SQL не съм писал от доста време. Пиша в такъв, бих казал сбит и изчистен стил... Поне според мен де. Някои хора казват, че нищо не ми се разбира, но според мен е четимо.

За сбит да, но за изчистен, не е.

Кода които пишеш може да е okay за теб, но ако работиш в team с други хора повярвай, те няма да са щастливи да работят с теб.

Живеем в 21 век и да въпреки, че оптимизацията на кода е важна, няма начин да ме убедиш, че като не правиш табове или оставяш празни редове кода ти работи видимо по-бързо. Това което правиш може да зарежда с 0.001 по-бързо, но струва ли си за такова число да се жертва това как кода се чете и да забавяш работата на цял екип от програмисти?

Като за финал.
Прочети малко в Интернет относно фразата: "Premature optimization the root of all evil." Ще видиш много хора работили в сферата на технологиите през целия си живот, да повтарят отново и отново, че преди да мислиш за оптимизация на кода, първо напиши всичко от-до изчистено виж кое как върви и след това започвай да оптимизираш. Никога не започвай с мисълта 'Сега ще напиша възможно най оптимизирания код ever!'.
 
Това което gLaVoReZa дава е нечетимо и за мен. Но лично аз не използвам никога табове! Вместо един таб, то използвам един интервал. Освен това подреждам скобите { } една под друга, като след отварящата скоба веднага пиша код. Това е оптималния вариант за мен - от опит го знам! Достатъчно добре виждам и отмествания от 1 интервал.

Относно по-големи проекти дали ще намеря хора, които пишат така? Вероятно ако не го правят (или поне не могат да го приемат), тогава вероятно ще имаме разминавания не само относно оформлението, а и по други виждания за структурата на програмата. Работата ще е обречена още в началото и по-добре да се търсят други хора...
 
xyz1 каза:
Това което gLaVoReZa дава е нечетимо и за мен. Но лично аз не използвам никога табове! Вместо един таб, то използвам един интервал. Освен това подреждам скобите { } една под друга, като след отварящата скоба веднага пиша код. Това е оптималния вариант за мен - от опит го знам! Достатъчно добре виждам и отмествания от 1 интервал.

Относно по-големи проекти дали ще намеря хора, които пишат така? Вероятно ако не го правят (или поне не могат да го приемат), тогава вероятно ще имаме разминавания не само относно оформлението, а и по други виждания за структурата на програмата. Работата ще е обречена още в началото и по-добре да се търсят други хора...

Смисъла на табовете е, че можеш да настроиш как да се показват - като 1,2,3,4 и повече интервала. ;)
 

Горе