سورسخوانی – مقدمه
در رابطه با فواید خوندن سورس پروژههایی (میتونه خروجیش اپلیکیشن باشه یا کتابخونه) که توسط افراد دیگه نوشته شده مقالههای زیادی توی اینترنت وجود داره و لازم به صحبت بیشتر نیست. فقط اگر بخوام تجربه شخصی خودمو بگم، فکرکنم در حدود ۶۰ ۷۰درصد چیزهایی که بلدم رو با خوندن سورسها یاد گرفتم. مهمترین بهونهای که بعضی برنامهنویسا میارن تا اینکار پرفایده رو انجام ندن، اینه که میگن هنوز دانششون برای اینکار کم هس. در صورتی که خب بدیهی هست مثلاً اگر منم سورس اپلیکیشن تلگرام رو بررسی میکنم قطعاً کلی از بخشهاشو متوجه نمیشم و هیچوقت هم هدفم این نیست ۱۰۰درصد یه پروژه رو متوجه بشم. سورسهارو میشه با دو رویکرد زیر بررسی کرد.
۱– بررسی پیادهسازی یک ویژگی خاص: بعضیا وقتها آدم از قابلیت خاصی توی یک اپلیکیشن خوشش میاد، اگر این اپلیکیشن متنباز باشه میشه سورس اون اپلیکیشن رو پیدا کرد و بصورت هدفمند بررسی کرد این قابلیت چطور پیادهسازی شده. مثلاً من یه زمانی خیلی پیگیر بودم که تلگرام چطوری خاصیت sticker preview رو پیادهسازی کرده و بعد دو سه هفته بررسی تونستم از روی تلگرام، این قابلیت (البته سادهتر) رو توی اپلیکیشن خودم پیادهسازی کنم. دیگه اینکه بقیه بخشهای تلگرام چطور نوشته شدن رو کار نداشتم و خودمو درگیرشون نکردم.
۲– بررسی کلی سورس: توی این رویکرد بیشتر تمرکز روی این هست که ساختار کدها چطوریه، از چه معماری استفاده شده، از چه الگویی برای نامگذاری استفاده شده، چه دیزاینپترنهایی توی سورس بکار گرفته شدن و …. این رویکرد در بیشتر مواقع از رویکرد قبلی سادهتر هست و کمتر وقت میگیره. توی این رویکرد نباید درگیر جزئیات ریز پیادهسازی شد.
البته شما میتونید یک سورس رو همزمان با هر دو رویکرد بررسی و خط به خطشو تحلیل کنید. سؤالی که احتمال داره براتون پیش میاد اینه حالا از کجا میشه پروژهی مناسب برای بررسی پیدا کرد؟! بهترین راه اینه توی اینترنت کمی جستجو کنید تا مقالههایی که پروژههای خوب متنباز رو معرفی کردن پیدا کنید. بطور مثال این لینک بیشتر از ۲۰ پروژهی جالب متنباز رو معرفی کرده که موضوعهای متنوعی دارند یا این لینک هم ۱۲ تا پروژهی متنباز دیگه معرفی کرده. حتماً این دو لینک رو برای شروع نگاه کنید. البته خودتون هم میتونید با جستجو توی گیتهاب پروژهی جالبی پیدا کنید یاحتی اگر حال جستجو توی گیتهابم ندارید به سایت F-Droid سر بزنید. البته خود سایتش خیلی راحت نیست و بهتره از این لینک استفاده کنید.
از این به بعد اگر وقت بشه میخوام پستهای جدیدی با عنوان «سورسخوانی» منتشر کنم که داخل هر پست، سورس یک اپلیکیشن متنباز رو بررسی میکنم. اولین اپلیکیشن اسمش kickstarter هست، میتونید از گوگلپلی دانلودش کنید. من سورس کلاینت اندرویدش رو بررسی میکنم و نکتههای جدید یا جالبی که خودم از سورس یاد میگیرم رو برای شما مینویسم.
اگر این پستها مفید بودند، میشه در آینده این کار رو گروهی انجام داد. مثلاً یک اپلیکیشن متنباز مشخص بشه و هرکی که دوست داشت تا تاریخ تعیین شده، نکاتی که از سورس یادگرفته رو بنویسه و بفرسته. بعد این نکات توی کانال یا بلاگ منتشر میشند. اینجوری اگر کسی به نکتهای دقت نکرده باشه، چون بقیه بهش اشاره میکنن ازش با خبر میشه.