Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab2.doc
Скачиваний:
8
Добавлен:
27.04.2019
Размер:
85.5 Кб
Скачать

4. Реалізація:

а) створення алгоритмів і кодів окремих модулів вибраною мовою програмування;

б) створення вихідного тексту програми;

в) налагодження вихідного тексту.

Основний результат цього етапу – вихідний код. Прийнято писати тексти програм, зважаючи на загальноприйняті вимоги до коду.

Вимоги до коду на С++/С

1. Послідовність методів у файлах. Рекомендується наступна послідовність методів у кожній секції (private, protected, public) класу:

  • Статичні

  • Конструктори

  • Деструктори

  • Змінні-члени

  • Оператори

  • Методи-члени

2. Назви. Назви змінних і методів мають бути такими, щоб спростити складність розуміння коду. Наприклад, краще вживати GetNextStudent() замість GetNextArrayElement(). Назви мають бути достатньо довгими, але так щоб це не ускладнило читання коду.

2.1. Назви класів

  • Назви класів починаються з префіксу C, приклади: CSomeClass, CSomeOtherClass.

  • Великі літери вживаються для розділення слів.

  • Не варто вживати назви, що складаються більше ніж з трьох слів.

2.2. Назви методів і функцій

  • Якщо функція виконує якусь дію, то краще назвати: CheckForErrors() замість ErrorCheck(), DumpDataToFile() замість DataFile(). Це зробить код зрозумілішим.

  • Якщо проводите дії над об’єктом – назву варто формувати як дієслово+іменник CalculateInvoice().

  • Іноді допомагає вживання суфіксів: Max – максимальне значення. Cnt – поточна кількість. Key – ключове значення.

  • Використовують префікси для функцій чи методів: Is – використовується для перевірки. IsVisible(), IsHitRetryLimit() Get – повертає значення. Set – встановлює значення.

  • Не використовуйте назви методів такі самі як назва класу Book.BookTitle. Застосовуйте Book.Title.

class CNameOneTwo

{

public:

int DoIt();

void HandleError();

};

2.3. Назви змінних

  • Включайте тип в назви змінних (Угорський запис): int nTimeCount; DWORD dwWeightKg;

CString csFileName;

LPCSTR pszUserName;

BOOL bFileIsFound;

void* pvList;

CString& rcsName;

  • Додавайте при потребі кваліфікатори (Avg, Sum, Min, Max, Index) вкінець назви.

  • Використовуйте пари змінних що відповідають min/max, begin/end, and open/close.

  • Як індекс в циклах можна використовувати змінну “i”.

  • Але не варто використовувати в умовах циклу константи for(i = 1 ; i < 7 ; i++). Краще так for(i = 1; i < NUM_DAYS_IN_WEEK; i++).

2.4. Назви атрибутів класу

  • Атрибути класу (змінні-члени) повинні завжди починатися з 'm_'.

class CNameOneTwo

{

private:

int m_nVarAbc;

int m_nErrorNumber;

LPCSTR m_pszUserName;

CString m_csFileName;

public:

int VarAbc();

int GetErrorNumber();

};

2.5. Назви аргументів

  • Приклад

class CNameOneTwo

{

public:

int StartYourEngines(Engine& rSomeEngine, Engine& rAnotherEngine);

};

2.6. Назви вказівників

  • Вказівники починаються з 'p' у більшості випадків.

  • Розміщуйте знак * ближче до назви змінної ніж до типу

CListBox *pList = new CListBox();

CHAR *pczName;

2.7. Посилання

  • Посилання завжди починаються з 'r'.

class СTest

{

public:

void DoSomething(CStatusInfo& rStatus);

CStatusInfo& LoadStatus();

const CStatusInfo& GetStatus();

private:

CStatusInfo& m_rStatus;

};

2.8. Глобальні змінні

  • Глобальні змінні завжди починаються з 'g_'.

Logger g_Log;

Logger *g_pLog;

2.9. Статичні змінні

  • Статичні змінні можуть починатися з 's'.

class CTest

{

private:

static CStatusInfo m_sStatus;

};

2.10. Константи, Enum, #define і Macro

  • Назви мають бути великими літерами і розділятися '_'.

const int A_GLOBAL_CONSTANT = 5;

#define NUMBER_OF_ELEMENTS 5

enum { STATE_ERR, STATE_OPEN, STATE_RUNNING, STATE_DYING};

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]