Роберт Мартин рекомендует. Код, который умещается в голове: эвристики для разработчиков
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  Роберт Мартин рекомендует. Код, который умещается в голове: эвристики для разработчиков

bitwolff
bitwolffдәйексөз келтірді2 жыл бұрын
Документация должна в первую очередь объяснять, почему было принято решение, а не какое решение было принято.
17 Ұнайды
Комментарий жазу
Oellore
Oelloreдәйексөз келтірді2 жыл бұрын
Помните: интеллектуальная работа отличается от физической. Вы не можете измерить продуктивность временем, проведенным за компьютером. На самом деле чем дольше вы работаете, тем ниже становится ваша продуктивность, поскольку вы будете делать ошибки, на исправление которых потом придется тратить время. Никогда не работайте без перерывов.
9 Ұнайды
Комментарий жазу
Магомед Бабаев
Магомед Бабаевдәйексөз келтірді1 жыл бұрын
«любой дурак может написать код, который будет понятен компьютеру. Хороший программист пишет код, который будет понятен людям»
6 Ұнайды
Комментарий жазу
Андрей Иванов
Андрей Ивановдәйексөз келтірді2 ай бұрын
Документация должна в первую очередь объяснять, почему было принято решение, а не какое решение было принято.
1 Ұнайды
Комментарий жазу
Илья Вяткин
Илья Вяткиндәйексөз келтірді10 ай бұрын
7.1.2. Цикломатическая сложность На протяжении всей книги вы постоянно сталкиваетесь с термином «цикломатическая сложность». Это одна из редких метрик кода, которые я считаю полезными. Вы могли подумать, что книга по программной инженерии будет полна метрик, но, скорее всего, уже поняли, что это не так. Можно создать мириады метрик кода60, но большинство из них будут бесполезны. Предварительные исследования показывают, что самая простая метрика — количество строк кода — лучше всего определяет сложность [43]. На этом этапе мне важно убедиться, что все читатели поняли суть. Чем больше строк кода, тем хуже кодовая база. Количество строк кода — показатель производительности только в том случае, если вы измеряете количество удаленных строк. Чем больше строк вы добавите, тем больше кода придется прочитать и понять другим специа­листам. Хотя строки кода — довольно практичный показатель сложности, цикломатическая сложность полезна по другим причинам. Это удобный инструмент анализа, поскольку он не только информирует вас о сложности, но и помогает при выполнении модульного тестирования. Думайте о цикломатической сложности как о количестве путей прохождения фрагмента кода. Даже простейшая часть кода предоставляет единственный путь, поэтому минимальная цикломатическая сложность равна 1. Вы можете легко «вычислить» цикломатическую сложность метода или функции: начиная с единицы, считать, сколько раз встречается if и for. Для каждого из этих ключевых слов вы увеличиваете число (от 1). Специфика подсчета зависит от языка программирования. Идея в том, чтобы подсчитать операторы ветвления и цикла. Например, в языке C# вам придется включать foreach, while, do и каждый case в блоке switch. В других языках ключевые слова для подсчета будут отличаться. Какова цикломатическая сложность метода Post в системе резервирования столиков в ресторане? Попробуйте сосчитать все операторы ветвления в коде листинга 6.9, начиная с единицы. Что вы получили? Цикломатическая сложность кода листинга 6.9 равна 7. У вас получилось 6 или 5? Давайте разберемся, как же получить 7. Не забудьте начать с единицы. Для каждого оператора ветвления увеличьте число на 1. Есть пять операторов if. Пять плюс один равно шесть. Последний оператор заметить труднее всего: это ??, оператор нулевого слияния, представляющий две альтернативные ветви: одну, где dto.Name имеет значение null, и другую, где это не так. Это еще один оператор ветвления61. Итак, всего метод Post содержит семь элементов. Как я уже упоминал, я использую число семь как предельное значение кратковременной памяти мозга. Если вы определите пороговое значение, равное семи, метод Post из листинга 6.9 удовлетворяет ему впритык. Вы могли бы оставить все как есть. Это нормально, но если вам понадобится добавить восьмую ветвь, сначала придется провести рефакторинг. А еще у вас может не быть на это времени в будущем, поэтому если есть время сейчас, то лучше провести профилактический рефакторинг, не откладывая на потом. Пока не забывайте об этом. В подразделе 7.2.2 мы еще вернемся к методу Post, чтобы провести рефакторинг. Но сначала давайте рассмотрим некоторые другие принципы.
1 Ұнайды
Комментарий жазу
Роман Римский
Роман Римскийдәйексөз келтірді11 ай бұрын
Вместо этого реализуйте функциональность с максимально простым кодом, но следите за наличием дублей по мере их добавления.
1 Ұнайды
Комментарий жазу
Илья Муратов
Илья Муратовдәйексөз келтірді11 ай бұрын
Подумайте о том, помещается ли код в вашей голове. Не слишком ли длинные или сложные методы? Кори Хаус предлагает обратить внимание на следующие пункты [47]. • Работает ли код, как задумано? • Понятно ли намерение? • Есть ли ненужное дублирование? • Может ли существующий код решить эту проблему? • Может ли код быть проще? • Все ли тесты исчерпывающие и понятные?
1 Ұнайды
Комментарий жазу
зифа маскаева
зифа маскаевадәйексөз келтірді1 жыл бұрын
Вам может казаться, что умственный труд — это преднамеренное мышление, но это не так. Психолог и лауреат Нобелевской премии Даниэль Канеман предлагает модель мышления, состоящую из двух систем: системы 1 и системы 2. «Система 1 интуитивная. Она отвечает за быстрое мышление, практически без усилий и без чувства произвольного контроля. Система 2 тяжелая, медленная. Она направляет внимание на требующие усилий умственные действия, включая сложные вычисления. Действия системы 2 часто связаны с субъективным опытом свободы действий, выбора и концентрации» [51]
1 Ұнайды
Комментарий жазу
Игорь Д.
Игорь Д.дәйексөз келтірді4 күн бұрын
Документация должна в первую очередь объяснять, почему было принято решение, а не какое решение было принято.
Комментарий жазу
Игорь Д.
Игорь Д.дәйексөз келтірді4 күн бұрын
Пустые же строки есть потому, что код следует шаблону Arrange-Act-Assert [9], также известному как шаблон AAA. Идея здесь в том, чтобы разделить модульный тест на три этапа. 1. На этапе arrange (подготовка) настраивается тестовое окружение. 2. На этапе act (действие) происходит выполнение или вызов тестируемого сценария. 3. На этапе assert (утверждение) проверяется, соответствует ли фактический результат ожидаемому.
Комментарий жазу