Метод - это отдельная функция или процедура, выполняющая одну задачу.
Причины создания методов:
Очень важной характеристикой метода является связность - метод должен выполнять одну строго определённую и понятную задачу. Связность бывает нескольких видов:
Следует уделять много внимания именованию методов:
Параметры в методы нужно передавать в одном и том же порядке. Наиболее распространённый порядок - входящие значения, изменяемые значения, исходящие значения. Не нужно передавать в метод неиспользуемые параметры. Лучше не использовать входящие переменные в качестве рабочих переменных, а создавать их локально внутри метода. Пишем документацию по параметрам метода - виды(входной, изменяемый, выходной) параметров, единицы измерения, возвращаемые значения, ограничения на входящие значения.
Количество аргументов метода не должно превышать 7. Для этого иногда стоит передавать не отдельные поля какого-либо класса, а весь экземпляр целиком. Иногда можно использовать именованные параметры( в C# поддерживаются), когда в метод передаются несколько аргументов одного типа.
Причины создания методов:
- Снижение сложности - за счёт абстрагирования деталей реализации различных операций
- Формирование понятной промежуточной абстракции - за счёт хорошего именования метода
- Предотвращение дублирования кода
- Поддержка наследования - переопределять отдельные маленькие методы проще, чем один большой
- Сокрытие очерёдности действий - если два действия должны идти в определённом порядке, то нужно их обернуть в метод, чтобы не допустить где-нибудь неправильного порядка
- Улучшение портирования - непортируемый(платформозавизимый) код нужно вынести в метод, чтобы его легко можно было заменить при переезде на другую платформу
- Упрощение сложных булевых проверок - упрощает восприятие при чтении
- Повышение быстродействия - легче оптимизировать код в одном месте
Очень важной характеристикой метода является связность - метод должен выполнять одну строго определённую и понятную задачу. Связность бывает нескольких видов:
- Функциональная - метод выполняет одну и только одну операцию
- Последовательная - метод содержит операции, выполняющиеся в определённом порядке, одна операция полагается на результат другой. Такой метод лучше разбить на два, если это возможно.
- Коммуникационная - если метод содержит несколько операций объединённых только общими данными, к которым они обращаются
- Временная - в методе несколько операций, объединённых по временному промежутку, в который они выполняются, например Startup(), AfterCreation()...
Следует уделять много внимания именованию методов:
- Нужно описать в названии всё, что метод возвращает и его побочные эффекты
- Избегаем невыразительных и неоднозначных глаголов, например HandleCalculation(), ProcessInput(), DealWithOutput()...
- Не стоит использовать номера для идентификации методов (Task1(), Task2())
- Не стоит ограничивать длину имени метода
- Для именования функции нужно использовать описание возвращаемого значения
- Для именования процедуры используем выразительный глагол + объект с которым он работает
- Используем общепринятые антонимы для описания противоположных действий:
- add/remove
- begin/end
- create/destroy
- first/last
- get/put
- get/set
- increment/decrement
- insert/delete
- lock/unlock
- min/max
- next/previous
- old/new
- open/close
- show/hide
- source/target
- start/stop
- up/down
- Определяем конвенции именования часто используемых операций - например операции получения id объекта
Параметры в методы нужно передавать в одном и том же порядке. Наиболее распространённый порядок - входящие значения, изменяемые значения, исходящие значения. Не нужно передавать в метод неиспользуемые параметры. Лучше не использовать входящие переменные в качестве рабочих переменных, а создавать их локально внутри метода. Пишем документацию по параметрам метода - виды(входной, изменяемый, выходной) параметров, единицы измерения, возвращаемые значения, ограничения на входящие значения.
Количество аргументов метода не должно превышать 7. Для этого иногда стоит передавать не отдельные поля какого-либо класса, а весь экземпляр целиком. Иногда можно использовать именованные параметры( в C# поддерживаются), когда в метод передаются несколько аргументов одного типа.
Комментариев нет:
Отправить комментарий