«В информатике есть только две сложные вещи: аннулирование кэша и присвоение имен вещам».
Происхождение этой цитаты неизвестно, но ясно одно: давать названия вещам — непростая задача!
Как разработчик программного обеспечения, я почти каждый день даю имена переменным, интерфейсам, классам, функциям и т. д.
Придумать подходящее название – задача не из легких. В этой статье мы рассмотрим важность именования, различие между хорошими и плохими именами и, в конечном итоге, как улучшить искусство именования.
Перед нашими родителями стояла непростая задача дать нам имя при рождении, и я уверен, что это была непростая задача.
Твое имя ключевой — он служит уникальным ярлыком, отличающим вас от других, помогает в общении и необходим для юридических и административных целей, а также для различных других целей.
В программировании имена также важны, и вот почему:
Читабельность и понимание — Использование хороших имен повышает читаемость и понимание кода. Будь то кто-то другой или твой будущее я читая код (да, да), описательные имена играют решающую роль в быстром понимании смысла и назначения кода.
Форма документации — Хорошие имена могут снизить потребность в дополнительной документации, например в комментариях. Например:
// Without meaningful names and comments
function calculateArea(l, w) {
// Formula for the area of a rectangle
return l * w;
}// With meaningful names, reducing the need for comments
function calculateRectangleArea(length, width) {
return length * width;
}
Коммуникация — Хорошие имена в коде способствуют лучшему общению с нашими коллегами, что делает взаимодействие по коду более гладким.
Уменьшить количество ошибок — Ошибки, ошибки, ошибки — мы все их знаем и ненавидим. Хорошие имена могут помочь нам избежать их.
В очень известном случае ошибки, которую можно было бы предотвратить с помощью лучшего названия, один из субподрядчиков, которых НАСА использовало при строительстве своего марсианского климатического орбитального аппарата, использовал британские единицы вместо предполагаемой метрической системы, что привело к неправильной работе двигателей орбитального аппарата. .
Из-за этой ошибки, орбитальный аппарат разбился почти сразу когда он прибыл на Марс в 1999 году.
Этой ошибки можно было бы избежать, если бы имя (или тип) также передавало используемые единицы измерения. К устранение неясности в системе орбитальный аппарат мог бы выжить.
Абстракция —Имена служат формами абстракций, предоставляя нам возможность работать с концепциями более высокого уровня и скрывать сложность базовой сущности. Например:
Функция calcCircumference
вводит абстракцию для вычисления длины окружности. Потребителю достаточно знать radius
и они получат взамен окружность.
Теперь, когда мы поняли важность хороших имен, давайте поймем, как отличить хорошее имя от плохого.
Ознакомившись с последней сенсацией в кулинарном мире, Моника, новый шеф-повар города, поручила нам создать новую систему доставки еды.
Вот начальная функция в нашем API:
Можете ли вы понять, что он делает?
Считает ли он количество открытых заказов, количество отмененных заказов или, возможно, количество гамбургеров??!? С таким именем у нас нет шансов узнать.
Хорошие имена должны быть точными — люди часто дают имена слишком общие или расплывчатые. Из-за этого читателю сложнее понять, к чему относится это имя, и может заставить его предположить, что оно относится к совершенно другому предмету.
В нашем примере нам нужна функция для представления количества текущих доставок. Гораздо лучшим именем для этой функции было бы:
Это имя гораздо точнее; читатель легко поймет, о чем идет речь, и вполне вероятно, что мы предотвратили несколько ошибок в системе.
Но не сходите с ума; такое имя, как countIntransitFoodDeliveries
излишне длинна, вносит беспорядок и затрудняет понимание читателем.
Каждое слово в имени должно нести полезную информацию.; если нет, удалите его. В нашем примере слово «еда» можно опустить, так как тип доставки можно определить из контекста.
Возвращаясь к countIntransitDeliveries
мы можем даже сделать его немного более общим, передав статус доставки в качестве входных данных.
Помните, что я использовал status
которое может быть расплывчатым, но поскольку мы используем его в контексте countDeliveries
это позволяет легко понять, какой статус мы имеем в виду.
Поэтому важно учитывать контекст, в котором написано имя.
2023-12-09 17:04:59
1702142046
#Назовите #это #правильно #Есть #только #две #трудные #вещи #Матан #Коэн #декабрь