Kashiash's Blog

o programowaniu inaczej : jak zrobić i się nie narobić

Archive for Maj 2010

Dobre nawyki programisty – komentarze w kodzie

Posted by kashiash w dniu 25 Maj, 2010

1 Niepotrzebne komentarze
nie należy wpisywać niewłaściwych niepotrzebnych komentarzy, np historia zmian – lepsze do tego miejsce to opisy przy wysyłaniu wersji na svn
2 przestarzałe komentarze
komentarz mógł zostać napisany do I wersji kodu, przy zmianach kolejnych programiście ciężko jest aktualizować komentarz. W efekcie komentarz swoje a kod swoje
3 nadmiarowe komentarze
nie ma sensu opisywać kodu oczywistego. komentarze powinny informować o tym czego nie można wywnioskować z kodu
4 złe komentarze
Jeśli już piszemy komentarz, warto go napisać dobrze, a nie na odpierdol bo czepiają się jak komentarza brak. Pisać zwięźle, poprawną polszczyzną z zachowaniem zasad gramatyki i ortografii.
5. zakomentiowany kod należy usuwać.
Osobiście robię tak ze kod komentuje i wpisuje mu datę ważności ok 30 dni. Jeśli po okresie ważności znajdę taki zakomentowany kod wiem ze mogę go osunąć o do niczego nie jest potrzebny. W dodatku zawsze można do niego wrócić pobierając wersje z SVN. Dlatego gdy zobaczysz zakomentowany kod po prostu usuń go.

Naczelna zasada powinno być tak że kod programu powinien sam siebie dokumentować i dodatkowe komentarze nie są wtedy potrzebne.

Posted in Clarion, Dobre praktyki | 2 Komentarze »

Quo vadis … Clarion

Posted by kashiash w dniu 25 Maj, 2010

Clarion istnieje od ponad 20 lat, ja go używam od 18.
Idea nie zmieniła się wiele od początku powstania narzędzia. a świat posunął się do przodu.
Co prawda Clarion tez ewoluował… ale nieco inaczej. Ostatnie kilka lat używałem wersji 6 która była 16 bitowa, licząc po cichu że szybko powstanie wersja 7 32 bitowa. W tym czasie na moim biurku przewinęły sie 3 generacje komputerów 64 bitowych. A dopiero od kilku miesięcy mam możliwość pracy w wersji 32 bitowej. Z nadzieja patrze na powstającą wersje clarion.net … tylko znów clarion .net powstaje w oparciu o Framework 2.0 a przecież Microsoft już na rynek wrzucił wersje 4tą .. znów będziemy z tyłu … Tylko czy warto być z przodu ? Słynne powiedzenie jednego z moich wykładowców: „Pionierów poznaje się po strzałach w plecach” dobitnie przypomina, że bycie z przodu często jest bolesne .. Np w ub. roku gdy dostałem w swoje ręce clariona 7 we wczesnej wersji beta zachciałem rozpocząć nowy projekt i mało go nie położyłem własnie ze względu na wybrane nieprzetestowane narzędzie.

Używam clariona i jednocześnie szukam czy gdzieś – w innym narzędziu nie jest lepiej. Jest ale każde ma swoje wady. Znów przypomina mi się powiedzenie (przypisywane jednemu twórców języka C) Języki programowania dzieli się na te, na które narzekają programiści i takie w których się nie programuje.

Licze jednak na to że clarion zbliży się do technologii .net a jednocześnie zostanie wspaniałym generatorem. Bycie w .NET da mi dostęp do wszystkich funkcji jakie NET oferuje, a jakich niestety nie ma w clarionie. Do góry bibliotek i komponentów jakie do dyspozycji mają ludzie używających Visual Studio i jednocześnie nadal będe miał generator, który czarna robotę zrobi za mnie. Nawet niech to będzie framework 2.0. Zrobię w tym kilka mniejszych projektów, a w tym czasie mogę oczekiwać ze pojawi się generator WPF z Framework 3,5 albo 4.0.
Z nadzieją patrzę w przyszłość … mam nadzieję ze świetlana przyszłość SV a także moją … bo skoro na nienowoczesnym narzędziu mam przewagę na większością programujących … to jak dużą przewagę będę miał mając to narzędzie w wersji nowoczesnej.

