Рубріки: Новини

У Microsoft роз’яснили, як правильно писати коментарі в коді

Дмитро Сімагін

Представник команди Microsoft Windows Реймонд Чен пояснив, як правильно писати коментарі в коді. За його словами, коментарі всередині тіла функції повинні стосуватися стану системи в момент «виконання» коментаря. Про це Чен написав у блозі розробників Windows.

Автор допису розкритикував програмістів, які в коментарі до коду описують, які він буде працювати за певних обставин. За словами Чена, кожен коментар має описувати, що відбувається, коли виконання досягає блоку коду, в якому воно знаходиться. Якщо ж розробник хоче розмістити коментар перед оператором «if», то йому потрібно структурувати його відповідно до стану програми до оператора «if».

Для кращого пояснення Реймонд Чен наводить приклад невдалого розміщення коментарів:

// Widget is already vibrating, so we update the waveform in place.
// Else the waveform parameters will be set when we start vibrating.
if (waveformParameters != null) {
    waveformParameters.Shape = WaveformShape.Square;
    widget.UpdateWaveformParameters(waveformParameters);
}


Чен пише, що коли він побачив цей коментар, то зрозумів його так, ніби він свідчить про те, що віджет вже вібрує. «Я подумав: «Звідки мені знати, що він вібрує? Хіба нам не варто спочатку це перевірити?»

Потім, за його словами, він побачив частину коментаря else і ще більше заплутався, бо «навіщо ми говоримо про те, що ми робимо, якщо віджет не вібрує, якщо попереднє речення говорило нам, що ми (якимось чином) вже знаємо, що він вібрує?»

«Далі я бачу оператор if, і тепер він перевіряє, чи є щось null, що, я думаю, говорить нам, чи вібрує віджет. Але перше речення коментаря говорило, що ми знаємо, що він вібрує».

У підсумку Чен визнає, що коментар насправді описує те, що ми знаємо як правду, коли опинимося всередині блоку if. В якості альтернативи він пропонує менш заплутаний спосіб написання коментаря:

if (waveformParameters != null) {
    // Widget is already vibrating, so we update the waveform in place.
    waveformParameters.Shape = WaveformShape.Square;
    widget.UpdateWaveformParameters(waveformParameters);
} else {
    // Nothing to update right now. We will set the parameters
    // the next time we start vibrating.
}


Тут кожен коментар описує, що відбувається, коли виконання досягає блоку коду, в якому воно знаходиться. Автор навіть створив фіктивний блок else для зберігання пояснювального коментаря про те, чому нічого не робити – це нормально.

«Якщо ви дійсно хочете розмістити коментар перед оператором if, вам потрібно структурувати його відповідно до стану програми до оператора if.

// If the widget is already vibrating, then update the waveform in place.
// Else the waveform parameters will be set when we start vibrating.
if (waveformParameters != null) {
    waveformParameters.Shape = WaveformShape.Square;
    widget.UpdateWaveformParameters(waveformParameters);
}

 

Останні статті

Anthropic оновлює Claude Code до версії 2.1.0

Компанія Anthropic випустила Claude Code у версії 2.1.0, яка стала помітним оновленням цього популярного інструменту…

09.01.2026

Senior-розробник Microsoft дає поради, як програмісту вижити в епоху штучного інтелекту

Нандіта Гірі, 32-річна програмістка з головного офісу Microsoft у Редмонді поділилась порадами, як розробникам слід…

09.01.2026

EPAM заключає партнерство з Cursor для створення та масштабування команд ШІ-розробників

Одна з найбільших світових аутсорс-компаній EPAM Systems оголосила про стратегічне партнерство з Cursor. Мета співпраці…

09.01.2026

Штучний інтелект у Gmail тепер сам буде вирішувати, які листи вам показувати в першу чергу

Google вносить масштабні зміни в Gmail, інтегруючи в поштовий сервіс можливості штучного інтелекту на базі…

09.01.2026

Ілон Маск анонсував випуск Grok Code — нового інструменту для вайб-кодингу

Ілон Маск анонсував значне оновлення LLM-моделі Grok разом із новими продуктами, в тому числі інструментом…

09.01.2026

CEO Replit: завдяки вайб-кодуванню керівникам більше не потрібно благати програмістів про допомогу

Глава стартапу Replit, який відомий однойменним IDE, Амджад Масад заявив, що інструменти вайб-кодингу змінюють баланс…

08.01.2026