جزوات و نت بردایهای من از دورههای ICT بیشتر در t.me/ICT_NoteTaking
۳۱ ترفند پیشرفته جهت بهبود مهارتهای برنامه نویسی اندروید
تبدیل شدن به یک برنامهنویس اندروید کار سادهای است اما اینکه به یک برنامهنویس موفق و برجسته تبدیل شوید چندان ساده نیست. دنیای برنامه نویسی اندروید بسیار گسترده بوده و برای کسب جایگاه شغلی در این حرفه، زحمت، کار، تعهد و صبر زیادی لازم است. متاسفانه هیچ مسیر میانبری هم وجود ندارد اما اگر مصمم به تلاش در این مسیر باشید قطعا به موفقیت خواهید رسید. برای تبدیل شدن به یک برنامه نویس بهتر اندروید فهرستی از تکنیکهای کاربردی که به تجربه به دست آمدهاند را با شما به اشتراک میگذاریم. بنابراین چه تازه شروع به برنامه نویسی اندروید کرده باشید و چه مدتی در این حرفه مشغول به کار بودهاید، خواندن این مقاله را توصیه میکنیم.
۱- با ساختار داخلی فریمورک اندروید بیشتر آشنا شوید
منظورم مطالعه و بررسی مستندات اندروید نیست بلکه مقصود خودِ کدهای فریمورک است. بسیاری از توسعهدهندگان از بررسی کدهای داخلی فریمورک اندروید واهمه دارند. شما اینطور نباشید. شگفتآور است؛ با بررسی این کدها چه چیزهایی که به دست نمیآورید! عملکرد کدها و ارتباط قطعات مختلف آن با یکدیگر را درک میکنید. اگر نیازمند این هستید که مهارت بازیسازیتان در اندروید را افزایش دهید از بررسی عملکرد داخلی Android SDK فرار نکنید؛ سعی کنید با این کدها دوست شوید.
۲- ترس از «دست دادن» را کنار بگذارید
اندروید وسیع است؛ خیلی هم وسیع است. امکان ندارد در عرض یک یا سه ماه کل آن را از صفر تا صد یاد بگیرید. اتفاقا هرچه بیشتر میآموزید، بیشتر به ندانستههای خود پی میبرید. در شروع برنامه نویسی اندروید و برای افراد مبتدی کاملا طبیعی است که در هنگام ساخت اپها از انبوه اطلاعاتی که هنوز بلد نیستید وحشت کنید. سعی کنید بر این ترس غلبه کنید. چیزهایی که واقعا برای تکمیل برنامه لازم دارید را یاد بگیرید و به مرور به حجم دانستههای خود بیفزایید.
۳- تا میتوانید کدهای بیشتری بخوانید
اغلب توسعهدهندگان وقت زیادی برای خواندن کدهای سایر برنامهنویسها صرف نمیکنند و به جای این کار بخش عمده وقتشان را صرف نوشتن کدهایی میکنند که از قبل میدانند. این کار از شما یک برنامه نویس خوب اندروید نمیسازد. تنها راهی که باعث پیشرفت شما در برنامه نویسی اندروید میشود بررسی کدهای عالی سایر توسعهدهندگان باتجربه است. با بررسی پروژهها و کتابخانههای متنباز اندروید، دنیایی از تکنیکها و قابلیتها به روی شما گشوده میشود که تا پیش از آن اطلاعی از آنها نداشتید.
۴- زبانهای بیشتری یاد بگیرید
البته منظورم یادگیری زبانهای چینی و اسپانیایی نیست. منظورم آموختن زبانهای جدید برنامهنویسی است. به جای محدود کردن خود در فضای برنامه نویسی اندروید دانش خود را بروز نگه دارید و همگام با صنعت نرمافزار جلو بروید. این کار، چشماندازها و ایدههای جدیدی، روبرویتان میگشاید و کمک میکند تا به طرز چشمگیری دانش برنامه نویسی اندروید شما بهبود یابد. مغز خود را اینطور عادت دهید که هر سال یک زبان برنامه نویسی جدید یاد بگیرید.
۵- الگوهای طراحی جاوا را یاد بگیرید
یادگیری الگوهای طراحی (Design Pattern) برای حرفهی برنامه نویسی اندروید بسیار حائز اهمیت است. هر زمان با یک مشکل اساسی در برنامهنویسی مواجه میشوید، الگوهای طراحی میتواند راهکارهای مناسبی ارائه دهد که باعث صرفهجویی زمان شود. گذشته از این، آشنایی با الگوهای طراحی برای درک مشترک و فعالیت تیمی ضروری است چرا که وقتی توسعهدهندهای برای مثال از الگوهای Factory, Decorator, Facade و غیره صحبت میکند، به عنوان یک برنامهنویس باید منظورش را بفهمید. به خودتان قول دهید که هر هفته یک الگوی طراحی آموخته تا زمانی که اغلب آنها را فرا بگیرید.
ترفند: منبع خوبی در گیتهاب، الگوهای طراحی را به زبان جاوا آموزش داده است. برای درک اطلاعات دقیقتر، این کتاب را مطالعه کنید
۶- در پروژههای متنباز مشارکت کنید
اگر کتابخانه، پلاگین یا قطعه کدی نوشتهاید و در برنامهی خود از آن استفاده نمودهاید بد نیست آن را به صورت متنباز منتشر کنید. مدیریت پروژههای متنباز یا مشارکت در پروژههای دیگران چیزهای زیادی به شما یاد میدهد که در کتابها نمیتوانید پیدا کنید. فرایند مشارکت در پروژههای متنباز، دانش و مهارت شما را به صورت نمایی افزایش میدهد. اگر خودتان پروژهی متنباز ندارید میتوانید در پروژههای سایر افراد مشارکت کنید. سعی کنید تعدادی باگ برطرف کرده، مستندات را بهبود داده و یا چند خطی کدِ تست بنویسید. حتی کوچکترین مشارکت (مثلا حل مشکل املایی و دستوری در مستندات) به صاحب پروژه در نگهداری آن کمک میکند.
ترفند: این راهنمای کاملی برای شروع توسعه پروژههای متنباز است.
۷-ـ IDE را مطابق نیازهای خود تنظیم کنید
زمان بیشتری را برای درک عملکرد IDE و امکانات مختلف آن صرف کنید. اندروید استودیو کارهای زیادی میتواند انجام دهد؛ کلی قابلیت و کلیدهای میانبر در اندروید استودیو وجود دارد که حتی خیلی از برنامهنویسها اطلاعی از آن ندارند. خودتان را عادت دهید تا از قابلیتهای ابزاری که از آن استفاده میکنید اطلاعات کاملی داشته باشید. آشنایی بهتر با ابزار، باعث بهبود بهرهوری شما خواهد شد.
۸- برنامهی خود را بر مبنای یک معماری درست بنا کنید
اغلب اوقات، کدهای خود را در اکتیویتیها و فرگمنتهای مختلف پخش میکنیم و یا کلاسها و اشیاء سنگینی (اصطلاحا God objects) تولید میکنیم که مدیریت و نگهداری آنها به سختی امکانپذیر است. به همین منظور بنا کردن کدها بر روی یک معماری خوب نظیر MVP یا MVVM ضروری است. بایستی کدهای خود را به لایههای مختلفِ منطق، نمایش و داده تقسیم کنید تا مدیریت و تست آن آسان شود.
ترفند: برای آشنایی با یک معماری مناسب به این صفحه از گیتهاب (از سوی گوگل) مراجعه کنید.
۹- کدنویسی تمییز را بیاموزید
این موضوع نیز اهمیت بالایی دارد چرا که مدیریت استانداردهای کدنویسی در کنار افرادی که به توسعه کدهای تمییز عادت ندارند کار دشواری است. این موضوع چیز عیجب و سختی نیست؛ یادگرفتن عمده استانداردهای کدنویسی در برنامه نویسی اندروید شاید کمتر از چند ساعت وقت بگیرید.
ترفند: اینجا اطلاعات خوبی در این رابطه ارائه شده است.
۱۰- زمانی را برای یادگیری بهترین تمرینهای برنامه نویسی اندروید صرف کنید
برای ساخت برنامههای باکیفیت و زیبا، همپای سایر توسعهدهندگان لازم است بهترین تمرینهای برنامه نویسی اندروید را فرا بگیرید. اینکه چه کارهایی انجام دهید و از انجام چه کارهایی دوری کنید شما را به یک برنامه نویس بهتر تبدیل میکند.
ترفند: اینجا مجموعهای از بهترین تمرینها (Best Practice) برای ساخت اپلیکیشنهای بهتر گردآوری شده است.
۱۱- از زمان خالی خود برای شنیدن پادکست استفاده کنید
سعی کنید تمام و کمال از زمانتان استفاده کنید. هنگام رفتوآمد، قدم زدن، ورزش کردن در باشگاه، رانندگی یا آشپزی، از تمام ظرفیت مغز استفاده نمیشود. در حین انجام این کارها به راحتی میتوانید از توانایی چند وظیفگی مغز برای شنیدن به پادکستهای اندرویدی استفاده کنید.
ترفند: Fragmented Podcasts و Android Developers Backstage دو نمونه از بهترین پادکستها برای شروع هستند.
۱۲- واقعنگر باشید؛ بیش از حد مهندسی نکنید
خیلی از برنامهنویسها از جمله خود من دچار این معضل هستیم؛ یادگرفتن چیزی پیش از شروع کار خوب است، خیلی هم خوب است؛ ولی اینکه در این مسیر به ایدهآلگرایی و یادگیری و آنالیز بیش از حد مبتلا شوید همچون سمی کشنده خاصیت مفید مطالعه را خنثی کرده و باعث تشویش ذهنی، ایجاد تاخیرهای گاها بی پایان و اضطراب کاذب خواهد شد. چیزهایی که فکر میکنید برای پروژه خوب هستند را همان زمان انجام دهید و تغییراتی که با مطالعه بیشتر در آینده لازم میبینید به مرور اعمال کنید. اینکه منتظر بمانید کمی دیگر بخوانید، کمی دیگر و کمی دیگر. هیچگاه به پایان نمیرسد و تنها انبوهی از اطلاعات باعث ترافیک ذهنی شما خواهد شد.
۱۳- در مورد طراحی هم مطالعه کنید
کار توسعهدهنده فقط نوشتن الگوریتمها و منطق کد بوده و طراحی رابط کاربری و بحثهای گرافیکی به او مربوط نمیشود. اما همیشه فرصت همکاری در تیمهای برنامهنویسی که هر بخشی از کار توسط شخصی انجام میشود وجود ندارد. حداقل در شروع کار برای به ثمر رساندن پروژهها باید با مباحث طراحی آشنا باشید. سعی کنید در کنار برنامهنویسی، زمانی را هم صرف یادگرفتن مفاهیم UI/UX کنید. این کار ثمره دیگری نیز دارد. آشنایی با رابط کاربری بر روی نوع کدنویسی شما نیز تاثیر میگذارد. حتی اگر در تیم هم کار میکنید با سایر طراحان UI برای کسب اطلاعات بیشتر در این حوزه ارتباط برقرار کنید.
ترفند: برای آشنایی و درک بیشتر طراحی، این کتاب را مطالعه کنید.
۱۴- کمالگرا باشید
«کامل» یک واژهی نسبی است اما به صورت خلاصه اگر بخواهیم بگوییم، در ارائه هر محصول، تمام تلاش خود را صرف ارائه بهترین چیزی که از عهده شما بر میآید کنید. هرگز به کم قانع نشوید. فقط برای سرهم کردن پروژه و اینکه هرچه سریعتر از شر آن خلاص شوید عجله نکنید. با شور و هیجان کار کنید و همواره بهترین محصول خود را ارائه دهید. این کار کمک میکند تا به صورت مداوم رشد کرده و در درازمدت به یک توسعهدهنده موفق تبدیل شوید. البته در اینجا کمالگرایی را با ایدهآلگرایی و افتادن در چرخه بیپایان مطالعه و بهینهسازی اشتباه نگیرید. مقصود ما این است که کمکاری نکنید و از تمام دانستهها و داشتههای علمی خود برای خلق یک محصول بینظیر استفاده نمایید.
۱۵- تداوم و پشتکار، کلیدِ موفقیت شماست
برای موفقیت در برنامه نویسی اندروید (و یا هر کار دیگری در زندگی) بایستی پشتکار داشته باشید. انجام کاری برای چند روز یا چند هفته و سپس کنار گذاشتن آن شما را به جایی نمیرساند. دمدمیمزاج نباشید. به این فکر کنید که چند سال آینده میخواهید کجا باشید. هدفی تعیین کنید و سخت به آن بچسبید. به جای کم آوردن در مقابل چالشها با آنها مبارزه کنید. شروع کردن هر کاری ساده است اما تداوم آن با انگیزه ابتدایی و برای مدت طولانی نه.
۱۶- قدمهای کوچک بردارید. آهسته و پیوسته حرکت کنید.
به عنوان یک توسعهدهنده همیشه سعی کنید مشکلات پیچیده را به مسائل مستقل، کوچکتر و سادهتر تقسیم کنید تا به راحتی قابل درک باشند و به سادگی حل شوند. هیچگاه پیچیدگی ابتدایی یک مسئله شما را دستپاچه نکند. وقتی راهوچاره را بلد باشید هر مسئلهای را میتوانید حل کنید. با مسائل کوچک شروع کنید و همانند یک طفل، قدمهای کوچک بردارید. برای افزایش سطح دانش و اطلاعات آهسته و پیوسته حرکت کنید.
به قول سعدی: رهرو آن نيست كه گه تند و گهي خسته رود… رهرو آنست كه آهسته و پيوسته رود.
۱۷- همیشه یک پروژه تفریحی داشته باشید
داشتن یک پروژه تفریحی، کاملا مسیر یادگیری شما را متحول میکند. هر موقع چیز جدیدی راجع برنامه نویسی اندروید میآموزید بر روی پروژه تفریحی خود اعمال و تست کنید. به عنوان مثال وقتی با کتابخانهی جالبی برخورد میکنید به جای اینکه فقط مستندات آن را مطالعه کنید سعی کنید کتابخانه را دانلود و بر روی پروژهی تفریحی خود تست کنید. این کار باعث درک بهتر و عمیقتر آن کتابخانه خواهد شد.
۱۸- تستهای بیشتری بنویسید
لازم به تاکید بیشتر نیست که نوشتن تست برای کد اهمیتی حیاتی دارد. هیچگاه بدون نوشتن تستهای کامل اقدام به ارائه قابلیت جدیدی نکنید. نوشتن تست برای کد باعث میشود جلوی خرابکاریهای اتفاقی بر اثر اعمال تغییرات جدید به حداقل میزان ممکن برسد. اشتباه نکنید و زندگی را با نادیده گرفتن تستنویسی بر خودتان زهر نکنید.
۱۹- خودتان را به TDD عادت دهید
در هنگام توسعه اپلیکیشنهای اندرویدی، روش مطمئن و کارآمدی برای کاهش زمان تست برنامه انتخاب کنید. توسعه آزمون محور (-TDD:Test Driven Development) یکی از این روشهاست. در این تکنیک کدنویسی، قبل از اینکه کدی بنویسید یک تست مینویسید که چراغ قرمز میدهد، سپس کدی مینویسید تا آن تست را پاس کند و چراغ سبز شود و در نهایت آن کد را بهینهسازی و ریفکتور میکنید. گاهی اوقات به این روش red-green-refactor نیز میگویند.
«توسعه آزمون-محور، روش مدیریت ترس در حین برنامهنویسی است. ترس اعتماد به نفستان را کاهش میدهد. ترس باعث میشود کمتر با دیگران ارتباط برقرار کنید. ترس باعث میشود از بازخوردها فراری شوید. ترس باعث بدخلقی شما میشود.» – TDD By Example.
۲۰- یک مکانیزم اتوماسیون مناسب برای نسخههای مختلف برنامه تدوین کنید
بخش زیادی از کارها در فرایند توسعهی نرمافزار از جمله مدیریت نسخه و چک کردن کیفیت برنامه را میتوان به صورت خودکار انجام داد. شما میتوانید مکانیزم ارزیابی کیفیت برنامه را به کمک ابزارهایی مثل CheckStyle, PMD, Lint, و FindBugs انجام دهید . علاوه بر این اجرای تمامی آزمونهای واحد و تستهای جامعیت قبل از ادغام کدهای جدید با کدهای قبلی یک ضرورت است. بعد از پاس شدن همه این تستها میتوانید فایل APK برنامه را بر روی پلی استور یا هر کانال توزیع دیگری منتشر کنید.
ترفند: برای خودکارسازی فرایند انتشار برنامه در پلیاستور میتوانید از این ابزار متنباز استفاده کنید.
۲۱- نگاهی هم به رویکرد برنامه نویسی واکنشگرا داشته باشید
اگر دنبال ارتقاء مهارتهای برنامه نویسی اندروید هستید بایستی با روشهای جدید این حوزه مثلا رویکرد برنامهنویسی واکنشگرا آشنا شوید. این تکنیک شما را وادار میکند تا به شیوهای کاملا جدید برنامه بسازید. برنامهنویسی واکنشگرا یا Reactive قطعا کمک میکند تا با سرعت و سهولت بیشتری اقدام به ساخت اپلیکیشن کنید.
ترفند: این لینک اطلاعات ارزشمندی در مورد RxJava در برنامهنویسی اندروید ارائه کرده است.
۲۲- استفاده از Kotlin برای توسعه اندروید را فرا بگیرید
با توجه به اینکه که گوگل در کنفرانس I/O 2017 رسما پشتیبانی خود از زبان برنامه نویسی Kotlin را اعلام کرد یادگیری آن را کم کم باید در دستور کار خود قرار دهید. این زبان جدید با برطرف نمودن نقصانهای زبان جاوا، نفس تازهای به دنیای برنامه نویسی اندروید دمیده است. این خبر مهمی است برای توسعهدهندگان اندروید که از زبان قدیمی، کسلکننده و مستعد خطای جاوا خسته شدهاند. استفاده از این زبان افقهای جدیدی روبرویتان میگشاید.
۲۳- ارتباط فعالی با دیگر توسعهدهندگان برقرار کنید
ما برنامهنویسها معمولا درونگرا هستیم و دوست داریم در گوشهای از دنیا با کامپیوتر خود خلوت کنیم. سعی کنید منطقه راحتیتان را ترک کرده و به جمع دیگر برنامهنویسها بپیوندید. در این جلسات و اجتماعات، اطلاعاتی رد و بدل میشود که گاها در راستای علایق شماست و باعث یادگرفتن چیزهای جدیدی میشود.
ترفند: به سایت meetup.com بروید و اجتماع مورد علاقهی خود را انتخاب کنید.
۲۴- به استفاده از کلیدهای میانبر صفحه کلید عادت کنید
تقریبا برای هرکاری در اندروید استودیو یک کلید میانبر تعریف شده است. اطلاع از این کلیدها سرعت کدنویسی را افزایش داده و فرایند توسعه را نظم میبخشد. به خاطر سپردن میانبرهای صفحهکلید شاید در ابتدا زمانبر باشد ولی قطعا در درازمدت باعث افزایش سرعت و رهایی از کلیکهای ماوس خواهد شد. یک برنامهنویس حرفهای بیشتر کارهای خود را با صفحهکلید انجام میدهد و درگیر در منوها نمیشود.
ترفند: اگر مایل به حفظ کردن کلیدهای میانبر به شیوه قدیم نیستید این پلاگین را در اندروید استودیو نصب کنید تا از تکنیک جدید حفظ این میانبرها استفاده کنید.
۲۵- سعی کنید هر هفته حداقل یک چیز جدید در مورد اندروید یاد بگیرید
در دنیای وسیع اندروید، چیزهای زیادی برای آموختن وجود دارد طوری که هربار احساس میکنید تازه شروع به یادگیری برنامه نویسی اندروید کردهاید. با خودتان قرار کنید که هر هفته یک چیز جدید یاد بگیرید. فهرستی از چیزهایی که نمیدانید به صورت اولویتبندی شده ردیف کرده و هر هفته یکی از آنها را بیاموزید. بعد از گذشت چندین ماه خودتان را بالاتر از چیزی که روز اول بودید خواهید دید.
۲۶- هرچیزی که زمانتان را میبلعد خودکار کنید
ما مهندسین از لحظه تولد آدمهای تنبلی بوده و برای هرکار کسلکننده دنبال آسانترین روش هستیم. بنابراین اگر کار خستهکنندهای را چندین بار طی روز به صورت تکراری انجام میدهید به فکر خودکارسازی آن باشید. این کار به صورت کلی موجب صرفهجویی زیادی در زمان شده و بهرهوری شما به صورت چشمگیری افزایش مییابد.
ترفند: نگاهی به Zapier بیندازید؛ ابزاری جالب برای خودکارسازی بسیاری از وظایف روزمره.
۲۷- از دو نسخه اندروید استودیو استفاده کنید
همیشه یک نسخه پایدار از اندروید استودیو برای انجام کارهای مهم روزانه داشته باشید. اما در کنار این نسخه، از نسخههای بتا، قناری یا آخرین نسخه آزمایشی آن نیز استفاده کنید. گاهی قابلیتهای فراوانی در نسخههای آزمایشی وجود دارد که پیش از موعد میتوانید آنها را تست و یاد بگیرید.
۲۸- هر از گاهی تمامی کتابخانهها را بررسی کنید
ما همیشه دوست داریم از کتابخانهها استفاده کنیم. این کار در زمان ضرورت بسیار هم خوب است ولی گاهی اوقات کتابخانههای بیاستفادهای وجود دارند که لازم است هر از گاهی آنها را حذف کنید و فقط موارد که در حال استفاده هستند را نگه دارید. اگر تنها بخشی از یک کتابخانه را استفاده میکنید بهتر است به جای دانلود کل کتابخانه، آن قسمت را استخراج و به کار برید. بررسیهای دورهای همچنین باعث میشود کتابخانههایی که نسخه بروز شدهی آنها در دسترس قرار گرفته را دانلود و جایگزین کنید.
۲۹- برای ریفکتور کردن کدهای قدیمی از روشهای جدید استفاده کنید
هیچگاه مرتکب این اشتباه نشوید که همه کدهای قدیمی را بهیکباره ریفکتور کنید. این کار ممکن است شما را در مسیر بیبازگشتی از تداخلها قرار دهد. به جای این کار تنها قسمتهای فعلی کد را تغییر داده و به مرور زمان بخشهای دیگر را ریفکتور نمایید. همچنین قبل از شروع عملیات ریفکتورینگ یک صفحه، برایش تست بنویسید تا از بریک نشدن عملکردهای قبلی کد مطمئن شوید.
ترفند: این کتاب کلا شیوه ریفکتور کردن را وارد مرحله جدیدی کرده است. توصیه میکنیم حتما آن را مطالعه کنید.
۳۰- همیشه کد را بر روی دیوایسهای ردهپایین تست کنید
اگر میخواهید همچون یک حرفهای برنامههای اندروید را ساخته و تست کنید هیچگاه بر روی گوشیهای ردهبالا این کار را انجام ندهید. عموما ما بر روی گوشی ردهبالایمان کار تست برنامه را انجام میدهیم که سخت باید از آن بپرهیزید. این کار باعث مخفی شدن اشکالات برنامه به خاطر قدرت بالای دستگاه شما خواهد شد. دست بگذارید روی ارزانترین گوشیهای بازار و تست برنامه را بر روی آن انجام دهید. استفاده از گوشیهای سطحپایین اشکالات و نقاط ضعفی را نشان میدهد که پیش از آن مطلع نبودید. این کار همچنین باعث سازگاری اپلیکیشن شما بر روی طیف گستردهتری از دیوایسهای اندرویدی خواهد شد.
۳۱- بهترین سیستم را خریداری کنید
هیچگاه مرتکب اشتباه خرید یک سیستم سطحپایین و سروکله زدن روزمره با سرعت کم و تجربه بد کدنویسی نشوید. سعی کنید جهت برنامه نویسی اندروید از مک (بهتر از ویندوز) استفاده کنید. مکینتاش محیط ساده و پایداری بالاتری دارد. اگر تصمیم گرفتید مکبوک بخرید، سعی کنید مکبوکی با بهترین مشخصات سختافزاری خریداری کنید. مطمئن باشید هیچگاه از این تصمیم پیشمان نمیشوید.
مطلبی دیگر از این انتشارات
بهینه سازی سرعت gradle
مطلبی دیگر از این انتشارات
پیادهسازی Deferred DeepLinkها
مطلبی دیگر از این انتشارات
اپ من , روشنا را رایگان در مارکت های ایرانی ببینید! (آپدیت)