• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Chciałby ktoś porobić wspólnie open source? (wspólna nauka)

+4 głosów
177 wizyt
pytanie zadane 10 maja w Nasze projekty przez marcin99b Szeryf (86,380 p.)
edycja 14 maja przez marcin99b

Cześć, od miesiąca, a dokładniej od 12 kwietnia 2026 rozwijam sobie wieczorami taki projekt https://github.com/Marcin99b/Storygame i staram się robić wokół niego "wyzwanie" robienia codziennych commitów (piszę to 10 maja i do tej pory tylko 3 dni się nie udały).

Stack to .net + react + mongodb, ale w tym przypadku to nie ma dużego znaczenia

Przejdę od razu do tego jak ten projekt powstał i po co, kogo szukam i jaki jest cel

1. jak ten projekt powstał i po co

Programowaniem zajmuję się zawodowo od 8 lat, a licząc naukę przed startem pracy to wychodzi łącznie 10. Praktycznie w każdym roku próbowałem rozwijać jakieś projekty "po godzinach", bo według mnie to najbardziej skuteczna forma nauki nowych rzeczy. Niektóre miały na celu przetestowanie jakiegoś pomysłu z programowania, niektóre były po prostu nauką jakiegoś narzędzia, niektóre były pomysłem na startup ale nie wyszło i skończyły jako open source itd.

Oczywistością, ale o której łatwo zapomnieć, jest to że trudniejsze i bardziej niecodzienne projekty, rozwijają bardziej, niż te powszechne, bo nauka jest bardziej efektywna podczas odkrywania nowych rzeczy, niż przy wielokrotnym robieniu tego samego, co się już zna na pamięć. Przykładowo, jak w pracy pisaliśmy własną kolejkę MQ to czułem rozwój prawie każdego dnia, a przy pisaniu "kolejnej aplikacji biznesowej podobnej do innych", czułem tylko raz na jakiś czas, ale rzadziej niż częściej. Kiedyś (ok 6 lat temu) z grupą ludzi rozwijaliśmy taki projekt https://github.com/Devscord-Team/Watchman który wstępnie miał być typowo funkcjonalny (narzędzie do wsparcia adminów na serwerach discord) a ostatecznie funkcjonalna część była tylko pretekstem do rozwijania "ciekawszej" części (własny routing, własny cache, własny rate limiter, własny parser komend, własne... dużo innych rzeczy). Projekt skończył tak że było tam więcej własnego frameworku niż funkcjonalności dla użytkowników, co na pierwszy rzut oka może brzmieć jak błąd, bo takie podejście jest odradzane w projektach komercyjnych, bo psuje plany biznesowe... ale w przypadku hobbystycznego projektu open source nie ma biznesu, można robić to co przynosi wartość programiście, a nie dochody firmie. Docelowo projekt bardzo pomógł w rozwoju ludziom, którzy byli w niego aktywnie zaangażowani. Poza tym, w CV lepiej wygląda "napisałem własny routing z parserem wiadomości" niż "napisałem kolejnego CRUDa".

https://github.com/Marcin99b/Storygame Docelowo ma być właśnie takim projektem do budowania wokół niego ciekawszych rzeczy. Aplikacja to prosty tracker książek, bo to coś co każdy jest w stanie zrozumieć i łatwo dojść do etapu w którym jest funkcjonalna i użyteczna, ale też nie jest przesadnie skomplikowana i można się skupić na budowaniu rzeczy wokół. Przykładowo, może jakieś własne narzędzie do event streamingu, może jakieś własne narzędzie do cache, może własna baza danych, może własne narzędzia do observability, może jakieś eksperymenty z architekturą na które nikt by się nie zgodził w komercyjnym projekcie. Obecnie projekt idzie w stronę architektury eventowej i możliwe że będę pisał narzędzie do event streamingu w Rust (kiedyś chciałem się nauczyć, nawet kupiłem książkę, ale odpadłem na nauce współbieżności, teraz chcę dać kolejną szansę).

