Программирование
8 советов, как писать функции, как Senior-разработчик
По словам Роберта С. Мартина, при написании кода мы всегда должны думать о нем как о рассказывании историй, и наша цель должна заключаться в том, чтобы рассказать это как можно красивее. Это делает счастливыми не только будущих читателей кода, но и помогает разработчикам решать такие проблемы, как читабельность, меньшее количество ошибок, простота изменения, масштабируемость, тестируемость, отказоустойчивость и т.д.
Сегодня я дам некоторые полезные советы, которые улучшат ваши функции.
1. Делайте одно дело и делайте это хорошо
Ваша функция должна выполнять одну задачу. Но иногда при выполнении одной задачи мы косвенно выполняем и другие подзадачи. Итак, вопрос в том, нарушаем ли мы правило в этом случае? Ответ может быть «Нет», если мы сохранили тот же уровень абстракции внутри этой функции.
2. Скрывайте Switch внутри низкоуровневых классов
Оператор Switch всегда делает N вещей, и мы не всегда можем его избежать. В этом случае мы должны спрятать его где-нибудь внутри базового класса или класса низкого уровня, чтобы нам не пришлось повторять его. Мы можем добиться этого с помощью полиморфизма.
3. Сохраняйте минимум аргументов
Хорошей практикой всегда является сведение аргументов функции к минимуму. Использование множества аргументов всегда приводит к более сложному пониманию. Это сложнее и с точки зрения тестирования. Аргументы еще более сбивают с толку, потому что мы обычно не ожидаем, что информация будет передаваться через аргументы.
4. Никогда не используйте флаги в аргументах
Если у функции есть логический аргумент, она делает как минимум две вещи. Одно в случае true и другое в случае false. Так что это ужасная практика.
5. Передавайте аргументы как объект
Всегда полезно передавать аргументы как объект, а не как длинный список аргументов.
6. Предпочитайте исключения кодам ошибок
Если мы возвращаем коды ошибок, нам приходится иметь дело с несколькими условными операторами (if else), что делает код уродливым. С другой стороны, возврат исключений упрощает работу и устраняет необходимость в нескольких условных операторах.
Например, если вы используете код ошибки, это выглядит так:
Если вы используете исключение, то так:
7. Выберите хорошее имя
Крайне важно дать имя, которое отражает назначение функции. В случае функции с одним аргументом (называемой монадой) функция и аргумент должны образовывать очень красивую пару глагол/существительное, такую как read(book). Чтобы узнать больше о хороших навыках именования, вы можете прочитать эту статью.
8. Сделайте разделение между командой и запросом
Как я упоминал выше, функция должна выполнять одну задачу. Поэтому мы должны определить функцию таким образом, чтобы она либо что-то делала (команда), либо что-то отвечала (запрос), но не то и другое одновременно. Другими словами, либо ваша функция должна изменить состояние объекта, либо она должна вернуть некоторую информацию об этом объекте.
public boolean set(string attribute, string value) if(set("username","Robert")) ...
На приведенном выше коде функция set устанавливает значение именованного атрибута и возвращает значение true, если оно выполнено успешно, и false, если такого атрибута не существует. Это приводит к дополнительному оператору if на следующей строке.
Заключение
Это, конечно, не все, что мы должны учитывать при написании функций и вы можете дополнить эту статью. Спасибо, что прочитали ее.
-
Видео и подкасты для разработчиков1 месяц назад
Lua – идеальный встраиваемый язык
-
Новости1 месяц назад
Poolside, занимающийся ИИ-программированием, привлек $500 млн
-
Новости1 месяц назад
Видео и подкасты о мобильной разработке 2024.40
-
Новости1 месяц назад
Видео и подкасты о мобильной разработке 2024.41