Рубрика «Совершенный код» - 3
Holy C++
2022-06-19 в 17:10, admin, рубрики: c++, C++20, ненормальное программирование, Совершенный кодВ этой статье постараюсь затронуть все вещи, которые можно без зазрения совести выкинуть из С++ не потеряв ничего(кроме боли), уменьшить стандарт, нагрузку на создателей компиляторов, студентов изучающих язык и мемосоздавательный потенциал громадности С++
В первую очередь хочется убрать из языка то, что приводит к частым ошибкам и мешает развитию языка, тут идеальным кандидатом можно назвать
1 - union - сумм тип из 70х, в С идея хранения одного типа из нескольких в одном участке памяти выглядит неплохо и сейчас, ведь там все типы это набор байт с заданным размером.
Добавляйте единицы измерения в имена
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-05-29 в 11:14, admin, рубрики: antipattern, antipatterns, c++, use functions luke!, антипаттерны, ВычисляторЗначения, ооп, Программирование, Проектирование и рефакторинг, рефакторинг, Совершенный кодДля тех, кто читает не далее второго абзаца: я не говорю, что любое ООП - это плохо! ООП, особенно классическое полиморфное ООП, заслуженно имеет своё место в реальных проектах. Ниже речь поидёт про частный случай (анти)паттерна, который я периодически встречаю: использование классов там, где могли быть простые свободные функции.
Начало
Довольно часто у студентов, изучающих C++ в определённых учебных кругах, складывается мировоззрение о том, что всё должно быть объектами. Попросите их написать программу, которая считает некоторое значение - и они начнут с создания объекта ValueComputer
и метода vc.computeResult()Читать полностью »
SOLID – это не правила, а гайдлайны
2022-05-02 в 9:26, admin, рубрики: C#, di, KISS, solid, YAGNI, Блог компании Издательский дом «Питер», интерфейсы, ооп, Программирование, Проектирование и рефакторинг, Совершенный код, чистый кодВ этой статье автор высказывает личное мнение, сформулированное на основе его собственного опыта и вкуса. Поэтому просьба не обижаться, если вы с ним не согласны. Конечно, оно может быть ошибочным – но это и стоит обсудить.
Что такое SOLID ?
Как разработчику перестать быть потребителем технологий
2022-04-16 в 14:15, admin, рубрики: Блог компании Sportmaster Lab, идеальный код, Карьера в IT-индустрии, потребление, Программирование, разработка, самосовершенствование, Совершенный код, технологииЗа последние несколько лет, в процессе работы и общения со множеством разработчиков, я заметила часто повторяющийся паттерн. Он меня сильно беспокоил и я продолжала о нём думать и говорить, пытаться найти понимание или даже оправдание ему.
Почему ты выбрал такой подход к решению?
- Не знаю. Прочитал в какой-то статье.
- Не знаю. Скопипастил его из X.
- Не знаю. Такой же подход я использовал в предыдущем проекте.
- Не знаю. Кто-то мне посоветовал.
Этот паттерн можно назвать "потреблением вместо творчества". Потреблением без сомнений и вопросов. Потреблением, потому что можно спрятаться за чьим-то авторитетом.
Я видела разработчиков, берущих решение других людей как должное. Без малейших раздумий о выбранном подходе, не заморачиваясь анализом. Да, конечно, когда Дэн Абрамов говорит мне, как правильно использовать React, или в документации написано, что это единственный способ применения API, то с этим нужно согласиться. Тем не менее, когда вы используете какой-то технический контент без хотя бы доли скептицизма, то вы всё равно сможете продвинуться в своей карьере, но есть вероятность, что это вам помешает.
Читать полностью »
Способы переписать логические параметры в С++
2022-03-05 в 14:00, admin, рубрики: c++, Cpp, IT-стандарты, skillfactory, Блог компании SkillFactory, код, Программирование, С++, с++17, С++20, с++23, Совершенный код, структуры, читабельностьПрограммисты читают код намного чаще, чем пишут его, поэтому важно писать понятный, последовательный, однозначный код. Автор книги С++17 in detail написал о способах избегать путаницы. Делимся его материалом к старту курса по разработке на С++.
Почему я начал использовать аннотации типов в Python – и вам тоже советую
2022-02-25 в 7:09, admin, рубрики: python, аннотации, Блог компании Издательский дом «Питер», ооп, Программирование, рефакторинг, Совершенный код, типизацияС появлением подсказок типов (type hints) в Python 3.5+ добавилась опциональная статическая типизация – поэтому эти подсказки так мне нравятся. Теперь я аннотирую ими все мои проекты.
Как мы избавились от 80% своего кода, повысив скорость разработки и уменьшив количество ошибок
2022-01-05 в 12:33, admin, рубрики: KISS, solid, YAGNI, абстракции, Блог компании М.Видео-Эльдорадо, мвидео, преждевременная оптимизация, Серверная оптимизация, Совершенный код, управление разработкой, шаблоны проектирования, ЭльдорадоОптимизация кода и развитие микросервисной архитектуры занимает значительную часть жизни команды разработчиков МВидео-Эльдорадо. Тем любопытней изучить опыт коллег за рубежом. Предлагаем вашему вниманию очередной пост на тему: «А как там у них». Читать полностью »
Как напечатать float
2021-12-13 в 8:42, admin, рубрики: assert, float, grisu, printf, Блог компании Конференции Олега Бунина (Онтико), вещественные числа, Совершенный код, тестирование, тестирование веб-приложений, Тестирование веб-сервисов, Тестирование мобильных приложений, тестыКазалось бы, совершенно непонятно, зачем живым людям в 2021 году решать задачу под названием «печатаем обычное вещественное число». Вроде бы это должно быть уже решено — причём примерно в тот момент, когда эти вещественные числа изобрели. Но оказывается, что нет.
Привет, меня зовут Андрей, я занимаюсь инфраструктурой поиска в Авито и сегодня расскажу, зачем это вообще нужно — печатать вещественные числа. Какие есть методы (один) решения этой боевой задачи и как это получилось у нас в проекте, в рамках наших очень странных требований. А также, зачем таки подобное, хм, умеренно эзотерическое знание, можетЧитать полностью »