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

Спам форум

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

За.
25
83%
За, ако е с мярка.
4
13%
Против.
1
3%
 
Total votes: 30

User avatar
gLaVoReZa
Много Редовен
Много Редовен
Posts: 1704
Joined: Wed May 10, 2006 3:37 pm
Answers: 72
Location: гр. София

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

Post by gLaVoReZa » Fri Dec 20, 2013 8:05 pm

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

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

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

User avatar
djman
Гуру
Гуру
Posts: 2819
Joined: Sat Sep 12, 2009 8:07 am
Answers: 110

Post by djman » Fri Dec 20, 2013 8:28 pm

Според мен табовете за блоковете код са си must. Не знам дали имаш предвид точно това, но без табове е грозно и нечетимо.

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

Накратко:

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

:D

П.С. Какво имаш предвид под точка 7 - пише веднъж, изпълнява милион пъти, и какво общо има с табовете?

User avatar
gLaVoReZa
Много Редовен
Много Редовен
Posts: 1704
Joined: Wed May 10, 2006 3:37 pm
Answers: 72
Location: гр. София

Post by gLaVoReZa » Fri Dec 20, 2013 8:43 pm

П.С. Какво имаш предвид под точка 7 - пише веднъж, изпълнява милион пъти, и какво общо има с табовете?
Мисълта ми е, че е много по-приоритетно компътърът да може да чете кода (бързо), а не човек. Тук разбира се говорим за езиците, които се интерпретират. Темата е по-скоро свързана с тях.

Replace

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

Post by Replace » Fri Dec 20, 2013 9:31 pm

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

User avatar
StormBreaker
Шаман
Шаман
Posts: 5210
Joined: Mon Mar 05, 2007 8:08 pm
Answers: 344

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

Post by StormBreaker » Fri Dec 20, 2013 11:48 pm

@Replace аз пък ще му отговоря точка по точка. Нищо, че е 1 и 30 и утре ще ставам в 9. Просто като видя такъв пост и нещо в мен прещраква :D
gLaVoReZa wrote:Привърженици ли сте на практиката да се добавят табове, повече разстояния и празни линии в програмния код, с цел да се направи по-четлив, или смятате това за излишно?
Абсолютен привърженик на четимия код съм.
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...
Last edited by StormBreaker on Sat Dec 21, 2013 5:02 pm, edited 1 time in total.

User avatar
qazxsw
Много Редовен
Много Редовен
Posts: 1860
Joined: Mon Dec 21, 2009 8:11 pm
Answers: 18

Post by qazxsw » Sat Dec 21, 2013 12:36 pm

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

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

User avatar
gLaVoReZa
Много Редовен
Много Редовен
Posts: 1704
Joined: Wed May 10, 2006 3:37 pm
Answers: 72
Location: гр. София

Post by gLaVoReZa » Sun Dec 22, 2013 7:18 pm

@qazxsw

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

Replace

Post by Replace » Sun Dec 22, 2013 7:58 pm

Те и лекарите по принцип пишат четимо :-P

User avatar
djman
Гуру
Гуру
Posts: 2819
Joined: Sat Sep 12, 2009 8:07 am
Answers: 110

Post by djman » Sun Dec 22, 2013 8:20 pm

Примера който си дал според мен изобщо не е четим... Не бих искал да работя с твой код. :D Изобщо не виждам плюсове в такъв стил на писане, по-скоро само минуси...

uphero
Потребител
Потребител
Posts: 788
Joined: Mon Feb 20, 2012 12:26 pm
Answers: 34
Location: Казанлък
Contact:

Post by uphero » Sun Dec 22, 2013 10:07 pm

gLaVoReZa wrote:@qazxsw

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

Post Reply