منذ وقت طويل ، في عام 2014 ، قدمت أداة صغيرة لنفسي لرفع تردد التشغيل عن طرق عرض C # إلى رمز TypeScript. لقد أنقذتني الكثير من الوقت والأعصاب. وهكذا ، في سبتمبر 2015 ، قررت أن أضع "تجاربي على الركبة" في شكل من أشكال الهضم وسكبها على جيثب. هكذا بدأت مشاركتي الهواة في تطوير البرمجيات مفتوحة المصدر. مر الوقت. وهكذا ، بالأمس في مستودع مع هذا المشروع ، وأخيرا ، ذكرى سنوية ، ظهرت ثلاثمائة التزام. فيما يتعلق بهذا الحدث الهام ، أود أن أشارك تجربتي الهادئة حول ما يجب عليك مواجهته إذا فكرت فجأة في تطوير شيء ما "لصالح تنمية الصناعة". سأقوم بتوضيح بعض الأرقام ، وسرد بعض القصص الرائعة ، وأشارك أيضًا انطباعاتي حول كيفية كتابة ودعم مشروع مفتوح المصدر دون الامهات والآباء والقروض دعم الشركة والدفع و ... ووقت الفراغ. تعال تحت القط ، شغل مقعد ، نبدأ.
"افعل ما هو جيد"
بادئ ذي بدء ، هناك أكثر من 90 مليون مستودعات على جيثب. بعضها معروف ، والبعض الآخر ليس غاية ، وبعضها خاص بشكل عام. نظرًا لشعبية الجماهير ، بدأ الطلاب يستخدمون جيثب للقيام بالمهام والمدرسين للمحاضرات ومؤلفي الكتب التعليمية ، وحتى المتحمسين للتشريع . فقط تخيل ما هاوية سخيف من التعليمات البرمجية والمشاريع هذا! ومع ذلك ، فقد وضعت زجاجة من الكونياك إذا تم إرفاق الصحفي بك الآن وطلب منك تسمية مستودعات شهيرة ، فستتصل بك على الفور ... في مكان ما بين 15-30. ماذا يعني هذا؟ هذا يعني أن جيثب هو عالم ضخم من منتجات البرمجيات ، ومعظمها ، وأنا متأكد ، معروف فقط لمؤلفيها. وربما 5-10 لأصدقائهم.
من الصعب جدًا أن أصبح المرء أكثر أو أقل وضوحًا في هذا الحشد.
حتى لو قمت بسرقة بيانات البطاقات المصرفية لجميع المستخدمين في العالم ونشرها على GitHub ، فأنا متأكد من ذلك سيتم حظرك ومحاكمتك لا أحد سوف تلاحظ ذلك . لماذا أقول مثل هذه الأشياء الواضحة ، تسأل؟ وهنا ... اللعنة ليست واضحة! خاصة بالنسبة لمؤلف هذه الخطوط :) خاصة منذ 3 سنوات. ثم اعتقدت بسذاجة أنه يكفي القيام بشيء مفيد حقًا ، والإشارة إلى العلامات ، وكتابة README وسيجد الناس كل شيء بأنفسهم ، ويقومون بتنزيل كل شيء بأنفسهم. حسنًا ، على محمل الجد ، نظرًا لأن نوعًا من اللوحة اليسرى ، يتكون أساسًا من 47 سطرًا من الشفرة سجل ألف نجمة ، إذن فإن لغتي هي شيء يسهل بشكل موضوعي التنمية - حسنًا ، سيتم كتابة 300 ، صحيح؟
ط ط ط ... لا. لسوء الحظ ، هذا لا يعمل. تم إنشاء اللوحة اليسرى في عام 2014 وكانت معروفة للجميع حتى أحداث 2016 الشهيرة . إذا نظرت إلى الرسم البياني لتوزيع النجوم ، يمكننا أن نرى الارتفاع عند حوالي 90 درجة فقط في ذلك الوقت المؤسف للغاية. من الواضح أن هناك العديد من الاستنتاجات المحزنة من هذه القصة الرائعة:
بدون التسويق المناسب ، فإن فكرتك الأفضل في العالم سوف تمر دون أن يلاحظها أحد.
الأسود العلاقات العامة هو أيضا العلاقات العامة.
ليس دائما عدد مجنون من النجوم يوحي بأن المشروع جيد.
ولكن ليس كل شيء سيء للغاية. إذا كنت مستعدًا بالفعل للاكتئاب حيال ذلك ، فإن نصيحتي هي أن تضع جانباً مناديلك والوسادة المنهكة.
من الأفضل القيام بشيء مفيد. بادئ ذي بدء - مفيد لنفسك.
تقدير بدون منتج البرنامج الذي حياتك ليست متعة. أنت هنا تقرأ هذا المنشور شخصيًا. ما التطبيق والإطار والخدمة الجحيم هل انت مفقود في عملك أو في حياتك اليومية. هل حظيت بها؟ عظيم المطرقة في جوجل ، وإذا كان من إصدار بناء على طلبك فإنه ضربات حزن وضوحا - المضي قدما! بدء مستودع ، افتح IDE والكتابة. اكتب ما كنت تحلم به ، وجمعه واطرحه. الجواب بسيط - إذا كان مشروعك يفيدك على وجه التحديد ، فعندئذ في العالم بأسره ، على الأرجح ، سيكون هناك ألف أو شخصان سيساعدون هذا أيضًا وسيكونون ممتنين لك. أنا متأكد من أنه لأول مرة سيكون لديك أكثر من جمهور كهذا. ثم يعود الأمر إلى الشيء الصغير - نقل إنجازاتهم إلى كل هؤلاء الأشخاص الرائعين وليس لطول الطريق.
العلاقات العامة دون السراويل
سمعت أن بعض الشركات لديها هذه الممارسة. إذا ذكر المرشح في المقابلة مشروعه المفتوح المصدر ، فستبدأ الفقرة التالية في صلبه حول موضوع "كم عدد النجوم؟" ، "كم عدد التنزيلات؟" ، "كم عدد المشاريع الحية المستخدمة؟". لذا ، أعلن مسؤوليتك: يجب عليك إرسال هؤلاء المستجوبين بحركة لغوية سريعة وحاسمة ، والاستيقاظ وترك المقابلة ، ونسيان اسم هذه الشركة إلى الأبد وإخبار أصدقائك بها. إذا كان المدير (أو من أجرى مقابلة معك هناك) يطرح مثل هذا السؤال ، ثم بقرب من الاحتمال المطلق ، لم يواجه أي مشكلة في تطوير البرمجيات المجانية ، لم يسمع مطلقًا بالتسويق ، وبصفة عامة فإنه لا يولي أهمية كبيرة للأصوات التي يصدرها . العمل مع هذا لن ينجح.
إنه لأمر محزن ، ولكن على ما يبدو حقيقة: وفقًا لملاحظاتي ، وراء المشاريع الشعبية والكبيرة الحجم ، تقف الشركات على نحو ما.
على سبيل المثال ، في شكل تمويل تنموي مباشر: إذا تم تنفيذ المشروع خلال ساعات العمل ، فسيتم دفعه بحكم الواقع. نعم ، نعم ، حتى لو كان لديك "يوم الجمعة للمشاريع" - ماذا ، هل تعتقد أنه ليس في الميزانية؟ أو في شكل دعم المعلومات (المقالات والمؤتمرات ومقاطع الفيديو). حسنًا ، أو في شكل دعم من قِبل "فريق عمل" ، وهو عبارة عن "فازيا" ، ساعد مساعدة أوليغ على تقديم ميزة في مشروعه. ناهيك عن الحالات الصريحة للغاية لتمويل تطوير المصادر المفتوحة مثل EntityFramework أو .NET Core ، عندما يكون هناك أقسام كاملة تشارك في مثل هذه المشاريع. أو مرة واحدة (هنا يمكن لمنظري المؤامرة أن يسألوا السؤال "من المستفيد من هذا" ، لكننا سنصل إلى ذلك).
زودتني الشركة بالموارد ، باستثناء الاختبار المجاني للتطورات التي أجريتها على الأشخاص الأحياء. لا ، أنا لا أشكو - أنا شخصياً أصرت على ذلك ، بحيث تظل جميع الحقوق والتحكم في التطوير معي. وبالنسبة للشركة التي تربطني بها علاقة المقاول منذ 4 سنوات ، فإن تكنولوجيا المعلومات ليست من الأعمال الأساسية. من غير الملائم صرف انتباه الناس بطريقة أو بأخرى. بشكل عام ، كان بيت القصيد على النحو التالي: الشركة متعاطفة ، وتدعم معنويا وتوفر نظامها لفحص وتشغيل المشروع على المستخدمين المباشرين. في المقابل ، فإنه يحصل على حق الأولوية لدعم وإصلاح الأخطاء ، وكذلك المشاورات والتنفيذ وتدريب الموظفين. Bozhechki ، أقول كلمات أحد كبار الإداريين ، رغم أنه في مشروعي لا يوجد سوى حوالي 5 آلاف سطر (بدون اختبارات).
الانحدار الغنائي حول مساعدة الشركاتأوه ، كان هناك مثل هذه القضية مثيرة للاهتمام. لقد اشتريت الاستوديو 2015 ، 2017 Community Edition ، لكن بالإضافة إلى ذلك ، استخدم ReSharper من JetBrains. واشتريت ايضا. من بين أشياء أخرى ، لدي أيضًا حساب على Azure ، حيث يوجد موقع ويب بسيط للحصول على معلومات عني وروابط للمشروعات والوثائق مقابل أموال رمزية. لذلك هناك. لدى JetBrains برنامج ترخيص مجاني لمطوري البرامج مفتوحة المصدر. حسنًا ، أنا أفكر - أعطيها ، سأصلحها. قرش جميل ، لكنني سأحفظ. سيكون لدي هدية ReSharper. لم لا؟ كتبت ، إذن ، رسالة إلى العنوان المطلوب. مثل ، فلان وفلان. أفعل مثل هذا المشروع ومثله ، مثل نوع من المصادر المفتوحة. إعطاء ، كما يقولون ، ترخيص. الجواب يأتي هذا:
لقد قمنا بفحص مشروع Open Source الخاص بك لمعرفة ما إذا كان يفي بجميع متطلبات برنامج ترخيص Open Jet.
يجب أن نعلمك أنه وفقًا لقواعد برنامجنا ، إذا كان المشروع يوفر أي خدمات مدفوعة (تدريب ، استشارات ، إلخ) ، فلا يمكننا إصدار تراخيص مجانية بشروط عامة.
كما أستطيع أن أرى على موقع الويب الخاص بمشروعك ، فإنه يوفر بعض الخدمات التجارية ( http://www.reinforced-sc.com/Info/Contact ) ، وبالتالي ، لسوء الحظ ، لن أتمكن من توفير تراخيص مجانية مفتوحة المصدر المشروع.
باختصار ، حذف التفاصيل. في الأساس ، لم يعجبهم ذلك على موقعي (الذي تمت زيارته بواسطة 3.5 anonymus) ، كتبت أنني كنت مستعدًا لتقديم المشورة التجارية والدعم التجاري الفردي لأي من مشروعي (من اثنين ، hehe). لا تكلفة الخدمات ولا أي شروط محددة - ببساطة ، كما يقولون ، "إذا كنت بحاجة فجأة إلى - تكتب ، سنوافق". كما تعلمون ، بالطبع ، لم يتم تلقي أي مقترحات. ما أنا موظف في JetBrains وحاول شرحه في مراسلات قصيرة. في النهاية حصلت على هذه الإجابة:
إذا كان مشروعك لا يوفر خدمات تجارية ، فيرجى إزالة القسم التجاري من موقع الويب وإخبارنا بمجرد قيامك بذلك - سأصدر لك إذن ترخيصًا مفتوح المصدر.
اعتقدت "حسنًا ، لا يهم ،" هذا يعني أنه يجب علي إزالة معلومات حول الانفتاح على العروض التجارية من الموقع مقابل 200 دولار (تكلفة ترخيص ReSharper) سنويًا ؟! لا ، يا شباب ، هذا عرض جيد جدًا. شكرًا ليس من الضروري ". ولم يواصل الحوار.
هناك ، بالطبع ، العديد من الأسئلة: أولاً ، كم من مانا السماوية ينصح باستخدامه أثناء التطوير ، حتى لا يحصل على الدهون؟ إذا تم استخدام مشروعي في الشركة التي أعمل فيها ، لكني قمت بتطويرها في وقت فراغي - هل يعتبر ذلك توفير خدمات تجارية؟ ثانياً: إذا لم يتم استخدام مشروعي في الأعمال - هل هو عديم الفائدة؟ هل JetBrains جاهزة لتمويل مشاريع لا قيمة لها؟ وإذا أشرت إلى مشروعي مفتوح المصدر في السيرة الذاتية وهذا يزيد من فرصي في التوظيف - هل هذا استخدام تجاري أيضًا؟ لذلك لا يمكن أيضا أن يشار في السيرة الذاتية؟ لكن يحدث أيضًا أن تدعم الشركات المساهم بشكل إعلامي - هل هذه الأموال أيضًا في شكل مختلف؟ تحتاج إلى توضيح! أنا لا أفهم أي شيء على الإطلاق.
بشكل عام ، كما تعلم ، واجهت مهمة الترويج والعلاقات العامة وحدها. كانت الفكرة الأولى التي تتبادر إلى ذهني كتابة كيفية استخدام كل شيء. قررت هنا الغش والجمع بين المفيد والمفيد - كتبت المقالة الأولى حول RT في مجلة المهوس (والتي تمت دعوتها UFO). لم تكن الفكرة كبيرة في العلاقات العامة "فعلت" ، ولكن في كيفية وضع بعض الوثائق باللغة الروسية على الأقل في المحور. جميع زملائي من روسيا ، لذا احتاجوا إلى دليل صغير على الأقل ، لكنهم لم يرغبوا في شرح ذلك للجميع في المراسلات أو عبر الصوت. لذا وُلدت المقالات الثلاثة الأولى ، والتي استقبلها الجمهور ببرود. هذا أمر مفهوم - من غير المحتمل أن يكون مفيدًا لشخص من مجتمع habr ، لذلك لا تقلق بشأن ذلك.
حول الوثائق
إن فكرة أنه سيكون من الجيد إعطاء الناس أي معرفة حول كيفية استخدام إطار العمل الخاص بي لم تعطيني الراحة حتى صغت في النهاية في هذا النموذج:
هذا هو الشيء مع الوثائق: إنه عديم الفائدة بدون رمز مشروع ، ورمز المشروع عديم الفائدة بدونه.
فكرة رائعة ، لكنني عرفت القليل من الكوارث عن كتابة الوثائق. بالإضافة إلى mechikov والنكات حول الشفرة غير الموثقة ، كان الفكر الخلفي هو أنه من الضروري استخدام الأفعال لوصف الأساليب ، ولا يلزم توثيق البنائين. على هذا ، علمي ، ربما ، قد استنفدت. قمت بإعداد الإصدار الأول من README ، وقمت بملء وصف المشروع وبدأت في التفكير.
كيف يتعامل الهواة مع وثائق التوثيق؟ بالطبع ، من خلال الأكسجين ، ما الذي يمكن للمبرمج التفكير فيه؟ لم يقل قال من القيام به. كان هدفي هو ترميز XMLDOC (يشبه javadoc ، فقط في C #) بحيث لا يعط التجميع في الإصدار "حول التعليقات المفقودة للأعضاء المرئيين علنًا".
- C# , , "", . , internal
private
C#. : 150 ( — 250), 700 260 . - . , .
20 , - , . , , ? , . . , : — . : MSDN! .
"Gets or sets whether..." — - !
, .
30 , - " ". , , , . , , internal
( package
Java). , ! . , .
, , .
, ! doxygen .
, reference-, doxygen-, 150 , enum-, . — ! XMLDOC- , "" . , .
XMLDOC-, , . Autofac, ReadTheDocs.ord. reStructuredText. , . ? . ? ? , ? ? .
chebureque, . , . , , . , . , … , , ! , , , . . , .
, — . .
: , github wiki markdown- , . , , , , GitHub. . .

. -, , . , - . .
. 9 NuGet, , . , 2016 -. ( ?) !
?
"european it conferences 2016" . C# TypeScript. web, , , , IoT. , . , ! , , , , , " ". " ", " ", " ". , ! ", -, !". .
, , DeveloperDays 2016 . — ? , . , , — , 10 . — , . , , . , . . , , , .
— — — .
— , ! ! —… . , — , . .
. NuGet , 10 . , . , , issues! : . , . , faq, , , , .
StackOverflow! , !
C#- TypeScript, . — ! README , Support policy. StackOverflow , . FAQ. RSS .
, RT StackOverflow — , . ! stargazers Barclays Microsoft. — , , , , , … ! , Insights , JIRA - .
StackOverflow , , . . issues , - . . - . , - . , , ( , — ) , .
TDD — , .
— - , - . ,

, -. ( ), — 10, 99% - .
-, , C# TypeScript . , !
RT, dnx, .NET Standard, 3 .NET Core, 20 TypeScript , .
, - .NET Core :)
, , . , ( !). , , … - ? , : , , , . ( .NET Core, ). ? , .
3 . ? ? ! . , . . zip- — GitHub ! , , , OSS- - .
opensource- ? .
?
OSS : (opensource ) ( ). Microsoft OSS — .NET Core "Microsoft loves Linux" MS-, — Azure . — ! , .
opensource. -, Percona mysql, , " ". , , mysql , . mysql .
, OSS- , , . — : OSS- , . , .
OSS, , — , , , Apache Harmony, Sun Microsystems JRE ( , -).
OSS , . - — , , " " — . . — , , " — , " .. .
OSS — , . — - . , user group, community, , . — , . - . "member of something user group, contributor".
- OSS- , , , . .
, — . , , , . , — .
, , community. — , , , , — , , .
, , , — , , linux. "" Linux. , — . . - , " ", , opensource . . , . , .
. - , - " opensource", — .
, .
opensource, " " opensource- — , .
: OSS- OSS- — . , . .
, , , , " " " opensource". , OSS, . . , , . . , . , — . ? ...
, . :
- 5000 , 225 , 1428 , 380 ;
- 43 ;
- 84 issues ;
- 10 ;
- 107 ;
- 28 ;
- 1100 ;
- ~50 000 - NuGet ( 40 );
GitHub, NuGet.
!