Posted in Clarion | Leave a Comment »

programowanie w Javie

Posted by kashiash w dniu 20 Maj, 2010

Od prawie roku poszerzam swoja wiedzę na temat Javy. Robię to na UMCS z mieszanymi odczuciami.
Dla kogoś uczonego jakie skoki w asemblerze są mniej wydajne od innych, że zerowanie najszybciej robić XORem, gdy człowiek przed 20 lat ma wpojone zasady o optymalizacji działania programu, słuchanie o dziedziczeniu, przekazywanie jednego obiektu do drugiego, hermetyzacji i te wszystkie nieprzyzwoite rzeczy jakie się z tymi obiektami robi brzmią jak herezja. Idea fajna, jest łatwiej to użyć, szybciej pisze się program i podobno bezpieczniej – dla programisty!. Dla komputera już mniej. Oczywiście często i tak ten komputer ma nadmiar mocy… ale nie zawsze!
Takie podejście podsuwa mi natychmiast porównanie kawy rozpuszczalnej (łatwej szybkiej – o przyjemności mowy nie ma) do kawy z ekspresu ciśnieniowego (wymagającej znacznie więcej zachodu, wprawy od barmana dokładnego odmierzenia, przybicia, a wcześniej sprawdzenia czy ekspres ma właściwą temperaturę itd ) – ale doznania z produktu finalnego nieporównywalne.
Dla tych co nie pija kawy to porównanie jak pizza z mikrofalówki do pizzy z dobrze wygrzanego pieca chlebowego.
Niekiedy można ….ale nie za często.

Ktoś kto mnie zna zapyta to dlaczego używasz clariona ? przecież to tez takie jak odgrzewanie pizzy w mikrofali – ha clarion daje mi wybór: chce szybko mam bardzo szybko, chce poprogramowac obiektowo tak poprogramuje, chce użyć generatora to uzyję. ALE ! chce pogrzebac w pamięci – pogrzebię. Chce kawałek kodu wydłubać w asemblerze nikt mi nie broni. znudziły mi sie obiekty to poprogramuję strukturalnie jak na odwrót – czemu nie.
I dlatego lubię clariona choć narzędziem idealnym nie jest ale takiego chyba nigdy nie będzie.
ale javy pouczę się dalej .. kilka pomysłów stamtąd przyda się przenieść do CW

Posted in Misz Masz | Leave a Comment »

Jak odmawiać w pracy …

Posted by kashiash w dniu 4 Maj, 2010

Doceniaj swój czas.

Pamiętaj o zadaniach które już zgodziłeś się podjąć. Kiedy ktoś zwróci się do Ciebie z jakimś nowym zadaniem będziesz zdawał sobie sprawę, że po prostu nie jesteś w stanie tego zrobić. A wtedy po prostu może powiedzieć „Nie jestem w stanie teraz tym się zająć – mam obecnie zbyt wiele rzeczy do skończenia”
Zdawaj sobie sprawę ze swoich priorytetów.

Nawet jeżeli masz trochę wolnego czasu zastanów się, czy naprawdę chcesz go poświęcić na zajęcie się sprawą z którą ktoś do Ciebie przyszedł. Każdemu z nas należy się trochę czasu na odpoczynek, zajęcie się sobą i rodziną.
Ćwicz mówienie NIE.

Praktyka czyni mistrza i mówienie „NIE” tak często jak możesz jest dobrym sposobem na opanowanie tej sztuki, za każdym kolejnym razem będziesz czuł się mniej nieswojo. Dodatkowo powtarzanie tego słowa jest często jedynym sposobem na dotarcie do niektórych upartych ludzi – kiedy ciągle powracają i coraz bardziej naciskają nie przestawaj potwarzać „nie”. W końcu powinno do nich dotrzeć
Nie przepraszaj.

Często ludzie z uprzejmości zaczynają od „Przepraszam ale..”. Uprzejmość i kultura są ważne, ale z drugiej strony przepraszanie powoduje, że nasza odmowa zostaje osłabiona. Warto być bardziej stanowczym w bronieniu naszego czasu.
Przestań być miły.

