Wednesday, March 14, 2007

Castle.Windsor IoC konteineris

Vakar 1900 MiF'e dariau pristatymą apie Castle.Windsor IoC konteinerį.

Skaidrės:
pdf
odp


Gavau keletą įdomių klausimų:
* Castle licenzija yra Apache Software Foundation License 2.0. Vadinasi, galima laissvai naudoti komerciniuose projektuose nebijodami, kad visas kodas turės taip pat tapti atviru

* Aspektinis programavimas yra visai nauja tema man. Žiūrovai labai teisingai pastebėjo, kad order.Trasnfer(..) metodas tikrai neturi jokio cross-cutting interest.
Kol kas nesugalvojau, kokį tinkamą pavyzdį pateikti, kad būtų aiškus ir tikslus. Justino pasiūlyta probema "pridėti jau esamai sistemai teisių tikrinimą ant kiekvieno mygtuko paspaudimo" yra tikrai cross-cutting, tačiau kaip tą išreikšti gražiai prezetnacijoje neturiu idėjų. Gal kas turite minčių?

* Buvo pasakytas vienas komentaras, kad rašant gerą kodą parašomos blogos programos. Dėstytojas taip pat pritarė minčiai ir siūlė nepriimti visko kaip panacėjos.

Tas tikrai svarbu - netobulinti kodo vien dėl pačio tobulinimo. Esminis tikslas - veikianti programa. O jeigu ji dar yra kokybiška, tai yra iš viso labai gerai.

Dabar iš kitos pusės nereikėtų ir savęs nuvertinti ir bijoti kažką keisti ar tobulinti. Pasakymas, kad nemokamas kodas yra blogas kodas yra tiesiog neteisingas, lygiai kaip pasakymas, kad rašant gerą kodą neparašomos geros programos. Nemanau, kad tokie teiginiai turi rimtą pagrindą. Taip pat toks požiūris neturėtų būti formuojams (netiesiogiai) MiF'e, tai yra labai neigiama įtaka.

3 comments:

Drizzt said...

Tema buvo įdomi. Gali dar pasižiūrėti ir kitus IoC konteinerius, kad ir pvz. http://en.wikipedia.org/wiki/Inversion_of_control
surinktas IoC linkų rinkinukas. Manau gali pasižiūrėti ir Spring.Net bei NHibernate ORM mappingui. Aš šiaip dirbu vien su Java, tai daug pasiūlyti negaliu, bet Hibernate kaip ORM nesiskundžiu :).
ORM for .NET lengvesni nei NHibernate

www.persistor.net
http://www.adapdev.com/codus/index.aspx

O čia idomesnė diskusija :)
http://www.theserverside.net/news/thread.tss?thread_id=29914

Sėkmės,

Lukas

Darius Damalakas said...

Ačiū už nuorodas, tikrai kada reikės pasižiūrėti.

Dėl ORM tai kol kas pasiliksiu su Castle.ActiveRecord - tai duoda iš karto tiek NHibernate jėga bei ActiveRecord paprastumą.

Beje, įdomu būtų išgirsti nuomonių tokiais klausimais:
1. Kokius įrankius patys naudojate (tiek laisvus/atviro kodo, tiek nelaisvus)
2. Ką manote apie objektines duomenų bazes?

Aš kol kas tik esu matęs šią: http://www.db4o.com/Default.aspx?AspxAutoDetectCookieSupport=1 ir jie tiegia, kad DB veikia kelis kartus greičiau nei paprastos reliacinės DB.

Ar turite kokių pasiūlymų / įdėjų?

Drizzt said...

Kaip ir minėjau dirbu su Java, tai ir technologijos Javinės :). Eclipse kaip IDE, Spring for IoC, Hibernate or JPA for persistence, EJB 2.0 (pats domėjausi EJB 3.0). Webiniai dalei dar Struts Framework pats domėjausi Seam Framework (JSF implementacija). Junit (Dbunit, MockObjects), HttpUnit naudojame nuolatos testavimui. Build'ui Maven, integracijai CruiseControl.

Dėl objektinių duomenų bazių, tai kažkadqa buvo kursas sename Magistro kurse (dėto A.Janeliūnas mūsų grupioko brolis :) ). Bet daug nežinau. Jei kada reikės nebus problemu pereiti jei naudoji ORM :D.