Sprytne testowanie modelu w Ruby on Rails

napisane przez wiktor, 20:09 10-10-2007

Załóżmy, że mamy jakiś model w Ruby on Rails, np. User, który składa się z takich pól jak name, middlename, surname, sex oraz birthday. Oczywiście trzeba także dopisać jakaś walidację tego modelu. Wówczas nasz model będzie wyglądać następująco:

RUBY:
  1. class User < ActiveRecord::Base
  2.  
  3.     validates_presence_of :name, :middlename, :surname, :sex, :birthday  
  4.  
  5. end

Zakładam, że jestem uczciwy względem siebie i chce przetestować, czy walidacje działają poprawnie. Zaczynam więc pisać test:

RUBY:
  1. class UserTest <Test::Unit::TestCase
  2.   fixtures :users
  3.  
  4.   def test_validation_name
  5.       u = users('user1')
  6.  
  7.       u.name = ''
  8.       assert !u.valid?
  9.       assert u.errors.invalid?("name")
  10.  
  11.       u.name = nil
  12.       assert !u.valid?
  13.       assert u.errors.invalid?("name")
  14.  
  15.   end
  16.  
  17.   # ...i tak dalej... nudny w sumie kod....
  18. end

Ale przecież możemy skorzystać z dynamicznej natury Ruby'iego i wstrzyknąć wygenerowane wcześniej metody. Poniżej widać, jak to zrobić:
czytaj dalej »

Po co nam Java? Czyli o tym, co znaczy słowo enterprise, o JVM i o muCommanderze

napisane przez wiktor, 0:16 10-05-2007

"Po co nam ta Java?", "Ale po co ją stosować, jak w Ruby on Rails mogę to samo zrobić szybciej (czytaj: być bardziej wydajnym)?" - takie pytania koledzy stawiają mi coraz częściej. Odpowiadanie na nie nie jest zadaniem prostym. Przekonanie osoby negatywnie nastawionej, że Java może spokojnie, nie wadząc nikomu żyć w informatycznym ekosystemie - baaaa - nawet uzupełniać go, graniczy z cudem.

Oczywiście nie jestem w stanie dać pełnej odpowiedzi na pytanie "Po co nam Java?". Nawet do tego nie pretenduję. Poruszę tylko trzy zagadnienia, które będą świadczyć, że jednak po coś nam ta Java jest potrzebna:

  • zastosowania typu enterprise,
  • przenośność platformy Javy (ang. cross-platform), o której się często zapomina (na przykładzie muCommandera),
  • maszyna wirtualna Javy, czyli JVM.

czytaj dalej »

Slajdy z prezentacji na Warszawa JUG

napisane przez wiktor, 22:52 10-02-2007

Tak jak pisałem wcześniej, prezentacja "Integracja JSF + Facelets + Tomahawk + Spring + JPA" odbyła się. Dziękuję wszystkim, którzy się na niej znaleźli. Według mnie była udana, bo pokazała, że łączenie tych technologii jest trudne, problematyczne i przede wszystkim nudne ;) (bo dużo w tym technikali i drobiazgów). Mam nadzieję, że zmusiła chociaż część osób do pomyślenia o alternatywnych sposobach uzyskania tego samego efektu.

Przejrzyj prezentację online:



lub ściągnij na dysk http://www.slideshare.net/wiktor/integracja-jsf-facelets-spring-jpa-tomahawk/download.

Zapraszam na moją prezentację w ramach Warszawa JUG

napisane przez wiktor, 22:32 09-26-2007

Zapraszam wszystkich na moją prezentację w ramach warszawskiego JUGa. Tytuł prezentacji to "Integracja JSF + Facelets + Spring + JPA + Tomahawk" i będzie on bazował na moim artykule o tej samej nazwie. Wpis ten stał się dość popularny i stąd pomysł na prezentacje. Poniżej więcej szczegółów.

Warszawska Grupa Użytkowników Technologii Java (Warszawa JUG) zaprasza na XVI spotkanie, które odbędzie się w nadchodzący wtorek 2.10.2007 o godzinie 18:00 w sali 4420 na Wydziale MIMUW przy ul. Banacha 2 w Warszawie.

Temat prezentacji: Integracja JSF + Facelets + Spring + JPA + Tomahawk
Prowadzący: Wiktor Gworek

JavaServer Faces (JSF), Tomahawk, Facelets, Spring Framework i Java Persistence (JPA) to technologie, o których miło się czyta. Kiedy jednak przychodzi do rzeczywistych zastosowań, nie ma osoby, która by nie miała problemów z ich integracją. Celem prezentacji będzie zbudowanie prostej aplikacji typu CRUD (Create-Read-Update-Delete) łączącej wszystkie te magiczne technologie w atmosferze dobrej zabawy.

Prezentację poprowadzi Wiktor Gworek, student V roku na MIMUW-ie. Jest entuzjastą życia i nowych technologii. Wiktor uwielbia ładne, radosne programowanie, kunsztowną architekturę oprogramowania oraz czytać RSSy ;). Z Javą związany jest od dwóch lat, jednak stroni on od monogamii programistycznej. Prowadzi blog Mocna Kawa.

