داستان از جایی شروع شد که نیاز داشتیم مدیر سیستم بتونه بر اساس تمام فیلدها جستجو بکنه برای همین یک بررسی کردم و به یک پروژه روی گیت هاب رسیدم، به نظر جالب بود و نیاز ما رو پوشش می داد برای همین یک fork ازش گرفت و شروع کردم به بررسی که مشکل امنیتی نداشته باشه، در نهایت یک lib ازش گرفتم و به پروژه خودمون اضافه کردم، کمی که پیش رفتیم از طرف تیم نیازمندی هایی برای جستجو گزارش شد که نداشتیم، رفتم روی گیت هاب و دیدم یک issue هم دقیقا مشابه نیازمندی ما ایجاد شده، تصمیم گرفتم که شروع کنم انجام بدم تا هم نیاز تیم ما برطرف بشه و هم نیاز دیگران، ولی یک موضوعی بود، پروژه به زبان kotlin بود و تا حالا با این زبان کد نزده بودم.
خیلی سخت نبود و همون روز اول کد رو زدم و با تست های ساده یک lib گرفتم و به پروژه خودمون اضافه کردم ولی داستان این بود که برای پذیرش کد جهت merge شدن شرایطی داشت که باعث شد با چندتا چیز آشنا بشم.
مهمترین اتفاق برای من تعامل با یک فرد غیر ایرانی در خصوص یک پروژه بود، اینکه کد من رو بررسی می کرد و مواردی رو می گفت حس جالبی بود.
موضوع بعدی قوانینی بود که باید از نظر syntax رعایت می شد و این باعث می شد کدها یک دست باشه چیزی که تا حالا من تو شرکت های ایرانی که کار کردم ندیده ام.
موضوع آخر قوانین تعریف شده برای تعداد تست ها جهت پوشش تمام شرایط بود، یعنی اگر کدی اضافه بشه باید تست هاش حداقل شرایط تعریف شده رو پوشش بده، برای این منظور از jacoco استفاده کرده بودن.
کلام آخر
اگر یک توسعه دهنده نرم افزار هستین پیشنهاد می کنم حتما مشارکت روی پروژه های اوپن سورس که مدیریت اون با یک فرد غیر ایرانی هست رو تجربه کنید اگر وابسته به یک شرکت خارجی باشه چه بهتر، این کار باعث میشه به شیوه کد زدن و کار در تیم های خارجی تا حدودی آشنا بشین.
از ابزارهای تست و آنالیز کد استفاده کنید و سعی کنید کد زدن اصولی رو یاد بگیرین و یادگیری اصول کد نویسی تمیز، الگوهای طراحی و ... رو فراموش نکنید.