Стил програмирањаСтил програмирања је скуп правила или смерница који се користе приликом писања изворног кода за рачунарски програм. Често се тврди да одређен програмски стил може помоћи програмерима да читају и разумеју изворни код у складу са стилом, и тако да се избегне увођење грешака. Класичан рад на предмету је Елементи Програмског Стила, написан у 1970., и илустрован са примерима из Фортран и PL/I језика преовладава у то време. Стил програмирања користи се у одређеном програму и може се извести из кодирајућих конвенција предузећа или других рачунарских организација, као и склоности аутора кода. Стилови програмирања су често дизајнирани за одређени програмски језик (или језичке): стил сматра да оно што је добро у C изворном коду не може бити прикладно за Бејсик изворни код, и тако даље. Међутим, нека правила најчешће се примењују на многе језике. Елементи доброг стилаДобар стил је субјективна ствар, и тешко је дефинисана. Међутим, постоје неколико елемената заједнички за велики број програмских стилова. Питања се најчешће сматрају као део програмског стила укључујћи распоред изворног кода, укључујући и увлачење; употреба белог простора око оператера и кључне речи; капитализација или на други начин кључних речи и имена варијабли; стил и правопис корисничких дефинисаних идентификатора, као што су функције, процедуре и имена променљивих; и употреба и стил коментара. Изглед кодаСтилови програмирања обично се баве визуелним изгледом изворног кода, са циљем лакшег читања. Софтвер је дуго био доступан да аутоматски форматира изворни код, остављајући кодере да се концентришу на именовања, логику и више технике. Као практичну тачку, користите рачунар за форматирање изворног кода што штеди време, а могуће је да их спроведу компаније широм стандарда без расправе. УвлачењеСтилови увлачења помажу у идентификовању контроле протока и блокова кода. У неким програмским језицима удубљење служи да се ограничавају логички блокови кода; исправно удубљење у овим случајевима је више од ствари стила. У другим језицима увлачења и белог простора не утиче на функцију, иако логично и конзистентно удубљење чини код више читљивим. Упореди: if (сати < 24 && минути< 60 && секунде < 60) {
return тачно;
} else {
return нетачно;
}
или if (сати < 24 && минути < 60 && секунде < 60)
{
return тачно;
}
else
{
return нетачно;
}
са нечим као што је if ( сати < 24
&& минути < 60
&& секунде < 60
)
{return тачно
;} else
{return нетачно
;}
Прва два примера су вероватно много лакша за читање јер су увучени у постојећем путу (а "виси став" стил). Овај удубљени стил је посебно користан када се ради о вишеструким конструкцијама. Имајте на уму, међутим, да овај пример је исто једноставан: return (сати < 24 && минути < 60 && секунде < 60);
ModuLiqУпоредите све горе наведено са: if (сати < 24 && минути < 60 && секунде < 60)
return тачно;
else
return нетачно;
ЛуаЛуа не користи традиционалне витичасте или обичне заграде. ако/иначе изјаве само захтевају ваш израз да буду праћене од if сати < 24 и минути < 60 исекунде < 60 then
return тачно
else
return нетачно
end
Увлачење није обавезно. print(није тачно)
што би значило лажна. ПајтонПајтон користи увлачење да укаже контролне структуре, тако да су потребна исправна удубљење. На овај начин, потреба за заграде са заградама (т.ј. if сати < 24 и минути < 60 и секунде < 60:
return тачно
else:
return нетачно
Приметите да Пајтон не користи витичасте, али редовно двотачке (нпр. Многи Пајтон програмери имају тенденцију да прате заједнички договорен стил познат као ПЕП8.[1]Постоје алати дизајнирани за аутоматизацију ПЕП8 поштовања. ХаскелХаскел слично има правило које омогућава удубљење дефинисаних блокова. Међутим, за разлику од Пајтона, Хаскел једноставно користи белине на овај начин као облик синтаксних шећера-експлицитне заграде и зарез се могу (и повремене су) користи уместо тога. Вертикално поравнањеЧесто је корисно да се ускладе слични елементи вертикално, да типо-генерисани багови буду више очигледни. Упореди: $претраживање = низ('a', 'b', 'c', 'd', 'e');
$замена = низ('foo', 'bar', 'baz', 'quux');
// Други пример:
$вредност = 0;
$другавредност = 1;
$јошједанавредност = 2;
са: $претраживање = низ('a', 'b', 'c', 'd', 'e');
$замена = низ('foo', 'bar', 'baz', 'quux');
// Други пример:
$вредност = 0;
$другавредност = 1;
$јошједанавредност = 2;
Овај други пример чини две ствари интуитивно јасно а нису били јасни у бившој:
Међутим, имајте на уму да постоје аргументи против вертикалног поравнања:
На пример, ако се операција једноставног рефакторисања врши на коду изнад, преименовање варијабли "$ замена" у "$ р" и "$ другавредност" у "$ а", добијени код ће изгледати овако: $претраживање = низ('a', 'b', 'c', 'd', 'e');
$r = низ('foo', 'bar', 'baz', 'quux');
// Други пример:
$вредност = 0;
$a = 1;
$јошједанавредност = 2;
Секвенцијално форматирање оригинала ће и даље изгледати добро после такве промене: $претраживање = низ('a', 'b', 'c', 'd', 'e');
$r = низ('foo', 'bar', 'baz', 'quux');
// Други пример:
$вредност = 0;
$a = 1;
$јошједанавредност = 2;
ПросториУ оним ситуацијама када је потребно мало белог простора граматика већине језика слободног формата је неупућена у износу који се појављује. Стил се односи на бели простор и најчешће користи за побољшање читљивости. Тренутно не постоје познате чврсте чињенице (Закључци из студије) да стилови белог простора имају најбољу читљивост. На пример, упоредите следеће синтаксичке еквивалент примере C кода: int i;
for(i=0;i<10;++i){
printf("%d",i*i+i);
}
наспрам int i;
for (i=0; i<10; ++i) {
printf("%d", i*i+i);
}
наспрам int i;
for (i = 0; i < 10; ++i) {
printf("%d", i * i + i);
}
ТабКоришћење таб картице да створи празан простор представља конкретна питања, када се узме није довољно брига јер локација табеларног приказивања тачке може бити различита у зависности од алата који се користи, па чак и преференције корисника. Као пример, један програмер преферира таб размак четири пута и његов сет алата је подесио на овај начин, и користи то да обликујете своју шифру. int ix; // Индекс за скенирање низа
long sum; // Акумулатор за суму
Други програмер преферира таб осам пута, а његов сет алата је подешен на овај начин. Када испитује своју шифру, може бити тешко за читање. int ix; // Индекс за скенирање низа
long sum; // Акумулатор за суму
Једно широко коришћено решење за овај проблем може да укључи забрану коришћења картица за усклађивање или правила о томе како мора бити постављен таб. Имајте на уму да таб ради у реду, под условом да се доследно користи, ограничено на логичана увлачења, а не користи за поравнање: class MyClass {
int foobar(int qux, // први параметар
int quux); // други параметар
int foobar2(int qux, // први параметар
int quux, // други параметар
int quuux); // трећи параметар
};
Види јошРеференце
Спољашње везе
|
Portal di Ensiklopedia Dunia