Intereting Posts
SocketException при загрузке большого размера zip-файла Как разбирать логическое значение JSON? Часть фрагмента внутри ViewPager, которая отключается внизу экрана (Android) Android, как включить, не беспокоить (dnd) программно Как вы сокращаете пространство между плавающей подсказкой editText и окном editText в Android? Папки макета Android: макет, макет-порт, макет-земля Кнопка не вызывает OnClickListener с первого щелчка Как приостановить использование DownloadManager? Dex loader не может выполнить dex: идентификатор метода не в : 65536 Как андроид сравнивает ожидающие намерения Gradle не удалось разрешить библиотеку в Android Studio Android: как я могу заставить DrawerLayout передавать события касания к основному виду Что делает gl.glClearColor? Как рассчитывается подсчет «Active Installs» / процент в Android-консоли разработчика? Android: уведомление перестает обновляться, как только оно обновляется определенное количество раз на Kit-Kat

Соглашения об именах файлов компоновки?

Каковы некоторые соглашения об именах файлов компоновки, которые люди придумали.

Я ничего не нашел в Интернете, но подумал об использовании следующего соглашения.

Что думают все?

- activity_* - dialog_* - list_item_* 

Это все, с чем я работал до сих пор.

Кроме того, как насчет наименования активности против ее компоновки? Например:

 -> res -> layout -> activity_about_us.xml -> src -> activity -> AboutUs.java 

Solutions Collecting From Web of "Соглашения об именах файлов компоновки?"

Как ни странно, при попытке google этот вопрос приносит только эту страницу как значимый результат … За последние полгода я использую соглашение об именовании, подобное вашему, но с более короткими префиксами. Например: для активности, которая показывает экран «О нас»:

Название класса : ActAboutUs . Префиксный класс является излишним, но он явно отличает классы активности от других. Первоначально я использовал отдельный каталог для всех видов деятельности (аналогично вашему подходу), но через некоторое время я понял, что для больших приложений лучше всего группировать в каталогах по функциям, чем по суперклассу (т.е. Activity). Мне легче работать в одном каталоге, например /src/settings/ когда я работаю над настройками. Таким образом, все файлы java, которые мне нужны, находятся в одном каталоге, поэтому мне не нужно блуждать:

 /src/settings/ActSettingsGlobal.java /src/settings/ActSettingsNet.java /src/settings/Settings.java /src/settings/SettingsDBAdapter.java /src/settings/etc... 

Этот подход также помогает разделить работу между разными разработчиками, т. Е. Каждый работает в своем собственном каталоге на отдельной функции, поэтому не ступает ногами друг друга :-).

Некоторые люди предпочитают суффиксы, но я нашел их менее полезными. Префиксы помогают группировать вещи в алфавитном порядке, как в приведенном выше примере: префикс Act* сначала сортируется, поэтому все действия удобно расположены вверху.

Я даже рассматриваю возможность использования Act_ в качестве префикса, который более читабельен, хотя он противоречит соглашениям об именах java …

Имя файла макета : act_about_us.xml . В res/layout/ у нас нет «роскоши» поддиров, что довольно неудачно, поэтому единственный способ группировать вещи – использовать соответствующий префикс, например act_ , dlg_ и т. Д.

Идентификаторы строк : <string name="act_about_us_dlg_help1_title" ... string.xml – это место, где у нас больше проблем с дублирующимися name s. Очень просто создать дубликаты, если не используется соглашение об именах, например activity_element_item . Это добавляет много дополнительной набрав, но это избавит вас от много путаницы позже. Для глобальных (приложений) строк мы используем префикс "global_" , например global_btn_ok , global_msg_no_inet_conn . Обычно мы делаем одного человека ответственным за все global_ строки, поэтому, если кому-то нужна новая строка или изменение, которое ему нужно синхронизировать с ним, чтобы избежать создания беспорядка.

(Теперь я понимаю, что activity__element__item (два подчеркивания) более понятный и читаемый, чем activity_element_item )

В целом я до сих пор не могу избавиться от чувства, что с моим подходом что-то не так, потому что я не могу поверить, что разработчики Google создали такую ​​неудобную структуру, когда дело доходит до работы с файлами, идентификаторами, именами и т. Д. ,

Я думаю, что следующая конвенция об именах должна следовать

Для деятельности

Если наше название деятельности

 DisplayListActivity 

То наше имя макета должно быть

 display_list_activity.xml 

Для элементов списка мы можем включить категорию в имя макета списка элементов

 country_list_item.xml 

И для диалоговых окон их действия могут быть включены

 delete_country_dialog.xml 

Когда вы ищете группу макетов, и я стараюсь работать над ними, я считаю, что всегда полезно добавлять имя класса и следить за любыми подмакетами. Например:

Имя класса: AboutActivity.java
Имя макета: about_activity.xml
Sub-layout Name: about_activity_menu.xml
Sub Sub-layout Name: about_activity_menu_item.xml

Ваша деятельность всегда будет на вершине каждой группировки, и охота на не-деятельность становится менее сложной задачей. Кто-нибудь знает, почему вложенные папки еще не все? Я ожидаю эффективности и простоты на заднем плане, но я думаю, что это не повредит слишком много.

Первая часть имени файла макета всегда должна быть типом соответствующего класса. Например, если у нас есть класс MainActivity (type is Activity в этом случае), соответствующий файл макета следует называть activity_main.xml

Это означает, что можно сказать, что у нас есть диалог под названием WarningDialog , соответствующий файл макета следует называть dialog_warning.xml , то же самое касается фрагментов и т. Д.

Это может показаться знакомым, потому что это также то, как имена файлов activity/layout называются при создании нового проекта в Android Studio ( MainActivity -> activity_main.xml ).