![]() |
|
||||||||||
|
|||||
|
Общеизвестна рекомендация строить дерево пакетов по принципу -
Цитата:
делаю? Ведь можно сделать просто центральное дерево, напр.: com.nemo.... а от него уже ветки например: com.nemo.effects.Lights, com.nemo.freelance.phillips.banner, com.nemo.utils и т.д. Как правильнее делать - централизовано? Или децентрализовано? Т.е. каждый новый скрипт/проект начинать с создания структуры вложенных папок/пакетов. Или я, наверное, не правильно рассуждаю. В пакетах храним описание классов, а проектах их реализация. Так? Последний раз редактировалось fish_r; 08.06.2011 в 13:18. |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
У меня не было ни одного проекта, в котором бы я знал наверняка всю будущую структуру папок.
И вряд ли это вообще возможно. Да и какая, собственно, разница-то? |
|
|||||
|
Цитата:
Но, я, кажется начинаю "прозревать" . В путях проекта подключаем нужные пакеты (com.greensock., com.etc., и т.д). А сам проект реализует их и поэтому может не иметь такой структуры пакетов, то есть иметь, но уже не такого типа, а согласно своей собственной архитектуре... Как то так...Добавлено через 30 минут Тогда, как, например, исходники передавать заказчику? Дергать куски "дерева" - гемморойно. Отдавать всё - тоже не то, что то. |
|
|||||
|
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
В коде под конкретного клиента: com.example.Клиент.Подсистема (несколько лет использовал com.example.Клиент.Проект.Подсистема, но получается громоздко и пользы дополнительной мало). Здесь "Клиент" -- 3-4-символьная аббревиатура (главное, чтоб не матерная... были прецеденты) В коде, который будет шариться: com.example.Подсистема Это позволяет быстро выделить код, который сделан под конкретного клиента и не должен уходить на сторону. При использовании кода, написанного без доменного префикса, уже приходилось напарываться на конфликты.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
|
А как клиенту передаешь? Копипастишь в проект?
Добавлено через 2 минуты Я имею в виду собственные, часто используемые наработки, и сторонние библиотеки |
|
|||||
|
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
Клиенту отдается с удалением папок .svn
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
|
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Если сторонние библиотеки удалить, то как клиент потом скомпилирует проект?)
|
|
|||||
|
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Если клиент изначально заказывал код, использующий какие-то библиотеки по его выбору, то обычно можно и без них передавать -- у клиента они и так есть.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Можно класть код не в один src а в несколько. В FB это обычная практика.
тогда очень легко вытащить отдельно пакет ru.k0t0vich.supergame.core.engine и отдельно ru.k0t0vich.core.utils т.е. он будут лежать в разных папках, а не в общей ru.k0t0vich. причём ru.k0t0vich.core.utils может вообще ссылаться на внешний svn проект. В FD просто задайте разные classPaths т.е. src/commonutils src/supergame Исходники я обычно отдаю полностью со всей структурой. Если используются сторонние (или личные) закрытые разработки, то их подключаю сразу в виде swc. а потом просто svn->export -> zip По поводу именований. Надо группировать так, чтобы каждый пакет был более менее обособленным. Лучше всего просто посмотрите распространённые фрэймворки, или тот же адобовский код. Придерживайтесь распространённых практик, они может и не самые лучшие, но они общеизвестны.
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 08.06.2011 в 15:35. |
|
|||||
|
А как это "со всей структурой"? Если я правильно понял - ты подключаешь нужные пакеты к проекту без копипаста. Тогда в export автоматом они не попадают (хотя в svn может и есть "плюшки" не настолько хорошо его знаю). Остается два варианта:
- либо "дергать" нужные пакеты из "дерева" codelib, - либо отдавать всё скопом, работать будет, но в проект попадают "левые" в данной ситуации классы. Последнее что ли? |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:29. |
|
|
« Предыдущая тема | Следующая тема » |
|
|