Náhodné výkřiky 33

vložil Radek Červinka 8. ledna 2013 23:19

Dnes jeden nástroj na závislosti, Fluent Interface a Box 2D!

Nástroj na zobrazení závislostí

Narazil jsem na pěkný nástroj pro zobrazení závislostí jednotek. Domovská stránka je www.easy-ip.net/delphi-unit-dependency-scanner.html. Tento nástroj je zdarma, podporuje i nejnovější Delphi a to včetně Unit Scope.

Dependency

(ve stromě jdou vidět i další věci, jako počet jednotek - mimochodem evidentně použit Virtual TreeView)

Přiznám se, že mne překvapilo jak pěkný nástroj to je.

Mimochodem na stejné stránce jsou ke stažení komponenty pod MPL ve stylu Chrome Tabs.

Chrome Tabs

Fluent interface

Poslední dobou získává na popularitě styl programování, který je nazýván Fluent interface.

Jedná se o postupné volání metod objektu vráceného předchozím voláním.

Příklad jsem aktuálně zahlédl v ukázce Simple Rest Client For Delphi

RestReq := TRestRequest.Create().Domain('localhost').
   Path('todo').WithCredentials('test', 'test');

Další ukázkou je THtmlWriter.

Temp := THTMLWriter.CreateDocument;
     TempHTML := Temp
                  .OpenHead
                    .AddAttribute('dweezle')
                    .AddText('farble')
                  .CloseTag
                  .OpenBody.AddAttribute('ding')
                      .OpenSpan
                        .AddAttribute('this', 'that')
                        .AddStyle('font: italic')
                        .OpenDiv
                          .AddAttribute('floo')
                          .AddText('Blah')
                        .CloseTag
                      .CloseTag
                      .AddText('Hoorah')
                      .AddBoldText(' Shadooby')
                      .OpenBold
                        .AddText('Goombah')
                      .CloseTag
                  .CloseTag
              .AsHTML;

V podobném stylu je i string helper v nových Delphi.

Co vy na to?

Box 2D

Největší radost mi ale udělal port Box 2D pro Delphi. A portem myslím kompletní přepis a ne jen wrapper kolem nějakého DLL.

Pokud to nevíte, tak Box 2D je knihovna pro práci s fyzikou. Na uvedeném odkazu se dá stáhnout i přeložené demo s mnoha příklady, např. domino.

Box2D

a o 3 sekundy později jedna kostka spadla, sjela po rampě a převážila páku:

Box2D

Ve většině dem se dají objekty tahat myší a jen s tím demíčkem si člověk vyhraje. Mimochodem Smart Mobile Studio má Box 2D mezi demy (výsledek je v JS v prohlížeči).

Tagy:

Komponenty | Nástroje

Komentáře

9.1.2013 0:28:29 #

Mira

Z hlediska debugování se mi ten styl "Fluent interface" moc nelíbí.

Mira

9.1.2013 8:17:01 #

Alnath

Díky za tip na Chrome tabs a na fyziku...

Alnath

9.1.2013 10:15:50 #

z.

jo, OmniThreadLibrary lze taky pouzivat stylem "fluent interface",
rozhodne to ma vyhodu, ze se to smrskne na 1 radek :)

z.

9.1.2013 10:32:25 #

radekc

Ještě jen pro informaci, fluent interface je používáno i v jinde - např. C# má fluent rozhraní pro  LINQ

radekc

9.1.2013 15:16:03 #

RadekV

Fluent interface je peklo a zlo. Je to cele postavene na tom ze vyjimka je vas kamos a mam zkusenosti ze to zdaleka neni pravda. V zivem prostredi muze podobne pouzivani (napr. DOM z IEcka v kombinaci se safecalls k tomu laka) vest k zasadnim problemum a dopada to pak tak ze to clovek rozepise do jednotlivych radek. BTW : Podobna volani jsou pouzivana i v Metru na C++/CX a z hlediska ladeni je to neeeeskutecnej pakec. Ale v demaci to vypada asi dobre :-D

RadekV

9.1.2013 16:04:35 #

bullhead

...jen pro info: TMS uvolnil začátkem ledna pár free toolu do IDE pro XE:

Free: TMS Project Manager
Free: TMS IDE Rich Clip
Free: TMS FlexAnalytics
Free: TMS Sharp File Swap
Free: TMS UpdateBuilder
Free: IDE plugin: TMS Presentation Helper & Clipboard Monitor
Free: IDE plugin: "TMS What's New"
Free: iPhone / iPad app: TMS Software News
Free: Windows Phone app: TMS Software News
Free: FTPUploader: a small free utility for your daily email routine
Free: Reflection creator: a free utility for creating configurable reflection images

http://www.tmssoftware.com/site/freetools.asp

B.

bullhead

11.1.2013 11:51:20 #

Zdeněk Vašků

to z:
Třeba v OmniThread ho používám, pro jednodušší věci je docela přehledný, ale obecně bych do toho asi nešel.

to Radek:
dík za ten unit-dependency scanner.

Zdeněk Vašků

18.1.2013 8:24:54 #

pepak

Nechtěl bych Fluent interface rovnou zamítnout, ale ať přemýšlím jak přemýšlím, nenapadá mě žádný způsob využití, ve kterém by FI přinášel programátorovi nějakou výhodu. Pokud pomineme subjektivní "víc se mi to líbí", dokázal byste někdo jmenovat nějaký přínos, který pro vás FI má? "Smrskne se mi to na jeden řádek" můžu zrovna tak dobře udělat i v tradičním přístupu, akorát místo tečky používám středník a sem tam doplním klíčové slovo with.

pepak

25.1.2013 17:06:58 #

bullhead

Embarcadero RAD XE3 update 2 je venku.

B.

p.s. ...ale updatuje asi jen C++ part
http://edn.embarcadero.com/article/42863

bullhead

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS

Dle měsíců