Ерата на популяризирането на програмирането: Необходим ли е стандартен стил на кодиране с висока четимост?

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

 

С неотдавнашния напредък на ИТ технологиите, интересът към ИТ областта нарасна, което доведе до увеличаване на броя на хората, които искат да научат програмиране. Независимо дали учат самостоятелно с книги или посещават курсове в специализирани академии по програмиране в продължение на няколко месеца, вече е възможно всеки да създава свои собствени програми, дори без задълбочени познания. Това се дължи на разработването на различни инструменти, които подобряват достъпността на програмирането. Например, Google предоставя безплатно Android SDK (Software Development Kit), което позволява разработването на програми, работещи на операционната система Android. Тези инструменти осигуряват удобство, помагайки дори на тези, които нямат специализирани знания, да програмират лесно.
Фактът обаче, че програмирането е станало достъпно за всички, не е изцяло положителен. Популяризирането на програмирането доведе до няколко проблема, по-специално до трудността при четене на програмен код, написан в различни стилове на кодиране. Стилът на кодиране е аналогичен на стила на писане в контекста на писането. Въпреки че писането може да изглежда разбираемо, стига граматиката да е правилна, авторите използват стил, подходящ за целта на текста, за да го улеснят за разбиране от читателите. Например, точно както есето изисква сбит и ясен стил, а не цветисти изрази, така и в кодирането, дори ако програмата функционира с правилен синтаксис, добавянето на подходящ стил на кодиране води до по-четлив код. И обратно, неподходящият стил на кодиране прави кода труден за разбиране.
С нарастването на програмите, разработването често включва сътрудничество между множество хора. Следователно, програмистите трябва да вземат предвид четивността, за да гарантират, че другите могат лесно да четат и разбират кода им. Неекспертите с ограничен опит в програмирането обаче се затрудняват да пишат лесно четим код. Това е така, защото тези, които учат програмиране чрез краткосрочно обучение, се фокусират единствено върху създаването на „програми, които по някакъв начин работят“, без да се учат как да пишат „четлив код“. Кодът с лоша четивност не само възпрепятства сътрудничеството, но може и да причини проблеми по време на бъдещи модификации на кода.
За да решим този проблем, трябва да установим начин, по който начинаещите могат да пишат лесно четим код. За тази цел предлагам приемането на стандартен стил на кодиране. Стандартният стил на кодиране се отнася до правила, изискващи от програмистите да се откажат от своите индивидуални стилове и да се придържат към предварително определен стандартен стил. Докато повечето езици за програмиране не налагат ограничения върху стила на кодиране извън синтаксиса, стандартизирането на стила на кодиране може да помогне за разбирането на кода и да намали проблемите с четливостта.
Разбира се, може да има контрааргументи срещу предложението за установяване на стандартен стил на кодиране. Тъй като всеки има свой предпочитан стил на кодиране, стандартният стил може да се стори неудобно ограничение за някои програмисти. Кодирането според фиксиран стил, а не според вашия собствен, може да бъде трудно и може да увеличи времето за работа. Всъщност и аз самият съм изпитвал тази трудност. Миналия юни, докато работех като асистент по оценяване за Корейската олимпиада по информатика, имах опит да пиша код, който да предоставя като примерен отговор на учениците. Опитах се да съчетая стила с миналогодишните примерни отговори, за да улесня разбирането им от учениците, но следването на непознат стил означаваше, че задача, която би трябвало да отнеме час, отне повече от два.
Въпреки че стандартните стилове на кодиране могат да намалят ефективността на работата по този начин, аз вярвам, че те имат положителни ефекти по много начини.
Първо, стандартните стилове на кодиране са ефикасни за дългосрочната поддръжка на програмите. Компаниите непрекъснато обновяват програмите след пускането им, като поправят грешки или добавят функции. Тъй като програмистите често се променят по време на този процес, четимият код е от съществено значение за новите програмисти, за да разбират лесно съществуващия код. Приемането на стандартен стил на кодиране намалява необходимостта отделните програмисти индивидуално да се фокусират върху четимостта, а дефинираният стил прави кода по-лесен за четене.
Всъщност някои компании налагат свой собствен стил на кодиране, за да подобрят ефективността на поддръжката и изискват от всички програмисти да го спазват. По време на посещение в Google Korea преди пет години, Google подчерта, че всички програмисти трябва да следват определения стил на кодиране на компанията. Обратно, приятел, работещ в компания за игри, спомена, че нямат установен стил на кодиране.
Второ, в настоящата тенденция, където проектите с отворен код са високо ценени, стандартизираният стил на кодиране би бил от голяма полза за програмистите. Кодът с отворен код е публично достъпен, което позволява не само на професионални програмисти, но и на неексперти лесен достъп до него, давайки възможност на различни потребители да подобрят функционалността на програмата и да отстранят неудобства. Поради този съвместен характер на отворения код, кодът, написан в различни стилове, може да се смеси, което го прави труден за разбиране. Често използвам код с отворен код, свързан с компютърна графика, и лично съм изпитвал трудности при четенето на код поради разнообразието от стилове на кодиране. Наличието на стандартизиран стил на кодиране би могло да облекчи това неудобство.
Трето, стандартизираните стилове на кодиране могат също да подобрят ефективността в обучението по програмиране. Това също така намалява тежестта върху преподавателите. Спомняйки си опита си като преподавател в академия по програмиране, прекарах значително време в четене на кода на студентите и коригиране на проблеми. Студентите бяха склонни да се фокусират върху писането на „работещ код“, а не върху „четлив код“. Нечетливият код затрудняваше откриването на грешки, изискваше значително време, усилия и причиняваше значителен стрес. Ако студентите бяха писали код, придържащ се към стандартен стил, тези трудности щяха да бъдат намалени. Катедрата по компютърни науки в Националния университет в Сеул предлага и няколко курса, които включват оценки за четливост, насърчавайки студентите да пишат лесно четим код. По този начин стандартизираният стил на кодиране е от полза както за преподавателите, така и за студентите.
От гледна точка на ученика, стандартизираните стилове на кодиране могат да намалят объркването и да повишат мотивацията. Книгите по програмиране и онлайн курсовете често използват непоследователни стилове, а понякога дори преподават неправилни. Като учащи, е трудно да се прецени правилността на тези стилове и простото им следване може да доведе до това да се превърнете в програмист, който пише нечетлив код. Наличието на стандартен стил би предотвратило този проблем.
Въпреки че обсъдихме положителните ефекти, които един стандартизиран стил на кодиране може да донесе, трябва да разгледаме и осъществимостта на стандартизацията. От друга страна, поради математическия модел на езиците за програмиране, за компютрите може да е трудно да обработват стил на кодиране отвъд синтаксиса. Освен това има трудности при преобразуването на целия съществуващ код, написан в различни стилове, в съответствие със стандарт, и съществуват дебати относно това кой стил трябва да бъде приет като стандарт.
Намирането на положително решение на тези проблеми с осъществимостта е трудно, но с напредването на изследванията възможностите постепенно се увеличават. Например, Python полага усилия за регулиране на стила на кодиране чрез добавяне на синтактично условие, наречено правило за отстъпи.
В обобщение, стандартизирането на стиловете на кодиране има значителни положителни ефекти върху поддръжката, популяризирането на отворения код и образованието. Студентите със специалност компютърни науки, тези без специалност и всеки, който се интересува от програмиране, трябва да се стремят да пишат лесно четим код. Макар че това е трудно в настоящата ситуация без стандартен стил, аз смятам, че стандартизираният стил на кодиране е абсолютно необходим поради тези причини.

 

За автора

писател

Аз съм „Котешки детектив“ и помагам на изгубените котки да се свържат отново със семействата им.
Презареждам се с чаша кафе лате, обичам да се разхождам и пътувам и разширявам мислите си чрез писане. Като наблюдавам света отблизо и следвам интелектуалното си любопитство като блогър, се надявам думите ми да могат да предложат помощ и утеха на другите.