Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Структура проекта. Сортировка классов на package, namespases, folders

#java #android #c_sharp #архитектура #шаблоны


Как правильно раскидывать классы на папки и namespace в VS и package в Java?  То
есть, другими словами, рекомендации по организации структуры проекта. 
Какие вообще есть стандартные папки (Часто встречал core, utils, support, additionals,
etc...)
И есть ли какие стандартные правила/рекомендации для разбиения.
Если нет, то хотя бы общее описание этих папок/пакетов.
Вопрос и для Java, и Java под android, и C#, если между ними в этом есть различия.
    


Ответы

Ответ 1



В C#, как правило, структура папок повторяет namespace классов, которые содержаться в этих папках. Solutions (.sln) содержат обыкновенно src папку с кодом. Пример сложного проекта можно посмотреть в исходниках CoreFx. Для проектов поменьше, обычно делают только один solution.

Ответ 2



.NET VisualStudio по-умолчанию предлагает следующий вариант: Solution состоит из одного или более проектов Корневой namespase проекта совпадает с именем проекта, это поведение можно изменить в свойствах проекта. Если в проекте есть вложенные папки, то в новых файлах классов к корневому namespase добавляются вложенные, с именами совпадающими с именами папок. Никаких ограничений на расположение и количество классов в файлах нет, за исключением одного - если класс содержит метод Main, то этот класс должен быть первым в файле чтобы его можно было запустить, во всяком случае студия на этом настаивает, обходить это ограничение не пробовал, не знаю. Стандартные папки проекта можно посмотреть создав проект в студии и изучив содержимое папки проекта, большинство из них служебные и не будут отображаться в обозревателе решений. Поведение студии по-умолчанию является всего лишь предлагаемым вариантом, следовать которому не обязательно. Все на усмотрение команды разработки и стандартов кода в компании. Java Из моего, довольно поверхностного, знакомства с java удалось выяснить следующее: Имя файла и класса в нем обязаны совпадать Один файл - один класс, за исключением вложенных классов разумеется (возможно что это не обязательно, не пробовал) Package (пакет) - фактически является папкой, т.е. структура папок и задает структуру пакетов По поводу Java могу местами ошибаться, т.к. повторюсь, не слишком много с ней работал, и не в курсе последних изменений. У Java, насколько я понимаю, как таковых стандартных папок нет, хотя, можно проделать такой же трюк как с VS в используемой вами IDE для Java. Если вы имели ввиду стандартные названия для папок с исходным кодом, то это определяется командой разработки и/или стандартами кода компании.

Комментариев нет:

Отправить комментарий