Coding Standarts

12 отговора 626 прегледа
#1

Coding Standarts

А какво мислите за coding standarts!?
Някои компании налагат собствен coding standart, други ползват нещо наготово и добило популярност, трети - нямат такъв.
Става въпрос за как да се именуват променливи, класове, за стила на писане, къде да се слага отварящата скоба на функцията :), Колко да са табулациите....
Не ви ли се струва, че понякога някои използват coding standart-а като удобно извинение от типа "ами да, не е добре това, което съм го написал, ама нали така казва coding standart-а!?". Т.е. - понякога coding standart-а е удобно извинение защо не трябва да се мисли, а да се налага божията воля - coding standart-а!

Отговор
в отговор на Zelen #2

Re: Coding Standarts

Coding Standards (aka. Code Conventions) са нещо от изключителна важност за всеки проект по който работят повече от 1 програмист. Когато всички пишат еднакво, можеш много бързо да се ориентираш в кода на колегата, когато по каквато и да било причина трябва да пишеш в него. Обикновено целта на тези конвенции е на първо място четливост, което не винаги е най-доброто, но хич не е маловажно, тъй като основно свойство на четливостта е пестенето на време.

Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Отговор
в отговор на Duncan Griffin #3

така е,

само дето някои прекаляват - измислят такива дълги конвенции, че програмистите съзнателно или не, понякога спестяват писане и пропускат по нещо, дето "може и без него". според мене конвенцията е хубаво нещо, но предпочитам i и j да са запазена марка за индекси на цикли. нещо не ме кефи да пиша nCounter.
като стана въпрос за конвенция, та се сетих че наскоро един писач на ВБ беше изненадан от това че любимия му език има "вградена" конвенция за някои основните типове, като %,$ например.

Отговор
в отговор на zaphod #4

Re: така е,

Ами то конвенцията за да си изпълни предназначението трябва да е добре измислена :)
Ако предпочиташ i и j да са имена на броячи в цикъл и можеш да убедиш колегите си в ползата от това, какъв е проблема? Аз точно с такава конвенция работя. В крайна сметка никой не е казал, че като е измислена веднъж една конвенция - край, друга не може да се направи.

Отговор
в отговор на zaphod #5

Re: така е,

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

Но понякога се налага наистина да има и такива дребнавости като именуване на индекси в цикли. Имам един колега, който например беше свикнал като catch-ва еxception да го кръщава със звучното име "_".

Ми некомфортно е някакси да четеш код и да видиш:

try {...}
catch (Exception _)
{
_.printStackTrace();
}


Наздраве!

Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Отговор
в отговор на Labrett #6

Re: така е,

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

P.S. За броячи май по-удобни за употреба са ii, jj, kk :))

Отговор
в отговор на Zelen #7

Re: Coding Standarts

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

никой не е казал да се измисля всичко от началото - има много готови конвенции из нета, винаги може да се вземе една и да се адаптира.

и да... за бога братя оставете унгарската нотация да си умре заслужено!

ein heller Schein am Firmament
Отговор
в отговор на Duncan Griffin #8

Re: Coding Standarts

Сигурно.
Макар напоследък да виждам някакви разбирания, които определено допадат.
От типа на:
- Методи от по 200 реда, които обаче са перфектни по стандарта, табулации, имена и т.н....
- Имена от типа на GetTheSecondClassMemberWhenExceptionThrown, което пак пак било перфектно, щото стандарта препоръчвал описателни имена...
- При ревю на кода, обяснения от типа на "Ами тоя клас няма copy constructor & "=" operator, щото стандарта не го е казал. Ама ти ако искаш, дай да дадем заявка за промяна на стандарта!"
- Непрограмистки генний променил стандарта и казал, че методите трябва да се коментират в header-ите, щото на него му трябвало за doxigen-a....В резултат на което всички слушат и клас с 10 метода - ами не се побира на един екран, с каквато и разделителна способност и да ти е дисплея.

Накратко, понякога стандарта се превръща в удобен параван, който освобождава някои от необходимостта да мислят! "Стандарта казва" - и край - няма нужда да се мисли!
Всякакъв дребен детайл трябва да се набута в стандарта, щото иначе хора, отвикнали да мислят, няма да го направят - и ще се извинят накрая със стандарта.
Явно, без стандарт не може, но когато той се превърне в ръководство за програмиране - лошо!!!

Отговор
в отговор на Zelen #9

Re: Coding Standarts

съгласен. стандарта е за съвместимост и комуникация, не за извинение за нечия тъпотия. извинява ли ме конвенцията ако създавам некачествен продукт?

ein heller Schein am Firmament
Отговор
в отговор на Duncan Griffin #10

Re: така е,

>catch (Exception _)

същото като:
catch ( Exception e )

или поне също толкова неописателно име. за нещастие повечето хващания, които съм виждал, именуват изключението именно така

ein heller Schein am Firmament
Отговор
в отговор на Zelen #11

Re: Coding Standarts

Hubavo neshto kogato se raboti s mnogo hora. Ponyakoga obache leko se prostee po vaprosa. Management-a chesto si misli che coding standards opravyat bakiite kato s magicheska prachka. Chesto se nalagat i bezumni prktiki, koito gubyat vreme i sazdavat pogreshno chuvstwo za sigurnost u horata.
Shte si go kaja napravo: Mrazya ungarskata konvenciya! Dobre e che ne sam edinstwen:

[линк]

(C/C++ users journal, Conversations)

Отговор
в отговор на FP #12

Re: Coding Standarts

malko off, no se setih i mi stana smeshno:))
Edin kolegite se mucheshe da napravi dokument sus nqkakuv standart za pisane. I edna ot tochkite beshe:
"V nashata firma izrecheniqta zapochvat s glavna bukva!" :))))
Kakto i da e. Po princip e hubavo da ima nqkakva obshata logika za nazovavane na imenata, zashtoto e istinski koshmar da razchetesh chuzd kod ,kudeto ima promenlivi $f i se vikat funkcii &p.

[линк]

Редактирано от Britt на

Отговор
в отговор на Zelen #13

Re: Coding Standarts

Като се изключи "The", GetTheSecondClassMemberWhenExceptionThrown си е перфектно име на функция. Има си Visual Assist да те спасява от писане на такива неща, пък четенето им никакъв проблем не е.

Отговор