গুগল হোম ক্র্যাশের # 1 কারণ 33% কমিয়েছে

Google Home অ্যাপটি আপনার Google Home, Google Nest এবং Chromecast ডিভাইসগুলি সেট-আপ, পরিচালনা এবং নিয়ন্ত্রণ করতে সাহায্য করে—এছাড়া লাইট, ক্যামেরা, থার্মোস্ট্যাট এবং আরও অনেক কিছু সংযুক্ত হোম প্রোডাক্ট।

গুগল হোম অ্যাপের পিছনে থাকা ইঞ্জিনিয়ারিং টিম ইঞ্জিনিয়ারিং উত্পাদনশীলতা এবং বিকাশকারীদের সুখ বাড়াতে কোটলিন এবং অ্যান্ড্রয়েড জেটপ্যাক লাইব্রেরি ব্যবহার করে উপকৃত হয়।

তারা কি করেছিল

Google Home টিম তাদের কোডবেসে কোটলিনকে অন্তর্ভুক্ত করার সিদ্ধান্ত নিয়েছে যাতে প্রোগ্রামিংকে আরও বেশি উৎপাদনশীল করা যায় এবং আধুনিক ভাষার বৈশিষ্ট্য যেমন var/val, স্মার্ট কাস্ট, coroutines এবং আরও অনেক কিছু ব্যবহার করা যায়। জুন 2020 পর্যন্ত, কোডবেসের প্রায় 30% কোটলিনে লেখা হয়েছে , এবং কোটলিনের বিকাশকে সকল নতুন বৈশিষ্ট্যের জন্য উৎসাহিত করা হয়েছে।

দলটি ডেভেলপারের বেগ উন্নত করতে, বয়লারপ্লেট কোড রক্ষণাবেক্ষণের প্রয়োজনীয়তা কমাতে এবং প্রয়োজনীয় পরিমাণ কোড কমাতে জেটপ্যাক লাইব্রেরিগুলিও গ্রহণ করেছে। জেটপ্যাক লাইব্রেরিগুলি তাদের কোডকে আরও পরীক্ষাযোগ্য করে তুলতে সাহায্য করেছে, যেহেতু স্পষ্ট কার্যকরী সীমানা এবং API রয়েছে।

ফলাফল

"কার্যকারিতা এবং কম কোড লেখা যা বেশি করে তা হল 'গতি' বৃদ্ধি যা আপনি কোটলিনের সাথে অর্জন করতে পারেন।" - জ্যারেড বারোজ, গুগল হোমে সফটওয়্যার ইঞ্জিনিয়ার

কোটলিনে স্যুইচ করার ফলে বিদ্যমান জাভা কোডের সমতুল্যের তুলনায় প্রয়োজনীয় কোডের পরিমাণ হ্রাস পেয়েছে। একটি উদাহরণ হ'ল ডেটা ক্লাস এবং পার্সেলাইজ প্লাগইন ব্যবহার: একটি ক্লাস যা জাভাতে 126টি হাতে লেখা লাইন ছিল এখন কোটলিনে মাত্র 23 লাইনে উপস্থাপন করা যেতে পারে - একটি 80% হ্রাস। উপরন্তু, সমতা এবং পার্সেলাইজিং পদ্ধতিগুলি স্বয়ংক্রিয়ভাবে তৈরি এবং আপ টু ডেট রাখা যেতে পারে। অনেক নেস্টেড লুপ এবং ফিল্টারিং চেকও কোটলিনে উপলব্ধ কার্যকরী পদ্ধতি ব্যবহার করে সরলীকৃত করা হয়েছিল।

যেহেতু কোটলিন শূন্যতাকে ভাষার একটি অংশ করে তুলতে পারে, জটিল পরিস্থিতিগুলি এড়ানো যেতে পারে, যেমন জাভাতে শূন্যতা টীকাগুলির অসামঞ্জস্যপূর্ণ ব্যবহার একটি মিস বাগ হতে পারে। যেহেতু দলটি Kotlin-এর সাথে নতুন বৈশিষ্ট্যগুলি তৈরি করতে স্থানান্তরিত হতে শুরু করেছে, তারা NullPointerExceptions-এ 33% হ্রাস পেয়েছে। যেহেতু এটি Google Play Console-এ সবচেয়ে সাধারণ ক্র্যাশের ধরন , তাই এগুলি কমানোর ফলে ব্যবহারকারীর অভিজ্ঞতা নাটকীয়ভাবে উন্নত হয়৷

Google Home-এর মতো একটি বৃহৎ, পরিপক্ক অ্যাপ-এর সাথে এক মিলিয়ন লাইনের কোড রয়েছে—এটি ধীরে ধীরে জেটপ্যাক লাইব্রেরি যোগ করতে সক্ষম হওয়া সহায়ক। তাদের অন্তর্ভুক্ত করা দলটিকে কাস্টম উপযোগী সমাধানগুলিকে একত্রিত করতে এবং প্রতিস্থাপন করার অনুমতি দেয়, কখনও কখনও এমনকি একটি একক লাইব্রেরি দিয়েও৷ যেহেতু জেটপ্যাক লাইব্রেরিগুলি ইঞ্জিনিয়ারদের সর্বোত্তম অনুশীলনগুলি অনুসরণ করতে এবং কম শব্দযুক্ত হতে সাহায্য করতে পারে (উদাহরণস্বরূপ, রুম বা কন্সট্রাইন্ট লেআউট ব্যবহার করে), পাঠযোগ্যতাও বৃদ্ধি পেয়েছে। দলটি ভিউমডেল এবং লাইভডেটা সহ অনেক নতুন জেটপ্যাক লাইব্রেরি 'অবশ্যই' বিবেচনা করে, যে দুটিই গুগল হোম কোডবেসে ব্যাপকভাবে ব্যবহৃত হয়।

Google Home অ্যাপ টিম Kotlin coroutines-এর সাথে Jetpack KTX ইন্টিগ্রেশন বিশেষভাবে সহায়ক বলে মনে করেছে। দলটি এখন ViewModel- এর মতো জীবনচক্র-সচেতন উপাদানগুলির সাথে কোরোটিনগুলি সংযুক্ত করে জটিল অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং বাগগুলি এড়াতে সক্ষম।

জাভা হল ওরাকল এবং/অথবা এর সহযোগীদের একটি নিবন্ধিত ট্রেডমার্ক।

এবার শুরু করা যাক

কোটলিনে অ্যান্ড্রয়েড অ্যাপ লেখা এবং অ্যান্ড্রয়েড জেটপ্যাক লাইব্রেরি ব্যবহার করার বিষয়ে আরও জানুন।