Developer diaries
70 subscribers
101 photos
26 videos
5 files
52 links
Download Telegram
Channel created
سلام من میلاد موسوی هستم برنامه نویس اندروید و در این کانال از همه ی چیزهایی که مربوط به زندگی برنامه نویسی هست صحبت میکنم.
تکنولوژی های روز برنامه نویسی (با تمرکز روی اندروید)
آزمون های استخدامی شرکت ها
تجربه های کاری
و...
@developerDiaries
معماری نرم افزار به زبان ساده

از شما خواسته میشه که وارد ساختمان هتل بسیار بزرگی بشید، به اتاقی که تلویزیون رو به روی تخت خواب هست برید و از کنار تخت خواب وسیله ای رو بردارید.

دو سناریو برای این مسئله پیش میاد
اول: اتاق های هتل هیچ کدوم هیچ شباهتی به هم ندارن. در این صورت باید به اتاق های مختلفی سر بزنید که با توجه به عظمت ساختمان هتل احتمالا باید ساعت ها و روزها وقت بگذارید تا بالاخره به اتاقی برسید که مشخصاتی شبیه به اتاق مورد نظر رو داشته باشه

سناریوی دوم: اتاق های هتل در هر طبقه به هم شبیه هستند. در این صورت کار شما بسیار بسیار راحت تر هست. اگر در هر طبقه اولین اتاق شبیه اتاق مورد نظر نباشه، این یعنی لازم نیست اتاق های دیگه ی اون طبقه رو هم بگردید. بعد از مدتی اتاقی شبیه به اتاق مورد نظر رو پیدا میکنید و خیلی سریع به اتاق مورد نظر در همون طبقه می‌رسید.

معماری نرم افزار چیزی شبیه به مثال بالاست. پکیج ها حاوی کلاس های شبیه به هم هستند. تنها یکی از مزایای داشتن یک معماری استاندارد پیدا شدن سریع خط کدی هست که دنبالش می‌گردیم. مزایای دیگه اش می‌تونه شامل این باشه که رفع باگ و تست پذیری در این حالت خیلی بیشتر از وقتی هست که معماری نداریم و با یه ساختمان پیچیده طرف هستیم.
پرکاربردترین معماری های امروز در برنامه نویسی اندروید این سه تا هستند
MVC
MVP
MVVM

از MVC دیگه کمتر میبینیم استفاده کنن. از معماری MVP و اخیرا MVVM بسیار استفاده میشه. خصوصا معماری MVVM که جدیدترین معماری محسوب میشه.

@developerDiaries
معرفی ابزار static code analysis

با وجود رعایت همه ی نکات ممکنه‌ هنوز خطای گرامری مثلاً شروع اسم تابع با حرف بزرگ هنوز وجود داشته باشه، گاهی اوقات یک خطای ریز ( که ممکنه منجر به فاجعه ی بزرگ بشه) هم وجود داره که هم از دید ما پنهان مونده و هم ممکنه توی تست خودش رو نشون نداده باشه. اینها تنها بخشی از چیزهایی هستن که ابزار های code analysis برای ما پیدا می‌کنن.
امکانات دیگه ای هم داره مثل:
نمره دادن به تمیزی کد
هشدار در مورد تکرار شدن یک کد در جاهای مختلف پروژه
بررسی پروژه و نمره دادن به نحوه ی استفاده از abstraction
پیدا کرده باگ های احتمالی و درجه بندی اونها

اگر به دنبال static code analysis برای محیط اندروید استودیو میگردید بهتون پلاگین فوق العاده ی sonarqube رو پیشنهاد میکنم.
@developerDiaries
Developer diaries pinned «سلام من میلاد موسوی هستم برنامه نویس اندروید و در این کانال از همه ی چیزهایی که مربوط به زندگی برنامه نویسی هست صحبت میکنم. تکنولوژی های روز برنامه نویسی (با تمرکز روی اندروید) آزمون های استخدامی شرکت ها تجربه های کاری و... @developerDiaries»
امکانات جدید زبان برنامه نویسی آقای هاشمی😐