Лекція 5 Керівництво програміста. Керівництво системного адміністратора (системного програміста)
1. Керівництво програміста Цілі й завдання
Керівництво програміста розробляють у трьох випадках:
програмний продукт по своєму основному призначенню є середовищем розробки або бібліотекою (як Delphi або Qt);
комплекс або програмний продукт служить платформою для розробки програм або систем певного типу (як 1С або Axapta);
програма поширюється разом з вихідним кодом або постійно модифікується самими розроблювачами.
Напевно можна уявити собі й інші ситуації (наприклад, програмний продукт є операційною системою), але в житті вони зустрічаються значно рідше.
Очевидне завдання керівництва програміста - постачити розроблювача інформацією, який йому буде досить для створення на базі нашого програмного продукту власних програм або систем. Ще один мотив створення такого документа - потреба розроблювачів час від часу фіксувати стан продукту, щоб самим у ньому не заплутатися й не плодити в колективі носіїв «сакральних знань».
Зміст документа
Керівництво програміста повинне пояснювати:
З якими об'єктами програміст має справу, де вони перебувають, скільки часу існують і як вони взаємодіють між собою. Які з них він створює сам, а які надані йому середовищем, фреймворком, бібліотекою.
Які ще засоби розробки (крім нашого програмного продукту) необхідні для того, щоб створити додаток або систему. Наприклад, якщо наш програмний продукт - це бібліотека, то програмістові будуть потрібні компілятор (можливо, цілком певний), якесь середовище розробки й інший інструментарій.
У якому середовищі функціонує додаток або система? Якими будуть його мінімальні вимоги до системи? Чи знадобляться для його запуску які-небудь додаткові програмні засоби: фреймворки, рантайми, інтерпретатори.
Що являє собою мінімальний працездатний додаток або мінімальна працездатна система. Які об'єкти в якій послідовності необхідно створити, і як їхній один з одним з'єднати, щоб додаток вивів хоча б «Hello World». Правда, бувають додатки, які взагалі не виводять тексту, а управляють трафіком у мережах, але в них однаково обов'язково є якийсь свій мінімальний вивід.
Як (по кроках) скомпілювати працездатний додаток або розгорнути працездатну систему.
Це основні питання, без відповідей на які програміст не зможе нормально працювати. Якщо не повідомити їх йому в явному виді, він буде змушений зайнятися дослідженнями. Але є ще багато додаткових питань: методика й техніка налагодження, стиль програмування й ін.
Крім теорії, керівництво програміста повинне містити повні описи всіх передбачених у програмному продукті об'єктів. Якщо це функції, то повинні бути наведені їхні синопсиси, якщо класи, то опису їхніх інтерфейсів і т.д.
Якщо програмний продукт припускає використання оригінальної мови програмування й має власний компілятор або інтерпретатор, у керівництво програміста необхідно включити його опис. Однак, якщо воно виходить досить об'ємним, його виносять в окремий документ, що так і називається: опис мови (програмування).