Wykop urósł o ponad 40% licząc rok do roku. Co dalej z serwisem?

wykop
wykop


Garść historii

Jak pewnie duża część z Was zauważyła, w ostatnich tygodniach wykop boryka się z problemami związanymi z wydajnością - prawda jest brutalna - przerósł nas nasz własny sukces. Wykop urósł o ponad 40% licząc rok do roku.

Kod na którym stoi serwis powstał 8 lat temu i od tego czasu przeszedł tylko dwie duże modyfikacje:

- Około 2 lat temu duża część serwisu została przeniesiona na Elastic Search

- Kilka miesięcy temu przeszliśmy z PHP 5.4 (sic!) na 7.2

Cała reszta prac to dodawanie nowych ficzerów, praca nad reklamami i doraźne optymalizacje. Najwyższy czas na zmiany!



Wykop 5

Cooooo? Jakie 5? W naszej wewnętrznej nomenklaturze mieliśmy już 4 duże wersje wykopu. Właśnie zaczynamy prace nad piątym wcieleniem. Ostatnich kilka lat pozwoliło zebrać nam trochę ciekawych doświadczeń i wyklarować wizję tego, co chcemy osiągnąć i jak powinien być zaprojektowany serwis, żeby dostarczyć Wam o wiele lepszą jakość niż teraz.



Architektura

Obecnie Wykop stoi na PHP i w tej materii niewiele się zmieni. PHP to nie programowanie. Nie zgadzamy się z tym - język jest tylko narzędziem i PHP sam w sobie nie jest wąskim gardłem, a w wersji 7.x nie odstaje od innych nowoczesnych języków. Chcemy też podzielić monolityczną do tej pory architekturę na kilka mniejszych część, takich jak moderacja czy reklama.

Pierwszym etapem naszych prac jest przygotowanie własnego frameworka. Dlaczego własnego? Bo nasze benchmarki pokazują, że gotowe rozwiązania dają za duży narzut. Nie potrzebujemy wielu rzeczy które dają symfony czy laravel. Potrzebujemy tylko kilka modułów, jak routing, obsługa błędów, bazy danych, cache czy formatowania outputu w JSON.


JSON? Czemu tylko JSON? Nasz mikro framework ma dostarczać API dające dostęp do wszystkich funkcji serwisu. Pozwolić pobrać listę znalezisk czy wpisów, dodać nową treść, zagłosować, zalogować się - słowem wszystko co można zrobić w Wykopie będzie możliwe do zrobienia przy użyciu tego API.

WWW


I tu na scenę wchodzi nowa aplikacja www - chcemy (wzorem całego cywilizowanego świata) odseparować front od backendu. Nowe wcielenie wykopu ma działać jako SPA. Oznacza to, że frontend wykopu zostanie napisany w całości w jednym ze współczesnych frameworków Javascritowych. Co to oznacza dla końcowego użytkownika? Taka aplikacja powinna być o wiele szybsza, w mniejszym stopniu obciążać sieć i dostarczyć takich nowoczesnych rozwiązań jak powiadomienia w przeglądarce czy komunikacje na socketach.

Przy okazji tego chcemy odświeżyć wygląd serwisu, uprościć część jego funkcji i uspójnić działanie. Czarne listy niestety nadal będą miały limity - chyba, że całkowicie się ich pozbędziemy ;-)



Android

Aplikacje mobilne to kolejny zaniedbany przez nas obszar. Lada chwila do marketu trafi aktualizacja aplikacji - na chwilę obecną jest to jednak tylko dodanie kilku nowych funkcjonalności. W najbliższych tygodniach przygotujemy nowy wygląd aplikacji, który sukcesywnie chcemy wdrażać, żeby wyeliminować bolączki związane z UXem.



iOS

Wiemy, że jakiś czas temu pisaliśmy, że nowa aplikacja na iOS będzie już za chwilę. Bijemy się w pierś - inne projekty zabrały nam zasoby - i prace utknęły. Sprawa jest trudniejsza niż w Androidzie bo poza nowym UXem musimy przepisać aplikację na nowe API. Prace nad tym ruszają pełną parą od sierpnia i chcielibyśmy móc przed świętami pokazać Wam nasze nowe dziecko.



API

Cały czas jedynym, oficjalnym, publicznie dostępnym API jest v1. Wielu z Was słyszało już jednak legendy nad API v2. Przepisywanie serwisu to dla nas moment w którym musimy udostępnić v2 i zacząć wygaszać v1. Do września chcemy uruchomić nowe API i dać 9 miesięczny okres przejściowy na migrację na nowe endpointy.



Kiedy?

Nie chcemy podawać konkretnych dat, bo - nam to ewidentnie nie wychodzi :-)
Nasze pobożne życzenia to:

Android, w ciągu 3 miesięcy

iOS, w ciągu 6 miesięcy

Backend i frontend - około 12 miesięcy



Chcecie pomóc?

Po pierwsze - rekrutujemy - poszukujemy kogoś kto w naszym poznańskim biurze wesprze nas w pracach nad backendem https://justjoin.it/offers/wyk...

Jesteśmy też otwarci na wszelkie pomysły na każdy z poruszonych tu tematów. Jeśli ktoś z Was ma pomysł na usprawnienia w UX, w aplikacjach mobilnych czy w architekturze to nasz dział IT jest otwarty na dyskusje :-)



666d70304678316c597a673d_yf0mcFjATgnSIdBBODsWNwszmra6vVOV.jpg