@kovert99

Как сделать имена переменных (полей) более читаемыми?

Здравствуйте, во время разработки постоянно приходится создавать переменные и поля, в именах которых приходится указывать наследование.

Например, есть объект - contact_book;
у него есть дочерние объекты - contacts
(contact_book => contacts).

Т. е. выходит что-то на подобии такого (в стиле under score): contact_book_contacts
Или такого (в стиле camel case): contactBookContacts

Подобные имена очень сложно считывать, оссобенно если указывать какие либо дополнительные прилагательные и наследование. Например: contact_book_deleted_contact (content book => deleted contact) или contact_book_deleted_contact_first_field (contact book => deleted contact => first field).

Приходило в голову, что можно совместить lower case и camel case, на подобии: contactBook_deletedContact_firstField,
или в БЭМ-like стиле: contact_book__deleted_contact__first_field.
Но всё это уже какой-то изврат.

Собственно сами вопросы:
Как вы реализуете это у себя в коде или БД?
Существуют ли какие-нибудь подходящие методологии наименования?
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
@Zanak
Если вопрос еще актуален: не делайте то, что вы описывали в водной части вопроса. Включение отношений объектов в их именование - это есть плохая идея, потому что рефакторинг иерархии классов может привести, при таком подходе к именованию, к изменению имен и содержимого методов, напрямую этим рефакторингом незатронутых. Это особо актуально в случае скриптовых языков, где модули могут подгружаться в процессе исполнения, и импорт библиотеки происходит ни при каждом запуске приложения. Хорошо если вы тщательно покрываете свой код тестами, но даже они могут не спасти.
Для именования таблиц лучше использовать имена существительные английского языка в единственном числе. Для удобства, можно соединять несколько слов с помощью символа '_'. Например: user, user_profile, user_acl, для хранения учетки пользователя, его профиля и прав соответственно. Если вы расширяете чужой проект, допустимо использовать префикс, чтобы визуально контролировать, какие таблицы добавили вы, а какие существовали изначально: например - my_user_additional_info. Такой подход в достаточной мере самодокументирует ваш проект и упрощает вашим возможным коллегам его поддержку.
С именованием классов и переменных подход похожий. camelCase или snake_case, или даже PascalCase, это дело вкуса, по большому счету. Да, у многих, если не всех, языков есть свой стиль форматирования кода, но следовать ему или нет, это ваш выбор. Я ограничусь советом: придерживайтесь выбранного стиля оформления текста, хотя бы до конца проекта.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы