Kod

Skąd wziąć pomysł na projekt open-source i jak go promować

Skąd wziąć pomysł na projekt open-source i jak go promować

Bezpłatny kurs: „Szybki start w Python"

Dowiedz się więcej

Vlad Shilov to nazwisko kojarzone z profesjonalizmem i wysoką jakością pracy. Vlad ugruntował swoją pozycję eksperta w swojej dziedzinie, oferując unikalne rozwiązania i podejścia. Jego doświadczenie i wiedza pozwalają mu skutecznie radzić sobie z różnorodnymi zadaniami, co czyni go cenionym specjalistą. Vlad Shilov podąża za nowoczesnymi trendami i stale aktualizuje swoje umiejętności, aby pozostać w czołówce. Dzięki temu jest w stanie oferować swoim klientom trafne i skuteczne metody osiągania sukcesu. Warto zauważyć, że współpraca z Vladem otwiera nowe możliwości i perspektywy dla biznesu.

O ekspercie

Nasz ekspert posiada dogłębną wiedzę i bogate doświadczenie w swojej dziedzinie. Regularnie prowadzi badania, uczestniczy w konferencjach i dzieli się swoją wiedzą poprzez publikacje i kursy mistrzowskie. Dzięki profesjonalnemu podejściu i zrozumieniu aktualnych trendów, ten ekspert pomaga klientom znaleźć skuteczne rozwiązania, które pomogą im osiągnąć ich cele. W swojej pracy kieruje się zasadami transparentności i zaufania, co pozwala mu budować długotrwałe relacje z klientami i partnerami. Jesteśmy dumni ze współpracy z tak wysoko wykwalifikowanym specjalistą, który dąży do ciągłego rozwoju i awansu w swojej dziedzinie.

Inżynier front-endu z Rostowa nad Donem, z doświadczeniem w tworzeniu interfejsów użytkownika. Jestem członkiem komitetu programowego konferencji HolyJS, gdzie dzielę się swoją wiedzą i doświadczeniem ze społecznością programistów. Jestem autorem popularnych bibliotek open source: react-colorful i colord, wykorzystywanych do pracy z kolorami w aplikacjach internetowych. Prowadzę również podcast Goose&Duck, poświęcony OpenSource, w którym omawiam aktualne tematy i innowacje w dziedzinie rozwoju oprogramowania.

Linki odgrywają ważną rolę w strukturze treści internetowych i SEO. Zapewniają nawigację w witrynie, łączą różne strony i poprawiają komfort użytkowania. Linki wewnętrzne pomagają wyszukiwarkom indeksować treści, a linki zewnętrzne zwiększają autorytet witryny. Prawidłowe wykorzystanie tekstów kotwic i strategii budowania linków może znacząco poprawić widoczność witryny w wyszukiwarkach. Optymalizacja linków, zarówno pod względem ilości, jak i jakości, jest kluczowym aspektem skutecznej strategii SEO.

W świecie nowoczesnych technologii internetowych zamknięte frameworki i biblioteki praktycznie nie istnieją. Potwierdza to dominację oprogramowania open source w tej dziedzinie. Stworzyłem również i nadal utrzymuję dwa popularne projekty open source: react-colorful i colord. Projekty te demonstrują możliwości i korzyści płynące z oprogramowania open source, rozwijając rozwój stron internetowych i umożliwiając programistom na całym świecie korzystanie z niego i jego ulepszanie.

react-colorful

Zrzut ekranu: strona internetowa react-colorful

React-colorful to lekki komponent selektora kolorów przeznaczony do użytku w aplikacjach React i Preact. Z rozmiarem zaledwie 2,5 KB, zyskał popularność wśród programistów. Projekt ten powstał z potrzeby rozwiązania konkretnego problemu, co często ma miejsce w przypadku rozwiązań open source. Gdy programista napotyka na brak wysokiej jakości narzędzia do rozwiązania konkretnego problemu, tworzy własne rozwiązanie i dzieli się nim ze społecznością na otwartej licencji. React-colorful to idealne rozwiązanie dla osób poszukujących funkcjonalnego i kompaktowego narzędzia do pracy z kolorami w aplikacjach internetowych.

