W życiu każdego projektu (i jego twórcy) przychodzi taki moment, kiedy należy wyjść z wygodnego stanu wiecznej wersji beta i niezobowiązującego dłubania w kodzie przy okazji wolnych wieczorów. Wyjść z kodem do ludzi, liczyć się z tym, że ktoś może go rzeczywiście użyć (kto by pomyślał?), a nawet skrytykować. Uznałem, że ten etap nadszedł zarówno dla mnie, jak i mojego dziecka ochrzczonego mianem Codice.
Mówi się że w programowaniu istnieją jedynie dwie trudne rzeczy. Unieważnianie cache i nazewnictwo. Nazwa dla projektu (zarówno w tej wersji i jego wcześniejszych iteracji) powstała już lata temu i z włoskiego oznacza kod lub kodeks. Nawiązanie do kodu jest tak naprawdę miłym zbiegiem okoliczności, który powoduje że wydaje się znacznie bardziej przemyślana niż była w rzeczywistości. Kodeks zaś? Pamięć podpowiada mi że miałem na myśli zbiory notatek Leonarda da Vinci, które nazwano właśnie kodeksami. Czytałem o nich jako dziecko, zafascynowany różnorodnością i ilością zapisków sporządzanych przez signor Leonardo, i jak to dziecko - pomyślałem że też bym tak chciał!. Szczęśliwie, myśl ta przetrwała przez kilka lat i stwierdziłem że mógłbym ją wcielić w życie korzystając z technologii, których się uczyłem.
Długim słowem wstępu przechodzimy do przedstawienia projektu notatnika i aplikacji do zarządzania zadaniami online. Potrzeba gromadzenia i wykorzystywania przeróżnych informacji jest chyba wspólna dla każdego z nas. Pomieszczenie, a zwłaszcza późniejsze odnalezienie istotnych danych z całego szumu którym jesteśmy bombardowani jest niełatwe. Dlaczego więc i w tym wypadku nie wspomóc się technologią?
Pierwsza wersja Codice (wtedy jeszcze pod inną nazwą) powstała w 2011 roku. Była tak naprawdę jednym olbrzymim switchem, którego eksperymentalnie umieściłem w jednym pliku - bo dlaczego nie? Niespełna 300 linii PHP plus jeden arkusz stylów zapewniał mi miejsce do dodawania notatek, którym opcjonalnie mogłem przypisać termin wykonania, a później oznaczyć taką notatkę (czy już wówczas zadanie) jako wykonaną. Zainteresowanych archeologią zapraszam (ostrzegając jednocześnie) do zobaczenia kodu na własne oczy.
Co zmieniło się przez te 6 lat? Przepisywałem projekt kilka razy, nieraz odkładając go do szuflady na długie miesiące. Na pewno jednak nie zmieniło się założenie, obecna wersja działa w naprawdę zbliżony sposób.
W pewnym momencie zdałem sobie sprawę że w tym właśnie leży siła. Banalnie prosta idea, do której można dobudować bardzo wiele - do tego użyteczna. Zrozumiałem że jest to coś, czemu jestem gotów poświęcić sporo pracy, a przy okazji podzielić się efektem ze światem.
Dzisiaj Codice jest aplikacją MVC, zbudowaną w oparciu o framework Laravel, która, pod względem napisanego kodu, powiększyła się niemal… pięćdziesięciokrotnie. Tyle mniej więcej wypuściłem z pod palców, w wolnych chwilach od grudnia 2015, kiedy raz jeszcze postanowiłem wymienić fundamenty i większość kodu.
Codice, o wciąż niezmiennej koncepcji, doczekał się nowego designu, wielu dodatkowych możliwości, nieco lepszej architektury a także protego systemu wtyczek, który powinien zapewnić mu pewną elastyczność na najbliższe lata i moje plany z nim związane.
Na obecnym etapie można chyba zaryzykować nazwanie go produktem używalnym, czego powinienem być żywym dowodem, korzystając z niego na co dzień od około pół roku. W dalszym ciągu udziela mi się oczywiście syndrom malarza i widzę w nim nieskończenie wiele rzeczy, które można by zrobić lepiej. No ale cóż, w myśl tego, co napisałem we wstępie czas zmierzyć się z odbiorem na zewnątrz i wykorzystać go jako niezaprzeczalną szansę na zebranie kilku opinii, przed osiągnięciem wersji stabilnej.
Swoje postępy na tej drodze będę opisywał od tej chwili na blogu. Według obecnego planu wpisy powinny pojawiać się w każdy wtorek, co najmniej do połowy maja.
Jeśli zaintrygowałem kogoś już w tym momencie, zapraszam na stronę projektu. Można poczytać sobie dokumentację jeśli ktoś ma problemy z zasypianiem lub po prostu pobrać paczkę i spróbować coś zepsuć ;)
Powyższy wpis poza planowanym już dawno przedstawieniem Codice i wstępem do serii, w której postaram się przybliżyć jego możliwości, pokazując przy tym jak rozwiązałem co ciekawsze problemy, jest też realizacją wymogów konkursu "Daj Się Poznać". Więcej o nim możecie przeczytać w moim wczorajszym wpisie. Oznacza to też, że co najmniej do połowy maja co sobotę będą pojawiać się kolejne materiały, tym razem poświęcone niekoniecznie rozwojowi Codice, ale również związane z tematyką bloga.