Lada dzień mija półtora miesiąca od rozpoczęcia konkursu Daj Się Poznać, a pierwsza jego połowa jest już za nami. Planowałem napisać i opublikować tego posta odrobinę wcześniej, by było to podsumowanie miesiąca, a nie półmetka konkursu, ale wolałem poczekać na zakończenie pewnego etapu w pracy nad własnym projektem. Nadszedł jednak ten dzień, kiedy trzeba usiąść i spokojnie przemyśleć sobie dokąd dotarłem i gdzie pójdę dalej? Czego się nauczyłem podczas pracy nad własnym projektem i co ciekawego wypatrzyłem u innych? O wszystkim tym, przeczytacie poniżej.
Projekt
Jeśli chodzi o swój projekt, to jestem na etapie, gdzie kilka kroków dzieli mnie od Minimum Viable Product i gdybym przeniósł pewne rozwiązania, nad którymi wciąż się zastanawiam z notatek wprost do projektu, to po interwencji grafika mógłbym uzyskać produkt pozwalający na administrację bazą produktów i przyjmowanie oraz realizowanie zamówień przy płatności gotówką.
Mało imponujące, ale w pierwszym poście projektowym podzieliłem sobie pracę na etapy. Mogę uznać, że pierwszy z nich został zakończony. Chociaż nie jest to pełnoprawne MVP, to w pewnych miejscach umieściłem zaślepki, by zrobić miejsce na rozwiązania, nad którymi wciąż się zastanawiam. Na przykład wciąż nie jestem pewien w jakim zakresie chciałbym wykorzystać SPA, stąd też odpuściłem sobie tworzenie podziału na strony w swoich tymczasowych widokach, podobnie postąpiłem w kilku innych miejscach, gdzie waham się między kilkoma opcjami. Zadaniem tego posta jest między innymi pomoc samemu sobie w podjęciu pewnych decyzji i zaplanowaniu co dalej.
A co dalej? Zacznijmy od tego co bezwzględnie musi znaleźć się w projekcie, a czego brakuje.
-
System logowania do panelu użytkownika i admina – o ile z administracją nie ma żadnego problemu, to w przypadku logowania użytkownika zależy mi na maksymalnej prostocie i wszelkich możliwych udogodnień w kierunku User Friendly. Na pewno będę chciał udostępnić OAuth, a w tym temacie muszę się jeszcze nieco wyedukować.
-
Płatności – nie sądzę aby integracja z PayU/DotPay była jakoś szczególnie skomplikowana, ale póki co zepchnąłem sprawę na dalszy plan. Płatności nie wydają się szczególnie istotne w momencie, gdy do zrobienia zostało tyle innych rzeczy.
-
Statystyki – jako człowiek siedzący w e-commerce uwielbiam wykresy i statystyki. Póki co nie wybrałem jeszcze Frameworka, którego chcę użyć, ale rozważam D3.js oraz ChartJS. Obu muszę przyjrzeć się bliżej, ale ekran statystyk nie jest aż taki znowu ważny, bym rzucał wszystko inne i zajmował się rysowaniem wykresów.
-
SPA – na 100% wykorzystam Knockout.JS. Zastanawiam się tylko czy wykorzystać SPA do wszystkiego co znajduje się po stronie użytkownika, czy ograniczyć się do koszyka, składania zamówienia i/lub wyświetlania/filtrowania dostępnych produktów. W chwili gdy to piszę jest to dla mnie absolutnym priorytetem.
-
Główny pulpit administracyjny – Potrzebny mi jest główny pulpit administracyjny, z którego będzie można zrealizować większość zamówień i skorzystać z kilku innych pomocniczych narzędzi (o których jeszcze nie pomyślałem). Sęk w tym, że chciałbym by powiadomienie o nowym zamówieniu wyświetlało się w jak najkrótszym czasie od jego złożenia przez klienta. Mówimy tu o czasie rzeczywistym lub jak najbardziej zbliżonym i tutaj mam problem, bo jeszcze nie wiem jak to ugryźć, a jest to dla mnie priorytetem numer dwa.
-
Konfigurowalność widoków – to zostawiam sobie na sam koniec i mam kilka pomysłów, ale jeśli idę w kierunku CMSa, to będzie mi potrzebna możliwość korzystania z szablonów graficznych i zarządzania treścią na odrobinę wyższym poziomie niż edycja listy produktów. O ile to drugie nie jest problemem, to z szablonami graficznymi wciąż mam problem i jest to kolejna rzeczy, w której muszę się podciągnąć.
Blog i społeczności
Od startu na moim blogu zmieniło się kilka rzeczy. Zadbałem nieco o rzeczy inne niż sama treść, dodałem logo konkursu, stronę “o mnie” dla osób, które z jakichś powodów są zainteresowane moją osobą (na przykład celem zatrudnienia mnie – do czego zachęcam). W pewnym momencie dojrzałem do decyzji, by aktywniej promować swoje posty zaczynając od portalu dotnetomaniak.pl ,a na sieciach społecznościowych kończąc. Bez względu na to czy komuś zależy na czytelnikach czy feedbacku – odrobina autopromocji jest dobra.
Nieco później zacząłem się aktywniej pokazywać w mediach społecznościowych. Póki co są to:
-
Fanpage na Facebooku – Tutaj jestem aktywniejszy i zaglądam zawsze.
-
Twitter – A tu wyrabiam sobie nawyk zaglądania odrobinę częściej, ale formuła jest dla mnie o wiele mniej przyjazna – zbyt mocno lubię się rozpisywać ;).
Oczywiście zachęcam do śledzenia mnie i zostawiania mi feedbacku, w wielu przypadkach jest naprawdę pomocny.
“Konkurencja”
W trakcie trwania DSP obserwuję również wiele innych blogów, które powstały na potrzeby konkursu lub istniały wcześniej. Muszę powiedzieć, że interesujących i wartościowych treści pojawia się całe mnóstwo. Na końcu tego posta wkleję kilka linków, które znalazły się na liście moich ulubionych. Z postów innych osób dowiedziałem się naprawdę mnóstwo ciekawych rzeczy, nawet jeśli nie były bezpośrednio związane z .NETem. Zatrzęsienie materiału jaki codziennie ląduje na blogach konkursowych sprawia, że codziennie można łyknąć ze źródełka wiedzy. Czasem niestety doba jest zbyt krótka na przeczytanie wszystkiego co bym chciał, więc moja lista “Will read” w Evernote jest już odrobinę przepełniona.
Czego się spodziewałem?
Jeszcze przed zgłoszeniem się do konkursu miałem obawy związane z moimi brakami w wiedzy, przecież nie chciałbym zrobić z siebie idioty. Nie do końca też wiedziałem czego się spodziewać w kwestii feedbacku. Z jednej strony mógł być pozytywny, z drugiej nie do końca wiedziałem czego spodziewać się w kwestii krytyki blogosferze programistycznej. Podejmowałem decyzję o zgłoszeniu się jakieś dwa miesiące temu i szczerze mówiąc nie byłem pewien, czy aby na pewno jestem gotowy.
Co dostałem?
Maciej Aniserowicz na każdym kroku podkreślał, że warto wystartować. I miał rację. Ten “bat” nad głową, który przypomina ,że trzeba się postarać i zgłębić temat zanim się coś o nim napisze daje naprawdę dużo. Napisanie jednego posta zajmuje mi około godzinę, czasem odrobinę dłużej. Do tego dochodzi sprawdzenie go pod kątem błędów, doczytanie sobie pewnych tematów i opracowanie wszystkiego w taki sposób, żeby nie zrobić z siebie debila(mam nadzieję, że jakoś mi to wychodzi ;). Perspektywa tego, że ktoś może mnie czytać sprawia, że staram się o wiele bardziej niż przy typowych projektach do treningu. Samo to, że muszę o czymś napisać sprawia, że rozumiem to o wiele lepiej i zapada mi w pamięć naprawdę na bardzo długo.
Co zrobiłbym inaczej?
Zapisałbym się do konkursu wiele wcześniej. Zlałbym Blogengine i skorzystał z WordPressa.
Z czego jestem naprawdę zadowolony?
Najbardziej i bardzo pozytywnie zaskoczył mnie post o skrótach klawiszowych. Nie spodziewałem się tylu odbiorców i tak pozytywnego odbioru. Jak dowiedziałem się, że znalazł się w zestawieniach najciekawszych postów u dwóch użytkowników portalu Wykop(dzięki!), to poczułem się naprawdę świetnie. To była naprawdę potężna dawka motywacji i z pewnością rozwinę temat o inne ułatwienia dostępne w Visual Studio, a przez chwilę zaświtała mi myśl o zrobieniu lightning talka na ten temat. Zwłaszcza, że Białostocka Grupa .NET ma zamiar pójść w stronę krótkich prezentacji. O ile pierwszego jestem pewien, to co do drugiego nie jestem jeszcze w stu procentach przekonany, ale zobaczymy.
Drugą rzeczą, która mnie bardzo cieszy jest ogromna ilość informacji, przez które muszę się przebić przy pracy nad projektem i fakt, że wiedza ta nie przepada, a jest na bieżąco utrwalana. Prowadzenie bloga przy uczeniu się czegokolwiek jest świetną sprawą, nawet jeśli będzie to hostowane na 127.0.0.1.
Podsumowanie
Wiem, że do czerwca nie uda mi się zrobić wszystkiego co zaplanowałem. Doba jest po prostu zbyt krótka. Nie będę więc się rozpisywał o przyszłości projektu, bo w chwili obecnej jedyne czego jestem pewien to fakt, że dotarłem do momentu, w którym zaczyna się prawdziwy fun stuff.
Linki
-
http://jakubskoczen.pl/entity-framework-i-code-first-migrations/
-
http://jaroslawstadnicki.pl/2016/03/entity-framework-obowiazkowa-minimalna-konfiguracja/
-
http://jaroslawstadnicki.pl/2016/03/kim-jest-wlasciciel-claimow-dajsiepoznac/
-
http://codestorm.pl/2016/03/17/reprezentowac-kwoty-pieniedzy-kodzie-aplikacji/
-
http://lukaszmocarski.com/2016/03/openstreetmap-mapy-w-mojej-aplikacji/