Kiedy resume.io musiało dać użytkownikom możliwość zmiany schematów kolorów w CV, stanęliśmy przed problemem wyboru odpowiedniego selektora kolorów. Pomimo popularności react-color z dwoma milionami pobrań tygodniowo, nie spełniał on współczesnych wymagań dotyczących komponentów interfejsu użytkownika. Pakiet okazał się zbyt ciężki, powodował spowolnienia, nie działał poprawnie na urządzeniach mobilnych i nie spełniał standardów dostępności. Co więcej, wymagało instalacji kilkunastu dodatkowych pakietów, co było dla mnie zaskoczeniem po zintegrowaniu go z projektem.

Frustrując istniejące rozwiązania, postanowiłem stworzyć bibliotekę react-colorful. Kod został napisany w zaledwie kilka dni, ale promocja była prawdziwym wyzwaniem. W projektach open source jest to prawdopodobnie najtrudniejsze zadanie. Poświęciłem kilka miesięcy na rozsławienie pakietu, a programiści zaczęli aktywnie go wykorzystywać w swoich projektach. Zrekrutowałem współpracowników i wspólnie stworzyliśmy liczne publikacje na temat react-colorful: pisaliśmy artykuły, publikowaliśmy na Reddicie i dev.to, a także kontaktowaliśmy się z administratorami odpowiednich kanałów Telegramu, prosząc ich o rozpowszechnienie informacji o naszej bibliotece. Te działania znacząco pomogły zwiększyć widoczność i popularność react-colorful wśród programistów.

Promując mój pakiet, poświęciłem również czas na jego wyszukiwanie i prezentowanie potencjalnym klientom. Znalazłem projekty korzystające z biblioteki react-colorful i pokazałem ich autorom statystyki, wyjaśniając zalety color-pickera, który był lżejszy, szybszy i bardziej funkcjonalny. Jeśli deweloperzy wyrazili zainteresowanie pomysłem i zgodzili się na migrację, zastępowałem react-color moim pakietem react-colorful w ich bazie kodu. W ten sposób mój pakiet był pobierany po raz pierwszy i zaczynał zdobywać zaufanie deweloperów.

Praca nad projektem była trudna i wymagała znacznego wysiłku. Jednak zainwestowany czas i zasoby były tego warte: projekt pozytywnie wpłynął na moją reputację. W ciągu ostatniego roku otrzymałem zaproszenia do udziału w kilku znanych podcastach, zostałem zaproszony do prowadzenia konta jsunderhood collective na Twitterze i dołączyłem do komitetu programowego HolyJS. Ta historia okazała się bardzo pouczająca, co zainspirowało mnie do napisania wystąpienia pt. „Nie wybieraj zależności w ciemno, korzystaj z oprogramowania open source”. Podzieliłem się w nim moim doświadczeniem z uruchomienia mojego selektora kolorów i wyjaśniłem, dlaczego popularne projekty open source nie zawsze są wysokiej jakości.

Rozwój react-colorful był w dużej mierze wykonywany samodzielnie, ale aktywnie konsultowałem się z kolegami. Podczas pracy nad projektami open source posiadanie partnera w tej dziedzinie może być bardzo przydatne. Miałem takiego kolegę i często zwracałem się do niego o poradę w różnych kwestiach, w tym w organizacji i dokumentacji API. Miało to znaczący wpływ na jakość projektu, ponieważ praca w izolacji i podejmowanie decyzji bez zewnętrznego wsparcia może być trudne.

Dzięki naszym aktywnym działaniom informacyjnym przyciągnęliśmy wiele osób, a dołączyły do ​​nas osoby o podobnych poglądach, zainteresowane filozofią naszego projektu. To znacznie wzbogaciło jego rozwój. Na przykład, mamy stałego współpracownika – studenta z USA – który całkowicie przepisał kod w TypeScript. Ta duża zmiana znacząco zwiększyła stabilność naszego komponentu i poprawiła jego wydajność. Nadal dążymy do ulepszeń i jesteśmy otwarci na nowe pomysły i sugestie.

colord

Zrzut ekranu: strona internetowa colord

Podczas tworzenia react-colorful, Przyjrzałem się bliżej różnym przestrzeniom barw i metodom konwersji między nimi, a także teorii kolorów w ogóle. W pewnym momencie wpadłem na pomysł: mógłbym stworzyć nie tylko próbnik kolorów, ale także bibliotekę, która umożliwiłaby niskopoziomową pracę z kolorami, w tym ich konwersję i manipulację. Byłoby to przydatne narzędzie dla programistów, którzy chcą efektywnie zarządzać kolorami w swoich projektach.

