<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Flextech - let&#039;s Flex &#187; Artykuły</title>
	<atom:link href="http://blog.flextech.pl/category/artykuly/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.flextech.pl</link>
	<description>wszystko o RIA Flex Flash AIR LiveCycle Media Server Catalyst Paweł Cichoń</description>
	<lastBuildDate>Thu, 24 Jun 2010 12:10:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flash CS4 10.0.2 update i konwencja nazw</title>
		<link>http://blog.flextech.pl/2009/06/01/flash-cs4-1002-update-i-konwencja-nazw/</link>
		<comments>http://blog.flextech.pl/2009/06/01/flash-cs4-1002-update-i-konwencja-nazw/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 09:23:22 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/?p=1104</guid>
		<description><![CDATA[W połowie maja pojawił się update Flash CS4 oznaczony numerkiem 10.0.2. Dlaczego niby to takie ważne? Z dosyć prostej przyczyny. Wspominałem kiedyś o tym, że przy dłużej liczbie warstw i klatek kluczowych oraz obiektów na nich występujących z Flash CS4 dzieje się coś niefajnego, wszystko tak zwalnia, że po prostu nie da się pracować. Powiem szczerze [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.flextech.pl/wp-content/uploads/2009/06/sw_1.png"></a>W połowie maja pojawił się <a href="http://www.adobe.com/support/flash/downloads.html" target="_blank">update Flash CS4 oznaczony numerkiem 10.0.2</a>. Dlaczego niby to takie ważne? Z dosyć prostej przyczyny. <a href="http://blog.flextech.pl/2008/11/03/flash-cs4-pl-i-tlumaczenie/#comment-1442" target="_blank">Wspominałem kiedyś o tym</a>, że przy dłużej liczbie warstw i klatek kluczowych oraz obiektów na nich występujących z Flash CS4 dzieje się coś niefajnego, wszystko tak zwalnia, że po prostu nie da się pracować. Powiem szczerze myślałem, że łatka 10.0.1, która została opublikowana jakiś czas temu rozwiąże ten dosyć istotny problem, jednak okazało się, że nie. <a href="http://kb2.adobe.com/cps/407/kb407415.html" target="_blank">Update 10.0.2 jest dedykowany właśnie powyższemu problemowi</a>, stąd jest po prostu niezbędny przede wszystkim dla animatorów i projektantów wykorzystujących Flash CS4 do prac kreatywnych, aby to środowisko było dla nich używalne.</p>
<p><strong>W kontekście powyższego updatea warto wspomnieć</strong> o konsolidacji nazw, jakiej ulega ostatnio Flash Platform. Nie wiem jak dla Was, ale dla mnie sam Flash, jako narzędzie z pakietu Creative Suite zatacza krąg (był taki moment, że dynamicznie puchło pod względem „developerskim”, teraz ten temat wydaje się być odpuszczony … i dobrze, bo to środowisko developerskie „zabawka”, wprawiające bardziej frustracje, niż w zachwyt, szczególnie w kontekście innych narzędzi służących temu celowi). Widać, że Adobe nieuchronnie wraca do tego, aby Flash jako składnik pakietu CS służył przede wszystkim do kreacji opartej na rozwiązaniach bazujących na listwie czasu i prostych skryptach. Stosunkowa prostota „programowania” w AS2 pozwalająca przypinać kod gdzie popadnie dla „technicznych designerów” była prostsza w użyciu i bardziej przyswajalna (choć dalece „niebezpieczna”), niż bardziej skomplikowana i restrykcyjna składnia AS3. Doświadczam codziennie jak przykładowo animatorzy mają problem z oskryptowaniem animacji w AS3, bo chcą używać AS3, tak samo jak używali AS2, a tu nie da rady. Nie da się przykładowo zrobić tak prosto gotoAndStop do klatki i zaraz po nim w następnej linii kodu sięgnąć do obiektu z tej klatki, bo nie jest on jeszcze zainicjowany, i trzeba kombinować z listenerami (Event.ADDED itd…), a to już inny poziom i para kaloszy, bo cały AS3 powinien wykluczać operowanie na listwie czasu w kontekście programowania … i bardzo dobrze (z punktu widzenia „pewności kodu” i stabilności opracowywanych rozwiązań jest to jak najbardziej słuszne). W związku z powyższym zmiana konwencji nazw wokół Flash Platform akcentująca Flasha, jako środowisko uruchomieniowe w kontekście ostrego podziału na narzędzia wytwórcze dla developera, designera i pośredniczące ma sens, nie tylko z punktu widzenia marketingowego (patrz środowiska wytwórcze na poniższym rysunku).</p>
<p><img class="alignnone size-full wp-image-1107" title="sw_1" src="http://blog.flextech.pl/wp-content/uploads/2009/06/sw_1.png" alt="" width="420" height="335" /></p>
<p>Wiadomo już, że Flex Builder w następnej odsłonie („Gumbo”) będzie nazywał się <strong>Flash Builder</strong>. „Thermo” jako narzędzie „pośredniczące” będzie <strong>Flash Catalystem</strong>. A co z kolejną odsłoną Flash CS4? Logika i obecne zorientowanie tego narzędzia nakazują, aby nazwać je np. Flash Designerem. W ten sposób pod względem spójności nazewnictwa i działań marketingowych „kolumna” narzędzi wytwórczych Flash Platform by grała … jak z tymi nazwami będzie … zobaczymy.</p>
<p><strong>Z pewnością dla samego Flexa jako opensourceowego frameworka</strong> zmiana nazw ma znaczenie poboczne. Flex zaczął dźwigać brzemię technologii bezpłatnej, stąd w tym kontekście Flex Builder jako narzędzie płatne, ze swoją nazwą również nie bardzo pasował …</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2009/06/01/flash-cs4-1002-update-i-konwencja-nazw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wstęp do Adobe LiveCycle ES dla programisty Flex</title>
		<link>http://blog.flextech.pl/2008/08/14/wstep-do-adobe-livecycle-es-dla-programisty-flex/</link>
		<comments>http://blog.flextech.pl/2008/08/14/wstep-do-adobe-livecycle-es-dla-programisty-flex/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 08:28:37 +0000</pubDate>
		<dc:creator>Bartek Soin</dc:creator>
				<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/2008/08/14/wstep-do-adobe-livecycle-es-dla-programisty-flex/</guid>
		<description><![CDATA[Nieco ponad miesiąc temu wśród materiałów prasowych Adobe pojawiła się informacja o rozszerzeniu produktu pod nazwą LiveCycle Enterprise Suite. Wiele osób czekało na tą informację z niecierpliwością ale jeśli przypadkiem ostatnio spędziłeś odcięty od cywilizacji i nie wiesz czym jest LiveCycle ES, ten krótki artykuł jest okazją do szybkiego nadrobienia zaległości i zabłyśnięcia w towarzystwie.
Interpretację [...]]]></description>
			<content:encoded><![CDATA[<p>Nieco ponad miesiąc temu wśród materiałów prasowych Adobe pojawiła się informacja o rozszerzeniu produktu pod nazwą <a target="_blank" href="http://www.adobe.com/products/livecycle/">LiveCycle Enterprise Suite</a>. Wiele osób czekało na tą informację z niecierpliwością ale jeśli przypadkiem ostatnio spędziłeś odcięty od cywilizacji i nie wiesz czym jest LiveCycle ES, ten krótki artykuł jest okazją do szybkiego nadrobienia zaległości i zabłyśnięcia w towarzystwie.</p>
<p>Interpretację oficjalnych opisów LiveCycle ES (w skrócie LC) pozostawmy specjalistom od marketingu i przejdźmy do konkretów. Najprościej rzecz ujmując <strong>LC to zestaw usług zbudowanych na platformie Java Enterprise Edition i towarzyszących im narzędzi</strong>, których wspólną cechą jest to, że mają coś wspólnego ze standardem PDF. Definicja jest bardzo ogólna ale wynika to z mnogości zastosowań LiveCycle w związku z czym został on podzielony na 14 różnych komponentów, z których każdy jest osobnym produktem i udostępnia różne zestawy usług. Co ważne, każda z usług jest dostępna przez jeden z trzech interfejsów programistycznych:</p>
<p>• <strong>Java API</strong> – jak łatwo się domyślić, do wykorzystania w aplikacjach na platformie Java<br />
• <strong>WebService</strong> – do wszystkich innych platform jak .NET czy PHP<br />
• <strong>LiveCycle Remoting</strong> – specjalny interfejs dla aplikacji Flex</p>
<p>Dla szybkiego zrozumienia zastosowań LiveCycle przyjrzyjmy się kilku przykładowym sytuacjom:</p>
<p>1. <strong>Firma A</strong> chce udostępnić na swojej stronie elektroniczny formularz, który użytkownik będzie mógł wypełnić na komputerze i przesłać drogą elektroniczną lub wydrukować i dostarczyć wersję papierową.</p>
<p>2. <strong>Firma B</strong> przygotowuje się do organizacji przetargu i chce śledzić zmiany w specyfikacji zamówienia, a później udostępnić dokumenty oferentom tak, by nie mogli ich odczytać po zakończeniu przetargu.</p>
<p>3. <strong>Firma C</strong> chce regularnie wysyłać do swoich klientów elektroniczne faktury opatrzone podpisem cyfrowym.</p>
<p>4. <strong>Firma D</strong> potrzebuje rozwiązania, które usprawni proces składania i rozpatrywania wniosków o urlop lub wewnętrzny zakup sprzętu.</p>
<p>W każdej z tych sytuacji pomocne mogą się okazać poszczególne komponenty LiveCycle:</p>
<p>1. <strong>Firmie A</strong> desktopowe narzędzie pod nazwą LiveCycle Designer ES umożliwia projektowanie rozbudowanych formularzy elektronicznych przy pomocy bogatej biblioteki komponentów takich jak pola tekstowe, przyciski, listy rozwijane itd. Do budowy bardziej zaawansowanych formularzy dostępne są języki Form Calci JavaScript. Formularze można zapisać w gotowym do dystrybucji formacie PDF (statycznym lub dynamicznym) lub w opartym na XML formacie XDP, które za pomocą komponentu serwerowego LiveCycle Forms ES łatwo mogą być renderowane w innych formatach takich jak PDF, HTML i SWF. Oprócz tego LC Forms umożliwia zbieranie danych wysłanych z formularza, walidacjętychdanychiwieleinnychfunkcjonalności.Ponadtoformularzetworzone w Designerze mogą zawierać dwuwymiarowe kody polowe, których zadaniem jest przechowywanie wybranych danych z formularza tak, by po wydrukowaniu go możliwe było bezbłędne odczytanie ich z powrotem do postaci elektronicznej. Po stronie serwera dba o to komponent LiveCycle Barcoded Forms. Z kolei LiveCycle Reader Extensions pozwoli na odblokowanie zaawansowanych funkcjonalności formularzy PDF (jak umieszczanie komentarzy, dodawanie załączników, składanie podpisów cyfrowych) dla użytkowników darmowego Adobe Readera.</p>
<p>2. Dla <strong>firmy B</strong> idealnym rozwiązaniem może się okazać LiveCycle Rights Management ES. Dzięki temu komponentowi będzie mogła nałożyć na dokumenty PDF (a także DOC, XLS i PPT dzięki pluginowi do Office’a) tzw. polityki bezpieczeństwa, które określają jacy użytkownicy mogą otworzyć dokument, w jakim czasie można to zrobić i jakie operacje na dokumencie są dozwolone. W celu zapewnienia poufności dokumentu jest on zabezpieczany szyfrem symetrycznym (AES 128 lub 256) dzięki czemu nawet niekontrolowana dystrybucja (np. zgubienie pendrive’a) nie powoduje wycieku danych. Do odczytu dokumentu wystarczy zwykły Adobe Reader, który po uwierzytelnieniu użytkownika ściąga klucz i jednorazowo odszyfrowuje dokument. Dodatkowo, autor dokumentu może wybrać opcję śledzenia akcji wykonywanych przez użytkowników w czasie przeglądania dokumentu. Tak zwane zdarzenia audytowe (otwarcie dokumentu, modyfikacja, drukowanie i wiele innych) są wysyłane do serwera LiveCycle Rights Management do późniejszego wglądu.</p>
<p>3. <strong>Firmę C</strong> prawdopodobnie zainteresuje LiveCycle Digital Signatures ES, który pozwala na automatyczne składanie podpisu cyfrowego na dużych ilościach dokumentów. W połączeniu z LiveCycle PDFGenerator ES i usługą wysyłania maili obecną w LiveCycle Foundation ES, firma łatwo zaimplementuje mechanizm automatycznego generowania, podpisywania i wysyłania faktur.</p>
<p>4. Natomiast <strong>firmie D</strong> LiveCycle Process Management ES pozwoli na przeniesienie “papierowych” procedur do postaci elektronicznej. Poprzez interfejs LiveCycle Workspace użytkownicy będą mogli składać, rozpatrywać, eskalować, przekazywać wszelkiego rodzaju wnioski, pisma i tym podobne formalności bez zużywania ton papieru, a także uczestniczyć w dowolnych procesach biznesowych firmy przygotowanych w opartym na Eclipse narzędziu LiveCycle Workbench ES:</p>
<p><img src="http://blog.flextech.pl/wp-content/uploads/2008/08/lcycle_shot01.jpg" alt="lcycle_shot01.jpg" /><br />
Jak wspomniałem, niektóre z komponentów dostarczają standardowego interfejsu użytkownika (np. LiveCycle Workspace) jednak wszystkie usługi dostępne są z Flexa, więc nic nie powstrzymuje nas przed zbudowaniem własnego interfejsu czy wykorzystania niektórych usług we własnych aplikacjach Flexowych.</p>
<p>Każda usługa czy proces automatycznie udostępnia punkt docelowy (destination) do wykorzystania z Flexowym mechanizmem Remote Object. Na przykład deklaracja zdalnego obiektu dla usługi EncryptDocument wygląda następująco:</p>
<ul><code><br />
&lt;mx:RemoteObject id="encryptDocument"<br />
destination="EncryptDocument"<br />
result="resultHandler(event);"&gt;</p>
<ul>&lt;mx:method name="invoke"<br />
result="handleExecuteInvoke(event)"/&gt;</ul>
<p>&lt;/mx:RemoteObject&gt;</p>
<p></code></ul>
<p>Natomiast właściwe wywołanie usługi jest równie proste jak każde inne:</p>
<ul><code><br />
encryptDocument.setCredentials("administrator", "password");<br />
varparams:Object = new Object();<br />
params["inDoc"] = pdfDocument;<br />
encryptDocument.invoke(params);<br />
</code></ul>
<p>gdzie pdfDocument to referencja do dokumentu wcześniej uploadowanego na serwer. W obsłudze zdarzenia result z powrotem dostajemy zaszyfrowany dokument:</p>
<ul><code><br />
varres:Object = event.result;<br />
vardocRef:DocumentReference = res["outDoc"] as DocumentReference;<br />
</code></ul>
<p>Tyle tytułem wstępu. Polecam własnoręczne sprawdzenie, co można zrobić przy pomocy LiveCycle ES. Trial jest dostępny do ściągnięcia z Adobe Developer Connection (<a target="_blank" href="http://www.adobe.com/devnet/livecycle/trial">http://www.adobe.com/devnet/livecycle/trial</a>), również w prostej do użycia wersji turnkey, która automatycznie instaluje serwer JBoss i bazę MySQL. LiveCycle Designer jest dostępny także jako osobny produkt, który można wykorzystać do budowy formularzy z inną technologią serwerową lub zupełnie offline (<a target="_blank" href="http://www.adobe.com/products/livecycle/designer">http://www.adobe.com/products/livecycle/designer</a>).</p>
<hr width="100%" />
<table border="0">
<tr>
<td vAlign="top"><img src="http://blog.flextech.pl/wp-content/uploads/2008/08/bartek.jpg" alt="Bartek Soin" /></td>
<td>  </td>
<td vAlign="top"><strong>Bartek Soin</strong><br />
Specjalista w zakresie technologii Flex i LiveCycle w polskim oddziale Adobe. Wolny czas spędza aktywnym wypoczynku (kolarstwo górskie, wspinaczka, snowboard), zgłebianiu tajników fotografii i rozpoznawianiu najnowszych technologii internetowych.</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/08/14/wstep-do-adobe-livecycle-es-dla-programisty-flex/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Projekty adaptowalne, a Flex</title>
		<link>http://blog.flextech.pl/2008/04/06/projekty-adaptowalne-a-flex/</link>
		<comments>http://blog.flextech.pl/2008/04/06/projekty-adaptowalne-a-flex/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 19:22:26 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Metodyki]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Wzorce]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/2008/04/06/projekty-adoptowalne-a-flex/</guid>
		<description><![CDATA[Muszę przyznać, że osobiście jestem wielkim propagatorem stosowania procesów adaptowalnych (ang. adaptive processes) w kontekście wytwarzania aplikacji RIA opartych m.in. o technologię Flex. Co to jest proces adaptowalny? Aby mówić o jakimkolwiek procesie wytwórczym na pewno należy upewnić się, że rozróżniamy pojęcia „proces” i „projekt”. Czyli na początku odpowiedzmy na pytanie, co to jest projekt adaptowalny (ang. [...]]]></description>
			<content:encoded><![CDATA[<p>Muszę przyznać, że osobiście jestem wielkim propagatorem stosowania procesów adaptowalnych (ang. adaptive processes) w kontekście wytwarzania aplikacji RIA opartych m.in. o technologię Flex. Co to jest proces adaptowalny? Aby mówić o jakimkolwiek procesie wytwórczym na pewno należy upewnić się, że rozróżniamy pojęcia „proces” i „projekt”. Czyli na początku odpowiedzmy na pytanie, co to jest projekt adaptowalny (ang. adaptive project)? Otóż, protoplastą projektów adaptowalnych są projekty fixe-price (stała cena – bardzo popularne na rynku polskim), których nazwa bierze się stąd, że ich artefaktem wstępnym jest kontrakt fixe-price, czyli taki, w którym jasno i niezmiennie w kontekście procesu produkcyjnego są zdefiniowane wymagania odnośnie projektu (przedsięwzięcia), którym mamy się zająć. Jeżeli mówimy o wymaganiach, to musimy odróżniać wymagania funkcjonalne od niefunkcjonalnych. Wymagania niefunkcjonalne, to np. budżet, harmonogram, itd… wymagania funkcjonalne, to wszystko to co opisuje nam to co mamy pokryć od strony wdrożeniowej (punkty funkcyjne, funkcjonalności itd…). Projekt adaptowalny, to projekt przed którego realizacją podpisujemy kontrakt adaptowalny (którego protoplastą jest kontrakt z otwartymi godzinami ang. open-hours contracts), czyli taki, który zezwala na rozbudowę zakresu projektu od strony wymagań funkcjonalnych w trakcie jego życia na ściśle określonych zasadach. Natomiast proces adaptowalny to sposób realizacji projektu adaptowalnego, w którym w ciągu kolejnych iteracji wymagania funkcjonalne są rozbudowywane oraz adaptowane do wymagań niefunkcjonalnych.</p>
<p>Każdy proces jest uporządkowanym zbiorem faz oraz artefaktów. Fazy mogą być realizowane w sposób kaskadowy (ang. waterfall model), bądź równoległy. W jednym z poprzednich postów <a href="http://blog.flextech.pl/2008/02/22/tdd-we-flex-a-moze-bdd/" target="_blank">wspominałem o metodykach lekkich jak XP </a>(eXtreame Programming). Bardzo dobrą metodyką lekką, która sprawdza się w kontekście adaptowalnego prowadzenia przedsięwzięć RIA, jest <a href="http://pl.wikipedia.org/wiki/Scrum" target="_blank">SCRUM</a>, jako, że jej stosowanie wymusza m.in. spotkania zespołu pomiędzy kolejnymi fazami/iteracjami procesu, które pozwalają na kontrolowane rozbudowywanie/korygowanie zakresu projektu od strony funkcjonalnej razem z klientem. Porównując chociażby Flex’a z Flash’em, należy stwierdzić, że Flex to takie małe błogosławieństwo dla stosowania procesu adaptowalnego w kontekście wytwarzania RIA (czy nawet w kontekście stosowania programowania parami (ang. <a href="http://en.wikipedia.org/wiki/Pair_programming" target="_blank">pair programming</a>) w RIA). Flex, jako technologia oraz środowisko wytwórcze, pozwala chociażby na zrównoleglenie poszczególnych faz, na dostarczanie szybkich prototypów oraz artefaktów funkcjonalnych do klienta, nie zaburzając przy tym architektury aplikacji oraz płynności samego procesu produkcyjnego. Jego zorientowanie na warstwę prezentacji wymaga chociażby zainteresowania się tematyką <a href="http://en.wikipedia.org/wiki/User-centered_design" target="_blank">UCD</a> (ang. User-Centered Design, usabilty, itd…) oraz włączenia ideii UCD choćby w szczątkowej postaci do procesu produkcyjnego.</p>
<p>Jak stosowanie procesu adaptowalnego, UCD oraz SCRUM, jako „jedność” wygląda w praktyce? No, na pewno wszystkiego tutaj nie opiszę (po szczegóły ad. procesów adaptowalnych zapraszam m.in. do sięgnięcia do publikacji m.in. mojego autorstwa – <a href="http://www.springer.com/computer/database+management+&amp;+information+retrieval/book/978-1-4020-5633-8" target="_blank">link tu</a>, i <a href="http://www.springerlink.com/content/mg47000g72091007/" target="_blank">tu</a> ), jako że temat jest dosyć obszerny. Niemniej jednak chcąc wszystko przedstawić w sposób bardzo zwięzły na potrzeby tego wpisu w skrócie wygląda to tak. Zamiast <a href="http://en.wikipedia.org/wiki/Work_breakdown_structure" target="_blank">WBS</a> stosuje się FBS (ang.  Functional (czasami mówi się Features) Breakdown Structure), który jest drzewiastą reprezentacją modułów, obszarów funkcjonalnych oraz funkcjonalności projektów wraz z wagami realizacyjnymi (priorytety) określonymi przez klienta (czasami, choć rzadko przed stworzeniem FBS’a stosuje się badania fokusowe, aby „wybadać”, czego przyszli użytkownicy (z grupy docelowej) mogą pożądać w aplikacji, od strony funkcjonalności). Na bazie FBS’a tworzone są scenariusze odpowiadające realizacji danych funkcjonalności (np. w postaci diagramów aktywności <a href="http://pl.wikipedia.org/wiki/UML" target="_blank">UML’a</a>) – opisy stanów oraz tranzycji (przejść) między nimi, które następnie są upraszczane (redukowane) w kontekście możliwości Flex’a. Następnym krokiem jest szukanie możliwych kolaboracji danych stanów pochodzących ze scenariuszy odrębnych funkcjonalności, tak, aby zbudować model interakcji pomiędzy odpowiednimi obszarami funkcjonalnymi projektu. Na bazie wszystkiego co powyżej, tworzy się makiety oraz prototypy, które są poddawane testom z użytkownikami (ang. user-tests). Ważne jest to, że przed kreacją makiet jasno określa się interfejsy pomiędzy warstwą prezentacji, a logiką biznesową, tak, aby faza implementacji (logiki biznesowej) mogła zacząć się równolegle z wytwarzaniem <a href="http://pl.wikipedia.org/wiki/Interfejs_graficzny" target="_blank">GUI</a>. Faza wdrożenia, to iteracyjna i równoległa realizacja połączonych faz projektowania oraz implementacji, – czyli po prostu stosowanie podejścia adaptowalnego w kontekście SCRUM, które skutkuje dostarczaniem kolejnych funkcjonalności systemu przy współpracy z klientem oraz w kolejności, które określają wcześniej zdefiniowane priorytety realizacyjne. Tak to w DUŻYM skrócie wygląda.</p>
<p>Jakby nie było metodologie ad. projektów adaptowalnych to jak dla mnie przyszłość w realizacji złożonych projektów RIA, dodatkowo bardzo dobrze „radzą sobie” z pracą zdalną (ang. telecommuting), dlatego jestem dosyć mocno zaangażowany w ich promocję oraz precyzowanie (Adam pracujący w <a href="http://www.sap.com/poland/index.epx" target="_blank">SAP’ie</a> testował je od strony wdrażania aplikacji programowych, natomiast ja od strony aplikacji multimedialnych (systemów czasu rzeczywistego) – i razem stwierdzamy, że proces adaptowalny daje radę oraz przynosi wymierne rezultaty w stosunku do podejścia konwencjonalnego). Jako, że temat jest z pogranicza zarządzania projektami i technologii Flex, nie chcę już Was więcej zanudzać ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/04/06/projekty-adaptowalne-a-flex/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Usability dopomina sie o RIA</title>
		<link>http://blog.flextech.pl/2008/03/04/usability-dopomina-sie-o-ria/</link>
		<comments>http://blog.flextech.pl/2008/03/04/usability-dopomina-sie-o-ria/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 17:04:17 +0000</pubDate>
		<dc:creator>Tomek Karwatka</dc:creator>
				<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[Wzorce]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/2008/03/04/usability-dopomina-sie-o-ria/</guid>
		<description><![CDATA[Różnica w projektowaniu serwisów www i aplikacji webowych przybiera na znaczeniu wraz z rozwojem środowisk RIA. Temat staje się interesujący dla środowiska usability – powstają zalecenia projektowe oraz metody badawcze dotyczące użyteczności aplikacji RIA. Swoje dwa ostatnie podcasty tematowi poświęcił Jared Spool.
Jared wyróżnia w strukturze aplikacji webowych dwa główne elementy – hub oraz wywiad (interview). [...]]]></description>
			<content:encoded><![CDATA[<p>Różnica w projektowaniu serwisów www i aplikacji webowych przybiera na znaczeniu wraz z rozwojem środowisk RIA. Temat staje się interesujący dla środowiska usability – powstają zalecenia projektowe oraz metody badawcze dotyczące użyteczności aplikacji RIA. <a title="UIE Brainsparks Podcast" href="http://www.uie.com/brainsparks/2008/02/07/usability-tools-podcast-useful-web-app-usability-techniques-part-1/">Swoje dwa ostatnie podcasty tematowi poświęcił Jared Spool</a>.</p>
<p>Jared wyróżnia w strukturze aplikacji webowych dwa główne elementy – hub oraz wywiad (interview). Hub jest centralnym miejscem w którym znajdują się informacje na których dokonuje się działań (przykład huba to lista todo lub lista maili). Po wykonaniu operacji wraca się do huba. Wywiad jest natomiast procesem gdzie użytkownik odpowiada na kolejne pytania i przechodzi kolejne kroki procesu. Większość aplikacji łączy oba elementy. Niżej (za publikacją UIE) propozycja wizualizacji huba i wywiadu.</p>
<p align="center"><img src="http://blog.flextech.pl/wp-content/uploads/2008/03/interview.jpg" alt="interview.jpg" /></p>
<p>Na stronach firmy Jareda – UIE, kupić można dwie publikacje omawiające metody projektowania aplikacji webowych: <a title="designer's guide" href="http://www.uie.com/reports/web_apps_tour/">The Designer&#8217;s Guide to Web Applications, Part II<br />
Web Apps Tour 2007: Learning from Successful Designs</a>, <a title="designer's guide - web appliactions" href="http://www.uie.com/reports/web_application_structure/">The Designer&#8217;s Guide to Web Applications, Part I<br />
Structure and Flows</a>. Warto wspomnieć, że UIE udostępnia za darmo po jednym rozdziale z każdej publikacji.</p>
<p>Aplikacjami Webowymi zajął się też Jakob Nielsen. Nazywany niekiedy „Wałęsą usability” ze względu na dość siermiężne i ortodoksyjne przekonania :). W każdym razie, gdy Nielsen o czymś pisze światek usability zawsze poddaje to dyskusji i jest to cenne samo w sobie. Jakob Nielsen w tym roku pierwszy raz opublikował swoje <a title="Top-10 Design Mistakes" href="http://www.useit.com/alertbox/application-mistakes.html">Top-10 Design Mistakes</a> w odniesieniu do aplikacji (wcześniej zestawienia tego typu dotyczyły serwisów www).</p>
<p>Przyjrzyjmy się bliżej kilku z głównych błędów jakie zostały zdefiniowane w <a title="Top-10 Design Mistakes" href="http://www.useit.com/alertbox/application-mistakes.html">publikacji Nielsena</a>.</p>
<ul>
<li><strong>Niestandardowe kontrolki </strong>– użytkownicy przyzwyczaili się do tego jak zachowują się checkboxy, listy rozwijane, przyciski – każda zmiana takiej standardowej kontrolki może wprowadzić wiele niepotrzebnego stresu w używanie aplikacji. Nielsen argumentuje za używaniem wzorców projektowych &#8211; „Najlepsi projektanci interakcji zdefinowali wygląd i zachowanie kontrolek GUI w wyniki 30 lat pracy popartej tysiącami godzin testów. Mało prawdopodobne abyś przez weekend wymyślił coś lepszego.”, dalej Nielsen pisze „Użytkownicy spędzają większość swojego czasu na innych niż twoja stronach (&#8230;) Użytkownicy mają kilka tysięcy razy więcej doświadczenia w interakcji ze standardowymi kontrolkami niż z indywidualnie projektowanymi”.<br />
Jako szczególny przypadek niestandardowych kontrolek, Nielsen wymienia elementy designu, które wyglądają jak kontrolki ale nimi nie są – najprostszy przykład to elementy, które wyglądają na klikalne ale nie pozwalają na interakcję.</li>
<li><strong>Brak konsekwencji </strong>– konsekwencja w projektowaniu GUI zakłada używanie tych samych nazw na te same rzeczy. Funkcja, która wykonuje czynność powinna z każdego miejsca aplikacji być wywoływana w ten sam sposób. Najbardziej oczywisty przykład niekonsekwencji zauważyłem w oprogramowaniu mojego routera. Pokazuje on adresy MAC podłączonych urządzeń w formacie XX-XX-XX-XX-XX-XX ale gdy chcę dodać nowe urządzenie do listy dostępu to wymaga ode mnie formatu XX:XX:XX:XX:XX:XX. W obrębie jednej aplikacji nie mogę skopiować danych i wkleić ich.</li>
<li><strong>Brak sugestii </strong>– Nielsen używa sformułowania „Perceived affordances” na określenie akcji, które użytkownik wie, że może wykonać gdy patrzy na obiekt. Dobrym przykładem jest tutaj wyraźne oznaczenie elementów ekranu, które można złapać i przeciągnąć w inne miejsce. Aplikacje pozwalając użytkownikom na personalizację powinny jasno komunikować co można na ekranie poprzestawiać.</li>
<li><strong>Brak odpowiedzi </strong>– należy prezentowac użytkownikowi aktualny stan systemu. Przykładowo &#8211; badania, które prowadzono niezależnie zawsze pokazują, że użytkownik, który widzi stan systemu jest skłonny dłużej oczekiwać na wykonanie się czasochłonnych zadań. Interesujące, że subiektywny odbiór czasu u użytkowników, którzy widzieli stan systemu był niezgodny z obiektywnym czasem oczekiwania. Użytkownicy (mylnie) uważali, że czekali krócej na zadania o których przebiegu byli informowani.</li>
<li><strong>Brak komunikatów błędów</strong> – komunikaty błędów od zawsze były najbardziej zaniedbanym elementem projektowania. To zupełnie zrozumiałe ale warto zastanowić się jak dobrymi komunikatami o błędach możemy zjednać sobie użytkowników i nauczyć ich przy okazji jak błędów tych unikać.</li>
<li><strong>Pytanie dwa razy o to samo</strong> – użytkownicy zawsze irytują się gdy muszą powtórnie podać informacje o które już ich pytano. Gdy projektuje się pojedyńcze strony aplikacji można pominąć takie pozyskane już dane – warto zatem wyjść od projektowania procesów i dopiero na ich bazie projektować makiety. Pomocny może być tutaj choćby program Axure (www.axure.com), który łączy procesy i strony w jeden prototyp.</li>
<li><strong>Brak wartości domyślnych</strong> – wartości domyślne zawsze polepszają płynność procesów. Rozmyślnie usunąłbym tylko te wartości domyślne, których wybór dla użytkownika jest kluczowy i jeśli nastąpi pomyłkowy wybór wartości domyślnej (np. przez nieuwagę) użytkownik będzie bardzo niezadowolony. Przykładem może to być kolor ubrania (użytkownicy zazwyczaj zakładają, że kolor jest taki jak na zdjęciu gdy często można wybrać różne kolory a kolor defaulowy może być inny niż na fotce).</li>
</ul>
<p>O pozostałych błędach projektantów przeczytacie u Nielsena: <a title="Top-10 Design Mistakes" href="http://www.useit.com/alertbox/application-mistakes.html">Top-10 Design Mistakes.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/03/04/usability-dopomina-sie-o-ria/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Co to jest Maven i jak go użyć z Flex&#8217;em</title>
		<link>http://blog.flextech.pl/2008/03/01/co-to-jest-maven-i-jak-go-uzyc-z-flexem/</link>
		<comments>http://blog.flextech.pl/2008/03/01/co-to-jest-maven-i-jak-go-uzyc-z-flexem/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 23:35:15 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Metodyki]]></category>
		<category><![CDATA[Wzorce]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/2008/03/01/co-to-jest-maven-i-jak-go-uzyc-z-flexem/</guid>
		<description><![CDATA[Muszę przyznać, że jeżeli chodzi o rekompilację ad-hoc przez długi czas &#8220;ograniczałem się&#8221; do Ant&#8217;a, który działał sobie razem z Eclipsem. Jednak z czasem, kiedy to pojawiały się większe projekty, które same z siebie wymuszały przestrzeganie faz produkcyjnych wpadło mi w ręce niesamowite narzędzie tj. Maven. Nie będę ukrywał, że zarówno Ant&#8217;a, jak i Maven&#8217;a poznałem [...]]]></description>
			<content:encoded><![CDATA[<p>Muszę przyznać, że jeżeli chodzi o rekompilację ad-hoc przez długi czas &#8220;ograniczałem się&#8221; do <a href="http://ant.apache.org/" target="_blank">Ant&#8217;a</a>, który działał sobie razem z Eclipsem. Jednak z czasem, kiedy to pojawiały się większe projekty, które same z siebie wymuszały przestrzeganie faz produkcyjnych wpadło mi w ręce niesamowite narzędzie tj. <a href="http://maven.apache.org/" target="_blank">Maven</a>. Nie będę ukrywał, że zarówno Ant&#8217;a, jak i Maven&#8217;a poznałem &#8220;przez Jave&#8221;, i to właśnie swoje doświadczenia z Javy w tym względzie zacząłem przenosić na grunt Flex&#8217;a. Co to jest Maven? Mówiąc krótko jest to narzędzie, które ma za zadanie automatyzować zarówno proces kompilacji, buildowania i migracji wraz z procesem zarządzania projektem. Choć użycie sformułowania &#8220;zarządzania projektem&#8221; to być może za duże słowo, powiedzmy zarządzania fazami procesu wytwórczego alplikacji programowych. Jak to jest możliwe? Otóż każdy projekt składa się z modułów realizacyjnych, których podział wynika za zwyczaj pośrednio z tzw. WBS&#8217;a (<a href="http://en.wikipedia.org/wiki/Work_breakdown_structure" target="_blank">Work Breakdown Structure</a>), za który odpowiedzialny jest Project Manager. Modłuły funkcjonalne w całości, bądź po podziale na czynności są przekazywane do wdrożenia zespołom projektowym w danej metodologii, która zakłada dostarczanie pewnych artefaktów, zarówno papierowych, jak i programowych na końcu poszczególnych faz. W kontekście procesu produkcyjnego (tym bardziej jeżeli mamy do czynienia z tzw. procesem iteracyjnym)  przydałoby się narzędzie, które dbałoby o to, aby poszczególni członkowie zespołów mieli tożsame pliki konfiguracyjne środowisk wytwórczych,  pracowali wedle tych samych faz produkcyjnych oraz przestrzegali ich kolejności, w zorganizowany sposób dostarczali artefakty (zarówno papierowe tj. dokumentację, która za zwyczaj jest w formie elektronicznej, jak i programowe tj. zwersjonowane kody źródłowe), które składałyby się na kompletne modłuły, natomiast poszczególne moduły na gotowy produkt (w kontekście Flex&#8217;a lepiej chyba zamiast modułów, używać terminu &#8211; komponent, jakby nie było, przyjmijmy, że w kontekscie tego posta terminy te są dla mnie równoważne).</p>
<p>Na zdrowy rozsądek, narzędzie mające zautomatyzować i nadzorować powyższe kwestie powinno dysponować jakimś standardem opisu zależności pomiędzy poszczególnymi modułami, który krótko mówiąc opisywałby budowę aplikacji, a także szereg innych informacji dotyczących m.in. konfiguracji środowisk wytwórczych, generowania raportów, czy opisu zespołu projektowego wraz z referencją do zdefiniowanych wcześniej artefaktów, za które odpowiedzialni są poszczególni członkowie zespołu.</p>
<p>Narzędziem, które pozwala to zrobić jest Apache Maven, natomiast standardem dokumentu zawierającym definicje między innymi wymienionych wyżej aspektów jest POM &#8211; <a href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html" target="_blank">Project Object Model </a>(który jasna sprawa bazuje na języku XML). Niestety ciężko by było w tym poście opisać poszczególne tagi niezbędne do tego, aby stworzyć POM &#8211; dlatego odsyłam <a href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html" target="_blank">do tego linku</a> po specyfikację wraz z przykładami.</p>
<p>Jednak przed tym jak zaczniemy definiować POM&#8217;y musimy zainstalować <a href="http://www.israfil.net/projects/mojo/maven-flex2-plugin/" target="_blank">plugin Maven&#8217;a</a> do Flex SDK 2.0 (przyznam się, ze plugina z SDK 3 jeszcze nie używałem, nie wiem, czy da radę). Jakby nie było, plugin ten, nie jest może zbyt rozbudowany, niemniej jednak oferuje cztery bardzo przydatne dyrektywy (czynności) [ flex2:asdoc, flex2:compile-swc, flex2:copy-flex-applications, flex2:compile-swf], których nazwy mówią same za siebie i o których można sobie więcej <a href="http://www.israfil.net/projects/mojo/maven-flex2-plugin/plugin-info.html" target="_blank">poczytać tu</a>. <a href="http://www.israfil.net/projects/mojo/maven-flex2-plugin/examples/simple_war_project.html" target="_blank">Przykłady użycia są tu</a>. Jeżeli natomiast w swoich projektach używasz webserviceów WSDL&#8217;a polecam <a href="http://maven.badgers-in-foil.co.uk/sites/wsdl2as/" target="_blank">wsdl2as</a> plugin, jest tam też plugin pod Maven&#8217;a &#8211; niezmiernie ułatwiająca życie sprawa.</p>
<p>Maven rządzi i jak dla mnie to teraźniejszość i przyszłość, z pewnością więc warto zapoznać się z nim w kontekście tworzenia rozbudowanych aplikacji Flex&#8217;owych.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/03/01/co-to-jest-maven-i-jak-go-uzyc-z-flexem/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TDD we Flex, a może BDD?</title>
		<link>http://blog.flextech.pl/2008/02/22/tdd-we-flex-a-moze-bdd/</link>
		<comments>http://blog.flextech.pl/2008/02/22/tdd-we-flex-a-moze-bdd/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 22:01:37 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Metodyki]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/2008/02/22/tdd-we-flex-a-moze-bdd/</guid>
		<description><![CDATA[Cieszę się, że technologia Flex i sam jezyk ActionScript wdziera się do rozwiązan korporacyjnych na tyle szybko, że coraz częsciej zespoły wytwarzające oprogramowanie w oparciu o Flexa, stosują znane metodyki programowania używane w innych srodowiskach/technologiach wytwarzania od dosyć dawna. Same przez siebie niejako nobilitują one Flex&#8217;a, pokazując, ze jest on w stanie podołać skompilkowanym wdrożeniom RIA, absorbującym duże [...]]]></description>
			<content:encoded><![CDATA[<p>Cieszę się, że technologia <a href="http://www.adobe.com/products/flex/" target="_blank">Flex</a> i sam jezyk <a href="http://pl.wikipedia.org/wiki/ActionScript" target="_blank">ActionScript</a> wdziera się do rozwiązan korporacyjnych na tyle szybko, że coraz częsciej zespoły wytwarzające oprogramowanie w oparciu o Flexa, stosują znane metodyki programowania używane w innych srodowiskach/technologiach wytwarzania od dosyć dawna. Same przez siebie niejako nobilitują one Flex&#8217;a, pokazując, ze jest on w stanie podołać skompilkowanym wdrożeniom <a href="http://pl.wikipedia.org/wiki/Rich_Internet_Application" target="_blank">RIA</a>, absorbującym duże zespoły projektowe i produkcyjne (mam tu na mysli 30-40 osób). Automatyzacja jest teraz na czasie, w tym zagadnienia dot. automatyzacji refaktoringu, czy testowania &#8211; dla kogos z pozoru być może są to sprawy trywialne, niestety tak nie jest. Co to jest TDD (ang. <a href="http://en.wikipedia.org/wiki/Test-driven_development" target="_blank">Test Driven Devlopment</a>)? &#8211; po krótce jest to wytwarzanie oprogramowania zorientowane na testy.</p>
<p>Pomysł na TDD, pojawił się niedługo po ukłuciu i rozpowszechnieniu się terminu XP (ang. <a href="http://www.extremeprogramming.org/" target="_blank">eXtreme Programing</a>), jednej z bardziej popularnych metodyk lekkich (inaczej zwanych zwinnymi ang. agile) wytwarzania oprogramowania, które kładą nacisk na dostarczanie klientowi artefaktów programowych, zamiast papierowych tj. dokumentacji &#8211; która w XP ma formę szczątkową w porównaniu m.in. do RUP (ang. <a href="http://pl.wikipedia.org/wiki/Rational_Unified_Process" target="_blank">Rational Unified Process</a>), który czerpie korzenie z USDP (ang. <a href="http://en.wikipedia.org/wiki/Unified_Process" target="_blank">Unified Software Development Process</a>)) i jest reprezentantem metodyk ciężkich. XP jako uznana metodyka zwinna, zaczeła permanentnie dążyc do skracania faz produkcyjnych i tak m.in. powstał pomysł na to, aby zautomatyzowac testowanie poprzez wprowadzenie testów jednostkowych (nazwa bierze się z testowania danej jednostki, jaka jest metoda (funkcja) lub klasa) oraz przeniesienie fazy testowania na poczatek fazy implementacji, a docelowo zmusić programistę, aby pisał przypadki testowe przed napisaniem właściwego kodu aplikacji programowej, pisać na początku, co kod ma zrobić, a nie jak coś ma być zrobione. W porównaniu do tradycyjnego procesu wytwarzania oprogramowania, w którym testy (czy to weryfikacyjne, walidacyjne, wydajnościowe, czy to ilościowe) sa przeprowadzane za zwyczaj w koncowych fazach procesu wytwarzania oprogramowania, była to koncepcja nadzwyczaj rewolucyjna (nawet jak na poczatki XXI wieku ). Z &#8221;marketingowego&#8221; punktu widzenia, wydawalo sie od razu, ze programisci będą mieć wiekszy zapał aby pisać testy na początku fazy wdrożenia, niż w kolejnych fazach (przecież na zdrowy rozsądek każdy z nas jak podchodzi do projektu ma najwięcej zaangażowania na początku prac, najmniej na żmudnym końcu, kiedy należy poprawiac i poprawiac, i nie zawsze wiadomo, gdzie się popełniło błąd ), a kod tworzony wedle ścisłych reguł umożliwiajacych automatyzację testowania oraz przypadków testowych będzie łatwiejszy w pielęgnacji i rozbudowie.</p>
<p>Nie ma co się oszukiwać, TDD sprawdza się dobrze przede wszystkim w duzych projektach, dotyczy to takze Flex&#8217;a, w małych m.in. programiści nie rozumieją po co mają pisać &#8220;nadmiarowy kod&#8221; testujący coś, co po prostu &#8220;musi działać&#8221;  - jednym slowem stosowanie TDD w malych projektach bardziej prowadzi do frustracji niż jest pomocne. Ale przecież to m.in. za sprawa Flex&#8217;a &#8211; technologia Flash wchodzi pod strzechy rozwiazań korporacyjnych, gdzie takowe metodyki się sprawdzają. Kod testuje siebie, o to własnie chodzi, i dlatego też powstał <a title="FlexUnit" href="http://code.google.com/p/as3flexunitlib/" target="_blank">FlexUnit</a> , czy <a title="ASUnit" href="http://www.asunit.org/" target="_blank">ASUnit</a>. Obecna wersja np. FlexUnit, czyli 0.85 jeżeli chodzi o stosowanie metodyki TDD sprawdza się bardzo dobrze, tym bardziej jezlei ktos stosowal JUnita (Java) w Eclipsie, nie bedzie mial za duzo problemow z przesiadka ;)</p>
<p>Chcąc zabrać się za TDD we Flex, musisz wpierw zrozumiec co to jest test jednostkowy, asercja i przypadek testowy i troche zmienic swoj tradycyjny punkt wytwarzania oprogramowania ;) &#8211; sam wiem, po sobie, ze potrzebowalem troche czasu, aby przywyknąć. Polecam artykuł <a title="Neil Webb" href="http://www.nwebb.co.uk/" target="_blank">Neil&#8217;a</a> - <a title="Artykuł FlexUnit" href="http://www.adobe.com/devnet/flex/articles/unit_testing.html">Unit testing and Test Driven Development (TDD) for Flex and ActionScript 3.0</a> - zrobil na prawde dobra robote przedstawiajać to zagadnienie w dosyc zwiezly sposob, czego ja bym nie potrafił ;) Warto też zapisać się na listę dyskusyjną FlexUnit - <a href="http://groups.google.com/group/as3flexunitlib">http://groups.google.com/group/as3flexunitlib</a>.</p>
<p>Przepraszam, za ten przydługi wpis, ale jedno jest pewne, mówie to z własnego doswiadczenia, jeżeli macie duży projekt RIA, spróbujcie stosować TDD, a zobaczycie, że jego siła tkwi przede wszystkim w tym, że stosujac go, o wiele łatwiej jest zlokalizować &#8220;gdzie jest problem w kodzie&#8221;.</p>
<p>P.S. Miałem poruszyc w tym poscie BDD (ang. <a href="http://behaviour-driven.org/" target="_blank">Behaviour Driven Development</a>), czyli wytwarzanie oprogramowania zorientowane na behavioryzm, które jest niejako ewolucją TDD, i osobiście uważam, że jest przyszłością. W trakcie pisania tego postu zdecydowalem, ze bym Was juz całkiem zanudził z tym BDD, stad napisze o nim w innym poscie ;) &#8211; kiedys indziej, być może pokusze się o jakis tutorial, jako, że o stosowniu BDD we Flexie na razie w sieci dosyc mało informacji.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/02/22/tdd-we-flex-a-moze-bdd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
