it-swarm-eu.dev

Jak najdu dobrý projekt s otevřeným zdrojovým kódem, který se mohu připojit?

Právě jsem začal pracovat před rokem a chci se připojit k open source projektu ze stejných důvodů jako kdokoli jiný: pomozte vytvořit něco užitečného a dále rozvíjet své dovednosti.

Můj problém je, že nevím, jak najít projekt, do kterého se vejdu.

Jak najdu projekt vhodný pro začátečníky? Jaké atributy bych měl hledat? Jaké jsou varovné signály, že by projekt nebyl vhodný? Existují nějaké nástroje, které pomáhají lidem spojit se s open source projekty?

Existuje podobná otázka zde , ale tato otázka se týká zaměstnání a je omezena na PHP/Drupal.

152
Pops

Můj první příspěvek s otevřeným zdrojovým kódem byl pro knihovnu, kterou jsem předtím použil (a bez které bych velmi trpěl) na předchozím placeném projektu. Během svého prvního použití jsem v kódu našel chybu, takže jsem vytvořil záplatu, připojil se k projektu a odešel ji ke kontrole.

Asi o 8 měsíců později, když jsem měl nějaký volný čas, jsem se rozhodl, že se vrátím (a pracuji na svých rozvojových schopnostech) tím, že do projektu více přispímu. Klonoval jsem tedy repozitář a začal jsem se seznamovat s kódovou základnou. Po několika týdnech odeslání drobných oprav záplat do kódové základny a sledování požadavků na funkce jsem zvedl požadavek na funkci a přidal do projektu docela podstatný modul.

Protože generování mnoha individuálních oprav patchů je docela únavné pro jakýkoli významný vývoj, naklonil jsem repozitář do větve na Git hubu a začal děrovat kód. O několik týdnů a několik tisíc řádků kódu později jsme vedoucí projektu a já pracovali integrací a testováním svých oprav do knihovny způsobem, který konzistentně pracoval se zbytkem kódové základny.

Byl to neocenitelný proces, ze kterého jsem se hodně naučil:

  • Když jsem začal, nevěděl jsem, jak používat Git, nakonec jsem dokázal efektivně vytvořit vzdálené sledovací větve a sloučit je nebo znovu proměnit do hlavní větve bez přetržení potu.
  • Začal jsem ve VS 2008 a skončil jsem přechodem na Linux a Monodevelop, abych pracoval na psaní kódu (protože VS je retardovaný unicode a zakončení linií je taková bolest v gitu). Ukázalo se, že v * nix toho není moc, co můžete dělat v * dows.
  • Nikdy předtím jsem žádné testování jednotky nikdy neprovedl, Nunit je kousek koláče a psaní testů jednotek je docela elementární.
  • Musel jsem se naučit polykat jazyk a poslouchat i cvičit trpělivost. Nemá smysl stát pevně na vaší pozici v projektu s otevřeným zdrojovým kódem, protože všichni zúčastnění jsou dobře informováni (pravděpodobně více než vy) a jsou schopni přijmout/odmítnout vaše myšlenky založené na nedodání látky. Je to nesmírně pokořující a zároveň odměňující.
  • Jen když měl jeden jiný zkušený vývojář oči na velké základně mého kódu poukazoval na nedostatky v mém stylu, které jsem nikdy předtím neuvažoval (stejně jako jsem poukazoval na nedostatky v jeho kódu). Pro mě jsem se dozvěděl, že je jednodušší/lepší definovat konstanty, než použít spoustu magických čísel s podrobným komentováním.

Tento konkrétní projekt byl založen na generování a dekódování síťových paketů na všech úrovních síťových protokolů. Mám osobní zájem o vytváření sítí na nižší úrovni, takže bylo skvělé vést diskuse s jiným vývojářem se sdíleným zájmem a znalostmi v doméně.

Pokud si jen chcete namočit nohy: najděte projekt, který již používáte; klonování úložiště; a začněte se dívat, zda můžete opravit nějaké chyby nebo přidat nějaké testy jednotek. Zdá se zastrašující dívat se na něčí kódovou základnu s čerstvýma očima, ale je to nesmírně cenná dovednost se učit. Vložte nějaké opravy. Můžete očekávat, že váš kód bude nejprve pečlivě zkontrolován. Nedělejte si s tím starosti, je to normální součást procesu získání důvěry administrátorů projektu.

Po vytvoření základny pro zásluhy s projekty administrátoři začnou hledat více odpovědností, jako je navrhování nových funkcí nebo žádost o přiřazení k implementaci požadavků na funkce.

Pokud nemůžete najít již existující projekt v jedné z hlavních sítí open source repozitářů (github, sourceforge, google code), pomyslete na aplikaci, kterou byste opravdu chtěli použít, která dosud neexistuje, a založte si vlastní.

Buďte připraveni na pokoření a očekávejte, že bude práce odmítnuta ve prospěch dalších revizí. Mýtus, že kdokoli může přidat kód do projektu s otevřeným zdrojovým kódem, je zcela nepravdivý. Mezi vámi a přístupem Push je vždy strážce. Čím lepší je váš kód, tím méně bude z dlouhodobého hlediska podroben kontrole, protože získáte důvěru administrátorů projektu. Pokud je to váš projekt, budete tím vrátným.

Aktualizace:

Jen jsem o tom přemýšlel a uvědomil jsem si, že jsem se neobtěžoval zmínit o tom, na který projekt se odkazuje mnoho odkazů. Pro ty, kteří to chtějí vědět, je to SharpPcap . Hlavní vývojář Chris Morgan je velmi profesionální a věcný. Dělá sakra práci na řízení projektu a naučil mě hodně o tom, co je potřeba k dokončení projektu OSS.

Kvůli osobním časovým omezením jsem nemohl přispět kódem přes rok, ale stále se snažím dát zpět tím, že se skrývám na Stack Overflow a odpovídám na otázky o SharpPcap příležitostně.

111
Evan Plaice

Tady, co doporučuji, abyste našli perfektní zápas:

  1. Pokud již máte otevřený projekt, který již používáte, znáte a staráte se o něj, měl by to být váš první kandidát, který to zkusí. Jinak přemýšlejte o tom, co byste chtěli obecně dělat a hledat projekt v této oblasti.

  2. Pokud jste našli potenciální projekt, nevtáčejte do něj. Zkuste to použít sami. Je to tak dobré, jak se zdálo z popisu a recenzí? Pokud ne, nejedná se o úplnou zátku; možná je to pro vás příležitost skočit a skutečně změnit. K dokonalému produktu přece nikdo nepotřebuje jiného vývojáře. Poskytne vám však důležitý přehled o tom, zda chcete být součástí tohoto projektu, zatímco získáte zkušenosti z první ruky s novými technologiemi v oblasti, která vás zajímá.

  3. Než začnete investovat příliš mnoho času do projektu a učit se jeho vstupy a výstupy, zvažte uvázání v e-mailových konferencích, fórech, dokonce i systému sledování chyb na několik týdnů. Pokud do projektu začnete pravidelně přispívat, strávíte tam hodně času.

Přijďte na to: Baví vás to tam viset, nebo je to pro vás tah? Je to pocit, že tento projekt má dobrou a energetickou komunitu nebo pomalu umírá? Zdá se, že tamní lidé povzbuzují a instruují nováčky, nebo budete sami?

Udělejte tyto kroky u několika projektů, potenciálně v různých oblastech, a je méně pravděpodobné, že se setkáte se zklamáním, ke kterému dojde, když se připojíte ke špatnému týmu. Taková zkušenost vás může potenciálně odradit od dalšího opakování.

Několik dalších myšlenek:

Pokud je projekt, o který se opravdu zajímáte, vysoce profilním projektem se spoustou vývojářů a aktivit v jeho okolí, pravděpodobně budete mít těžko vytvořenou dostatečnou pověst, abyste získali, řekněme, zavázali práva nebo zajímavou roli v komunitě. V tomto případě zvažte připojení k souvisejícímu vedlejšímu projektu s nižší viditelností. Například místo toho, abyste se pokusili začít přispívat do jQuery, zkuste najít jQuery plugin, který se vám hodí. Později můžete zvážit „pohyb nahoru“.

Pokud se vám projekt líbí, ale cítíte se zastrašeni jeho velikostí, složitostí nebo požadavky na kvalitu kódu, zvažte zahájení podpůrných rolí, jako je testování, údržba dokumentace nebo ověření hlášení o chybě. Pokud se v e-mailovém seznamu projektu zeptáte, jakou pomoc v tuto chvíli nejvíce potřebují, rádi vás tam povedou. :)

Tímto způsobem se dozvíte projekt a vybudujete si tam svoji pověst a přispějete k tomu mnohem více, než kdybyste začali předkládat podstandardní záplaty, které by byly několikrát odmítnuty, dokud nebudou připraveny.

Poslední a nejdůležitější: Pokud se spálíte na jednom místě, pokračujte; nevzdávejte se.

Doufám, že to pomůže.

28
kdubinets

Důrazně doporučujeme, abyste našli projekt s otevřeným zdrojovým kódem, který má vaše upřímné zájem a aktivně použijte.

Důvod je jednoduchý: to dělá rozdíl mezi fuškou a koníčkem.

Podívejte se na svůj počítač. Jaký software jste do něj vložili, což je Open Source? Hádejte, že bude Chrome nebo Firefox, nebo možná Open Office nebo klient Instant Messenger. Jsou perfektní nebo existuje jen nepatrná věc, kterou byste chtěli změnit, pokud byste mohli?

Pokud ano, je nyní čas něco udělat.

9
user1249

Navrhoval bych najít (nebo zahájit) projekt, stejně jako lidé dělali roky, začít používat Open Source software k tomu, aby dělal věci. To se vám může zdát triviální, možná i přes zjednodušené. Přesto je opravdu těžké popsat spokojenost s používáním něčeho, najít chybu, popadnout zdroj a opravit ho. Nebo to možná změňte tak, aby fungovalo tak, jak chcete.

Také se nejen hackujte kvůli zapojení. 95% mých záplat do linuxového jádra nikdy neuvidí denní světlo, vím pro jistotu , že by je nikdo nechtěl kromě mě a já ' Pravděpodobně bude donucen podstoupit psychiatrické hodnocení, pokud je někdo jiný kompetentní jaderný hacker někdy viděl. Ale stále si užívám implementaci piglatin_printk(), která začala jako gag 1. dubna před několika lety :)

I když ano, dostat svůj kód a svůj myšlenkový proces před mnoho dalších kompetentních lidí je na nezaplacení, stejně tak se učí, jak komunikovat a spolupracovat. Samostatný projekt je skvělý způsob, jak vám ukázat, co dělat. Tip: Je toho víc než jen použití softwaru pro správu verzí, seznamů adres a sledovače chyb.

Chcete-li začít, doporučuji nejprve kopat Ohloh a najít software, který by vás mohl zajímat pomocí , nejprve. Stáhněte si ji, vytvořte ji, hrajte si s ní. Pak jdi chytit něco jiného. Nakonec budete chtít něco vylepšit, nebo si uvědomíte, že máte nutnost implementovat něco úplně jiného, ​​než co jste našli.

Další věc, která pomáhá, je pracovat pro otevřenou přátelskou společnost. Moje společnost používá Xen rozsáhle, takže nemají problém se mnou najít zajímavé chyby a opravit je, protože bychom to stejně museli udělat. Nevadí jim ani zaměstnanci, kteří se podílejí na věcech, jako jsou RFC a návrh specifikace, protože nakonec použijeme výsledek.

8
Tim Post

OpenHatch byl vytvořen speciálně pro toto.

Citovat:

OpenHatch je nezisková organizace zaměřená na porovnávání potenciálních přispěvatelů svobodného softwaru s komunitami, nástroji a vzděláváním.

Můžete procházet projekty podle typu, technologie, požadované úrovně dovednosti atd. A najít, co odpovídá vaší úrovni.

7
phw

Jednou věcí, kterou jsem si opakovaně všiml, pokud jde o lidi, kteří chtějí začít s vývojem open source, je to, že jsou ohromeni naprostou složitostí a velikostí velkých projektů. Tentýž problém jsem čelil před několika lety a podle mých zkušeností je nejlepší se hned podívat na větší projekty.

Poté, co jsem strávil občas pohledem na projekty, které by se mi mohly líbit, jsem si uvědomil, že jsou stále mimo můj dosah, a pak jsem začal sám pracovat na velmi malých projektech. Chtěl bych poukázat na to, abych kód uvolnil na Githubu, bez ohledu na to, zda je skutečně relevantní nebo zda jej začnou používat jiní lidé. Nakonec se lidé mohou začít zajímat o to, co děláte. I v opačném případě získáte důvěru a technické schopnosti pomalu přecházet na větší a populárnější projekty.

4
Checksum

Když jsem začal, hledal jsem online možnosti a ukázalo se, že je náročné najít něco, do čeho byste mohli jako začátečník potopit zuby.

K některým projektům je obtížné přispět nikoli proto, že jsou příliš pokročilé, ale proto, že komunita nepřijímá. Takže, nenechte se odradit, když narazíte na zeď.

Během hledání jsem se rozhodl sestavit seznam 10 open source projektů, které začátečníci mohou začít podporovat bez stresujících procesů. Zde je odkaz k použití:

Deset projektů pro začátečníky na podporu a poučení z

Doufám, že vám to připadá užitečné a vždy, když najdete ty skvělé, můžete přidat další!

3
Eenvincible

Doporučuji přečíst: http://open-advice.org/ .

Zaměřuje se na pomoc těm, kdo vytvářejí a udržují komunity, a těm, kteří si nejsou jistí, ke které z nich se chtějí připojit nebo jak to udělat.

Pokud tak neučiníte, najděte projekt, který má poslání, které rezonuje s vámi, nebo rozvětvte a přispějte k projektu, který je pro vás již užitečný.

Hodně štěstí.

3
user549213

Tam je nový web specificky pro toto nazvaný kód 52 , který povzbuzuje nové vývojáře, aby se zapojili do open source tím, že každý týden zahajují nový projekt OSS.

Myšlenka je taková, že se bude zdát mnohem méně skličující pro lidi, kteří nikdy nebyli zapojeni do open source, a doufejme, že se bude cítit více nakloněni zapojit se do dalších projektů OSS.

3
Marcus Swope

Navrhuji zahájit vlastní projekt na téma, které vás zajímá.

Mnoho se dá naučit prací na projektu obecně. Není třeba vidět, jak někdo jiný kódy se naučit, jak lépe kódovat. A někdy uvidíte, co nedělat, protože ostatní lidé často nemají více zkušeností než vy.

Obvykle to pomáhá vidět kód jiného, ​​ale s kódem jiných lidí se setkáte ve svém vlastním projektu jen prostřednictvím knihoven a součástí, které používáte.

Zkušenost vás naučí, co je dobrá a špatná praxe.

2
Brian R. Bondy

Jsem vlastníkem projektu v google code a hledám přispěvatele. (Přesto ne zneužiji tuto odpověď pro reklamu.) Proto může být můj názor pro vás zajímavý.

Nejprve musíte zjistit, o co vás zajímá vy '. Poté si v některých oblastech vytvořte odbornost, která souvisí s vašimi zájmy. Pak najděte projekt, ve kterém je požadována a potřebná vaše odbornost.

Čím je projekt menší, tím méně přispěvatelů již existuje, tím větší je šance, že budou přispěvatelé vyhledáni, a můžete přímo kontaktovat autory/vlastníky projektu. Řekněte jim a) jaká je vaše odbornost b) kde vidíte, že by mohla být použita v projektu c) co si myslíte, že můžete dosáhnout.

Nezapomeňte: pouze znalost jednoho nebo dvou tradičních programovacích jazyků je ne odbornost.

2
Ingo