Przeanalizowałem popularne biblioteki kolorów i TinyColor i doszedłem do wniosku, że nie spełniają one współczesnych wymagań. Są redundantne, mają słabą wydajność i ograniczoną funkcjonalność. W rezultacie opracowałem nową bibliotekę colord, która jest trzy razy szybsza i lżejsza od swoich poprzedników. Zastosowałem również sprawdzone metody jej rozwoju i promocji.

Obecnie biblioteki colord i react-colorful osiągają prawie 4 miliony pobrań tygodniowo, co jest znaczącym wskaźnikiem popularności. Narzędzia te są wykorzystywane w takich znanych projektach jak Storybook, Grafana, WordPress i cssnano. Dlatego z dumą mogę uważać się za odnoszącego sukcesy programistę w świecie oprogramowania open source.

Pomoc jest zawsze mile widziana, ponieważ nie da się być mistrzem we wszystkich dziedzinach. colord ma utalentowanego młodego współpracownika, który wnosi znaczący wkład, proponując interesujące funkcje. Nie mam czasu ani umiejętności, aby wdrożyć wiele z nich.

Jako jedyny opiekun projektu open source, często znajdujesz się w sytuacji izolacji. Na przykład, mogłeś opracować zestaw funkcji niezbędnych do swojej pracy, spełniając w ten sposób swoje wymagania. Jednak inni użytkownicy mogą mieć zupełnie inne potrzeby i zadania, z którymi się nie spotkałeś. W rezultacie mogą sugerować pomysły i rozwiązania, których nawet nie brałeś pod uwagę. To podkreśla wagę angażowania się w społeczność i otwartości na nowe sugestie, które mogą znacząco ulepszyć Twój projekt i rozszerzyć jego funkcjonalność.

Wraz ze wzrostem liczby współautorów, radzenie sobie z dużym napływem nowych funkcji może stać się wyzwaniem. Jednak jak dotąd nie spotkałem się z żadnym pomysłem, który nie wzbudziłby zainteresowania. W większości przypadków współautorzy wnoszą naprawdę cenne sugestie.

To wspaniale, że programiści aktywnie zgłaszają prośby o dodanie funkcji i pytają o ich wykonalność dla produktu. W projektach takich jak react-colorful i colord często słyszymy sugestie w stylu: „Nauczyłem się nowej metody wykrywania różnic w kolorach. Zaimplementujmy ją”. Zawsze odpowiadam wprost: „Tak, zaimplementujmy”. Pomysłodawca implementuje pomysł, tworzy pull request, my sprawdzamy kod i proces kończy się sukcesem. Pozwala nam to nie tylko na ulepszenie funkcjonalności, ale także na zaangażowanie społeczności w rozwój, co czyni projekt bardziej dynamicznym i istotnym.

Dlaczego warto wspierać oprogramowanie open source

Każde działanie, niezależnie od tego, czy jest to programista, czy przedstawiciel innej profesji, nieuchronnie prowadzi do określonego rezultatu. Ten rezultat stwarza nowe możliwości dalszych działań, tworząc w ten sposób prawdziwą reakcję łańcuchową. Każda decyzja lub krok otwiera drzwi do nowych perspektyw, co podkreśla wagę świadomego podejścia do działań w każdej dziedzinie działalności.

Praca z projektami open source zyskuje szacunek pracodawców. Stworzenie nowego projektu open source od podstaw pozwala zbudować imponujące portfolio. Jeśli jesteś początkującym i Twoje portfolio jest obecnie puste, możesz podkreślić swoje zaangażowanie w popularny projekt open source, w którym pomogłeś ulepszyć dokumentację i naprawić kilka błędów. Będzie to również znaczącym atutem podczas poszukiwania pracy. Udział w projektach open source to ważny aspekt, który pozytywnie wpływa na Twoją reputację zawodową i zwiększa Twoje szanse na zatrudnienie.

