Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flasher.ru > Организационные вопросы

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.06.2011, 11:56
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 1  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
По умолчанию Как вы строите "дерево" проектов?

Общеизвестна рекомендация строить дерево пакетов по принципу -
Цитата:
домен первого уровня.домен второго уровня.дальше что хочешь
Ну, например:
Код:
com.nemo.effects.Lights
Я каждый новый проект начинаю с построения структуры подобных папок/пакетов. Но может я неправильно
делаю? Ведь можно сделать просто центральное дерево, напр.: com.nemo.... а от него уже ветки
например: com.nemo.effects.Lights, com.nemo.freelance.phillips.banner, com.nemo.utils и т.д.

Как правильнее делать - централизовано? Или децентрализовано? Т.е. каждый новый
скрипт/проект начинать с создания структуры вложенных папок/пакетов.

Или я, наверное, не правильно рассуждаю. В пакетах храним описание классов, а проектах
их реализация. Так?


Последний раз редактировалось fish_r; 08.06.2011 в 13:18.
Старый 08.06.2011, 13:15
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
У меня не было ни одного проекта, в котором бы я знал наверняка всю будущую структуру папок.
И вряд ли это вообще возможно.
Да и какая, собственно, разница-то?

Старый 08.06.2011, 13:25
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 3  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от goodguy Посмотреть сообщение
У меня не было ни одного проекта, в котором бы я знал наверняка всю будущую структуру папок.
И вряд ли это вообще возможно.
Да и какая, собственно, разница-то?
Ну, разница, примерно, такая же как между грамотным письмом и безграмотным. Разве нет?

Но, я, кажется начинаю "прозревать" . В путях проекта подключаем нужные пакеты (com.greensock., com.etc., и т.д). А сам проект реализует их и поэтому может не иметь такой структуры пакетов, то есть иметь, но уже не такого типа, а согласно своей собственной архитектуре... Как то так...

Добавлено через 30 минут
Тогда, как, например, исходники передавать заказчику? Дергать куски "дерева" - гемморойно. Отдавать всё - тоже не то, что то.

Старый 08.06.2011, 14:07
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 4  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Сообщение от fish_r Посмотреть сообщение
Общеизвестна рекомендация строить дерево пакетов по принципу -

Ну, например:
Код:
com.nemo.effects.Lights
Мне нравится такая схема имен пакетов:

В коде под конкретного клиента: 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++

Старый 08.06.2011, 14:29
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 5  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от Crazy Посмотреть сообщение
В коде, который будет шариться: com.example.Подсистема
А как клиенту передаешь? Копипастишь в проект?

Добавлено через 2 минуты
Я имею в виду собственные, часто используемые наработки, и сторонние библиотеки

Старый 08.06.2011, 14:45
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 6  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Сообщение от fish_r Посмотреть сообщение
А как клиенту передаешь? Копипастишь в проект?

Добавлено через 2 минуты
Я имею в виду собственные, часто используемые наработки, и сторонние библиотеки
Код живет в subversion. В проект делается checkout отдельных общих модулей + поддерево для конкретного клиента. (Делаем папку под исходники, создаем в ней поддерево для клиента, добавляем в svn. Рядом чекаутим по мере надобности общий код по подсистемам.)

Клиенту отдается с удалением папок .svn
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 08.06.2011, 15:16
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 7  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от fish_r Посмотреть сообщение
А как клиенту передаешь? Копипастишь в проект?

Добавлено через 2 минуты
Я имею в виду собственные, часто используемые наработки, и сторонние библиотеки
Если сторонние библиотеки удалить, то как клиент потом скомпилирует проект?)

Старый 08.06.2011, 15:18
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 8  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Сообщение от Bgg Посмотреть сообщение
Если сторонние библиотеки удалить, то как клиент потом скомпилирует проект?)
Если клиент изначально заказывал код, использующий какие-то библиотеки по его выбору, то обычно можно и без них передавать -- у клиента они и так есть.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 08.06.2011, 15:26
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 9  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Можно класть код не в один 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.
Старый 08.06.2011, 15:56
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 10  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от Котяра Посмотреть сообщение
Исходники я обычно отдаю полностью со всей структурой.
А как это "со всей структурой"? Если я правильно понял - ты подключаешь нужные пакеты к проекту без копипаста. Тогда в export автоматом они не попадают (хотя в svn может и есть "плюшки" не настолько хорошо его знаю). Остается два варианта:
- либо "дергать" нужные пакеты из "дерева" codelib,
- либо отдавать всё скопом, работать будет, но в проект попадают "левые" в данной ситуации классы.
Последнее что ли?

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.