@Copperfield
Android dude

Как придумывать осмысленные имена для классов?

Как давать осмысленные имена для классов? В моем словарном запасе есть только controller, manager, helper, receiver, adapter и еще пару.
Чувствую, что зачастую имена для классов не соответствуют их предназначению.
  • Вопрос задан
  • 3482 просмотра
Решения вопроса 2
MarcusAurelius
@MarcusAurelius
автор Impress Application Server для Node.js
Какое крутое признание, это действительно уникально что Вы понимаете, что в этом что-то не так. Большинство разработчиков что не сделают, все контроллером зовут. Я думаю, что нужно больше читать и развивать словарный запас, кругозор и сознание, даже не обязательно англоязычную литературу, научно-техническая лексика по большей части интернациональна. Читать можно конечно и статьи в научно-популярных журналах и художественную литературу, но мне ближе и я советую ученых, программистов и философов: Дональд Кнут, Гради Буч, Декарт, Кант, Марк Аврелий, Лао Цзы, Спиноза, Паскаль, Платон, Аристотель, Мамардашвили, Пятигорский, Шантидева, Рассел, Хомский, Норберт Винер, Глушков, Канторович, Лебедев, фон Берталанфи, Уильям Эшби, Дейкстра, извините, если кого не вспомнил, кто вот первый вдруг на ум пришел.
Ответ написан
Комментировать
suguby
@suguby
программист, python, django, mysql, git, hg, linux
Очень хороший вопрос. На нейминг нужно осознанно тратить время, пробовать все возможные варианты. Хорошо названные классы и переменные - один из признаков чистого кода. Я именно так и поступаю - гуглотранслейчу русское и пробую на "вкус" :) лучше кстати пользоваться www.multitran.ru - там есть отраслевой перевод
Рекомендую к прочтению www.ozon.ru/context/detail/id/5011068 (в сети можно найти сканы) и вот это видео к просмотру https://moscowdjango.ru/meetup/26/how-to-name-vari...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 6
Воспользуйтесь гугл транслейтом и переведите осмысленное русское название на англ.
Ответ написан
Комментировать
@ubuntuman
Beginner developer
В последнее время для названий переменных я использую описание содержимого (пример: pages, currentIndex, countSteps, lastColor),
для функций описание действия (пример: createNewPicture, saveToFile, removeLastPage, getCountElements),
а для классов либо краткое описание, либо слова с приставкой -er (пример: BlockSplitter, PagesStore, ColorsManager, TextFormatter). Разумеется, часто слова повторяются. Если это для хранения, то тут Store, если для управления, то manager, controller, если для разделения/фильтрации, то Sepatator, Splitter и т.д. Если не могу подобрать ничего знакомого, лезу в переводчик, вбиваю слово и ищу наиболее простой и "красивый" вариант перевода, его и использую.

Не знаю, нормально ли это, но мне пока нравится…
Ответ написан
Комментировать
lam0x86
@lam0x86
1) Изучать популярные проекты на гитхабе, независимо от языка программирования.
2) Использовать словарь (мне Лингво очень помогает).

Моё мнение - чем необычнее имя сущности (в разумных пределах), тем проще запоминать структуру проекта. Когда приходится разбираться в чужих проектах, где половина классов называется ControllerBase, ControllerImpl, AbstractControllerFactory и т.п., хочется вешаться.
Ответ написан
Комментировать
ColCh
@ColCh
Веб разработчик
Если в словарном запасе только controller, manager, helper, receiver, adapter, то это и есть проблема.
Секрет наименования сущностей - в кратком описании их предназначения.

Класс Button вы ведь не назовёте MouseClickReceiver?
Ответ написан
Комментировать
@odissey_nemo
Программист, ГИС-системы, растры, космоснимки
Назови по русски (или на том языке, на котором мыслите), а потом переведите на английский. Так, чтобы было понятно тебе, в первую очередь. Иногда Гугль или Яндекс дают неплохие переводы, а иногда - отвратные. Для скорости можно использовать их, но обязательно и тщательно проверять смысл ими содеянного.

И старайтесь называть покороче, используя общепринятые сокращениями, на английском, конечно. Button == Btn, Rectangle == Rect, Point = Pnt, Control == Ctrl|Cntrl etc. RectangularButton == RectBtn, EscapeButton == EscBtn etc etc etc.
Ответ написан
Комментировать
@YuryBorodkin
Android dev
Почитай, эту главу из Clean Code.
А вообще - дело очень серьезное, сопровождать софт не соблюдающий naming conventions - адский ад.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы