Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
11 / 11 / 2
Регистрация: 17.02.2014
Сообщений: 947

Комментирование программ. Насколько это важно?

08.02.2016, 19:01. Показов 3506. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Поделитесь собственным опытом.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.02.2016, 19:01
Ответы с готовыми решениями:

Комментирование программ С++
Помогите с комментариями к программе, пожалуйста, в воскресенье зачет уже Хотя бы основные моменты пояснить

Комментирование программ С++
Пожалуйста, срочно помогите , объясните как работает тут this ... не понимаю зачем он вообще MARSH& MARSH::operator=(MARSH&...

насколько это соответствует стандарту?
#include <iostream> class shit { private: int x; public: shit(){} shit(int p) { x = p; } void set (int*...

55
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
09.02.2016, 23:43
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ct0r Посмотреть сообщение
И сам же пишешь капитанские комменты. Я, средний программист, за 5 секунд и так все понял.
буквально на днях код рассматривал программер,
для которого я его и написал.
ну так вот, он сказал, что ничерта не понятно.
о том, что делает код он понял только по комментам.
и то - рассмотрев использование.

хотя человек не первый год программирует.

смысл комментария - позволить не вникать в код вообще,
либо помочь вникнуть человеку со стороны.

у меня есть сомнения насчет 5 секунд.
Цитата Сообщение от ct0r Посмотреть сообщение
Так может вместо них либо дать нормальные имена макросам
я думал о том, что бы сделать нечто вроде:
C++
1
template<dINSTANCE_IF_EQUAL_(U, ololo) >
не конкретно в этом случае, а вообще,
в каких то случаях на практике.

ну так вот, меня запарили длинные имена.
они может и дают профит, когда такое видишь впервые в жизни
но во всех остальных случаях хочется подсократить
сделав код более компактным.

можно сделать какие угодно подробнве комментарии,
с примерами использования и все такое - но это все
лежит в библиотечном коде в 1 месте.

в боевом коде никаких комментариев уже нет.
кому не понятно - пусть прыгают на декларацию,
и читают как доку.

Цитата Сообщение от ct0r Посмотреть сообщение
В таком тоже не вижу смысла. Оно зачем?
ублажает мой эстетический вкус.

Цитата Сообщение от ct0r Посмотреть сообщение
И заодно типа не понял, зачем нужен класс some со столькими add'ами

то есть, до вас не дошло, что это - пример использования макросов в действии?
даже слово "usage" не помогло?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
09.02.2016, 23:53
Цитата Сообщение от hoggy Посмотреть сообщение
буквально на днях код рассматривал программер
Прям как песня... Точнее начало песни.
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
10.02.2016, 00:35
Код из SFML:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
////////////////////////////////////////////////////////////
void Image::copy(const Image& source, unsigned int destX, unsigned int destY, const IntRect& sourceRect, bool applyAlpha)
{
    // Make sure that both images are valid
    if ((source.m_size.x == 0) || (source.m_size.y == 0) || (m_size.x == 0) || (m_size.y == 0))
        return;
 
    // Adjust the source rectangle
    IntRect srcRect = sourceRect;
    if (srcRect.width == 0 || (srcRect.height == 0))
    {
        srcRect.left   = 0;
        srcRect.top    = 0;
        srcRect.width  = source.m_size.x;
        srcRect.height = source.m_size.y;
    }
    else
    {
        if (srcRect.left   < 0) srcRect.left = 0;
        if (srcRect.top    < 0) srcRect.top  = 0;
        if (srcRect.width  > static_cast<int>(source.m_size.x)) srcRect.width  = source.m_size.x;
        if (srcRect.height > static_cast<int>(source.m_size.y)) srcRect.height = source.m_size.y;
    }
 
    // Then find the valid bounds of the destination rectangle
    int width  = srcRect.width;
    int height = srcRect.height;
    if (destX + width  > m_size.x) width  = m_size.x - destX;
    if (destY + height > m_size.y) height = m_size.y - destY;
 
    // Make sure the destination area is valid
    if ((width <= 0) || (height <= 0))
        return;
 
    // Precompute as much as possible
    int          pitch     = width * 4;
    int          rows      = height;
    int          srcStride = source.m_size.x * 4;
    int          dstStride = m_size.x * 4;
    const Uint8* srcPixels = &source.m_pixels[0] + (srcRect.left + srcRect.top * source.m_size.x) * 4;
    Uint8*       dstPixels = &m_pixels[0] + (destX + destY * m_size.x) * 4;
 
    // Copy the pixels
    if (applyAlpha)
    {
        // Interpolation using alpha values, pixel by pixel (slower)
        for (int i = 0; i < rows; ++i)
        {
            for (int j = 0; j < width; ++j)
            {
                // Get a direct pointer to the components of the current pixel
                const Uint8* src = srcPixels + j * 4;
                Uint8*       dst = dstPixels + j * 4;
 
                // Interpolate RGBA components using the alpha value of the source pixel
                Uint8 alpha = src[3];
                dst[0] = (src[0] * alpha + dst[0] * (255 - alpha)) / 255;
                dst[1] = (src[1] * alpha + dst[1] * (255 - alpha)) / 255;
                dst[2] = (src[2] * alpha + dst[2] * (255 - alpha)) / 255;
                dst[3] = alpha + dst[3] * (255 - alpha) / 255;
            }
 
            srcPixels += srcStride;
            dstPixels += dstStride;
        }
    }
    else
    {
        // Optimized copy ignoring alpha values, row by row (faster)
        for (int i = 0; i < rows; ++i)
        {
            std::memcpy(dstPixels, srcPixels, pitch);
            srcPixels += srcStride;
            dstPixels += dstStride;
        }
    }
}
2
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.02.2016, 00:36
Цитата Сообщение от Croessmah Посмотреть сообщение
Код из SFML:
годные комменты
1
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
10.02.2016, 02:36
Цитата Сообщение от Melg Посмотреть сообщение
Тогда какой смысл было использовать противопоставление? Утверждение А. Но, A != утверждение Б - при этом Б ни относится к тому, о чём был мой пост, ни содержится в нём.
Я написал это для того, чтобы люди не интерпретировали те фразы неправильно. Почему-то часто из них делают вывод, что комменты - это прям плохо. Так что противопоставление и лично ты тут вообще не причем.

Цитата Сообщение от hoggy Посмотреть сообщение
буквально на днях код рассматривал программер,
для которого я его и написал.
ну так вот, он сказал, что ничерта не понятно.
о том, что делает код он понял только по комментам.
и то - рассмотрев использование.
хотя человек не первый год программирует.
смысл комментария - позволить не вникать в код вообще,
либо помочь вникнуть человеку со стороны.
у меня есть сомнения насчет 5 секунд.
Мне хватило 5 секунд. Там разбираться вообще не надо - все настолько очевидно. Если у кого-то с этим кодом затруднения, то этот кто-то не сечет в шаблонах вообще. И если ты пишешь код для него (или у тебя в команде такие люди), то да, ты тогда должен комментить. Но это - конкретный случай. Когда ты вот отвечаешь тут на форуме, ты тоже иногда должен такую элементарщину расписывать, что мама не горюй. Но это не делает комменты годными в сферическом вакууме.

Цитата Сообщение от hoggy Посмотреть сообщение
ну так вот, меня запарили длинные имена.
они может и дают профит, когда такое видишь впервые в жизни
но во всех остальных случаях хочется подсократить
сделав код более компактным.
У меня нет желания сокращать выразительное, пусть и не короткое имя. Я (и не только я) читаю код куда больше и дольше, чем пишу.

Цитата Сообщение от hoggy Посмотреть сообщение
то есть, до вас не дошло, что это - пример использования макросов в действии?
даже слово "usage" не помогло?
На мой взгляд, не самое удачное решение. Я дальше #if 0 ничего и не смотрю - нафига? Дальше #if 0 - блекло подсвеченный код, который всегда должен быть мусор, который по умолчанию не нужно заставлять читать.
Хочешь показать использование или в этом роде - запили нормальный коммент до объявления и добавь юнит-тест. Это куда логичнее, имхо. В чем проблема так поступить?
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.02.2016, 03:49
Цитата Сообщение от ct0r Посмотреть сообщение
Если у кого-то с этим кодом затруднения, то этот кто-то не сечет в шаблонах вообще.
у меня у самого этот код парсится порядка 5 секунд в уме.
несмотря на то, что я сам же его и написал.

а что касается шаблонов - их хорошо понимают только тренированные мозги.
особенно, если там используется рекурсия, и прочие приколы.

я - практик, и с позиции своей практики понял одну вещь:
разница между сильным программистом и слабым в отношении шаблонов заключается в том,
что сильный буксанет, но осилит.
а слабый вообще может не осилить.
однако тормознут оба.

комментарий здесь позволяет сэкономить время,
делая необязательной необходимость компилировать шаблоны в голове,
что бы понимать, что делает код.

Цитата Сообщение от ct0r Посмотреть сообщение
У меня нет желания сокращать выразительное, пусть и не короткое имя. Я (и не только я) читаю код куда больше и дольше, чем пишу.
да да да, "код один раз пишут, потом много много раз читают".
но меня и читать длинное тоже запаривает.
должен быть баланс между лаконичностью и читабельностью.
этот баланс обеспечивает система - нотация, стиль кода, и тп.

зная систему, ставится проще и читать, и писать код.
и не нужны избыточно длинные имена.

Цитата Сообщение от ct0r Посмотреть сообщение
На мой взгляд, не самое удачное решение. Я дальше #if 0 ничего и не смотрю - нафига?
вы там выше писали:
Цитата Сообщение от ct0r Посмотреть сообщение
И заодно типа не понял, зачем нужен класс some со столькими add'ами, откуда возникла такая необходимость.
следовательно вы лжете.
вы посмотрели дальше #if 0.
а если вы посмотрели дальше #if 0
и после этого вам не очевидно,
зачем был нужен этот #if 0
даже несмотря на слово "usage",
ну тогда ничем не могу помочь.

Цитата Сообщение от ct0r Посмотреть сообщение
который по умолчанию не нужно заставлять читать.
так никто и не заставляет.
комментарии вас тоже никто не заставляет читать.
Цитата Сообщение от ct0r Посмотреть сообщение
запили нормальный коммент до объявления
всегда после.

потому что опционально.

сначала нужно предоставить лаконично и сжато итоговый материал.
а потом уже, следом, где нибудь в конце файла могут идти
какие угодно дополнения, и разъяснения.

эти разъяснения будут нужно примерно 1 раз за все время.
а дальше хочется видить "чистое апи",
желательно на одном экране, а не растянутое на 10 сраниц,
из которых 9,9 занимают доксигеновские комменты.
Цитата Сообщение от ct0r Посмотреть сообщение
добавь юнит-тест
в моей практике юнит-тесты - это разновидность документации.
из задача не столько контролировать работоспособность механизма,
сколько иллюстрировать дизайн использования.
0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
10.02.2016, 14:19
Цитата Сообщение от hoggy Посмотреть сообщение
что сильный буксанет, но осилит.
а слабый вообще может не осилить.
однако тормознут оба.
Это если они наворочены. Но тут явно не такой случай

Цитата Сообщение от hoggy Посмотреть сообщение
но меня и читать длинное тоже запаривает.
Ну все хорошо в меру, само собой. Слишком длинное - это тоже косяк.

Цитата Сообщение от hoggy Посмотреть сообщение
следовательно вы лжете.
Никоим образом. Это просто милиписерный форумный код, тем паче с форумной подсветкой. Его я читаю весь.

Цитата Сообщение от hoggy Посмотреть сообщение
и после этого вам не очевидно,
зачем был нужен этот #if 0
даже несмотря на слово "usage",
ну тогда ничем не могу помочь.
У меня никак в голове не укладывается, как можно комментарии или доку засунуть под #if0 Должен же быть здравый смысл. А в следующий раз ты строковую константу usage объявишь, чтоб было еще понятнее?

Цитата Сообщение от hoggy Посмотреть сообщение
желательно на одном экране, а не растянутое на 10 сраниц,
из которых 9,9 занимают доксигеновские комменты.
Какая-то надуманная проблема. И причем тут доксиген? Я про него ни слова не сказал.

Цитата Сообщение от hoggy Посмотреть сообщение
в моей практике юнит-тесты - это разновидность документации.
из задача не столько контролировать работоспособность механизма,
сколько иллюстрировать дизайн использования.
То, как именно ты используешь юнит-тесты, - твое личное дело . Да, юнит-тесты дополняют документацию. Но это лишь следствие. Их основная цель не в этом.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
11.02.2016, 01:35
Цитата Сообщение от ct0r Посмотреть сообщение
У меня никак в голове не укладывается, как можно комментарии или доку засунуть под #if0
пример был перед вашими глазами.
что именно вам не понятно?

Цитата Сообщение от ct0r Посмотреть сообщение
Какая-то надуманная проблема.
чем меньше информации нужно для работы с материалом,
тем лучше.

комментарии нужны только на этапе освоения материала,
пока код ещё не узнаваем.

на этапе активной работы комментарии - мусор,
который раздражает,
мельтеша перед глазами,
и отвлекая от сути вещей.

перенасыщение избыточной информацией - негативно сказывается на удобствах работы.

Цитата Сообщение от ct0r Посмотреть сообщение
И причем тут доксиген?
он получил весьма широкое распространение.
однако комменты в его стиле приводит к тому,
что в описании апи 85-90% жирных комментов,
и лишь 15-10% реального кода.

на этапе активной работы это начинает бесить.
к счастью ИДЕ позволяют схлопывать секции комментов.
к несчастью частенько приходится работать
из красноглазой консоли с блокнотом.

мне оч нравится http://www.cplusplus.com/refer... s/is_same/
образцово показательный пример того,
какой должна быть документация.
на любой чих есть годный пример использования.

и меня люто бесят доксигенвские комменты,
потому что они засоряют исходный код,
делая его не компактным.

ущербная попытка вшить документацию в сам код.

если так сильно хочется поиметь годный хэлп,
но нет возможности запилить моральную документацию,
то уж лучше вынести в конец исходника
пример использования в виде коммента #if 0

так хелпа он не будет мельтешить перед глазами,
когда она станет не нужна.

а не нужна она станет сразу же,
как только код станет узнаваем.
на практике обычно - после первого же,
и единственного просмотра примера использования.

в дальнейшем говорящих имен функций хватает за глаза.

Цитата Сообщение от ct0r Посмотреть сообщение
Их основная цель не в этом.
согласно TDD основная цель юнит-теста - иллюстрировать использование.
контроль соотвествия с ожидаемым,
защита от регресси,
и прочее - побочные положительные эффекты
методики программирования,
при котором изначально разрабатывается дизайн,
и только затем, ответив на вопрос:
"чего вы хотите, и как вы хотите это использовать?",
вырабатывается реализация, "под ключ хотелок".

Добавлено через 2 минуты
Цитата Сообщение от ct0r Посмотреть сообщение
Но тут явно не такой случай
тут именно тот случай, когда человек не въехал в код.
он понял, как использовать, глядя на пример иллюстрацию.
но так и не понял принцип действия самой конструкции.

вы же сами ратуете за принцип:
"код пишут один раз, а потом много-много раз читают".

при этом не мешало бы так же не забывать - его не просто много много читают.
его читают разные люди.
0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
11.02.2016, 04:36
Цитата Сообщение от hoggy Посмотреть сообщение
комментарии нужны только на этапе освоения материала,
пока код ещё не узнаваем.
на этапе активной работы комментарии - мусор,
который раздражает,
мельтеша перед глазами,
и отвлекая от сути вещей.
Не знаю, меня никогда не раздражают хорошие комменты, сколько я на них не смотрю. Наоборот, хорошая напоминалка. Сегодня помнишь - завтра уже не помнишь. А так хорошо врезается в память.

Цитата Сообщение от hoggy Посмотреть сообщение
если так сильно хочется поиметь годный хэлп,
но нет возможности запилить моральную документацию,
Это странно, возможность обычно всегда есть

Цитата Сообщение от hoggy Посмотреть сообщение
он получил весьма широкое распространение.
однако комменты в его стиле приводит к тому,
что в описании апи 85-90% жирных комментов,
и лишь 15-10% реального кода.
Это все понятно, но какое отношение он имеет к той моей фразе?

Цитата Сообщение от hoggy Посмотреть сообщение
то уж лучше вынести в конец исходника
пример использования в виде коммента #if 0
Окей, я готов допустить такой вариант при условии, что это принятое поведение в команде.

Цитата Сообщение от hoggy Посмотреть сообщение
согласно TDD
Однако речь была не о TDD, а о юнит-тестах.

Цитата Сообщение от hoggy Посмотреть сообщение
согласно TDD основная цель юнит-теста - иллюстрировать использование.
Не иллюстрировать использование, а построить дизайн, опираясь на возможные использования.

Цитата Сообщение от hoggy Посмотреть сообщение
при этом не мешало бы так же не забывать - его не просто много много читают.
его читают разные люди.
Так я об этом и говорил.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
11.02.2016, 09:41
Цитата Сообщение от ct0r Посмотреть сообщение
возможность обычно всегда есть
большая часть либ идет либо вообще без документации
(и без комментов, что характеризует).
либо с доксигеновской, которая генерируется из этих отвратительно жирных комментов,
за которыми кода не видать.

паршивая дока, толку от которой чуть больше, чем от чтения "чистеньких" хэдеров.

Цитата Сообщение от ct0r Посмотреть сообщение
но какое отношение он имеет к той моей фразе?
красноречивый пример-иллюстрация момента:

комменты нужны только на этапе освоения нового материала.
а дальше они раздражают,
перенасыщая текст избыточной информацией.

тут я конечно могу ошибаться,
но вроде бы даже доксиген позволяет вынести
весь этот хлам в конец файла,
что бы лишний раз перед глазами не маячили.

однако обычно, их пишут по месту прототипов в хедерах.

Цитата Сообщение от ct0r Посмотреть сообщение
Однако речь была не о TDD, а о юнит-тестах.
юнит-тесты в сферическом вакууме?

это ж продукт TDD.
мне как то сложно представить себе процесс написания тестов в отрыве от TDD.

Цитата Сообщение от ct0r Посмотреть сообщение
Не иллюстрировать использование, а построить дизайн, опираясь на возможные использования.
вот что бы построить годный дизайн,
и не переписывать его потом по 10 раз,
сначала пишут тесты,
суть которых - илллюстрация того,
как используется механизм.

написание таких тестов прочищает мозг:
они заставляют ответить на вопрос:
чего мы вообще хотим получить?
как мы хотим это использовать?

в результате получается годный дизайн.

в этом смысле цель самой методики - дизайн.
но достигается эта цель за счет написание тестов,
цель которых - иллюстрировать использование.

не зная, как вы хотите использовать ЧЕВОТО,
вы не сможете выработать годный дизайн.

причина, и следствие.

понимаете?

по этой причине,
грамотные юнит-тесты можно рассматривать,
как альтернативу документации.

возник вопрос по библиотеке?
откройте тесты, и гляньте примеры,
как это сделано там.

Цитата Сообщение от ct0r Посмотреть сообщение
Так я об этом и говорил.
только вы почему то забыли при этом,
что шаблоны значительно повышают сложность конструкций.
а вперемешку с макросами,
и вовсе превращаются в кашу для среднего программиста.

под среднем программистом я подразумеваю человека с опытом.

вот эти вот понты "да я за 5 секунд распарсил" - мне например,
совершенно не интересны.

я прекрасно знаю, что сама по себе техника SFINAE - тот ещё изврат.
без спец подготовки, может запросто вбить в ступор.
а вперемешку с рекурсивными шаблонами,
да густо помазанное макросами - окончательно делает код неочевидным.

на работе человек не должен тратить время
на осознание художеств его коллег.

если с ходу что-то не понятно - читаем комментарий(документацию/тесты),
и сразу используем.

осиляторством заниматься - только в не рабочее время.
0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
11.02.2016, 11:28
Цитата Сообщение от hoggy Посмотреть сообщение
большая часть либ идет либо вообще без документации
(и без комментов, что характеризует).
Ну это не отсутствие возможности, а отсутствие желания.

Цитата Сообщение от hoggy Посмотреть сообщение
а дальше они раздражают,
перенасыщая текст избыточной информацией.
Кто-то любит большие красные помидоры, а кто-то нет!

Цитата Сообщение от hoggy Посмотреть сообщение
это ж продукт TDD.
мне как то сложно представить себе процесс написания тестов в отрыве от TDD.
Все просто. Есть код, он покрывается тестами. Что, не было никогда такого?

Цитата Сообщение от hoggy Посмотреть сообщение
вот что бы построить годный дизайн,
и не переписывать его потом по 10 раз,
сначала пишут тесты,
суть которых - илллюстрация того,
как используется механизм.
Как ты хитроумно завернул предложение. Так суть - иллюстрация или построение годного дизайна? Это разные вещи. Вот заюзал я TDD, а потом удалил все тесты. Если суть - дизайн, то TDD не прошло бесполезно. Если же иллюстрация - время было потрачено зря. Собственно, вопрос риторический.

Цитата Сообщение от hoggy Посмотреть сообщение
вот эти вот понты "да я за 5 секунд распарсил" - мне например,
совершенно не интересны.
Тебя чем-то задели 5 секунд? Ну так это правда - на каждый макрос мне хватило 5 секунд

Цитата Сообщение от hoggy Посмотреть сообщение
я прекрасно знаю, что сама по себе техника SFINAE - тот ещё изврат.
Как и плюсы


Цитата Сообщение от hoggy Посмотреть сообщение
осиляторством заниматься - только в не рабочее время.
Действительно. Зачем разбираться в коде крутых чуваков и повышать скилл? Ведь некогда точить пилу, надо пилить! Дядя-надсмотрщик ждет
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
11.02.2016, 13:16
Цитата Сообщение от ct0r Посмотреть сообщение
Кто-то любит большие красные помидоры, а кто-то нет!
избыток информации - не есть дело вкуса.

делом вкуса это было бы, если бы была волшебная палочка,
способная скрывать или показывать её.

Цитата Сообщение от ct0r Посмотреть сообщение
Есть код, он покрывается тестами. Что, не было никогда такого?
всегда считал, что это - ущербный подход неосиляторов TDD.
которые будут страдать и отгребать по полной,
тщетно пытаясь покыть тестами механизмы задним числом.

Цитата Сообщение от ct0r Посмотреть сообщение
Так суть - иллюстрация или построение годного дизайна?
суть разработка годного дизайна механизма,
путем иллюстрирования собственных хотелок,
на практических примерах использования.

делается это до написания реализации механизма,
по двум причинам:
1.
невозможно сразу взять, и написать реализацию того,
сам ещё не знаю чего.

2.
тесты, как примеры-иллюстрации позволяют
с минимальными затратами ресурсов и времени,
понять проблемную область,
и найти ответ на вопрос:
"что я вообще пытаюсь построить?"

вообще, по большому счету,
заслуга TDD лишь в том,
что оно формализует этапы разработки.
фиксируя результаты (их можно контролировать не опасаясь регрессии)

но ответы на вопросы дизайна так или иначе
неизбежно будут вставать перед разработчиком в любом случае.
не важно, использует он тестирование, или нет.

вопрос лишь в том, сколько раз ему придется переписать код заново,
пока до него допрет, какую задачу на самом деле ему нужно решить.

юнит-тесты, как примеры-иллюстрации,
сводят подобные издержки производства к минимуму.

Цитата Сообщение от ct0r Посмотреть сообщение
Тебя чем-то задели 5 секунд?
один человек говорит:
тривиально. распарсил все за 5 секунд.

второй человек говорит:
я вообще не понял про что здесь.
и мне ссыкотно держать у себя в коде то,
что я не понимаю.

несколько озадачивает,
когда умный человек ровняет всех по себе,
не осознавая, что код один раз пишут,
а потом много-много раз читают
самые разные люди

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

а в рассчете на самых разных людей.
многие из которых могут быть куда как более скромными
в своих способностях.

Цитата Сообщение от ct0r Посмотреть сообщение
Как и плюсы
несколько забавно смотрятся подобного рода наезды на плюсы.
с учетом того, что бизнес уже давно расставил все по своим местам.

Цитата Сообщение от ct0r Посмотреть сообщение
Зачем разбираться в коде крутых чуваков и повышать скилл? Ведь некогда точить пилу, надо пилить! Дядя-надсмотрщик ждет
повышение квалификации - личные трудности "чувака".

бизнес не заинтересован оплачивать обучение "чуваков",
которые чутка прорастают,
и сваливают в другие компании.

в нашей компании при жалении можно за счет конторы
преобрести любую профессиональную литературу.

но читать эти книги придется дома,
а на работе нужно работать
правда это не мешает мне на форумах трындеть, но это мы оставим за кадром, ага
0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
11.02.2016, 14:10
Цитата Сообщение от hoggy Посмотреть сообщение
всегда считал, что это - ущербный подход неосиляторов TDD.
которые будут страдать и отгребать по полной,
тщетно пытаясь покыть тестами механизмы задним числом.
Это уже другой вопрос. Факт в том, что юнит-тесты могут спокойно появиться там, где и не слышали про какую-то там TDD.

Цитата Сообщение от hoggy Посмотреть сообщение
суть разработка годного дизайна механизма,
путем иллюстрирования собственных хотелок,
на практических примерах использования.
Во! То есть суть - годный дизайн. А иллюстрация - лишь путь к нему. Документирование идет бонусом.

Цитата Сообщение от hoggy Посмотреть сообщение
самые разные люди
Так я про то и говорил - от уровня команды зависит.

Цитата Сообщение от hoggy Посмотреть сообщение
с учетом того, что бизнес уже давно расставил все по своим местам.
Естественно расставил - остались только ниши, где важна скорость. Теперь это язык, который берется по необходимости.

Цитата Сообщение от hoggy Посмотреть сообщение
бизнес не заинтересован оплачивать обучение "чуваков",
которые чутка прорастают,
и сваливают в другие компании.
Откуда такие сведения? Да и если часто сваливают - это звоночек, что что-то не так в королевстве.
Если работают хорошие спецы, увлеченные разработкой, то они не будет все время делать работу, которая не растит их скилл. Они уйдут. Останется только бездушный планктон.
Да и вообще я - не бизнес. А какое дело бизнесу до того, что я потратил несколько часов на повышение своей квалификации, если я решил свою задачу в срок?

Добавлено через 1 минуту
Цитата Сообщение от hoggy Посмотреть сообщение
в нашей компании при жалении можно за счет конторы
преобрести любую профессиональную литературу.
Сколько народу кстати этим пользуется?
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
11.02.2016, 19:12
Цитата Сообщение от ct0r Посмотреть сообщение
Это уже другой вопрос. Факт в том, что юнит-тесты могут спокойно появиться там, где и не слышали про какую-то там TDD.
основная цель молотка - забивать гвозди.
основная цель юнит-тестов - иллюстрировать дизайн.

факт в том, что не все умеют работать молотком.
и не все умеют работать с юнит-тестами.
однако, мне не очень интересны ни первые, ни вторые.

Цитата Сообщение от ct0r Посмотреть сообщение
То есть суть - годный дизайн. А иллюстрация - лишь путь к нему. Документирование идет бонусом.
разумеется.
однако эти бонусы стоят того,
что бы по окончанию работы не сливать их в унитаз.

можно вместо документации использовать, например.

Цитата Сообщение от ct0r Посмотреть сообщение
Так я про то и говорил - от уровня команды зависит.
нет, не зависит.

комментарий пишется из расчета что его будут читать люди.
разные люди, а не только члены команды.

Цитата Сообщение от ct0r Посмотреть сообщение
Естественно расставил - остались только ниши, где важна скорость. Теперь это язык, который берется по необходимости.
любой язык берется по необходимости.
это - не интересно.

интерес представляет тот фактор,
что язык по прежнему устойчиво держится в топе.
а это значит, что такой хороший парень, как я,
всегда сможет прокормить им свою семью.
хватит и на хлеб, и на масло.
ещё и на медок останется.

а в свободное время можно подтянуть другие промышленные языки.
я вот в метро пока с работы еду, жаву почитываю.

Цитата Сообщение от ct0r Посмотреть сообщение
Откуда такие сведения?
опыт общения с руководством.

Цитата Сообщение от ct0r Посмотреть сообщение
если часто сваливают - это звоночек, что что-то не так в королевстве.
ну во-первых про "часто" пока речь не заходила.
а во-вторых, существует такое заблуждение,
якобы текучка - это зло.

на самом деле все хорошо в миру.
Цитата Сообщение от ct0r Посмотреть сообщение
Если работают хорошие спецы, увлеченные разработкой, то они не будет все время делать работу, которая не растит их скилл.
проблемы индейцев.

Цитата Сообщение от ct0r Посмотреть сообщение
Останется только бездушный планктон.
ну дык, это ж признак стабильной процветающей компании.

Цитата Сообщение от ct0r Посмотреть сообщение
А какое дело бизнесу до того, что я потратил несколько часов на повышение своей квалификации, если я решил свою задачу в срок?
бизнес заинтересован в том,
что бы вы повышали свою квалификацию.
разумеется не в ущерб дисциплине.
Цитата Сообщение от ct0r Посмотреть сообщение
Сколько народу кстати этим пользуется?
да откуда ж я знаю...
мне даже в голову не приходило такие вопросы задавать.
0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
12.02.2016, 00:24
Цитата Сообщение от hoggy Посмотреть сообщение
разные люди, а не только члены команды.
Особенно уборщица баба Маша. Не забудь ей в комментах каждую строчку объяснить

Цитата Сообщение от hoggy Посмотреть сообщение
любой язык берется по необходимости.
Я хочу сказать, что когда высокая производительность не критична, то выбор между С++ и хорошим языком очевиден.

Цитата Сообщение от hoggy Посмотреть сообщение
интерес представляет тот фактор,
что язык по прежнему устойчиво держится в топе.
а это значит, что такой хороший парень, как я,
всегда сможет прокормить им свою семью.
хватит и на хлеб, и на масло.
ещё и на медок останется.
а в свободное время можно подтянуть другие промышленные языки.
я вот в метро пока с работы еду, жаву почитываю.
Ну вот видишь, у нас разные интересы. Тебе интересно поучить очередной неинтересный (для меня) и клонированный язык, потому что он в топе и за него платят.

Цитата Сообщение от hoggy Посмотреть сообщение
опыт общения с руководством.
Есть подозрение, что лапшу навешали.

Цитата Сообщение от hoggy Посмотреть сообщение
проблемы индейцев.
Цитата Сообщение от hoggy Посмотреть сообщение
ну дык, это ж признак стабильной процветающей компании.
Это какая-то новая форма мазохизма - смотреть так на себя со стороны работодателя?

Цитата Сообщение от hoggy Посмотреть сообщение
бизнес заинтересован в том,
что бы вы повышали свою квалификацию.
разумеется не в ущерб дисциплине.
Вот пусть и платят рабочими часами. При условии, что соблюдаются жесткие дедлайны.

Цитата Сообщение от hoggy Посмотреть сообщение
да откуда ж я знаю...
мне даже в голову не приходило такие вопросы задавать.
Если б оно было, то была бы общая библиотека, и ты был бы в курсе ее существования. Ну то есть на словах все хорошо, а до дела не доходит. Все как обычно.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
12.02.2016, 01:09
Цитата Сообщение от ct0r Посмотреть сообщение
Я хочу сказать, что когда высокая производительность не критична, то выбор между С++ и хорошим языком очевиден.
когда я писал "бизнес все расставил по своим местам",
то и имел ввиду некую капитанскую очевидность.
все прочие определения "хорошего языка" - не более,
чем влажные фантазии отдельных индивидуумов.

Цитата Сообщение от ct0r Посмотреть сообщение
Ну вот видишь, у нас разные интересы. Тебе интересно поучить очередной неинтересный (для меня) и клонированный язык, потому что он в топе и за него платят.
наши с вами персональные интересы - монопенисуальный фактор в контексте беседы.
Цитата Сообщение от ct0r Посмотреть сообщение
Есть подозрение, что лапшу навешали.
есть банальный здравый смысл.
Цитата Сообщение от ct0r Посмотреть сообщение
Это какая-то новая форма мазохизма - смотреть так на себя со стороны работодателя?
это такая способность смотреть на вещи с разных точек зрения.
Цитата Сообщение от ct0r Посмотреть сообщение
Вот пусть и платят рабочими часами. При условии, что соблюдаются жесткие дедлайны.
это вы своему руководству предложите.
мне это не интересно.

Цитата Сообщение от ct0r Посмотреть сообщение
Если б оно было, то была бы общая библиотека, и ты был бы в курсе ее существования.
библиотека есть.
там кстати весь джентельменский набор всяких авторов.
взял недавно по базам данных, мне ребята говорят - пусть её, она старая возьми лучше вот эту...

а вообще, там не только по плюсам.
я вот себе по жаве прихватизировал.
пока в метро домой еду - почитываю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2016, 01:09

Насколько важно перезагружать ПК после установки программ?
Помнится, ещё с Windows 95 все айтишники перезагружали комп после установки программы/драйвера. И мне ещё тогда говорили, что так нужно...

Важно: Насколько просядет посещаемость!
Всем привет. Вообщем мне нужны деньги :) . Подскажите, пожалуйста! Имею сайт СДЛ. Тиц 20 PR 4 Планирую продавать с него ссылки по...

Насколько важно разбавлять анкоры
Подскажите, пожалуйста, насколько важно разбавлять анкоры (т.е. чтоб они не повторяли друг друга) под высокочастотные (одновременно...

Насколько важно знание математики в программировании?
хватит ли уровень математике на базе 11 классов чтобы свободно програмировать на php javascript или еще дискретная нужна ?

Насколько важно количество внешних ссылок?
Если проверить мой сайт http://unique-travel.ru/ на сервисе http://www.linkexchanger.ru/tools/link_extractor.php он считает внешними...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
56
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru