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

<p>какие соглашения о присвоении имен файлам люди придумали.</p><p>я ничего не нашел в интернете, но подумал об использовании следующего соглашения.</p><p>что все думают?</p><pre><code> - activity\_* - dialog\_* - list\_item\_* </code></pre><p>это все, с чем я работал до сих пор.</p><p>кроме того, как насчет именования деятельности против ее макета? например:</p><pre><code>-> res -> layout -> activity\_about\_us.xml -> src -> activity -> aboutus.java </code></pre>

<p>как ни странно, попытка задать этот вопрос в google приводит только к этой странице как к значимому результату ... последние полгода я использую соглашение об именах, подобное вашему, но с более короткими префиксами. например: для действия, которое показывает экран «о нас»:</p><p><strong> имя класса </strong>: <code>actaboutus</code>. префиксный класс является своего рода излишним, но он четко отличает классы активности от других. первоначально я использовал отдельный каталог для всех действий (аналогично вашему подходу), но через некоторое время я понял, что для больших приложений может быть лучше группировать каталоги по функциям, чем по суперклассам (то есть активности). мне легче работать в одном каталоге, например, <code>/src/settings/</code>, когда я работаю в настройках. таким образом, все файлы java, которые мне нужны, находятся в одном каталоге, поэтому мне не нужно бродить:</p><pre><code>/src/settings/actsettingsglobal.java /src/settings/actsettingsnet.java /src/settings/settings.java /src/settings/settingsdbadapter.java /src/settings/etc... </code></pre><p>этот подход также помогает разделить работу между разными разработчиками, то есть каждый из них работает в своем собственном каталоге над отдельной функцией, поэтому не нужно наступать друг другу на ноги :-).</p><p>некоторые люди предпочитают суффиксы, но я нашел их менее полезными. префиксы помогают группировать вещи в алфавитном порядке, как в примере выше: префикс <code>act*</code> сортируется первым, поэтому все действия удобно расположены вверху.</p><p>я даже рассматриваю возможность использования <code>act\_</code> в качестве префикса, который более читабелен, хотя и противоречит соглашениям об именах java ...</p><p><strong> имя файла макета </strong>: <code>act\_about\_us.xml</code>. в <code>res/layout/</code> у нас нет «роскоши» подкаталогов, что весьма прискорбно, поэтому единственный способ сгруппировать вещи - использовать соответствующий префикс, такой как <code>act\_</code>, <code>dlg\_</code> и т.д. </p><p><strong> строковые идентификаторы </strong>: <code><string name="act\_about\_us\_dlg\_help1\_title" ...</code> <code>string.xml</code> - это место, где у нас больше всего проблем с дублированием <code>name</code>s. создать дубликаты очень легко, если не используется соглашение об именах, такое как <code>activity\_element\_item</code>. это добавляет много дополнительной печати, но это избавит вас от большого количества путаницы в дальнейшем. для глобальных (прикладных) строк мы используем префикс <code>"global\_"</code>, например <code>global\_btn\_ok</code>, <code>global\_msg\_no\_inet\_conn</code>. обычно мы возлагаем на одного человека ответственность за все строки <code>global\_</code>, поэтому, если кому-то нужна новая строка или изменение, ему нужно синхронизироваться с ним, чтобы избежать беспорядка.</p><p>(теперь я понимаю, что <code>activity\_\_element\_\_item</code> (два подчеркивания) более понятный и читаемый, чем <code>activity\_element\_item</code>)</p><p>в общем, я до сих пор не могу избавиться от ощущения, что с моим подходом что-то не так, потому что я не могу поверить, что разработчики google создали такую неудобную среду, когда дело доходит до работы с файлами, идентификаторами, именами и т.д. ,.</p>

<p>я думаю, что следующее соглашение об именах должно следовать</p><p>для деятельности </p><p>если название нашей деятельности</p><pre><code>displaylistactivity </code></pre><p>тогда наше имя макета должно быть</p><pre><code>display\_list\_activity.xml </code></pre><p>для элементов списка мы можем включить категорию в название макета элемента списка</p><pre><code>country\_list\_item.xml </code></pre><p>и для диалоговых окон их действие может быть включено</p><pre><code>delete\_country\_dialog.xml </code></pre>

<p>при поиске группы макетов, как я обычно с ними работаю, я считаю эффективным всегда предварительно добавлять имя класса и следить за любыми вложенными макетами. например:</p><p><strong> имя класса: </strong><code>aboutactivity.java</code><br> <strong> название макета: </strong><code>about\_activity.xml</code><br> <strong> имя дополнительного макета: </strong><code>about\_activity\_menu.xml</code><br> <strong> имя суб-макета: </strong><code>about\_activity\_menu\_item.xml</code><br></p><p>ваша активность всегда будет на вершине каждой группировки, и охота за неактивными действиями становится меньше рутиной. кто-нибудь знает, почему подпапки еще не вещь? я рассчитываю на эффективность и простоту на стороне, но я думаю, что это не повредит слишком много.</p>

<p>это хорошее чтение <a href="https://jeroenmols.com/blog/2016/03/07/resourcenaming/">https://jeroenmols.com/blog/2016/03/07/resourcenaming/</a> </p><p>по сути, вы следуете <code>what where description size</code></p><p><img src="https://jeroenmols.com/img/blog/resourcenaming/resourcenaming\_cheatsheet.png" alt=""></p><p>например, файл макета</p><ul> <li>activity\_main: представление содержимого mainactivity</li> <li>frag\_articledetail: представление для articledetailfragment</li> </ul><p>строки</p><ul> <li>articledetail\_title: заголовок articledetailfragment</li> <li>feedback\_explanation: объяснение обратной связи в feedbackfragment</li> </ul><p>рисуем - all\_infoicon\_large: большая версия значка общей информации - all\_infoicon\_24dp: версия значка общей информации 24dp</p>

<p>первая часть имени файла макета всегда должна соответствовать типу соответствующего класса . например, если у нас есть класс <code>mainactivity</code> (в данном случае тип <code>activity</code>), соответствующий файл макета должен называться <code>activity\_main.xml</code> </p><p>это означает, что, скажем, у нас есть диалог с именем <code>warningdialog</code>, соответствующий файл макета должен называться <code>dialog\_warning.xml</code>, то же самое относится и к фрагментам и т.д.</p><p>это может показаться знакомым, потому что так же называются файлы <code>activity/layout</code> при создании нового проекта в android studio (<code>mainactivity</code> -> <code>activity\_main.xml</code>).</p>