SDJ.Software.Developer-'s.Journal.2011.09.PL.(P2PNet.pl).pdf

(10519 KB) Pobierz
676655518 UNPDF
676655518.006.png
REDAKCJA
9/2011 (201)
Programowanie Java
mi, dla którego wybiera się odpowiadające przypadki
z analizy i je implementuje. Poprawność implementacji
zostaje sprawdzona eksperymentalnie poprzez testy
jednostkowe.
Java 7 – nowa wersja nadchodzi.
Nowości w projekcie JDK 7.
Łukasz Lechert
Niniejszy artykuł przybliża nowości wprowadzone do
wydania 7 Javy. Nie jest możliwe dogłębne przedstawie-
nie wszystkich zmian i nowych elementów, ponieważ
jest ich dużo. Artykuł koncentruje się na zmianach doty-
czących samego języka programowania, wspomina o no-
wościach w API i wsparciu dla wydania przez popularne
na rynku IDE.
Programowanie C++
C++0x. Cześć I.
Bartosz Szurgot, Mariusz Uchroński,
Wojciech Waga
C++0x to nowy standard języka C++, będący obecnie
w ostatniej fazie zatwierdzania. Ponieważ zawiera on du-
żo zmian i nowości, zarówno po stronie samego języka,
jak i biblioteki standardowej, warto się z nimi zapoznać
już teraz.
Szeregowanie grafów kompozycji
oraz grafów dziedziczenia obiektów
na platformie Java.
Tomasz Lepiorz
Celem tego artykułu jest przedstawienie propozycji
szeregowania grafów kompozycji oraz grafów dzie-
dziczenia obiektów na platformie Java. Szeregowanie
obiektu uwzględniające jego zależności pochodzenia
oraz referencje umożliwia szybkie zachowanie jego
stanu oraz następne odtworzenie po wysłaniu do stru-
mienia. Pozwala to w konsekwencji do posługiwania
się obiektami na poziomie transmisji strumieniowej.
Opracowanie zajmuje się teoretycznym rozpatrzeniem
przypadków ogólnych szeregowania grafów obiektów
oraz podaniu propozycji podejść do realizacji imple-
mentacji tych przypadków. Jako przykład grafu złożo-
nego zostaje wybrany laptop ze swoimi podzespoła-
Programowanie ioS
Core Data. Praca z bazą
danych przy pomocy Core Data
Framework.
Marcin Zyga
Core Data Framework jest rozbudowanym narzędziem
służącym do ułatwienia pracy programistom. Frame-
work ten nakłada kolejną warstwę abstrakcji na zarzą-
dzanie modelami w naszym projekcie. W artykule sku-
pimy się na zarządzaniu bazą danych przy pomocy Core
Data.
Miesięcznik Software Developer’s Journal (12 numerów w roku)
jest wydawany przez
Software Press Sp. z o.o. SK
ul. Bokserska 1, 02-682 Warszawa, Polska
tel. +48 22 427 36 91, fax +48 22 224 24 59
Prezes: Paweł Marciniak
www.sdjournal.org
cooperation@software.com.pl
Dyrektor wydawniczy: Natalia Sieniutowicz
Dział reklamy: adv@software.com.pl
Redakcja dokłada wszelkich starań, by publikowane w piśmie
i na towarzyszących mu nośnikach informacje i programy były
poprawne, jednakże nie bierze odpowiedzialności za efekty
wykorzystania ich; nie gwarantuje także poprawnego działania
programów shareware, freeware i public domain.
Wszystkie znaki firmowe zawarte w piśmie są własności
odpowiednich firm.
Zostały użyte wyłącznie w celach informacyjnych.
Redaktor naczelny: Łukasz Łopuszański
lukasz.lopuszanski@software.com.pl
Skład i łamanie: Tomasz Kostro
www.studiopoligraficzne.com
Kierownik produkcji: Andrzej Kuca
andrzej.kuca@software.com.pl
Adres korespondencyjny:
Software Press Sp. z o.o. SK,
Osoby zainteresowane wspópracą prosimy o kontakt:
cooperation@software.com.pl
2
9/2011
4
24
10
32
676655518.007.png 676655518.008.png
Spis treści
Posługiwanie się GPS-em i mapami.
Michał Sitko
System nawigacji satelitarnej GPS stał się w ostat-
nich latach bardzo populary za sprawą nawigacji samo-
chodowych. Jednak dopiero integracja odbiorników
GPS w smartfonach z dostępem do internetu otworzyła
przed programistami platform mobilnych zupełnie nowe
możliwości zaspokojenia – wcześniej nawet nieznanych
– potrzeb konsumentów. W niniejszym artykule zosta-
ną pokazane możliwości, jakie daje programiście iPhone
z odbiornikiem GPS i dostępem do Internetu. Pokaza-
ne zostanie jak w łatwy sposób zlokalizować użytkowni-
ka, zaprezentować jego pozycję na mapie, zaznaczyć na
niej interesujące punkty oraz jak posługiwać się mecha-
nizmem geocodingu.
rzeczy już istniejących niesie ze sobą ryzyko popełnienia
błędów. Część z nich da się uniknąć dzięki właściwie na-
pisanym testom jednostkowym, które mogą zaoszczę-
dzić nam sporo czasu podczas prowadzenia projektu
programistycznego.
APlIKACJe INTerNeTowe
wykorzystanie MongoDB
do wersjonowania plików.
Radosław Sza chtsznajder
MongoDB jako dokumentowa baza danych z nurtu No-
SQL ma obecnie swoje pięć minut. Stale rosnąca popu-
larność nakazuje przyjrzeć się jej bliżej. Niniejszy artykuł
przedstawia podstawy używania MongoDB wraz ze skła-
dowaniem plików w bazie na przykładzie aplikacji do za-
rządzania obiegiem dokumentów w przedsiębiorstwie.
Unit Testing. Testy jednostkowe
w środowisku Xcode.
Marcin Zyga
Praca z kodem źródłowym jest skomplikowanym proce-
sem. Dokładanie nowej funkcjonalności czy ulepszanie
Reklama
www.sdjournal.org
3
40
54
50
676655518.009.png 676655518.001.png
Programowanie Java
Java 7 – nowa wersja nadchodzi
Nowości w projekcie JDK 7
Niniejszy artykuł przybliża nowości wprowadzone do wydania 7 Javy.
Nie jest możliwe dogłębne przedstawienie wszystkich zmian i nowych
elementów, ponieważ jest ich dużo. Artykuł koncentruje się na zmianach
dotyczących samego języka programowania, wspomina o nowościach
w API i wsparciu dla wydania przez popularne na rynku IDE.
Dowiesz się:
• O zmianach i nowych konstrukcjach języka Java
• O nowościach w Java Development Kit
Powinieneś wiedzieć:
• Mieć doświadczenie w programowaniu w języku Java
• Znać fundamentalne konstrukcje języka Java
• Umieć posługiwać się środowiskiem IDE Netbeans
cification Request ) zgłoszonych przez społeczność. Nie-
które z nich zostały oficjalnie przeniesione do kolejnej
wersji 8 – planowaną na połowę 2012 roku, a więk-
szość z nich została zrealizowana w bieżącym wydaniu.
Artykuł przedstawia w dużej mierze projekt Coin, zbiór
zmian w składni języka oraz nowości w API (ang. appli-
cation programming interface ). Ostateczna wersja nowe-
go SDK (ang. Software Development Kit ) będzie dostępna
pod koniec lipca bieżącego roku, jednak już teraz można
się przyjrzeć nowościom oferowanym przez oczekiwane
wydanie 7.
czytelności kodu źródłowego zasadne jest oddzielić wio-
dące cyfry podkreśleniami. Zastosowanie podkreśleń
prezentuje listing 2 oraz rysunek 1.
Na pewno warto również przybliżyć reguły, któ-
re obowiązują przy tworzeniu podkreśleń w literałach.
W przeciwieństwie do konwencji nazewniczych zmien-
nych w Javie, nie można stosować podkreśleń na począt-
ku i na końcu (jako prefiks i sufiks) literału. Dozwolone
jest jednak łączenie podkreśleń. Literał zdefiniowany ja-
ko 110_____000 będzie jak najbardziej poprawny oraz
reprezentuje cyfrę 110000. Błędy kompilacji generują
również podkreślenia zapisane przed i po znaku krop-
ki w literałach zmiennoprzecinkowych. Typy generyczne
wprowadzone w Javie 5.0 są często wykorzystywanymi
konstrukcjami w projektach. JDK 7 dostarcza również
„Małe zmiany”
W nowej wersji JDK 7 wprowadzono kilka drobnych no-
wości. Pierwszą z nich jest funkcjonalność umożliwiają-
ca definiowanie literałów binarnych. Obok
znanych już literałów zapisanych w syste-
mach ósemkowych i szesnastkowych, poja-
wiła się możliwość np. definiowania stałych
w systemie dwójkowym. Prezentowany
program z listingu 1 wydrukuje na konsolę
liczbę 100.
Przytoczony przykład nie jest niczym
nadzwyczajnym, a literały binarne obok
heksadecymalnych i ósemkowych można
odbierać jako uzupełnienie języka Java. Ko-
lejną zmianą, która niezaprzeczalnie ma du-
ży walor estetyczny są podkreślenia w lite-
rałach. Funkcja ta szczególnie przydaję się
przy dużych liczbach. W celu zwiększenia
Listing 1. Literały binarne
public static void main ( String [] args ) {
byte binary = 0b01100100 ;
byte hex = 0x64 ;
byte octal = 0144 ;
if ( binary == hex ) {
System . out . println ( "0b01100100 = 0x64 = 100" ) ;
}
if ( binary == octal ) {
System . out . println ( "0b01100100 = 0144 = 100" ) ;
}
}
9/2011
J ava w wersji 7 zawiera w sobie wiele JSR (ang. Java Spe-
676655518.002.png
Java 7 – nowa wersja nadchodzi
drobne modyfikacje dla tych
typów. W przypadku defi-
niowania złożonych kolekcji
we wcześniejszych wersjach
należało nadmiarowo wska-
zywać typy w definicjach
zmiennych. Sytuację obra-
zuje konstrukcja Map<String,
List<String>> collection
= new HashMap<String,
List<String>>(); W nowej
wersji programista jest
zwolniony z ponownego
wpisywania typów dla ko-
lekcji za operatorem new .
Przykład w Java 7 wyglą-
da następująco: Map<String,
List<String>> collection = new
HashMap<>(); Konstrukcję
można wykorzystać również w przypadku kreowania
obiektów z poziomu ciała metody oraz zastosować krót-
szą składnię dla rozkazu zwracającego instancję obiek-
tu: return new HashMap<>(); Nie są to wszystkie drobne
zmiany języka, jednak następną ciekawą propozycją jest
wsparcie dla klasy String w instrukcji wyboru.
Listing 2. Podkreślenia
public static void main ( String [] args ) {
long value1 = _100 ;
long _value2_ = 100_ ;
long _value3 = 110___000 ;
long value4_ = 25_000_000 ;
double value5 = 100_.000d ;
double value5 = 100. _000d ;
System . out . println ( "Value 1 _100 is illegal" ) ;
System . out . println ( "Value 2 100_ is illegal" ) ;
System . out . println ( "Value 3 110___000 is legal = " + _value3 ) ;
System . out . println ( "Value 4 25_000_000 is legal = " + value4_ ) ;
System . out . println ( "Value 5 100_.000d is illegal" ) ;
System . out . println ( "Value 6 100._000d is illegal" ) ;
}
zmiana ta ułatwia implementację i upraszcza rozwiązy-
wanie różnych problemów.
IDE i support dla JDK 7
Każdy z programistów w projektach wykorzystuje
wskazane lub ulubiony edytor lub IDE (ang. Integrated
Development Environment ) programując w języku Java.
Na rynku dostępnych jest wiele produktów, które z po-
wodzeniem stosowane są w projektach komercyjnych.
Do najpopularniejszych należą: Eclipse, Netbeans, Intel-
liJ. W czasie pisania artykułu wsparcie dla JDK 7 oferują
Netbeans i IntelliJ. W przypadku Eclipsa wsparcie pla-
nowane jest w kolejnych wydaniach. Informacje o wer-
sjach IDE i wsparciu dla Javy w wersji 7 przedstawia
tabela 1.
Switch ze stringiem
Tej popularnej instrukcji używamy jeśli chcemy w zależ-
ności o od pewnego wyrażenia wykonać jeden z kilku
fragmentów - bloków kodu. Dotychczas do wersji 6.0
Javy i wcześniejszych switch mógł operować na wartoś-
ciach typu char, byte, short, int , ich typach opakowujących
i dalej typach wyliczeniowych. W nowej wersji specyfika-
cja języka została rozszerzona o typ String . Przykład z list-
ingu 3 przedstawia użycie typu łańcuchowego w instruk-
cji wyboru.
Dla wielu programistów „String w switchu” wydawał
się naturalny, jednak taka konstrukcja nie była dostępna
do wersji 7. Prezentowana metoda z zastosowaniem typu
String z pewnością poprawia czytelność kodu źródłowe-
go, jak również pozwala unikać stosowania wielopozio-
mowych instrukcji if , sprawdzających wartość zmiennych
typu łańcuchowego. Jest to małe usprawnienie, jednak
Obsługa wyjątków
Obsługa sytuacji wyjątkowych w języku Java jest ważnym
elementem dobrych programów. Opisywana wersja ofe-
ruje trzy nowe elementy. Są nimi: multi-catch, ulepszo-
ne ponowne dystrybuowanie wyjątków oraz instrukcja
try-with-resources . Multi-catch polega na definiowaniu kil-
ku przechwytywanych wyjątków w jednej klauzuli catch .
Z pewnością jest to element, którego poprawne użycie
można opanować w kilka minut. Do odseparowania po-
szczególnych obiektów różnych klas wyjątków kontro-
lowanych należy zastosować znak potoku, znany powło-
ki systemu Unix. Rozwiązanie to z pewnością eliminuje
Tabela 1. Wsparcie w IDE dla Javy 7
IDE
Wersja
Eclipse
Od wersji Indigo 3.7 SR1, planowane
na wrzesień 2011
Netbeans
7.0
Rysunek 1. Podkreślenia - wyniki działania
programu z listingu 1
IntelliJ
1.5
www.sdjournal.org
676655518.003.png 676655518.004.png 676655518.005.png
Zgłoś jeśli naruszono regulamin