Skracacz linków - Architektura Systemu
ฝัง
- เผยแพร่เมื่อ 27 มิ.ย. 2024
- Dołącz do społeczności na Discordzie: / discord
Hej, oto przykładowa architektura aplikacji służącej do skracania linków
Jeśli film się podobał to zostaw kciuka w górę i suba ❤️
Inne socialki:
✅Instagram: / codingchef_
✅TikTok: / coding.chef
✅Facebook: profile.php?...
📩 hello@codingchef.pl
polecany hosting i zakup domen: seohost.pl/?ref=61854
[00:00] - wstęp
[00:14] - wymagania i przypadki użycia
[00:47] - obliczenia bazodanowe
[01:57] - model danych
[02:30] - haszowanie linku
[04:04] - base62
[05:18] - snowflake_id
[05:56] - HTTP 301, 302
[06:45] - podsumowanie architektury - วิทยาศาสตร์และเทคโนโลยี
ale ten kanał to jest złoto ❤️
Komentarz dla zasięgu, bo strasznie fajny kanał:)
Film na temat Discorda zainteresował mnie twoim kanałem, ponieważ od dawna się zastanawiałem jak oni dokładnie to robią.
Teraz zrobiłeś jeszcze lepszy materiały
Daję suba i czekam na kolejne filmy, dobrze ci to wychodzi, dodatkowo miniaturki są estetyczne
Zajebisty kanał, czekam na więcej kontentu
Mega się cieszę, że TH-cam podsunął mi Twój kanał. Super robota...!
Swietnie sie Ciebie slucha! Chętnie zobaczylbym film na temat robienia systemów rezerwacji w js
Super materiał :) Dziękuje!
Świetny film, świetny kanał! Czekam na więcej :)
Świetny kanał. Koncepty fajnie wytłumaczone.
Kozak materiał i super kanał, czekam na kolejne filmy
Świetny kanał, super odcinek. Oby wiecej takich filmow :D
Świetnie wytłumaczone 👍
kozackie stary, fajnie tłumaczysz i spoko się Ciebie słucha, dałem suba
Mega fajne i ciekawe filmy
Zajebiste :3
Coding Chef is still cooking! Super film
Dawno temu pod mój kanał potrzebowałem skracać linków -przez pewną chwilę poważnie zastanawiałem się, czy samemu go nie napisać.
Po obejrzeniu tego wideo powiem tyle - Cieszę się że tego nie zrobiłem xd.
Haha, wiesz - to architektura pod raczej większy system. W przypadku indywidualnego kanału na własne potrzeby byłoby to o wiele prostsze 😁
@@coding-chef wiem, wiem xd - ale tez prawda ze to jest na tyle skomplikowany system ze pisanie i utrzymywanie tego jako single dev by mnie kosztowało wiecej czasu niż wartość jaką by przyniosło.
@@ITeaMorning taa, nie ma co wymyślać koła na nowo jak już są systemy które to robią
Wydaje mi się że to i tak jest wartościowy projekt nawet w zamyśle na jednego użytkownika, znacznie się to upraszcza bo w sumie to nie trzeba myśleć o niczym poza strukturą bazy i hashowaniem tych linków, ja coś takiego robiłem właśnie jako pierwszy mały serwis internetowy i wyszedł działający projekt, nauczyłem się chociażby stawiać bazę danych 😀
Fajny materiał. Tym bardziej bolą błędy jakie się w nim pojawiają :(
Łap suba :)
Dobry materiał. Zdradzisz proszę czego używasz do tworzenia napisów, rysunków i animacji? Może rodzinę Adobe?
W moim odczuciu bardzo słychać w twoim głosie japoński akcent, stąd moje pytanie czy masz w przodkach Japończyków?
🇯🇵🇯🇵
A ja zawsze myślałem, że to jest encodowane, a to jest po prostu zapisywane w bazie danych.
Planujesz może oprócz teorii pokazać jakieś praktyczne filmy jak tego typu rzeczy się robi?
praktyczne materiały trwałyby zbyt długo albo ciągnęły się w kilkuodcinkowych seriach czego wolę unikać
Nagrasz jak działa librus ?
haha, a co, chcesz sobie oceny dopisać? 😁
Czy MongoDB nie klęknie przy takiej ilości użytkowników?
W zależności od konfiguracji. Ale można powiedzieć: nie.
Czy mogę zachęcić Twój film na zajęciach online?
Pokazać fragment?
Chodzi o zajęcia programowania dla nastolatków.
Jako przykład aplikacji?
Jak mogę potem wysłać Ci link żebyś dał znać czy to jest dla Ciebie ok?
jasne, możesz pokazać :)
Bardzo dziękuję.
Wrzucę później link w komentarzu i dasz znać czy jest ok....@@coding-chef
Czemu zadajesz takie pytanie? To jest youtube, twórca wrzuca -> ty możesz to wykorzystać oczywiście nie naciągając typu "to ja stworzyłem itp", ale dalej ten temat tu omawiany to "kalka" z it for/redditów, innych yt twórców i nie trzeba się pytać o wykorzystywanie takich materiałów jako dodatek :D. Tak to nigdzie na żadnych zajęciach dużych twórców filmy by nie były wykorzystywane, bo tam w spamie komentarzy nikt by nie odpisał na pytanie o pozwolenie :D
@@TheMrBazil Dzięki! Nie wiedziałem.
Ale pomyślałem że będzie miło autorowi zapytać.
Aczkolwiek słusznie - ryzykowne - mógł nie odpowiedzieć!
@@cauchyPl na 100% takie pytanie to miła sprawa dla autora także rozumiem też :D. Jedynie jakby czasem ktoś nie odpisał to i tak można wykorzystywać takie publiczne materiały i nimi się posiłkować :D
Ciekawy film, jednak czy dodawanie na diagramie obok bazy danych/serwera informacji o tym jak realizujesz funkcję, która skraca link nie jest błędem? Dodatkowo według mnie powinieneś zrobić bardziej formalny diagram korzystając z UML.
Dlaczego dodanie informacji o haszowaniu miałoby być błędem? To filmik edukacyjny, jak można to robić, a nie tajna architektura jakiejś aplikacji 😄 I nie zgadzam się, że powinienem korzystać z UML, bo to youtube i ten film ma być przyjemny do oglądania i łatwy do zrozumienia
Cache przed bazą nie może być jeśli zbieramy statystyki lub logujemy przejścia przez skrócony link.
dlaczego? wszystkie dane przed pobraniem z cache przelatują przez serwer, w którym można ogarniać statystyki
@@coding-chef Ale i tak muszą być aktualizowane na bazie danych przynajmniej w wypadku zapisu ilości odsłon w rekordzie danych skróconego linka. Nie wiem co Masz na myśli "przelatują przez serwer, w którym można ogarniać statystyki" - hmm dodatkowy serwer bazodanowy do statystyk " ?
--
Podałeś przykald z Snowflake_ID, który ma np: 1735737809576132608 19 cyfr.
Zamiana na base62 daje taki skrót 24dHfvustie. Ma on 11 znaków, co nie jest zgodnie z Twoimi założeniami, ze skrót powinien mieć 6 znaków.
@@dariuszmion2764 tak, np dodatkowy serwer który może pobierać dane z kolejki po zwróceniu linku z cache
Odnośnie snowflake id to wiem, 6znakowy hash odnosił się do początkowych funkcji haszujących.
Dzięki za zwrocenie uwagi, taką krytykę lubię. Następne filmy będą dokładniejsze żeby nie pozostawiać niedomówień 🫡
Redis wydaje się w tym przypadku niepotrzebnym elementem który komplikuje architekture. MongoDB ma wbudowany system cashowania ostatnich zapytań w pamięci RAM (tak jak by mini redis) przez cą są bardziej wydajne i nie obciążają bazy danych.
Hmm, na pewno jest to kwestia do przemyślenia. To, co mi teraz przychodzi do głowy to musielibyśmy się upewnić, że serwer z mongo ma odpowiednią ilość pamięci RAM, aby pokryć zapotrzebowanie working set i przy tym działać cały czas wydajnie, co przy 10 milionach rekordów dziennie mogłoby być ciężkie, więc pewnie trzeba by pójść w sharding danych?
Jeżeli używasz redisa, to po co ci mongo?