Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в шутку, и серьёзно. Как бы глупо ни смотрелся вредный совет, он не выдуман, а подсмотрен в реальном мире программирования.
Рубрика «код»
60 антипаттернов для С++ программиста, часть 4 (совет 16 — 20)
2023-06-12 в 10:22, admin, рубрики: C, c++, code review, qa, Блог компании PVS-Studio, вредные советы, качество кода, книга, код, обзор кода, Программирование, программисты, программисты шутят, Совершенный код, юморБорьба за человекочитаемость кода: опыт Хабра
2023-02-10 в 12:42, admin, рубрики: Блог компании Хабр, код, Программирование, Проектирование и рефакторинг, рефакторинг, Совершенный код, хабр, чистый код
Идеей о том, что нужно писать человекочитаемый код, уже никому Америку не откроешь. О том, как это стратегически важно для бизнеса и почему так полезно для разработчиков, написано много. Все, плюс-минус, это понимают, но контексты бывают разные, и каждый по-своему переносит это в свой опыт.
5 лайфхаков Python, которые сделают ваш код более читабельным и элегантным
2023-02-04 в 7:22, admin, рубрики: python, python3, Алгоритмы, искусственный интеллект, код, лайфхак, машинное обучение, ПрограммированиеПривет! В этой статье я продемонстрирую 5 трюков Python на понятных для новичков примерах, которые помогут вам писать более элегантный Python код в вашей повседневной работе.