Oczywiście uprzejmość i kultura są ważne, ale bycie miłym i mówienie „tak” za każdym razem jest dla nas krzywdzące. Jeżeli tak bardzo ułatwiasz ludziom korzystanie z Twojego czasu (lub pieniędzy) skłaniasz ich do postępowania w ten sposób cały czas (będą wiedzieć, że można na Ciebie liczyć). Jeżeli jednak im to utrudnisz zaczną szukać innych łatwiejszych celów. Staraj się uczyć innych szacunku do Twojego czasu poprzez stanowcze odpowiedzi i odrzucanie jak najwięcej próśb (oczywiście tych które nie zgadzają się z Twoimi priorytetami).
Powiedz NIE swojemu szefowi.

Większość z nas jest przekonanych, że szefowi powinno się mówić tylko TAK – w końcu są naszymi szefami. Bierze się to z tego, że jeżeli powiemy NIE, to wykażemy w ten sosób, że nie jesteśmy w stanie sprostać swojej pracy. Prawda jest inna: wytłumacz swojemu szefowi, że biorąc zbyt wiele na swoje barki osłabiasz swoją efektywność i zagrażasz podjętym już zadaniom. Jeżeli Twój szef ciągle naciska postaraj się z nim omówić listę zadań i projektów które wiszą na Tobie i poproś o ustalenie priorytetów, starając się określić realistyczne terminy.
Działaj z wyprzedzeniem.

Łatwiej jest unikać nowych zadań i próśb niż później odmawiać. Można to osiągnąć np. ogłaszając wszem im wobec, że Twój terminarz w najbliższym czasie jest kompletnie zapchany i nie będziesz w stanie wziąć nic dodatkowego na siebie.
„Wrócę do Ciebie”.

Zamiast odpowiadać od razu, daj sobie trochę czasu i odpowiedz, że musisz się zastanowić i odezwiesz się na ten temat później. W ten sposób rzeczywiście będziesz mógł to przemyśleć, sprawdzić listę zadań która na Tobie spoczywa i przeanalizować priorytety. Jeżeli w ten sposób dojdziesz do tego, że nie możesz wziąć nowego zadania na siebie możesz w jasny i prosty sposób – przynajmniej ta druga osoba mogła liczyć na poważne potraktowanie i przemyślenie sprawy przez Ciebie.
Może później.

Jeżeli nie możesz czymś zająć się w danym momencie, ale później może nie być z tym problemu, to dobrze jest o tym powiedzieć osobie która przyszła do Ciebie z nową sprawą. Można wtedy powiedzieć , że sprawa jest chętnie tym byśmy się zajęli ale obecnie nie jesteśmy w stanie ze względu na inne zadania – oczywiście za jakiś czas chętnie byśmy do tego wrócili.
„Nie chodzi o Ciebie tylko o mnie”. Jest to klasyczna wymówka wzięta ze związków damsko-męskich, która przydaje się także w pracy. Często projekt lub zadanie jest całkiem dobre, ale nie jesteś odpowiednią osobą czy też nie jest to odpowiedni czas, żebyś Ty się tym zajął. Z całym szacunkiem i poparciem dla pomysłu możesz w ten sposób odmówić wzięcia w nim udziału. Warto jednak być szczerym w tym względzie, bo inni mogą łatwo wyczuć jeżeli jest inaczej.

Posted in Misz Masz | Otagowane: | Leave a Comment »

Historia Clarion’a

Posted by kashiash w dniu 4 Maj, 2010

Opis zerżniety ze strony Darka Bonclera (mam nadzieje, że nie będzie miał pretensji) … link do jego strony powinien osłodzić ewentualny żal: http://www.clarionsoftware.com.pl

Pierwsza wersja Clariona była produktem przeznaczonym dla systemu operacyjnego MS-DOS i nosiła numer 1.0 – na rynku pojawiła się w kwietniu 1986 r. Clarion został stworzony przez Bruce’a Barringtona, jednego z założycieli firmy HBO & Company (obecnie McKesson) i współpracujący z nim niewielki zespół programistów. Celem Barringtona było opracowanie języka programowania o zwartej składni, który jednocześnie w maksymalny sposób miał ułatwiać projektowanie interfejsu użytkownika. Pierwsza wersja tworzyła tzw. pseudokod. W jej ramach użytkownik otrzymywał narzędzie do projektowania ekranów, interpreter, edytor oraz debugger. Stosowanym formatem danych był popularny do dzisiaj Clarion (format plików ISAM o rozszerzeniu .DAT). Bruce Barrington powołał do życia firmę Barrington Systems i rozpoczął sprzedaż Clarion ver. 1.0.

