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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.01.2012, 15:07
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 1  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
По умолчанию Стиль ведения проекта

Всем доброго дня!

Имеется проект с множеством классов. Хочу сделать рефакторинг. Думаю как лучше перестроить структуру проекта...

ВАРИАНТ 1
Складывать классы одного логического значения в один пакет. Например:

Код AS3:
Game/Map/Map.as
Game/Map/MapField.as
Game/Map/MapObject.as
Game/Render/RenderMap.as
Game/Render/RenderField.as
Game/Render/RenderObject.as
Game/Game.as
Utils/MD5.as
main.as
И вот когда я в main.as создаю класс Game:

Код AS3:
import Game.Game;
 
// ...
 
public static var game:Game=null;
 
// ...
 
game=new Game.Game(param1,param2);
Видите как странно идёт создания? Это так в FlashDevelop от наставил Game.Game, и при этом от отказывается подсвечивать параметры конструктора.

ВАРИАНТ 2
Например:

Код AS3:
Game/Map/MapField.as
Game/Map/MapObject.as
Game/Render/RenderMap.as
Game/Render/RenderField.as
Game/Render/RenderObject.as
Game/Map.as
Utils/MD5.as
Game.as
main.as
То есть класс с базовой логикой вынесен из пакета, а в пакете его составляющие.

ВАРИАНТ 3
В качестве имён пакетов не использовать имена классов (ох уж это сложно для меня).

Вообще кто как делает и где какие подводные камни? Я разрабатываю на FlashDevelop. На C++ я на жёстком диске создавал папки в крайних случаях для объединения кода, в основном у меня были фильтры только в самой среде для удобочитаемости структуры проекта. Но в FlashDevelop каждая папка является отдельным пакетом.

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Названия классов, в т.ч. Main - с большой буквы, документ-класс делать статически смысла не имеет. Пэкеджы - с маленькой буквы.
Цитата:
То есть класс с базовой логикой вынесен из пакета
Это удобно и нормально.
Пакет формируется при создании используемого класса. По сути - это часть имени класса (собственно так обстоит дело и с файлами в ОС). Хотя не уверен что аналогия подходящая.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Код AS3:
Game.Game
Вот этот бред потому что имя класса и пакета совпадают с точностью до буквы.
Пакеты принято именовать с маленькой буквы. Как TanaTiX говорит.
В вашем случае ИДЕ просто не может отличить в тексте пакет от класса и потому требует полного имени класса со всеми путями.

Насчет как по папкам раскидывать - да как угодно, как удобно. Это не столь важный вопрос. В любом случае если что-то не понравится то можно будет поперетягивать и будет ок. Правда импорты попереписывать придется, но в ФД это не руками делать так что пофиг.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 30.01.2012, 20:24
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 4  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Вместо перечисления отрывочных и неполных данных следует давать ссылку на текущую конвенцию.

Добавлено через 9 минут
Цитата:
В качестве имён пакетов не использовать имена классов (ох уж это сложно для меня).
Цитата:
Package names
Start them with a lowercase letter and use intercaps for subsequent words: controls, listClasses.

Package names should always be nouns or gerunds (the -ing noun form of a verb), not verbs, adjectives, or adverbs.

A package implementing lots of similar things should have a name which is the plural form of the thing: charts, collections, containers, controls, effects, events, formatters, managers, preloaders, resources, skins, states, styles, utils, validators.

It is common to use a gerund for the name of a package which implements a concept: binding, logging, messaging, printing. Otherwise, they are generally "concept nouns": accessibility, core, graphics, rpc.

A package containing classes that support component FooBar should be called fooBarClasses.
Обычно, пакет именуется так: domain.project.name. Например: com.mydomain.mycoolgame.events. Это позволит избежать конфликтов имен с другими вашими (и не вашими) проектами.
__________________
משיח לא בא
משיח גם לא מטלפן

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

Регистрация: Feb 2008
Адрес: Москва
Сообщений: 238
Отправить сообщение для dsQuadro с помощью ICQ
Цитата:
Сообщение от alatar Посмотреть сообщение
Вместо перечисления отрывочных и неполных данных следует давать ссылку на текущую конвенцию.
кстати в этой конвенции скобочку везде переносят, а тут на форуме я уже неоднократно видел замечания по поводу того что ее переносить не стоит так как же правильно?
так:
Код AS3:
public function():void{
   ...
}
или так:
Код AS3:
public function():void
{
   ...
}
по мне так второй вариант читабильнее, но почему то многие против него

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
по мне так второй вариант читабильнее, но почему то многие против него
По мне тоже, но по этой теме уже столько холиваров было, что не стоит начинать еще один. Это несущественно, также как и использование пробелов вместо табуляции.
__________________
משיח לא בא
משיח גם לא מטלפן

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

Регистрация: Feb 2008
Адрес: Москва
Сообщений: 238
Отправить сообщение для dsQuadro с помощью ICQ
ок, молчу.

Старый 31.01.2012, 13:28
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 8  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Может быть выбор стиля не столь существенен. Но если Вы работаете в компании и не следуете стилю, принятому там (будь то "египетский" с { на той же строчке или с переносом {) - будут очень сильно бить по рукам и правильно сделают.

Старый 31.01.2012, 14:03
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от alatar Посмотреть сообщение
По мне тоже, но по этой теме уже столько холиваров было, что не стоит начинать еще один.
Да, очередной холивар на эту тему нам не нужен (К примеру, я считаю скобку на новой строке абсолютно не читабельной , но вполне либерально к этому отношусь. Кому как удобнее)

Цитата:
Сообщение от alatar Посмотреть сообщение
Это несущественно, также как и использование пробелов вместо табуляции.
А вот это часть мне абсолютно не понятна. Просто не вижу логики. Пробел всегда фиксирован, в отличии от таба, поэтому каждый может настроить его под себя: 2, 4, 8.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 31.01.2012, 14:06
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 10  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
В большинстве IDE количество пробелов точно также настраивается.
__________________
משיח לא בא
משיח גם לא מטלפן

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

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

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


 


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


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