این مطلب ترجمه آزادی است از مطلب
هنوز آن روزها در سال ۲۰۱۴ را به خاطر میآورم. روزهایی که تصمیم گرفتم برنامهنویسی اندروید را شروع کنم که یکی از بهترین تصمیمهای زندگیام بود. از آن موقع حدود دو سال و نیم گذشته و من بخت این را داشتم که خیلی چیزها را یاد بگیرم. وقتی شروع به یادگیری کردم مربی یا کسی را نداشتم که به من یاد بدهد چطور کارها را به شیوه درست انجام بدهم. خیلی اشتباه مرتکب شدم که بعدها با صرف وقت زیاد آنها را تصحیح کردم.
بعد از یک سال و نیم کار کردن به این شیوه این شانس را داشتم که با تیمی از بسیار با استعداد و با تجربه از برنامهنویسان و توسعهدهندگان اندروید کار کنم که کمکم کردند تا کارها را به شکل بسیار بهتری انجام دهم. هر دوی این مراحل کمک کردند تا بیاموزم که چه کارهایی باید انجام بدهم و مهمتر از آن، چه کارهایی نباید انجام بدهم.
در این مطلب میخواهم الماسهایی را که در این دوره جمعآوردم با شما به اشتراک بگذارم. این کار میتواند به دیگران کمک کند تا سریعتر بتوانند شروع کنند و اشتباهاتی که من مرتکب شدم را تکرار نکنند.
۱- چرخ را دوباره اختراع نکن
در ابتدای کار به اشتباه فکر میکردم که نباید از کتابخانههای کدباز استفاده کنم. هر چیزی که لازم داشتم خودم مینوشتم. واقعا تصمیم فاجعهباری است. اگر در برنامهنویسی به مشکلی برخورد کردهای که قبلا کس دیگری آن را به شکل خوبی حل کرده است چرا از آن استفاده نکنی؟ با این کار کلی زمان صرفهجویی میکنی.
روی منطق اصلی برنامه تمرکز کن. اگر نیاز داری به فراخوانی اطلاعات از اینترنت، لازم نیست خودت Retrofit را بسازی.
جایزه: Android Arsenal تقریبا فهرست کاملی از همه کتابخانههای اندروید دارد. حتما سری به این سایت بزنید.
۲- کتابخانهها را هوشمندانه انتخاب کن
کتابخانههای خیلی خیلی زیادی در گیتهاب است که همه هم کدباز هستند و استفاده از آنها مجاز است. ولی خیلی هیجان زده نشوید! احتیاط کنید و کورکورانه از آنها استفاده نکنید. تعداد ستارههای کتابخانه را چک کنید، هر چه بیشتر بهتر. بررسی کنید ببینید نویسنده این کتابخانه، کارهای مطرح دیگری هم انجام داده است یا نه. مشکلات (issue) های آن را چک کنید، هم آنهایی که بسته شدهاند و هم آنهایی که هنوز باز هستند. اگر وقت کافی دارید، شیرجه بزنید توی کدها و خودتان ببینید که آیا ارزشش را دارد که از آن استفاده کنید یا نه.
توضیح مترجم: حتما حواستان به مجوزهای آنها هم باشد. هر کتابخانه کدبازی را نمیتوان در برنامههای تجاری و کدبسته استفاده کرد!
۳- بنشین و یک فنجان قهوه بخور و کدهای بیشتری را مطالعه کن
ما بیشتر وقتمان به خواندن کدهای دیگران میگذرد تا نوشتن کد خودمان. اگر این کار را نمیکنی حتما همین حالا شروع کن. هر کدی که الان میتوانی بنویسی به خاطر این است که روزی روزگاری آن را در جایی خواندهای و یاد گرفتهای. تنها راه رشد کردن و یاد گرفتن، آموختن از کارهای دیگران است.
یکی از خوبیهای اندروید این است که کدباز است. بپر توی کد و ببین چطور آن را پیادهسازی کردهاند. هزاران کتابخانه کدباز در گیتهاب است. یکی را انتخاب کن و ببین چطور آن را پیادهسازی کردهاند.
جایزه: اینجا فهرستی مدیریت شده از بهترین کتابخانههای اندروید است و اینجا هم فهرستی از تقریبا همه کتابخانههای کدباز اندروید. قابلی نداشت!
۴- به خاطر خدا استانداردهای کدنویسی مناسبی را رعایت کن
اگر کدنویسی نوشتن باشد، استانداردهای کدنویسی همان دستخط است. همانطور که تو کدهای دیگران را میخوانی، دیگران هم کدهای تو را میخوانند. دوست نداری که در این مواقع شرمنده بشوی؟ اگر در یک شرکت یا در یک سازمان کار میکنی و با توسعهدهندگان دیگر کار میکنی، مراقب استانداردهای کدنویسی باش.
کدی کوتاه، تمیز و خواندنی بنویس که خودت و دیگران موقعی که آن را میخوانند از آن لذت ببرند. کد باید مثل یک داستان خواندنی و جذاب باشد.
«کد مثل شعر است»
اگر کدی نوشتی و همکارت چند روز با تو حرف نزد اعتراض نکن!
جایزه: برای شروع اینجا و اینجا را بخوانید.
۵- به ProGuard احتیاج داری، واقعا احتیاج داری
هرگر هرگز هرگز برنامه را بدون استفاده از ProGuard در گوگلپلی (و کافهبازار و سایر بازارهای مشابه) منتشر نکن. پروگارد نه تنها برنامه شما را کوچکتر میکند، بلکه آن را به هم ریخته (Obfuscate) هم میکند که باعث میشود فهمیدن، کپیکردن و تغییر آن با مهندسی معکوس سختتر شود.
پروگارد کاملا رایگان است و در بسته اندروید SDK وجود دارد و هیچ دلیلی ندارید که از آن استفاده نکنید. من خیلیها را میبینم که برنامههایشان را بدون استفاده از پروگارد منتشر میکنند و یک هکر نه چندان حرفهای میتواند برنامهشان را در کمتر از چند ساعت تغییر دهد.
نکته: اگر امنیت خیلی خیلی برای برنامه شما حیاتی است میتوانید با صرف کمی هزینه به جای پروگارد از DexGuard استفاده کنید.
[به علت طولانی بودن مطلب رو در سه قسمت منتشر میکنم. اگر نکاتی به ذهن شما میرسد که فکر میکنید برای دیگران ممکن است مفید باشد، آنها را برای من و سایر خوانندگان اسمارتلب بنویسید]
چقدر عالی بود
یک دنیا تشکر
با سلام واقعا عالی بود ممنون
من خیلی هزینه کردم برای برنامه نویسی اندروید یاد بگیرم.اما هنوز کسی پیدا نکردم درست و حسابی آموزش بده .سایتتون را دیدم .عالی بود .امیدوارم همیشه موفق باشید.بازهم ممنونم.خیلی زحمت کشیدید.واقعا عااااااااااااااااااااالی هست
خوشحالم که آموزشها براتون مفید بوده
سلام مهندس . یه دنیا ممنون ایشاالا که موفق باشی همیشه
با سلام عالی عالی عالی فقط سلسله مراتب آموزش مشخص نیست و یکم پیدا کردن مطالب قبلی و بعدی سخته
قبول دارم پیدا کردن مطالب کمی سخت شده. انشالله یه فکری میکنم براش
بسیار مطلب خوب و عالی بود ممنون از ترجمه
خداقوت .
سلام جناب مهندس بهزادیان نژاد ممنون از سایت خوبتون .
این مطلب رو خوندم خیلی ضروری و مهمه . بنده همین مساله برام بوجود اومده .
دیتابیس اپ من برام مهمه و اگ بتونن بیرون بکشن میرن ازش میسازن. حالا من پروگارد کردنو بلد نیسم . آموزشی چیزی هست ک بتونم یادبگیرم ؟ ویدیو و نمونه کد که راحت باشه ..
ممنون میشم راهنمایی کنین
سلام. به زودی مطلبی درباره پروگارد مینویسم.
بله ممنون .
لطفا سورسی ویدیویی یه چیزی که تمام زوایا رو مهندسی کرده باشه و امنیتی خوب باشه .
ممنون که جواب ما آماتور ها رو میدین .
سپاس فراوان
عالی
سلام من شما رو خیلی تحسین میکنم .برای یادگیری میخوام تو یه پروژه با شما همکاری کنم .کاملا هم اشنای دارم با کار تیمی کار با سیستم گیت و سایت ترلو و برنامه نویسی خوبی هم دارم فقط میخوام با معماری های جدید اشنا بشم و یاد بگیرم ازتون چون حرفه ای نیستم
سلام خوبین اقای بهزادیان نژاد؟
من مهندس نرم افزارم اما میخوام برنا مه نویسی رو حرفه ای یاد بگیرم .ینی با برنامه نویسی اشناهستم اما حرفه ای نیسیتم .خواستم در زمینه برنامه نویسی اندروید کمکم کنید یاد بگیرم حرفه ای خودم برنامه نویسی کنم .ممنونم
خوشحال میشم بتونم کمک کنم. ایمیل من اینفو در اسمارتلب نقطه ir.
https://blog.aritraroy.in/what-my-2-years-of-android-development-have-taught-me-the-hard-way-52b495ba5c51
حاجی کردن ازتون
البته من با اجازه مطلب ایشون رو ترجمه کردم و اول مطلب هم اشاره کردم 🙂
البته dexguard کمی هزینه نمی خواد، با نمایندگی که در ایران هم زده، فکر کنم سالانه مبلغی حدود ۸ میلیون تومان هزینه دریافت می کنه.