Od Excela do LAMP

Od Excela do LAMP

opublikowane w Poczekalnia | 1

Usłyszałem kiedyś bardzo ciekawą teorię: motorem postępu technologicznego jest nadgorliwość kobiet i lenistwo mężczyzn. Kobiety – z natury bardzo obowiązkowe i rzetelne – gdy mają postawione przed sobą zadanie, bez zwłoki przystępują do jego realizacji, pracują tak długo aż je ukończą. Za to mężczyźni – znani z lenistwa i niechęci do ciężkiej pracy – siadają w fotelu i kombinują jak by tu sobie uprościć pracę. Od tego zaczęła się moja przygoda z programowaniem.

Pracowałem w firmie zajmującej się projektowaniem, wdrażaniem i utrzymaniem w ruchu automatyki przemysłowej. Pod nadzorem mieliśmy wiele szaf z procesorami oraz modułami kontrolno-sterującymi. Moim zadaniem było cykliczne dokumentowanie wszystkich urządzeń. Generowałem z Systemu listy sprzętu, przepisywałem do arkusza kalkulacyjnego, tworzyłem wizualizacje szaf sterowniczych. Już przy trzecim cyklu zacząłem obmyślać plan uproszczenia sobie pracy. Wtedy odkryłem VBA. Napisałem program, który automatyzował większość czynności. Pół dnia klepania zamieniłem na trzy godziny wolnego. Tak powstał mój pierwszy projekt.

Drugi zrodził się z potrzeby wyższego rzędu, chciałem pomóc żonie, która spędzała mnóstwo czasu wykonując obliczenia w Excelu. Zgodnie z przyjętą na wstępie teorią – Ona mozolnie wykonywała zadania a ja się zastanawiałem jak usprawnić pracę. Wykorzystałem wcześniej zdobytą wiedzę. Żona pracowała w przemyśle spożywczym, musiała opracowywać receptury produkcji słodyczy, rozliczać koszty produkcji, obliczać marże, upusty itp. Lwią część procedur przetworzyłem do postaci algorytmów i zaadoptowałem w VBA. Wtedy poznałem smak satysfakcji z dobrze wykonanego zadania wyrażony we wdzięczności bliskiej osoby. Program nie był doskonały, wraz ze wzrostem liczby danych zarządzanie nim było trudniejsze. I całość działała coraz wolniej.

Wtedy dokonałem przełomowego odkrycia, przecież mogę to samo zrobić wykorzystując bazę danych. Znałem już trochę Visual Basic for Applications więc wybór padł na MS Access. To była moja pierwsza prawdziwa aplikacja. Dodałem procedury wykonujące bardziej skomplikowane obliczenia oraz raporty. Najbardziej wymagające przetwarzanie wykonywało się około 30 minut. Czy to długo? Na pewno tak ale korzyść w postaci zautomatyzowania pracy wcześniej wykonywanej ręcznie była bezcenna. Aplikacja rozrastała się. Przybywało użytkowników, którzy doceniali jej potencjał.

Im więcej czasu spędzałem na rozwijaniu programu tym częściej niepokoiła mnie jego powolność oraz ograniczenia implementacyjne. Zastanawiałem się co jeszcze mogę zrobić, żeby go usprawnić. Nadszedł czas na relacyjną bazę danych z prawdziwego zdarzenia. Mój wybór padł na MySql. Trudno mi powiedzieć dlaczego akurat tak. To była raczej intuicja i subiektywne odczucie. Opłaciło się, System stał się oprogramowaniem rozproszonym, wielodostępowym. Swoją pracę mogło wykonywać wiele osób jednocześnie – bez spadku wydajności. Ale prawdziwe zaskoczenie nadeszło podczas przeliczania danych, to co wcześniej wykonywało się ponad pół godziny, teraz ok. 2 minut. Zachęciło mnie to do prób zwiększenia wydajności, zacząłem stosować indeksy. Metodą prób i błędów doprowadziłem do sytuacji gdy obliczenia trwały 15 sekund.

Proces rozwoju oprogramowania, który zamienił pracę ręczną na zautomatyzowaną i bardzo wydajną trwał w tym przypadku ponad 2 lata. Zaczynałem od usprawnień w arkuszu kalkulacyjnym a skończyłem na LAMP. Podobny proces technologicznej migracji oprogramowania przytrafił mi się w kolejnym projekcie, opowiem o tym w moim następnym blogu.


 

  • pracujesz teraz nad jakimś programem? podeślij link do wpisu a propos kolejnego projektu 😉