1. Избегайте вложенных циклов с помощью product
Неблокирующая обработка тактовой кнопки для Arduino. Как использовать прерывание таймера «в два клика» в стиле ардуино
2022-12-14 в 8:10, admin, рубрики: arduino, isis proteus, Proteus, timeweb_статьи, байт, Блог компании Timeweb Cloud, гайд, кнопка, код, микроконтроллеры, Программирование, программирование микроконтроллеров, Разработка под Arduino, Си, схема, электроника, Электроника для начинающих
В своей прошлой статье я писал про блокирующие способы обработки кнопки. Реакция была, наверное, больше положительная, чем отрицательная. Хотя минусов мне поднасовали… Но, тем не менее, я решил продолжить. И в этой статье я хочу поделиться с вами своим опытом по неблокирующей обработке кнопок на Arduino. Напишем несложную библиотеку в стиле Си. Но, боюсь, что закрыть свой гештальт этой статьей тоже не получится…
Чтобы сохранить общую концепцию, пришлось разобраться с обработкой прерываний таймеров-счетчиков в стиле Arduino. Если вы не сталкивались с этим, и работаете напрямую с регистрами, рекомендую посмотреть, как это выглядит. HAL-драйвер для STM32 в этом плане нервно курит в сторонке.
Заранее предупреждаю, что материал рассчитан для начинающих. Но комментарии от бывалых программистов микроконтроллеров только приветствуются. Читать полностью »
Блокирующая обработка тактовой кнопки для Arduino. Настолько полный гайд, что ты устанешь его читать
2022-12-02 в 8:15, admin, рубрики: arduino, GND, isis proteus, Proteus, timeweb_статьи, байт, Блог компании Timeweb Cloud, гайд, кнопка, код, микроконтроллеры, Программирование, программирование микроконтроллеров, Разработка под Arduino, Си, схема, электроника, Электроника для начинающих
В одной из своих прошлых статей я писал про подключение тактовой тактильной кнопки. И, казалось бы, такой простой вопрос, вызвал «бурю» в комментариях. Публика разделилась на два лагеря: на тех, кто все знает, но обычно молчит; и тех, кто не знает, и стесняется спросить. А я так и не понял, к какому лагерю отношусь!
Поиски в интернете по запросу «программирование кнопки для Arduino» выдает весьма противоречивый контент. Где-то код очень крутой, но из-за скудного описания не понятный. А где-то код очень простой, и от того не понятно, что с ним можно делать.
В общем, так бывает достаточно часто, когда простые (может даже и примитивные) задачи на просторах интернетов освещены поверхностно. И это вполне закономерно. Те, кто только начинает что-то изучать, с радостью делятся новыми знаниями. Кем-то движет гордость за свои достижения, а у кого-то просто язык чешется. Но как только человек поднаторел в вопросе, груз профессионализма не позволяет ему писать про такие мелочи. Или нет на это свободного времени, или приходит чувство самодостаточности.
Вот я и решил собраться с мыслями и обобщить свой опыт программирования обработчика кнопки для Arduino. Если вам интересно пополнить/проверить свои знания в данном вопросе, ну или проверить мои знания, то приглашаю под кат.
Дисклеймер. Текст рассчитан на публику, которая только начинает познавать азы программирования контроллеров Arduino. Запрещено к просмотру людям с ослабленной психикой или психикой с долголетней инженерной выдержкой и беременным женщинам (это так, на всякий случай, а то мало ли… британские ученые пока до исследований на эту тему не добрались). Материал предназначен исключительно для просмотра лицам, не достигшим 21 года.Читать полностью »
Пишем собственную тему для Visual Studio Code
2022-11-28 в 14:00, admin, рубрики: IDE, visual studio code, vs code, дополнения, код, оформление, плагины, Программирование, расширения, редактор кода, темаЕсли зайти в магазин дополнений Visual Studio Code, то можно заметить огромное количество совершенно разных тем и оформлений. Во всем этом обилии наверняка найдётся что-то подходящее. Но если ничего не нашлось или просто хочется реализовать свою идею, то всегда можно сделать собственную тему. Готовый проект можно не только установить локально, но и опубликовать в магазине дополнений Visual Studio Code.
В этой статье пройдемся по полному циклу создания собственной темы для VS Code, познакомимся с полезными инструментами, которые упростят работу, и опубликуем готовую тему в Visual Studio Code.
Добавляйте единицы измерения в имена
2022-05-31 в 13:22, admin, рубрики: java, python, Блог компании Билайн Бизнес, единицы измерения, код, Программирование, Совершенный код, читаемость кода
Есть одна ловушка читаемости кода, которой легко избежать, если вы о ней знаете; тем не менее она встречается постоянно: это отсутствующие единицы измерения. Рассмотрим три фрагмента кода на Python, Java и Haskell:
time.sleep(300)
Thread.sleep(300)
threadDelay 300
Сколько «спят» эти программы? Программа на Python выполняет задержку на пять минут, программа на Java — на 0,3 секунды, а программа на Haskell — на 0,3 миллисекунды.
Как это можно понять из кода? А никак. Вам просто нужно знать, что аргументом time.sleep
являются секунды, а threadDelay
— микросекунды. Если вы часто ищете эту информацию, то рано или поздно её запомните, но как сохранить читаемость кода для людей, никогда не встречавшихся с time.sleep
?
Читать полностью »
Способы переписать логические параметры в С++
2022-03-05 в 14:00, admin, рубрики: c++, Cpp, IT-стандарты, skillfactory, Блог компании SkillFactory, код, Программирование, С++, с++17, С++20, с++23, Совершенный код, структуры, читабельность
Программисты читают код намного чаще, чем пишут его, поэтому важно писать понятный, последовательный, однозначный код. Автор книги С++17 in detail написал о способах избегать путаницы. Делимся его материалом к старту курса по разработке на С++.
Что делать, если в твоем тексте или коде нашли ошибку?
2022-02-26 в 12:10, admin, рубрики: код, Программирование, разработка, текст, управление проектами, управление разработкой
Ситуация глазами разработчика
Ты написал код, отправил его на ревью. Во время ревью тебе указали на ошибку в коде и вернули задачу на доработку.
Здесь мы не рассматриваем ошибки в бизнес-логике написанного кода — только ошибки на уровне интерпретатора/компилятора, из-за которых приложение «падает».
Чего НЕ нужно делатьЧитать полностью »
Code Review. 80 lvl
2021-12-04 в 7:43, admin, рубрики: code review, java, код, практика программирования, Программирование, Совершенный код, управление разработкой, чистый код, эффективностьЛюбой программный продукт, будь то веб-сайт или мобильное приложение, основан на коде. Чем согласованнее и целостнее эта база, тем удобнее с ней будет работать, например, при необходимости доработки проекта, передачи на сопровождение другой команде.
Основными критериями качественного кода являются следующие: простота восприятия, гибкость для модификаций, возможность обновления, понятность, тестируемостьЧитать полностью »