Clarion Professional Developer

Clarion 1.0 wymagał stosowania klucza sprzętowego, jednak metoda ta budziła sprzeciw odbiorców, w związku z czym w kolejnej wersji – 1.1, ograniczenie to zostało usunięte. Wersja 2.0, która ujrzała światło dzienne w maju 1988, nosiła już nazwę Clarion Professional Developer (CPD) i została wzbogacona m.in. o narzędzie do definiowania struktur danych i ich wzajemnych relacji. CPD generował kod w języku Clarion w oparciu o informacje zapisane w słowniku danych (Data Dictionary) oraz na bazie specjalnych szablonów nazywanych plikami „modeli działania”. Ponieważ każdy z tych plików był plikiem tekstowym, dawał się łatwo modyfikować (choć w ograniczonym zakresie) i w ten sposób tworzony był kod pod indywidualne zastosowania. Pliki modeli działania były zaimplementowane w układzie przeglądanie – modyfikacja danych. Dane były wyświetlane w liście, natomiast formularze przeznaczone do ich aktualizacji były otwierane w odpowiedzi na wciśnięcie przez użytkownika odpowiedniego przycisku na ekranie.

Projektant tworzył interfejs użytkownika – ekrany zawierające listy przeglądania danych i przyciski a programista zajmował się oprogramowaniem akcji wykonywanych w wyniku ich użycia. Odbywało się to poprzez wskazywanie, jakie procedury mają być uruchamiane, bądź poprzez wstawianie fragmentów kodu źródłowego w języku Clarion.

W Clarion Professional Developer zostały również wprowadzone specjalne moduły Language Extension Modules (LEMs), które rozszerzały możliwości języka Clarion poprzez stosowanie modułów skompilowanych w innych językach programowania. Clarion Software I wielu innych producentów tworzyli moduły LEM do różnego rodzaju zastosowań, np. Do uzyskiwania możliwości operowania na bazach danych innych formatów, takich jak: dBase, Clipper, czy Paradox.

CPD 2.x było rozwiązaniem bazodanowym wyposażonym we wszystkie niezbędne narzędzia pozwalające na projektowanie interfejsu użytkownika, baz danych, raportów, czy systemów pomocy.

Wersja Clarion 2.x przeznaczona dla końcowego użytkownika – Clarion Personal Developer została stworzona specjalnie dla nieprofesjonalnych użytkowników pragnących tworzyć swoje własne, przeznaczone do osobistego użytku, aplikacje. W tym samym czasie został udostępniony Clarion Report Writer. Narzędzie to było rozpowszechniane w dwóch wersjach – jako samodzielny product przeznaczony dla końcowego użytkownika oraz jako składnik pakietu Clarion Professional Developer version 2.1. W tym pierwszym przypadku jego podstawowym zadaniem było umożliwienie użytkownikom aplikacji tworzenia profesjonalnych raportów w oparciu o zawartość plików z danymi.

Kompilatory TopSpeed

W roku 1991 Barrington zakupił licencję na kompilatory od małej firmy o nazwie Jensen & Partners International (JPI). Została ona założona w w 1987 przez Nielsa Jensena, który wcześniej był jednym z założycieli firmy Borland. Philippe Kahn, który odpowiadał w Borland za działania marketingowe, budował firmę wokół przebojowego, kosztującego zaledwie $99 kompilatora Turbo Pascal. Niels, wraz ze swoim zespołem, pracował nad kompilatorami nowej generacji do czasu, gdy Philippe Kahn zdecydował o zakupie Wizard C, który został następnie przemianowany na Turbo C. Niels i kilku innych projektantów opuścili Borland i powołali do życia JPI. W ramach tej firmy kontynuowali pracę nad swoimi rozwiązaniami, do których prawa wykupili z Borland za ok. $1.700.000.

