Изграждане на успешни проекти на Python
Екосистемата на софтуерните проекти с отворен код на Python е богата и разнообразна. Тя ви позволява да създавате свои собствени дизайни, стоящи на раменете на гиганти. Това означава, наред с други неща, че има набор от общностни норми и практики. Като се присъедините към тези споразумения и приложите насоките във вашия проект, можете да постигнете по-широко разпространение на вашия собствен софтуер.
Препоръчани ресурси
Тази статия съдържа насоки, които са се оказали полезни при създаването на големи и малки проекти, които имат голяма общност от потребители. Тези препоръки са разумни и рационални. Тъй като обаче резултатите могат да варират, те не трябва да се приемат като строги догми.
Първо, нека поговорим за това как разпределените процеси могат да доведат до по-силна общност с по-добра производителност в целия спектър на писане, поддръжка и поддръжка с отворен код.
Сътрудничество или сътрудничество?
На DjangoCon 2011 Дейвид Ийвс изнесе беседа, която красноречиво изрази идеята, че макар сътрудничеството и сътрудничеството да имат сходни определения, между тях има фина разлика:
„Бих казал, че в сътрудничество, за разлика от сътрудничеството, участниците в проекта трябва да решават проблемите заедно“.
По-късно Eaves посвети цял пост на това как GitHub се превърна в движеща сила за иновации в общността с отворен код - по-специално аспекта на организацията на общността. В „Как GitHub запази OpenSource“ (вижте „Ресурси“), Eves гласи:
„Вярвам, че проектите с отворен код се представят по-добре, когато на участниците се осигури нискотарифно сътрудничество и скъпото сътрудничество е сведено до минимум. Идеята на отворения код е, че от групата не се изисква обща дискусия по всеки проблем и колективна работа по решаване на проблеми, а точно обратното. ".
След това той говори за важността на разклоняването на проекти и как това намалява високите разходи за сътрудничество, като създава условия за нискотарифно сътрудничество на хора, които могат сами да придвижат проектите напред. Това разклоняване премахва необходимостта от координация - докато решенията са готови за обединяване, което позволява много по-бързо и по-динамично експериментиране.
По същия начин можете да създадете свой собствен проект със същата цел да укрепите нискотарифното сътрудничество, като същевременно сведете до минимум скъпото сътрудничество през етапите на писане, поддържане и подкрепа на проекта.
Започвайки от нулата, вие създавате нещо свежо и ново, въвеждате някаква иновация - или просто малко по-различна от съществуващата. Нищо не може да надмине ново начало и да предложи на света продукт на вашите усилия.
За разлика от поддръжката, когато пишете код, вие създавате нещо ново, вместо да правите промени или корекции на това, което съществува. Писането на код и работата по проект е не само наука, но и изкуство. Други ще видят резултата и ще преценят качеството на кода, в който името ви е отпечатано завинаги.
Майсторство
Творбата обикновено се нарича предмет на изкуството или резултат от работа, който изисква специални умения - обикновено физически обект, направен в малък брой копия. Това определение може да се приложи и към софтуера, в смисъл, че магистър по софтуерно инженерство се фокусира върху качеството, а не върху количеството.
За майстора е важно продуктът да е не само функционален, но и красив. По-специално в областта на софтуера, капитанът трябва да гарантира, че кодът е чист и естетически приятен, с отлични интерфейси за приложно програмиране (API) и с документация и тестове, които дават на потребителя усещането за качествен продукт.
Този подход е сърцераздирателен и източник на огромна радост при изграждането на софтуер с отворен код: не е нужно да спазвате срокове, да отговаряте на клиентите и да изпълнявате други външни изисквания. Управлявайте времето си и се забавлявайте създавайки красота.
Стил на писане и проверка
Вашият проект на Python трябва да се основава на (или поне да ръководи стила на проекта) подробно ръководство за стил на Python: Предложение за подобряване на Python (PEP) 8 (вж. Ресурси). Не е нужно да догматизирате PEP 8, но колкото повече се доближава работата ви до PEP 8, толкова по-лесно ще бъде за други разработчици на Python да правят чисти допълнения в стандартния стил на общността на Python.
Освен стила, концепцията за свързване (проверка) на код служи като ценен инструмент за улавяне на грешки като липсващ импорт и недефинирани променливи. В допълнение към инструментите за проверка на кода има и няколко други линтери - инструменти, които ви помагат да намерите отклонения от стандартния набор от правила, както и от правилата, които сами сте задали. Най-популярните помощни програми са: