Нормальный ли у меня код?

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

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

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

Быстрый по скорости и компактный по данным. Другими словами, код должен быть нормальной вычислительной и пространственной сложности. Тут помогают и интуитивные представления (что-то тормозит), и теория вычислительной сложности (О-нотация). Если вы сортируете записи за O(n^3) и требуете O(n^5) оперативной памяти, то вы делаете что-то не так.

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

Если, конечно, не горят сроки

Лига программистов

2.2K постов12K подписчик

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

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

2
Автор поста оценил этот комментарий

Ты там рассуждаешь о компактости и скорости. Ассемблер-то нюхал хоть? Или очередной питонщик сраный?

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

Зачем в современном мире писать на ассемблере, если есть Си? В среднем компилятор выдаёт куда более оптимизированный код, чем средний разработчик на ассемблере. Ну или по вкусу Golang, C++, C#, Java, etc

Я питонист, где надо быстро - есть куча оптимизаций на питоне, вплоть до разработки библиотек на чистом Си. Но, в среднем, это не очень востребовано. Что и логично - оптимизировать нужно "бутылочное горлышко", которое относительно небольшое

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

показать ответы
Автор поста оценил этот комментарий

С чего бы посты - реклама?

Потому что цель - подписка на тг-канал.

Посты - просто ниочём.

"Утром надо чистить зубы. Если нее чистить зубы - будет кариес. Хочешь узнать больше ценных советов - подписывайся на тг-канал".

"После того как сходил по-большому - надо вытирать задницу туалетной бумагой. Если задницу не вытирать - будете вонять. Хочешь узнать больше ценных советов - подписывайся на тг-канал"
"Перед едой надо мыть руки. Если руки не мыть - можно получить дизентерию. Хочешь узнать больше ценных советов - подписывайся на тг-канал".


Тоже ведь просветительская деятельность, правда? И советы в общем-то ценные.
Проблема в том, что они общеизвестны, а значит нахрен никому не нужны. А те, кто этих советов не знает - не сидит на Пикабу, аудитория не та.

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

Уберите рекламу - все вопросы к вам отпадут.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Спасибо за развёрнутый ответ, но со смыслом согласиться не могу. Это репост старого поста https://t.me/devfm/108

Если пост нравится, то и в канале будет интересно читать посты. Я не завышаю ожидания, а показываю пример материала из канальчика. На текущий момент у исходного поста в канале 630 просмотров и 13 позитивных реакций, ни одной негативной. То есть, несмотря на тривиальность и общеизвестность, людям понравилось

Идём дальше, пост вышел одновременно и на хабре https://habr.com/ru/posts/897856/ . Там 8.6к просмотров, 4 голоса "за", 0 голосов против, и 3 сохранёнки. Супер

Идём ещё дальше. Предложение прочитать канал уже в комментарии убрано, лол. Не хочется - не переходите. То есть даже в ленте вы ссылку на ТГ не увидите, нужно зайти в пост. Чем это мешает?

Смысл рекламы то простой. Я, очевидно, хочу, чтобы меня читали. Значительно приятнее, когда тебя читает больше людей, чем меньше. Так можно найти больше полезных мыслей в обсуждении, как минимум. Например ещё, мой бесплатный курс на степике https://stepik.org/course/169291/promo не набрал бы 2к студентов, а был бы пустым опубликованным курсом. Собственно, вы предлагаете мне создавать материалы, чтобы они лежали никому не известные с тремя просмотрами. Спасибо, воздержусь от такой прекрасной возможности

0
Автор поста оценил этот комментарий

как оценить "нормальность" кода.

Нормальность, норма - мера пропорциональная, а не качественная. См. нормальное распределение в математике. Грубо говоря: "Как у большинства", а не: "Хорошо, качественно".

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Идея интересная, но по определению Ожегова норма это "Узаконенное установление, признанный обязательным порядок, строй чего-н". То есть "признанный порядок", что не равно "большая часть кода такая". Норма как своего рода эталон, устраивающий большинство

Для кода я трактую это так: если я код покажу 10 разрабочикам, и спрошу, нормальный ли это код, то 7 из 10 ответят "да". Тогда код нормальный. При этом сами разработчики могут писать не нормальный код, это с оценкой моего кода имеет довольно слабую связь

показать ответы
1
Автор поста оценил этот комментарий

Всё бы ничего, но все ваши посты - это реклама вашего тгк.

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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

В конце поста (а в этом посте вообще в комментарии) есть ссылка на ТГ. Если она вам мешает, не переходите, делов то. В чём проблема ссылки на ТГ, где именно такого формата посты и выходят?

показать ответы
0
Автор поста оценил этот комментарий

А что, вашим джунам действительно нужно объяснять, что такое хороший код?
Они не знают, что код для начала должен быть рабочим, хорошо бы, чтобы был оптимальным и совсем прекрасно, чтобы был читаемым?

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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я преимущественно учу студентов. Если они к моменту выхода на работу понимают эту базу, то я свою работу делаю замечательно)

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

показать ответы
4
Автор поста оценил этот комментарий

Для ЛЛ: нормально пишите, ненормально не пишите, вот вам тгк

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Так конкретные критерии, на что смотреть. Вы джунов учите? Как им объясняете, что есть хороший код?

показать ответы
6
Автор поста оценил этот комментарий

Для ЛЛ: gpt генерация, идите дальше

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Это репост публикации 22 года, какой GPT... Пересматриваю старые наработки, которые хотел бы обсудить с сообществом
https://t.me/devfm/108

1
Автор поста оценил этот комментарий

Пшел нахуй. Вместе со своей телегой. Прыщи сперва выведи.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Действительно. Давайте на пикабу оставим только репосты боянов, к чёрту авторские посты

показать ответы
Автор поста оценил этот комментарий

Приглашаю вас почитать и обсудить разное в моём ТГ-канале:
— Markwhen — инструмент для построения роадмапов https://t.me/devfm/559

— Подкаст про Роли в ИТ-проекте https://t.me/devfm/538

— Подборка материалов про архитектуру (зачем нужны архитектурные схемы, как их документировать, какие инструменты использовать) https://t.me/devfm/557

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества