Ты прав, оба кода читаемы, но второй пример значительно более чистый и стандартизированный. В программировании важно не только, чтобы код работал, но и чтобы он был понятен другим разработчикам и легко поддерживался в будущем. В данном случае, второй код имеет несколько улучшений, связанных с форматированием и стилем, что делает его лучше с точки зрения лучших практик разработки на C++.
Давай разберём это более подробно и посмотрим, как писать читабельный и профессиональный код на C++:
1. Форматирование:
Отступы — во втором примере ты используешь 4 пробела для отступов (это индустриальный стандарт), что делает структуру программы более понятной. Первый пример не использует отступы внутри блока кода, что делает его менее читабельным.
Пробелы после include — во втором примере добавлены пробелы между директивами #include, что визуально разделяет их и облегчает чтение.
2. Чистый код:
Пробелы вокруг операторов. В первом примере есть слипания, например, std::cout<<"O-B-1, что усложняет восприятие кода. Во втором примере — корректно добавлены пробелы перед и после оператора <<: std::cout << "O-B-1 >> Привет! Как тебя зовут?".
Лишние строки. Во втором примере у тебя есть пустые строки между разными логическими блоками, что помогает лучше структурировать код. Первый пример кажется слитым и менее структурированным.
3. Читаемость:
Читаемость важнее краткости. Код должен быть написан так, чтобы его легко было читать и понимать. Это не означает, что его надо удлинять искусственно, но логические части кода стоит отделять.
Во втором примере добавлены запятые в строках, что делает текст сообщения более естественным:
Первый пример: Приятно познакомиться input!
Второй пример: Приятно познакомиться, input!
4. PEP8 для C++?
PEP8 — это стандарт для Python, но для C++ есть аналогичные рекомендации, такие как Google C++ Style Guide или LLVM Coding Standards. Вот несколько правил для чистого и профессионального кода на C++:
Отступы. Используй 4 пробела для отступов. Никогда не используй табуляцию (табулятор может отображаться по-разному на разных системах).
Пробелы:
Пробелы перед и после операторов: =, +, <<, >> и других.
Пробелы после запятых и точек с запятой.
Пробел после if, for, while, перед открывающей скобкой: if (condition).
Не ставь лишние пробелы перед закрывающими скобками: return 0; (нет пробела перед
.
5. Избегай длинных блоков кода:
Логику внутри блока можно разделить на меньшие функции, что облегчает чтение и повторное использование кода.
Например, ввод имени можно вынести в отдельную функцию.
6. Заменяем циклы и if/else:
Иногда циклы и условия можно упростить с помощью других методов, но в твоём примере это пока не нужно — в коде нет явных циклов или сложных условий.
#include
#include
#ifdef _WIN32
#include
#endif
void setConsoleCP() {
#ifdef _WIN32
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
#endif
}
std::string getUserName() {
std::cout