Witaj przybyszu. Jeśli tu trafiłeś, to najprawdopodobniej jesteś zainteresowany tym czym jest i jak działa Senpuu.

Senpuu.net jest portalem założonym 7 lat temu przez grupę fanatyków Naruto. Przez te lata Wioska przechodziła wiele przemian. Największe z nich związane były ze zmianami technologicznymi. Od początku opieraliśmy się o rozwiązania autorskie (pisane przez nas samych), dlatego wyróżniała nas jakość i unikalne podejście. Aż do teraz wykorzystywaliśmy standardowe technologie "portalowe", czyli język programowania PHP oraz bazę danych MySQL. Całość serwowana była przez najpopularniejszy serwer czyli Apache. Wszystko zmieniło się z początkiem roku 2011, kiedy w szeregi redakcyjne wstąpiłem ja (Mencio). Można powiedzieć, że technologicznie świat Senpuu został wywrócony do góry nogami. :)

Pierwszą zmianą była rezygnacja z języka PHP na rzecz języka Ruby, dającego większe możliwości (elastyczność), przy zachowaniu zwięzłości kodu. Wraz z Rubym przyszedł szkielet aplikacyjny o nazwie Ruby on Rails w wersji 3.1. Takie połączenie pozwoliło na napisanie od zera całkowicie autorskiego systemu CMS o nazwie "Susanoo". Cały projekt v5 nosi nazwę kodową "Shinra Tensei - ostatnie uderzenie", z racji tego, że jest to na 99% ostatnia "odsłona" systemu portalowego. W Susanoo i całym Senpuu v5, od początku położono nacisk na stabilność oraz jakość rozwiązań, czego wynikiem jest pokrycie kodu szeregiem testów automatycznych (aktualnie 99.2% systemu jest pokryte testami), co ułatwia znajdywanie błędów już na etapie prac (nie po wdrożeniu aktualizacji). Oczywiście nie bez znaczenia było też zapewnienie mieszkańcom bezpieczeństwa ich kont, w związku z czym zastosowano hashowanie haseł wraz z ich soleniem.

Ruby zamiast PHP jest tylko wierzchołkiem góry lodowej. Ciut niżej kryją się wszystkie technologie "poboczne", które znacząco ułatwiają prace nad portalem. Są to między innymi SCSS (aka SASS) - rozszerzenie języka CSS, które pozwala na szybkie budowanie "wyglądu" strony. Stosowanie znaczników z CSS3 sprawia, że portal jest ładny i nowoczesny. Osadzanie obrazków bezpośrednio w CSSie zmniejsza ilości żądań do serwera, dzięki czemu strony łądują się szybciej. Javascript jest wspierany przez CoffeScript, który ułatwia (razem z bibliotekami Prototype i Jquery) pisanie różnych "bajerków", zarówno od strony portalowej jak i w części administracyjnej.

MongoDBJako silnik bazodanowy wykorzystywany jest wciąż MySQL, jednak część danych (tzw. cache'e - czyli już wygenerowane i zapamiętane fragmenty stron), przechowywane są w nierelacyjnej bazie danych o nazwie MongoDB. Pozwoliło to zmniejszyć ilość żądań bezpośrednio do systemu plików, co skutkuje wyższą wydajnością.

ApacheSerwerem aplikacyjnym pozostał Apache, z tym, że jest on obecnie wspierany przez moduł Passenger (aka mod Rails), który umożliwia uruchamianie w Apache'u aplikacji napisanych w języku Ruby.

Podsumowując, poniżej lista technologii użytych do stworzenia Senpuu v5:

  • Ruby
  • Ruby on Rails
  • MySQL
  • MongoDB
  • Apache + Passenger
  • CSS3 (SCSS) + JS (CoffeeScript i biblioteki Jquery i Prototype)


Efekt końcowy właśnie podziwiasz i to Twojej ocenie pozostawiam, czy było warto.

Komentarzy: 0 24 Grudzień 2011