W owym czasie na rynku dostępne było całe środowisko programowania TopSpeed, w ramach którego można było korzystać z kompilatorów takich języków programowania, jak Modula-2, Pascal, C/C. Wygrywało one większość testów wydajnościowych, w tym. M.in. przeprowadzane przez prestiżowy magazyn Byte. Porównując poszczególne kompilatory trzeba stwierdzić, że najgorszym z nich był kompilator Pascala, który tak naprawdę nigdy nie nawiązał walki z produktem Borlanda. Z kolei najlepszy – Modula-2 borykał się głównie z tym, że język tan w zasadzie nigdy nie wyszedł poza środowiska akademickie I tym samym nie odniósł komercyjnego sukcesu. JPI zapowiadało również kompilator języka Ada, ale ostatecznie nigdy nie został on udostępniony.

W latach 80-tych JPI toczyło z gory przegraną bitwę z innymi producentami kompilatorów. Jak już było wspomniane, wszelkie testy porównawcze wypadały na ich korzyść, ale nie przekładało się to na sukces rynkowy. Stąd decyzja o związaniu się z Clarion Software.

Clarion Database Developer

Wkrótce po zakupie wspomnianej licencji, na rynku pojawił się nowy product – Clarion Database Developer 3.0 (CDD). Był on rewolucyjnym narzędziem, wyposażonym w wiele nowych funkcji I technologii umożliwiających budowanie okienko-podobnych aplikacji działających w środowisku DOS (również w trybie graficznym). Wiele z tych rozwiązań idealnie pasowało do systemu Windows, tworząc podwaliny dla przyszłej wersji Clarion for Windows. Środowisko użytkownika w CDD było całkowicie nowe i bazowała na standardach wypracowanych przez JPI. Zawierało liczne profesjonalne narzędzia, takie jak: edytor, system projektów, kompilator, linker, debugger. Zupełnie zarzucone zostało stosowanie p-kodu pochodzące jeszcze z czasów CPD. Kompilatory JPI, w oparciu o kod źródłowy w języku Clarion, tworzyły prawdziwy kod maszynowy programów wykonywalnych (EXE), bibliotek dynamicznych (DLL) i statycznych (LIB). Możliwe było również tworzenie tzw. aplikacji trybu chronionego (Protected Mode), które pozwalały programom DOS-owym na wykorzystanie pamięci rozszerzonej przełamując barierę 640KB.

W języku Clarion 3.0 pojawiło się sporo różnych nowości. Udostępniono nowe typy danych (CSTRING, PSTRING, DATE, TIME, USHORT, ULONG), divery plików danych (Btrieve, Clarion, Dbase, FoxPro, Paradox), rozbudowano możliwości stosowania kolejek, ujednolicono interfejs użytkownika.

Generowanie kodu źródłowego w oparciu “modele działania” zastąpiono szablonami. Te ostatnie dawały znacznie więcej możliwości, przy jednoczesnym zwiększeniu elastyczności rozwiązania. Dzięki temu programiści mieli od tej pory do dyspozycji narzędzie pozwalające na tworzenie dużo bardziej złożonych funkcjonalnie aplikacji.

Wzrost możliwości pociągnął za sobą zwiększoną złożoność narzędzia. Wielu dotychczasowych użytkowników uznało CDD za dużo trudniejszy do opanowania w porównaniu z CPD. Ten ostatni cieszył się popularnością wśród wielu programistów – amatorów, pozwalając na budowanie aplikacji drogą odpowiedzi udzielanych na pytania generatora. CDD dużo lepiej pasował do wymagań stawianych przez profesjonalistów. Programowanie wciąż nie było skomplikowane, a przy tym znacząco wzrosły możliwości oferowane przez całe zintegrowanie środowisko Clarion.

Wprowadzanie na rynek CDD nie obyło się bez problemów. Pięć pierwszych aktualizacji było niestabilnych, co spowodowało porzucenie produktu przez część użytkowników. Była to prawdziwa katastrofa dla firmy. Prace jednak trwały i wreszcie, od wersji 3.007, CDD był już stabilnym i prawidłowo pracującym narzędziem.

