Абсолютно. Я был разработчиком Flex начиная с Flex 2, и до недавнего времени я использовал своего постоянного редактора, TextMate, для кодирования и Муравья для создания. TextMate имеет некоторые хорошие расширения для ActionScript и кодирование Flex, но я думаю, что Вы могли получить это для любого достойного редактора.
то, Что отсутствовало в моей установке, является применимым отладчиком, версия командной строки является болью для работы с. Из-за этого я начинал использовать FlexBuilder на стороне, с помощью него параллельно с моей регулярной установкой.
Наличие профилировщика не причиняет боль также.
Это более техническое описание фона, надеюсь, вы все равно найдете его полезным.
Как правило, это контейнер DI (внедрение зависимостей).
Учитывая следующий класс:
public class Sample
{
Service a;
public Sample()
{
a = new Service();
}
}
Проблема в том, что он инициализирует свою собственную версию Service
, что делает его очень трудным для адаптации к изменениям кода (т. Е. Если вы хотите обменять Service
с чем-то другим). Также это затрудняет тестирование.
Чтобы решить это, на самом деле не создавайте его сами, а получите его извне:
public class Sample
{
Service a;
public Sample(Service aService)
{
a = aService;
}
}
Теперь вы забрали создание из класса, вы можете просто положить его туда из снаружи, повышая тестируемость и ремонтопригодность. Тем не менее, у вас все еще есть зависимость от класса Service
. Вы на самом деле не заинтересованы в этом конкретном классе, но в поведении, которое он предлагает, - поэтому вы делаете из него интерфейс.
public class Sample
{
IService a;
public Sample(IService aService)
{
a = aService;
}
}
Теперь вы можете заменить услугу на что угодно. Например, у вас есть класс, получающий данные с сервера с помощью службы. Теперь вы хотите протестировать только парсинг данных, а не сервис извлечения данных - просто создайте класс, реализующий интерфейс, обслуживающий статические данные - готово!
Теперь Unity вступает в игру. На данный момент вы должны разрешить зависимости самостоятельно. Единство делает просто - он берет все классы, которые имеют зависимости, и разрешает их - так что вы можете просто вызвать (псевдокод, я не знаю единство):
UnityContainer uc = new UnityContainer();
var a = uc.GetService<IService>();
И он получит вам легко используемый класс .
Чего мы добились этим?
Вкратце: оно помогает быстрее создавать лучшие приложения.