|
818 / 577 / 75
Регистрация: 20.09.2014
Сообщений: 3,768
|
|
Идеальные комментарии в программе20.11.2020, 20:01. Показов 5104. Ответов 23
Метки нет (Все метки)
Интересуюсь технологиями и техниками в программировании. Один из вопросов интересных - какие правила для написания хороших комментариев в программе.
Есть правила для новичков - вроде "не пиши, что делает программа дословно", ну и правило, что хорошо названные имена переменных, функций и объектов должны избавить программу от комментариев вовсе. Последнее утверждение, конечно, ложь, так как человек, изучающий программу, может быть не в курсе предметной области. Например, может быть комментарий "А принтер этой модели не умеет печатать букву Ё!". Я уже в соседней теме писал, что меня интересует IDE/ЯП для программиста, а не для компилятора/процессора. В существующих языках комментарий - это простая строка с любой ахинеей, которая предназначена для программиста, но не для компилятора. И в определенный момент я понял, что в моей IDE комментариев не будет в том виде, как в существующих языках. В моей IDE (которой ещё почти нет) комментарии заменят неким образом структурированные комментарии. Моя цель - понять, как структурировать. Ну и главный вопрос - как понять, что комментарии завершены, достаточны и понятны?
0
|
|
| 20.11.2020, 20:01 | |
|
Ответы с готовыми решениями:
23
Комментарии к программе
комментарии к программе |
|
Модератор
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
|
||||||||
| 24.11.2020, 10:21 | ||||||||
|
Например, в алгоритме быстрой тестировки:
0
|
||||||||
|
818 / 577 / 75
Регистрация: 20.09.2014
Сообщений: 3,768
|
||||||||
| 24.11.2020, 18:58 [ТС] | ||||||||
|
Заметьте, комментарий почти нисколько не связан с описанием действия в коде, а говорит о чем-то внешнем, величины 0.1 и 0.3 никак не принимаются к сведению компилятором. Таких примеров можно приводить много. Почти каждому действию в программе можно написать комментарий, связанный с обоснованием выбора того или иного действия. И теперь удивитесь, какие могут быть комментарии к такому простому коду (привел ранее Рыжий Лис):
Вариант 2: я не знаю, какая точность вычисления требуется; если ракета полетит неточно, то переделайте этот код. Вариант 3 (комментарий ни о чем): геометрическая сумма Вариант 4: функция для библиотеки общего назначения (=неизвестной цели использования), вычисления с двойной точностью, при необходимости пользователи могут использовать аналог функции с одинарной точностью. То есть правильные комментарии не комментируют код, а комментируют обоснование кода, то есть соответствие внешним целям.
0
|
||||||||
|
818 / 577 / 75
Регистрация: 20.09.2014
Сообщений: 3,768
|
|
| 25.11.2020, 07:14 [ТС] | |
|
Что мешает уверенному рефакторингу старого кода? Какой информации не хватает? Есть аналитика на эту тему?
0
|
|
|
Модератор
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
|
||||
| 27.11.2020, 12:27 | ||||
|
В идеале примерно так и получается. Есть комментарии к функциям в заданном формате, а все остальные комментарии относятся к внешней системе. На практике иногда приходится комментировать и код. Такие комментарии желательно помечать специальными тегами (например, todo и note). Добавлено через 3 минуты
0
|
||||
| 27.11.2020, 12:27 | |
|
Помогаю со студенческими работами здесь
24
Комментарии к программе комментарии к программе Комментарии к программе. Комментарии к программе Комментарии к программе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
|
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера»
Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит.
Придуман Биллом Госпером в 1970-х, опубликован в. . .
|
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb">
<style>
<!]>
</ style>
<g id="bush">
</ g>
</ svg>
function fn(){
let rost;/ / высота древа
let xx=165,yy=210,w=256;
|
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов,
содержащихся в реализации модуля. По-умолчанию все члены модуля доступны:
module Foo
let x = 10
let boo () = printfn "boo"
. . .
|
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|