Форматирование кода

Модератор: Модераторы разделов

Аватара пользователя
Jasha
Сообщения: 492
Статус: ##LinuxUser##
ОС: Debian

Форматирование кода

Сообщение Jasha »

Привет! Я только начал программировать. Интересует такой вопрос:
Как научиться ПРАВИЛЬНО форматиовать код программы?
Есть какие-то универсальные правила или для каждого языка своё?
Если последнее, то интересует Паскаль.
Спасибо сказали:
promov
Сообщения: 384
Статус: Участник
ОС: Debian GNU/Linux

Re: Форматирование кода

Сообщение promov »

Обязательно пиши комментарии- пусть они будут только тебе понятны, главное, чтобы были!
Зачем хорёк пошел в ларёк, зачем барсук полез на сук...
Мораль легко уразуметь: зачем на бал пришёл медведь?
Спасибо сказали:
Аватара пользователя
Jasha
Сообщения: 492
Статус: ##LinuxUser##
ОС: Debian

Re: Форматирование кода

Сообщение Jasha »

Ну а отступы как ставить?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Форматирование кода

Сообщение diesel »

Стиль написания кода

правда там в основном С
Спасибо сказали:
Аватара пользователя
Skladnoy
Сообщения: 90
ОС: Debian

Re: Форматирование кода

Сообщение Skladnoy »

Jasha писал(а):
17.01.2008 13:54
Привет! Я только начал программировать. Интересует такой вопрос:
Как научиться ПРАВИЛЬНО форматиовать код программы?
Есть какие-то универсальные правила или для каждого языка своё?
Если последнее, то интересует Паскаль.

Универсальных правил нет. Более того внутри языка могут быть разногласия относительно "правильного" форматирования. Табы vs пробелы, как ставить скобки (в С-подобных), сколькими пробелами делать отступ (если пробелами) и т.д.

(promov) писал(а):Обязательно пиши комментарии- пусть они будут только тебе понятны, главное, чтобы были!

Чушь - комментарии ради комментариев бессмысленны. Задача комментариев - объяснить что и зачем делает участок кода, почему делает именно так (если делается каким-то странным и неочевидным способом). И сильно желательно чтобы комментарии были понятны не только автору.
Спасибо сказали:
promov
Сообщения: 384
Статус: Участник
ОС: Debian GNU/Linux

Re: Форматирование кода

Сообщение promov »

Skladnoy писал(а):
17.01.2008 16:06
Чушь - комментарии ради комментариев бессмысленны.
В первую очередь нужно заботиться, чтобы комментарии были понятны тебе самому. Это я и хотел сказать. Чтобы они были понятны другим- не знаю, как это может получиться...
Зачем хорёк пошел в ларёк, зачем барсук полез на сук...
Мораль легко уразуметь: зачем на бал пришёл медведь?
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Форматирование кода

Сообщение Liksys »

Лично я почти не комментирую свой код - я испольую длинные имена переменных/функций, из названия которых и так все ясно.
Спасибо сказали:
Аватара пользователя
Folderx
Сообщения: 296
ОС: fedora, mandriva

Re: Форматирование кода

Сообщение Folderx »

(promov) писал(а):В первую очередь нужно заботиться, чтобы комментарии были понятны тебе самому.

В первую очередь код должен быть понятен тебе самому, а чтобы так было его сразу надо правильно писать.
Комментарии должны описывать ход программы.
Тогда это будет понятно и окружающим(код и комментарии).
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux

Re: Форматирование кода

Сообщение deninok »

(Jasha) писал(а):Как научиться ПРАВИЛЬНО форматиовать код программы?
Есть какие-то универсальные правила или для каждого языка своё?
Если последнее, то интересует Паскаль.


Общие (или, как ты назвал, универсальные) правила форматирования кода существуют. Вернее, это даже не правила, а базовые концептуальные принципы того, как оформлять код программы. Зависит ли это от языка? В мелочах - да (и даже сильно), в общем же - практически нет.
Главный концептуальный принцип оформления кода я бы сформулировал так:
программа должна оформляться так, чтобы быть понятной читающим ее людям.
Дело в том, что компьютеру совершенно безразлично то, как ты оформишь программу. А вот людям, ее читающим (и тем более сопровождающим) это далеко не безразлично. Да, степень восприятия кода у различных программистов различен, и сам термин "понятная программа" достаточно субъективен и относителен. Однако трудо поспорить с тем, что приведенный ниже код будет труден для понимания:

Код: Выделить всё

#include<iostream>
using namespace std;
int main() {int i; int j = 3;
for(int i=0;i;i++) j++; cout <<"j="<<j<< endl;
return 0;}


Код работает и даже соответствует стандарту. Однако он плохо оформлен, следовательно, его трудно читать и понимать. Я видел код, оформленный приблизительно таким же (отвратительным) образом, причем в этом коде было не 5 строк, а несколько тысяч. Более того, мне пришлось этот код сопровождать и модифицировать.
Дело даже не в конкретных правилах относительно того, где и сколько ставить пробелов или в какой строке ставить открывающую скобку (или слово begin), а в том, чтобы программа, будучи прочитанной программистом, оставила бы в его голове не кашу, а (максимально) ясное понимание того, что и как эта программа делает.
Вот еще некоторые концептуальные принципы оформления кода (причем независимо от используемого языка программирования):

1. Одна строка - одно действие.
2. Пробелы - как масло, которым, как известно, кашу не испортишь.
3. Конструкции программы (циклы, условия и т.д.) должны иметь сопоставленные друг другу начало и конец. В этом помогут отступы.
4. Комментарии в общем случае нужны. Они должны объяснять главным образом то, что происходит в некотором коде, а не то, как это происходит. Однако если для понимания некоторого кода комментарии оказываются совершенно необходимыми, то этот код (скорее всего) плохой.
5. Выбранный стиль оформления кода программы должен быть единым во всей программе.

Очень рекомендую книгу "Совершенный код" Макконнелла. Как раз то, что тебе нужно! Сам ее читаю, и очень благодарен автору.

Вообще споры о правилах оформления кода сродни религиозным спорам. Много эмоций и громких слов. Не обращай на них большого внимания. В книге, которую я упомянул выше, вопросы оформления кода освещены достаточно объективно.
Спасибо сказали: