Другие языки программирования и технологии

как научиться писать хороший код? В смысле я даже не понимаю что такое хороший код. Что такое хороший код?

во всех книгах о правильном коде описывают синтаксис, и как сделать код понятный человеку.
Я знаю С, С++, asm (nasm) прорешал множество алгоритмов. Завел себе текстовый документ со всеми алгоритмами более 3000 строк. (Единственное не осилил Кнута). Но попрежнму не понял что такое хороший код. Есть сайт где показывают "говнокоды" там понятно что такое плохой, но что такое хороший я не понимаю. Я не понимаю когда я достигну того уровня когда можно будет устраиваться на работу. Может быть, что нибудь посоветуете. Неделю назад я думал, что я бог, а сейчас я думаю что я ничего не понимаю
Изучайте программную инженерию.
Василий Сентябов
Василий Сентябов
58 228
Лучший ответ
По мне, хороший, это безопасный и с прозрачным интерфейсом
Если ты знаешь c++ значит всё Ок ...
Valeryan Krasheninikov
Valeryan Krasheninikov
62 705
Зря не осилили Кнута. У него код хороший :-)

Есть литература, посвященная этому вопросу. Так с ходу, на ум приходит только Макконел "Совершенный код".

Вообще тема очень большая, в двух словах не охватишь. Но, если попытаться, то вот признаки хорошего кода:
1) он работает
2) код надежен - т. е. данные проверяются, все мыслимые ошибочные ситуации анализируются и предпринимаются адекватные меры, для немыслимых ошибок предусмотрены обработчики и т. п.
3) код строится на прочной теоретической основе - например, математической модели или теоретически обоснованных алгоритмах, общеизвестных шаблонах.
4) код понятен не только автору (этому способствует наличие стиля, использование комментариев и прозрачных решений, хорошая документация).
5) минимум избыточности
6) качественная структура (разделение программы на модули, классы, функции и т. п., отделение данных от программы, минимизация зависимостей между модулями, функциональное деление - данные отдельно, бизнес-логика отдельно, интерфейсы отдельно и т. д.)
7) оптимальная производительность

"ничего не понимаю" - это нормальное состояние при постоянном движении вперед, а в программировании иначе нельзя.

"Я школяр в этом лучшем из лучших миров
Труд мой тяжек, учитель уж больно суров
До седин я у жизни хожу в подмастерьях
Все еще не зачислен в разряд мастеров" (Омар Хайам) :-)
Виталий Зябкин
Виталий Зябкин
73 674
"Если ты знаешь c++ значит всё Ок" - ну тогда можно такую кашу заварить, что и будет не хороший код.
На работе тоже говнокод могут заставить писать, просто потому, что сегодня сказали одно, завтра другое... а переделывать уже нету времени, потому костыль этому коду и побежали дальше. Вот потом такой инвалид и валит всю систему.
Я не работаю программистом... хотя у нас тоже были свои заморочки и комменты как писать и что код должен быть обозрим на мониторе и в крайнем случае на два листа.
Но на практике бывало разное.
Покажи свой код на си, я скажу на сколько он похож по моим требованиям хорошего кода.
на работу никогда не будешь готов, всегда придётся учится новому.
в университете работать не учат, готовят учиться.
а хороший код это дело опыта. все учатся на ошибках.
Для меня лично критерий хорошего кода это:
1. Понятное наименование переменных и функций
2. Обильное сопровождение кода комментариями, особенно, когда дело касается сложных расчетов с кучей ветвлений\циклов.
3. Выбор правильных алгоритмов, структур данных для решения задачи.
4. Повторное использование кода, хотя иногда можно и избегать для наглядности.
Рома Глухов
Рома Глухов
8 452