معنای لغوی «حرفهای» یعنی «کسی که در ازای انجام کاری، پول دریافت کنه». با این حال، حرفهای بودن صرفا در این خلاصه نمیشه. در فرهنگها و جوامع متفاوت، آدمای حرفهای رفتارهایی بروز دادند که بهشون بگن حرفهای. در واقع «حرفهای رفتار کردن» مهمه.
راستش چند وقت پیش (شاید عمرش به دو هفته هم نرسه)، دوستی کدی منتشر کرد که بقیه استفاده کنند. اما اون کد، طوری بود که اگر شما از اول مینوشتید سنگینتر بودید. حالا میخوام از روی این داستان، برم جلو و بگم رفتار غیرحرفهای اینجا چه بوده.

خب، از اونجا که قصد ندارم اسم از شخص خاصی بیارم که کسی مطلب رو به خودش نگیره، صرفا یه سناریوی فرضی میسازیم.
فرض کنید که یه کدی روی گیت میره، برنامهنویس میاد تو شبکه اجتماعی و میگه بچهها من این کد رو نوشتم و اگر فلان ورودی بگیره بهمان خروجی بهتون میده.
شما هم خوشحال از این که اون کد، ابزاری بوده که احتمالا نیاز داشتید، کد رو کلون میکنید و سعی میکنید رانش کنید. ران میکنید و میبینید که همون اول بسم الله بهتون ارور فلان لایبرری رو میده.
غیرحرفهای گری اینجا چیه؟ عدم وجود فایلی که وابستگیها درش باشه. راه حل؟ این که تو README.md حداقل بنویسید که چه چیزی رو باید نصب کنیم. رفتار حرفهای ترش این که فایلهایی مثل Gemfile یا requirement.txt یا cargo.yml و ... رو هم همراه کد بذارید. اینطوری شخصی که کد رو کلون کرده صرفا کافیه یه دستور ساده بزنه تا همه چیز نصب شه. بدون دردسر.
این ارور رو که حل میکنید، اون هم با خوندن همه فایلها و پیدا کردن وابستگیها، بالاخره کد اجرا میشه. اما وقتی اجرا شد، هیچ ایدهای ندارید که چه میکنه.
غیرحرفهای گری اینجا چطور مشخص میشه؟ اینطوری که وقتی شما کدتون رو آپلود میکنید، انتظار میره حداقل یه نمونه از ورودی خروجیش گذاشته باشید. نه این که همینطوری کد روی اینترنت باشه و کسی ندونه چطور کار میکنه. اگر هم قصد دارید کسی نفهمه چطور کار کنه، میتونید مخزن خصوصی بنویسید یا حتی سرور گیت خودتون رو بیارید بالا.
و حالا فکر کنیم شما ساعتها وقت صرف کردید کد رو خوندید و فهمیدید که چطور کار میکنه. ورودیای که فکر میکنید رو میدید بهش و اینجاست که تراژدی اتفاق میافته. میبینید که خروجی، اونی نیست که فکر میکردید و یه چیزیه که بهش بگید چرند، به چرند توهین شده.
غیرحرفهای گری اینجا چی بود؟ این که برنامهنویس محترم؛ حتی زحمت به خودش نداده که یک بار کدش رو تست کنه. راه حلی هم نداره، چون کسی که زحمت تست به خودش نمیده اصلا نمیشه بهش گفت برنامهنویس.
خلاصه کلام اینه که، اگر کدی رو منتشر میکنید :
موفق و حرفهای باشید!