„U mnie działa!”, kiedy błędy pojawiają się w już trakcie używania programu...
Serwis znalezionych hasełOdnośniki
- Smutek to uczucie, jak gdyby się tonęło, jak gdyby grzebano cię w ziemi.
- – Kiedy tylko dotrzemy tam, gdzie mają w miarę rozwinięty przemysł – dodał po chwili – będziemy musieli sprawić sobie trochę odtylcowych...
- Szli w zupełnej ciszy, w milczeniu pokonywali zalaną martwym światłem drogę, a kiedy po forsownym marszu doszli do Hali Pisanej, zatrzymali się bez...
- — No, niech mnie nagła krew zaleje! — zawołał Tay Tay...
- choćbyś i mnie miał waszmość tak pochlastać, zawszeć winszuję, winszuję! – Et, dalibyście sobie waszmościowie pokój; bo w rzeczy nie macie się...
- Kiedy Canan przejął zarządzanie codziennymi operacjami magazynu, Lovejoy jeszcze bardziej skupił swą uwagą na rekrutacji, sprowadzając ostatecznie jeszcze...
- Ed siedział właśnie przy biurku w rogu swojego salonu sprzedaży żując pierwsze tego dnia cygaro, kiedy zobaczył dwóch mężczyzn w roboczych koszulach i...
- «Dlaczego więc ośmiela się podejść do kapłana za pierwszym razem, kiedy jest całkiem nieczysty, a za drugim razem – zbliżyć się nawet do...
- Skacz, dziecko, skacz! Od kiedy moja córka Zara umiała już bez pomocy stanąć na stole, na którym zmieniano jej pieluszki, bawię się z nią w...
- nizujących poglądach na temat oczyszczenia i poznania prawdy? Istotnie, kiedy czytamy o tym, co według Pseudo- Dionizego znaczy oczyszczenie napotykamy w...
- Nie masz te,nie masz adnego w tym cudu,Kiedy raz na dno,pod oboki drugiLatajc,musi nadweredzi fugi;Wpadszy w najgbsze na ostatek...
Smutek to uczucie, jak gdyby się tonęło, jak gdyby grzebano cię w ziemi.
Używaj różnych kompilatorów
Powinieneś także używać różnych kompilatorów tak często, jak to tylko możli-we. W rozmaitych systemach docelowych może być możliwość stosowania tylko wybranego kompilatora, ale czasami można od tego uciec, używając tego same-go kompilatora w całkowicie odmiennych systemach. Na przykład kompilator GCC dostępny jest na wielu różnych platformach.
Prawidłowa kompilacja na wielu platformach umożliwi uniknięcie trudnej
sytuacji, jeśli producent preferowanego przez Ciebie kompilatora nagle zniknie.
Zapewni to także, że kod nie będzie bazował na nowych (i niesprawdzonych) cechach języka lub kompilatora.
Testuj na kilku platformach
Większość projektów ma ściśle zdefiniowany zestaw docelowych platform okre-
ślonych przez zmiany na rynku. Znacznie ułatwia to testowanie i nadzór jako-
ściowy, ale także jest początkiem ryzykownego przyjmowania precyzyjnych za-
łożeń. Nawet jeśli wiesz, że program będzie uruchamiany na jednym systemie docelowym, nie zaszkodzi użyć innych platform docelowych — procesorów,
pamięci RAM, pamięci masowych, systemów operacyjnych itd. — tylko do testowania.
W takim przypadku, jeśli system docelowy zostanie zmieniony z powodów
wymagań rynkowych lub zmieniających się zależności biznesowych, będziesz mógł spać spokojnie, wiedząc, że Twoje oprogramowanie nie jest na sztywno przywiązane do pojedynczej platformy.
Obsługuj wiele bibliotek
Tworzenie większości dzisiejszego oprogramowania jest w mniejszym stopniu pisaniem nowego kodu niż łączeniem ze sobą większych fragmentów istniejącego kodu. Jeśli jesteś zależny od grupy bibliotek lub interfejsów API dostępnych w jednym kompilatorze lub systemie, przeniesienie kodu na nową platformę bę-
dzie trudne. Jednakże, jeśli od początku poświęcisz czas na obsługę wielu al-ternatywnych bibliotek, które wykonują to samo zadanie, będziesz miał o wiele większy wybór w sytuacji, kiedy producent zakończy działalność albo odmówi udostępnienia swojego oprogramowania na innych platformach. Jest jeszcze jedna, mniej znacząca zaleta — można licencjonować lub otworzyć swój kod bez
przejmowania się zależnościami od zamkniętego kodu bibliotek innych producentów.
K o n c e p c j e p r z e n o ś n o ś c i
27
Klasycznym tego przykładem jest wybór pomiędzy obsługą OpenGL
a Direct3D, dwoma najważniejszymi interfejsami API grafiki dostępnymi dzisiaj.
OpenGL jest międzyplatformowy i dostępny w licznych systemach, włączając w to wszystkie najważniejsze systemy operacyjne komputerów PC. Z drugiej strony Direct3D jest oficjalnym interfejsem API grafiki w Windows, dostępnym tylko w Windows. To stawia twórców przed trudnym wyborem: optymalizować dla
Windows, największego rynku użytkowników na świecie, czy próbować obsługiwać wiele platform za jednym razem, używając OpenGL?
Najlepszym rozwiązaniem byłoby stworzenie abstrakcyjnej warstwy, która
mogłaby wykorzystywać obydwa interfejsy API. Może to oznaczać dużo pracy, więc rozgałęzienie abstrakcji musi być dobrze przemyślane, zanim zaczniesz je realizować. Jednakże w momencie przenoszenia oprogramowania na nową
platformę praca poświęcona na tworzenie abstrakcji zwróci się wielokrotnie.
Planuj przenośność dla nowego projektu
Odczuwam niepohamowaną, czystą radość, kiedy rozpoczynam pracę nad no-
wym projektem. Zakładanie nowego katalogu, czekającego na wypełnienie do-skonałym kodem źródłowym stworzonym na podstawie wieloletniego doświad-
czenia, jest w pewnym sensie podobne do poczucia zapachu nowego samochodu.
Kiedy znajdziesz się już w tej wyjątkowej sytuacji zaczynania czegoś od no-wa, masz możliwość zaplanowania w jaki sposób działań, żeby Twój projekt był
przenośny. Jeśli przed rozpoczęciem weźmiesz pod uwagę kilka zasad, zaoszczędzisz sobie później mnóstwo czasu i kłopotów.
Implementuj przenośność w prosty sposób