Udział w projektach Open Source to świetny sposób na doskonalenie umiejętności i rozwój zawodowy. Niezależnie od tego, czy wybierasz nowy, czy istniejący projekt, udział w takich inicjatywach wzbogaca Twoje doświadczenie. Zaleca się wybór tematów, które Cię interesują i nie są objęte Twoją obecną pracą. Na przykład, jeśli Twoja praca polega na tworzeniu landing page'y, ale chcesz nauczyć się szyfrowania, możesz rozpocząć własny projekt szyfrowania danych lub dołączyć do istniejącego. Pozwoli Ci to poznać nowe technologie i podejścia. Osobiście znacznie poprawiłem swoje umiejętności w zakresie rozpoznawania kolorów, mimo że nie wykorzystuję tej wiedzy w mojej głównej pracy. Open Source oferuje wyjątkowe możliwości rozwoju zawodowego i poszerza zakres umiejętności.

Branding osobisty i jego rozwój. Udział w projekcie Open Source znacząco wpływa na Twoją popularność i rozwój Twojej marki osobistej. W moim przypadku to się sprawdziło: dzięki aktywnemu udziałowi w Open Source pozyskałem tysiąc subskrybentów, dzieląc się informacjami o moim projekcie. Oprogramowanie open source nie tylko rozwija umiejętności programistów, ale także pomaga budować reputację w środowisku zawodowym, co z kolei przyczynia się do rozwoju marki osobistej.

Networking jest ważnym aspektem aktywności zawodowej. Uczestnicząc w projektach open source, masz możliwość poznania nowych, interesujących osób i poszerzenia sieci kontaktów. W ramach istniejących projektów komunikacja z innymi uczestnikami pozwala na wspólne rozwiązywanie pojawiających się problemów i dzielenie się doświadczeniami. Te powiązania mogą okazać się przydatne w przyszłości, dając możliwość otrzymywania zaproszeń na konferencje lub udziału w ekscytujących projektach. Nawiązywanie silnych relacji w środowisku zawodowym sprzyja rozwojowi kariery i otwiera nowe horyzonty współpracy.

Jak dołączyć do projektu

Nie należy obawiać się udziału w dużych projektach open source. Ważne jest, aby zdawać sobie sprawę, że osoby utrzymujące oprogramowanie są często przeciążone pracą, zwłaszcza jeśli ich projekt cieszy się popularnością. Gromadzą dziesiątki, a czasem setki różnych zadań (problemów) wymagających uwagi. Opiekunowie nieustannie pracują nad rozwojem nowych funkcji i aktualizacją dokumentacji. Jeśli skupiają się na wprowadzaniu nowych funkcjonalności, mogą nie mieć czasu na naprawianie drobnych błędów lub tłumaczenie dokumentacji na inne języki. Właśnie dlatego pomoc ze strony nowicjuszy jest tak cenna. Możesz na przykład przejrzeć istniejące zgłoszenia i wybrać te, które odpowiadają Twojemu poziomowi wiedzy. Warto również zwrócić uwagę na zgłoszenia oznaczone jako „good-first-issue”; ich zamknięcie będzie doskonałą okazją do rozwoju w społeczności open source. Udział w takich projektach nie tylko pomoże Ci rozwinąć umiejętności, ale także pozwoli Ci przyczynić się do rozwoju użytecznych narzędzi i technologii.

Jeśli planujesz ulepszyć projekt, zacznij od utworzenia małego zgłoszenia, aby omówić swój pomysł. Jeśli opiekun projektu zatwierdzi Twoją propozycję, możesz śmiało rozpocząć pracę nad nim. W przeciwnym razie ryzykujesz stratą czasu na opracowanie funkcji, która nie zostanie uwzględniona w finalnej wersji. W rezultacie możesz spędzić dwa tygodnie na pisaniu kodu, który zdaniem osoby odpowiedzialnej za utrzymanie projektu nie jest zgodny z jego filozofią.

Dołączając do istniejącego projektu, będziesz musiał poświęcić sporo czasu na naukę jego struktury. Obejmuje to przegląd kodu i zapoznanie się z dokumentacją. Jednak ten proces dostarcza bezcennego doświadczenia. Będziesz mógł poznać i wdrożyć najlepsze praktyki oraz narzędzia stosowane przez doświadczonych programistów. To nie tylko pogłębi Twoją wiedzę, ale także poprawi Twoje umiejętności w zakresie tworzenia oprogramowania.