Nazwa "storygame" bo wstępnym pomysłem było zrobienie czegoś jak https://habitica.com ale w formie trackera książek (gamifikacja, grafika pasująca bardziej do gry niż narzędzia). Może aplikacja pójdzie w tą stronę, może nie, może nazwa się zmieni. Nie chciałem nazywać jej "SampleApp" bo to słabo brzmi. To nie ma być aplikacja z przykładami wymyślonymi na siłe pod testowanie aplikacji (typowe "sample app"), tylko rzeczywista aplikacja, która naturalnie wymaga użycia pewnych rozwiązań, ale można je stworzyć samodzielnie zamiast używania gotowców (np redis, kafka, openobserve itd).

2. kogo szukam

Myślę że każdego kto chciałby wziąć w tym udział. Jeśli ktoś dopiero się uczy i chciałby pogrzebać przy prostszej logice (tracker książek) ale z dobrymi praktykami, to będzie wartościowy, bo większa aplikacja = więcej scenariuszy użycia narzędzi = można napisać je lepiej. Jeśli ktoś chciałby pisać własne lub wspólne narzędzie architektoniczne, ale chciałby mieć projekt bazowy na którym może je testować, to też będzie wartościowy, bo taki jest docelowy sens projektu.

Główna aplikacja jest w .NET10, ale te poboczne mogą być w dowolnej technologii (najlepiej coś popularnego).
Baza to wstępnie MongoDB ale można zmienić na coś innego.

W przeciwieństwie do wielu podobnych ogłoszeń, ten projekt nie jest konkretnym projektem z jasnym planem na  przyszłość i gotową listą zadań, przy których potrzebne jest wsparcie aby przyśpieszyć postęp. To bardziej środowisko do własnego rozwoju, które oryginalnie stworzyłem dla siebie, ale fajnie byłoby rozwijać je w grupie. Plany rozwoju będą zależne od tego, jakie osoby się zgłoszą i jakie będą miały cele, jaką ilość czasu w tygodniu. Projekt żyje od miesiąca i będzie żył niezależnie od tego, czy zgłosi się 10 czy 0 osób, po prostu tempo i kierunek będą inne.

Mój poziom zaangażowania jest różny, codziennie staram się zaglądać do projektu, ale czasami w ciągu dnia spędzę 3 godziny a czasami 15 minut, zależnie ile mam czasu i energii. Mam aktywny plugin WakaTime i pokazuje mi że tygodniowo spędzam ok 7-10h w edytorach kodu. Nie chcę traktować tego projektu jako drugą pracę, bo nią nie jest, nie oczekuję też tego od kogokolwiek innego.

Jeśli ktoś jest zainteresowany, prośba o napisanie wiadomości prywatnej na forum, później przejdziemy na discorda. Nie chcę od razu dawać zaproszenia do discorda, żeby nie było na nim sztucznego tłumu. Nie mam problemu z osobami które chcą tylko obserwować projekt, ale nie chcę ludzi którzy przypadkiem kliknęli link, sami nawet nie wiedzą po co, a później przeszkadzają.

3. jaki jest cel

W ramach podsumowania:

  • Zwykła aplikacja która jest "generatorem" problemów do rozwiązania
  • Budowa własnych narzędzi które te problemy rozwiązują
    (tylko do tego co chcemy budować, żeby też nie popadać w skrajności)

Obecnie podstawowa funkcjonalność trackera (dodawanie książek z katalogu do prywatnej biblioteki + monitorowanie postępu) jest skończona, ale jest jeszcze duży potencjał na dalszą rozbudowę aplikacji, bo "podstawowa funkcjonalność" znaczy tylko tyle, że da się jej realnie używać, ale dalej wszystko jest podstawowe.

Od kilku dni zaczynam bawić się przetwarzaniem eventów + rośnie liczba sytuacji w których przydałby się zewnętrzny cache.

Mam już stworzony wstępny prototyp event streamingu w rust https://github.com/Marcin99b/gantry
I bardzo prostą implementację clienta dla .net https://github.com/Marcin99b/Gantry.NET żeby mogło korzystać z tego Storygame

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+4 głosów
0 odpowiedzi 446 wizyt
+7 głosów
2 odpowiedzi 1,671 wizyt

93,742 zapytań

142,680 odpowiedzi

323,299 komentarzy

63,328 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...