Planowany czas prezentacji to 1,5 godziny z 20-minutową dyskusją. Na zakończenie (około 10 minut) planowana jest dyskusja dotycząca organizacji konferencji WarsJava organizowanej przez Warszawa JUG.

Wstęp wolny

Zapraszam w imieniu Warszawa JUG!

Jolt Cola przyłapana w Polsce

napisane przez wiktor, 13:46 09-10-2007

Przechadzając się wśród półek sklepu Kuchnie Świata w Złotych Tarasach znalazłem w lodówce Jolt Colę.

Jolt Cola
Czym jest Jolt Cola?

  • Jolt Cola: bezalkoholowy napój elitarnych hakerów ;) (ang. "Jolt Cola: The soft drink of the elite hacker") - tekst z filmu Hakerzy ;),
  • zawiera 2 razy więcej kofeiny niż zwykła puszka coli,
  • jedna puszka Jolt Coli to ekwiwalent filiżanki jeden kawy,
  • napój jest to bardzo geekowy, dowodem niech będzie możliwość kupienia jest w ThinkGeek.com,
  • jest tańszy niż Red Bull (jego cena to 3,9 PLN), ale nadal to drożej niż poczciwy Tiger :),
  • więcej o Jolt Coli znajdziecie na Wikipedii.

A jaki jest wasz ulubiony napój dający zastrzyk energii (w domyśle kofeiny)?

Strona widgets | mocna-kawa.com wystartowała!

napisane przez wiktor, 18:04 08-16-2007

Postanowiłem uruchomić stronę dotyczącą widgetów, gadgetów mojego autorstwa. Na razie znajduję się tam tylko słownik polsko-angielski, angielsko-polski dla iGoogle. Niedługo będą także nowe widgety.

Zapraszam na stronę widgets | mocna-kawa.com.

Integracja JSF + Facelets + Spring + JPA + Tomahawk

napisane przez wiktor, 14:40 08-05-2007

Dość sporo tych Trzy Literowych Skrótów :). Wszystkie wymienione technologie zostaną połączone w prostej aplikacji typu CRUD.

W tym artykule pokaże jak zintegrować następujące technologie:

  • JavaServer Faces 1.1 - będę wykorzystywał implementację Apache MyFaces - jako warstwa prezentacji,
  • Facelets - są one wspaniałym kompanem dla JSF, będę korzystał tylko z szablonów, choć Facelets mają dużo więcej możliwości,
  • Spring 2 - kontener IoC, będzie on wstrzykiwał beany obsługujące encje JPA (czyli DAO) do JSF (cudowna integracja) oraz obsługiwał transakcje,
  • Java Persistence API - implementacja Toplink - będę wykorzystywał JPA do mapowania obiektowo-relacyjnego,
  • Tomahawk - zestaw komponentów JSF ze stajni Apache.

Do artykułu dołączony jest kod źródłowy całej aplikacji. Można go otworzyć od razu w IntelliJ IDEA, a jeśli używasz innego edytora to musisz jakoś zaimportować projekt :).

Możesz także przejrzeć pełen kod w subversion pod adresem: http://svn.mocna-kawa.com/jsfcrud/.

czytaj dalej »

Java i wszystko jasne

napisane przez wiktor, 23:55 08-02-2007

Dzisiaj w pracy miła niespodzianka mnie spotkała.

java-kawa-slodycze.jpg

Aż od razu milej na serduszku. Były bardzo smaczne ;).

iGoogle Gadget (widget): Słownik polsko-angielski polsko-angielski

napisane przez wiktor, 18:42 07-07-2007

Bardzo lubię używać iGoogle, czyli platformę widgetową Wielkiego Brata. Jeśli jeszcze nie używałeś to koniecznie sprawdź ją ;). Ponieważ brakowało mi porządnego słownika pol-ang ang-pol jako widgetu to postanowiłem napisać własny. Bazuje on na słowniku http://www.dict.pl. Wyniki nie są prezentowane jak w innych widgetach w wyskakującym okienku lub otwierają nową kartę w przeglądarce. Wygląda on tak:

Dictionary Widget Screenshot



Dodaj go do swojego iGoogle:

Add to Google

czytaj dalej »

Symulator Sieci Petriego

napisane przez wiktor, 15:50 06-17-2007

Kończy się semestr i na projekty uczelniane nabierają realnych kształtów. Będą obecnie na UJ-cie w pięć osób zrobiliśmy symulator/edytor do sieci Petriego. Został on napisany w całości w Javie. Poniżej znajduje się screenshot.

petri-net-screenshot.jpg

Jeśli chcesz zobaczyć, jak w Swingu zrobiłem powyższy interfejs użytkownika to zachęcam do przestudiowania kodów źródłowych projektu. Jest on ogólnodostępny na Google Hosting tutaj.

czytaj dalej »

« Poprzedni - Następny »


Wiktor Gworek Nazywam się Wiktor Gworek i jestem gospodarzem tego bloga.
Przeczytaj więcej o mnie »