Daj się poznać! Technologie.

Poprzednio przedstawiłem Wam zarys ideowy mojego projektu – odpowiedź na pytanie: dlaczego chcę go realizować?. Tym razem garść informacji i przemyśleń na temat: jak spróbuję to zrobić?.

 

Podstawa

Projekt (oprócz uczynienia świata lepszym miejscem) ma również posłużyć mojemu rozwojowi. Jako, że do tej pory nie miałem styczności z programowaniem aplikacji w technologii ASP.NET MVC – to właśnie ją wybrałem jako podstawę. Tworzenie aplikacji webowej to również (oby miła) odmiana od desktopowych tworów, które mam na codzień:)

 

Wzorce

Nowy projekt to również okazja, by spróbować czegoś nowego w dziedzinie struktury aplikacji i dobrych wzorców projektowania. Zmierzę się więc z techniką TDD (test driven development) licząc na to, że pokaże mi swoją potęgę. W parze z nią pójdzie naturalnie wzorzec IoC (inversion of control) – mam nadzieję, że uda mi się utrzymać projekt w ryzach tych metod i całość nie podryfuje w stronę mniej lub bardziej rozdrobnionej sieczki projektowej:)

 

Biblioteki

Projekt zakłada agregowanie treści z szeregu serwisów internetowych. Wiąże się to na pewno z poniższymi potrzebami:

 

1. Wykonywanie czasochłonnych operacji
Operacje uaktualniania bazy danych o nowo dodane na śledzonych serwisach filmy będą wykonywane w tle – to oczywiste. Zobaczę zatem, które z narzedzi wspomagających takie działania sprawdzi się najlepiej. Zamierzam przetestować biblioteki Quartz.NET oraz Hangfire – i wybrać lepszą:)

 

2. Przetwarzanie pobranych danych
Tutaj najprawdopodobniej będę również próbował kilku rozwiązań. Zobaczę jak sprawdzi się biblioteka HtmlAgilityPack, z której już korzystałem – i byłem zadowolony z efektów. Jeśli napotkam problemy związane z agregowaniem treści w aplikacji ASP.NET MVC być może spróbuję innego podejścia – wykorzystam pythonowy web crawler Scrapy – wiązałoby się to jednak z wydzieleniem części pozyskującej dane do modułu pythona.

 

W części frontendowej projektu na pewno będę chciał wykorzystać jakiś wygodny framework JavaScript. Z AngularJS już się spotkałem – może to być okazja, by poznać go lepiej… lub użyć czegoś zupełnie mi nieznanego – jak ReactJS lub AureliaJS. Po krótkim rekonesansie podejmę decyzję…

 

I to na razie wszystko – przypadek matką zmian, więc nie przywiązujcie się do tej listy:)

Marcin

Dodaj komentarz