Wersja 3.1, nosząca nazwę Clarion for DOS (CFD) została wypuszczona na rynek w roku 1995. Była to już wersja w pełni „dojrzała” jednak w tym czasie można już było zaobserwować mocno słabnące zainteresowanie narzędziami przeznaczonymi dla systemu MS-DOS. Najbardziej istotną nowością w tej wersji było wprowadzenie nowego formatu plików bazodanowych – TopSpeed. Jest to typowy format ISAM pozwalający na przechowywanie wielu tabel danych I indeksów w jednym pliku fizycznym.

TopSpeed Corporation

W owym czasie związki pomiędzy Clarion Software I JPI stawały się coraz ściślejsze. Zaowocowało to powstaniem w dniu 30. kwietnia 1992 r. firmy TopSpeed Corporation.JPI z kolei zmieniła swą nazwę na TopSpeed Development Centre. Jej pracownicy, ulokowani w Londynie skupili swoje wysiłki na ulepszeniach CDD, a nieco później na opracowaniu nowego produktu – Clarion for Windows, bardziej znanego jako CW 1.0.

Clarion for Windows

W Clarion for Windows wersja 2 po raz pierwszy pojawiły sie obiektowe rozszerzenia języka Clarion, włączając w to możliwość definiowania klas, dziedziczenie itp. Podczas opracowywania kolejnych wersji postanowiono opuścić numer 3. Oficjalnie komentowano to w ten sposób, że już wersja CW 1.5 powinna mieć numer 2.0,w związku z czym po prostu przeskoczono do wersji 4. Nieoficjalnie mówi się, że powodem była chęć uniknięcia pomyłek z wciąż sprzedawaną wersją 3.x dla DOS.

Clarion 4 (już nie “Clarion for Windows”) został opublikowany z nowym zestawem predefiniowanych szablonów I biblioteką klas o nazwie Application Builder Class Library (ABC). Oryginalny zestaw szablonów „produkował” kod proceduralny. Z kolei zestaw szablonów bazujących na ABC dawał w rezultacie kod obiektowy bardziej przystający do całej logiki funkcjonowania systemu Windows.

W kolejnych wersjach Clarion 5.x rozwijano i rozbudowywano tylko obiektowy zestaw szablonów ABC. Te proceduralne pozostawały przez kilka lat całkowicie niezmienione. Jednak w odpowiedzi na liczne prośby twórców oprogramowania, którzy wciąż posługują się stylem proceduralnym, od wersji 6.x powrócono do rozwijania szablonów proceduralnych. Niemniej jednak biblioteka ABC jest w tej chwili dużo lepiej rozwinięta i produkuje kod źródłowy o większej zwartości i czytelności.

Na scenie pojawia się SoftVelocity

W maju 2000 r. oficjalnie ogłoszono, że firma SoftVelocity zakupiła kompletną linię produktów Clarion od TopSpeed Corporation. Prezesem nowej firmy został Bob Zaunere, osoba znana wielu użytkownikom Clariona, jako wieloletni pracownik TopSpeed. Priorytetem SoftVelocity stało się jak najszybsze zakończenie prac nad kolejną wersją Clarion 5.5. Zadanie to skończyło się sukcesem, podobnie jak opracowanie jeszcze nowszej wersji – Clarion 6, która jest rozwijana do dnia dzisiejszego.

Stan dzisiejszy

Clarion 6.x to wciąż w większej części narzędzie 16-bitowe. Powoduje to pewne niewielkie problemy w stosowaniu aktualnych technologii Windows związanych z wykorzystaniem ActiveX, OCX, COM, DOC itd. Jednakże dotyczy to tylko etapu tworzenia aplikacji. W efekcie bowiem otrzymujemy zawsze w pełni 32-bitowe aplikacje, czy biblioteki. Poprzednie wersje Clarion pozwalały na tworzenie aplikacji 16-bitowych, możliwość ta została zarzucona począwszy od wersji 6.0.

Równolegle jest sprzedawana nowa wersja – Clarion 7.Rozwijany jest również zupełnie nowy produkt – Clarion.NET bazujący na specjalnej implementacji języka Clarion – Clarion# (analogia do C#). W obu tych wersjach jest stosowane długo oczekiwane nowe środowisko programisty – bazujące na Sharpdevelop IDE

Posted in Clarion | Leave a Comment »