شروع صده ۱۴۰۰ با فرصتی برای انتقال دانش و تجربه به برنامه نویسان اپلیکیشنها و گوشیهای هوشمند مقارن شد. لذا نهایت تلاشم را خواهم کرد تا به بهترین وجه ممکن از فرصت ایجاد شده استفاده نمایم. در ابتدا لازم است روشن کنم که به عنوان یک برنامه نویس فول استک با داشتن تجربه در زمینه زیرساختهای نرم افزاری و تولید اپلیکیشن اندروید، این افتخار را دارم که در این پست در خدمت شما باشم.
" برنامه نویس فول استک " به برنامه نویسانی گفته میشود که توانایی کار در هر دو محیط backend و frontend نرم افزار را دارند.
در ماه گذشته شاهد تحریم شدن ابزار crashlytics از زیرمجموعه google firebase بودیم. تا پیش از این تحریم، قالب اپلیکیشنها به منظور ثبت و نگهداری خطاهای خود از این ابزار استفاده میکردند. منظور از خطاها آن دسته از ایراداتی بود که روی گوشی کاربران ایجاد میشد و باعث میشد که نسخهای خاص از سیستم عامل یا گوشی هوشمند با سخت افزار خاص در اجرای بخشی از اپلیکیشن با مشکل مواجه شود. این دست از مشکلات به علت تعدد نسخ سیستم عامل و گوشیهای هوشمند، در زمان تولید اپلیکیشن قابل پیشبینی و رفع نیستند.
یکی از ویژگیهای جذاب کار برنامه نویسی در ایران، تحریم دورهای تکنولوژیهای پرکاربرد یا فیلترکردن این تکنولوژیها توسط دولت به علت کاربردهای دوگانه میباشد. این ویژگی جذاب سبب میشود که همواره کدهای شما دارای تغییر بماند و از یکنواختی و ثبات جلوگیری شود، به بیان دیگر همواره آدرنالین خون شما در سطح بالایی باقی میماند و زندگی کاری پرهیجانی دارید!
لازم به ذکر است که این تحریم در دولت تازه روی کار آمده بایدن اتفاق افتاد تا بار دیگر به ما ثابت کند که سیاست گوگل و شرکتهای بزرگ بر مبنای ریاست جمهوری و فرد تنظیم نمیگردد.
کرش چیست و چرا برنامه نویسان موبایل نیاز دارند تا آنها را ثبت کنند؟
زمانی که یک اپلیکیشن گوشی هوشمند اجرا میشود، به فراخور هر گوشی هوشمند، یک سری ایرادات exception ایجاد میشود. علت ایجاد این ایرادات معمولاً ارتقای نرم افزاری یا عدم وجود برخی dependecies (کتابخانه وابسته یا مرتبط) میباشد. همه این ایرادات باعث توقف اجرای اپلیکیشن نمیشوند، اما برخی از ایرادات مهم (critical) باعث میشوند تا فرآیند اجرا به کلی متوقف و اپلیکیشن از دسترس خارج شود که به این دسته از ایرادات crash (کرش) گفته میشود.
از آنجا که این کرشها معمولاً به صورت رندوم و با شرایط متفاوت ایجاد میشوند، لازم است که کلیه آنها در مرکزی گردآوری شود تا ایرادات پرتکرار رفع و همه کاربران فارغ از نسخه سیستم عامل یا سخت افزار گوشی بتوانند از اپلیکیشن ما استفاده کنند.
کاربرد crashlytics
crashlytics به عنوان مرجع ثبت کلیه کرشهای اپلیکیشن در برنامههای بزرگ استفاده میشد و داشبوردی در اختیار شما قرار میداد تا بتوانید در لحظه آمار کلیه crash های اپلیکیشن خود را داشته باشید و نسبت به رفع آن ایراد اقدام کنید. با تحریم صورت گرفته انتقال کرشها از داخل ایران به سرور crashlytics مختل شد و تنها در صورتی که کاربران از vpn استفاده میکردند خطاها انتقال داده میشد. این موضوع باعث بهت و شوکی عظیم به تیمهای برنامه نویسی موبایل شد و ارائه راهکار جایگزین در دستور کار قرار گرفت.
sentry راهکار جایگزین
sentry یک پلتفرم ثبت رویداد، مانیتور و بهبود عملکرد اپلیکیشنهاست که برنامه نویسان را قادر میسازد تا با جزییاتی دقیق، خطاها و باگهای اپلیکیشن خود را مشاهده کرده و نسبت به رفع آنها اقدام کنند. این پلتفرم با پوشش طیف وسیعی از زبانهای برنامه نویسی و نمایش دقیق ایرادات، به سرعت در میان برنامه نویسان backend و frontend همه گیر شده و بطور وسیعی مورد استفاده قرار میگرفت. تا قبل از تحریم crashlytics کمتر کسی از پتانسیل crash report پلتفرم sentry استفاده میکرد اما با مورد تحریم قرارگرفتن crashlytics، این ویژگی در مدار استفاده برنامه نویسان قرار گرفت.
چند نمونه از نمایش خطاهای backend در PHP
نمونه نمایش android crash
در این بخش نمایی از life cycle برنامه میبینید که همین دلیل صرفا برای استفاده از sentry کافی است
لازم به ذکر است که پلتفرم sentry cloud در ایران در دسترس نمیباشد و شما امکان استفاده از پلتفرم hosted را دارید
دیدگاهها
پیوند ثابتافزودن دیدگاه جدید