கடினமாக சம்பாதித்த Android புரோகிராமிங் அனுபவங்கள்

இந்த இடுகை, கென்ட் பெக் தனது நடைமுறை நடைமுறைகள் புத்தகத்தில் கூறுவது போல், “… நல்ல குறியீடு முக்கியமானது என்று ஒரு பலவீனமான முன்மாதிரியை அடிப்படையாகக் கொண்டது…”. ஆனால் சுத்தமான குறியீடு முக்கியமானது என்பதை நாம் அனைவரும் அறிவோம். கென்ட் அவ்வாறே செய்கிறார்.

கென்ட் பெக்

ஒரு குழப்பத்தை சொந்தமாக்குவதற்கான மொத்த செலவு

சில ஆண்டுகளுக்கு முன்பு, இந்தியாவில் ஒரு ஆரம்ப கட்ட தொடக்கத்தில் பணிபுரியும் ஒவ்வொரு அப்பாவி ஆண்ட்ராய்டு டெவலப்பரைப் போலவே, நான் நிஜ உலக பிரச்சினைகளை "ஹேக்" செய்ய முயற்சித்தேன், "தொழில்துறையை சீர்குலைக்க" மற்றும் "பிரபஞ்சத்தில் ஒரு பல்" வைக்க. நல்ல மென்பொருள் வடிவமைப்பு அல்லது கட்டிடக்கலை பற்றி உலகில் அக்கறை இல்லாமல், ஒரு ஆண்ட்ராய்டு பயன்பாட்டை உருவாக்க குறியீடு எழுதத் தொடங்கினேன், அது ஒரு நாள் இந்தியாவின் மிகப்பெரிய நுகர்வோர் ஹீத்-பராமரிப்பு பயன்பாடுகளில் ஒன்றாக மாறும்.

ஸ்பிரிண்டிற்குப் பிறகு ஸ்பிரிண்ட், ஹேக்கிற்குப் பிறகு ஹேக், அம்சங்கள் ஒரு பைத்தியம் அவசரத்தில் கட்டப்பட்டன. கட்ட. அளவீட்டு. அறிய. சந்தைக்கு நேரம் முக்கியமானது மற்றும் ஒவ்வொரு நாளும் முக்கியமானது. நேரம் பறந்தது, ஒவ்வொரு 6 மாதங்களுக்கும் 1 குழு உறுப்பினர் என்ற விகிதத்தில் நாங்கள் வளர்ந்து வருகிறோம், மேலும் பயன்பாடு மில்லியன் பதிவிறக்கங்களை எட்டியது.

எங்கள் பயன்பாட்டின் Google Play ஸ்டோர் பதிவிறக்கங்கள் மற்றும் மதிப்பீடு.

இந்த நேரத்தில், பயன்பாடு அற்பமானதாக இருப்பதை நிறுத்தியது, அது ஒரு விஷயம் என்றால் கூட, அது பல குத்தகைதாரர் வாடிக்கையாளராகிவிட்டது. நாங்கள் இப்போது தொடங்கும்போது மணிநேரம் எடுக்கும் அம்சங்கள் நாட்கள், சில நேரங்களில் வாரங்கள் எடுத்தன. ஒவ்வொரு செயல்பாடும் 1000+ ஆரவாரமான குறியீடாக இருந்தது, ஏனெனில் அண்ட்ராய்டு இயல்பாகவே கவலைகளைப் பிரிப்பதைப் பற்றி அதிகம் கவலைப்படுவதில்லை. ஒரு குழப்பத்தை வைத்திருப்பதற்கான மொத்த செலவு எங்களை கணிசமாகக் குறைத்தது.

Android புதிர்

குறியீடு அசிங்கமாக இருந்தது, செயல்பாடுகள் அனைத்தையும் நிர்வகித்தன:

  • நூல்
  • I / O.
  • கணக்கீடு
  • தளவமைப்புகள்
  • மாற்றங்களை உள்ளமைக்கவும்
  • என்ன இல்லை

எல்லாவற்றிற்கும் மேலாக, செயல்பாடுகள் கட்டுப்பாட்டாளர்கள், இல்லையா? அல்லது அவை காட்சிகள்? எனக்கு இனி தெரியாது.

எம்.வி.சி.

வானத்தில் கிராண்ட் மறுவடிவமைப்பு

எங்காவது குறியீட்டின் வரியை மாற்றுவது வேறு எங்காவது உடைக்காத வகையில் பயன்பாட்டை வடிவமைக்க வேண்டியிருந்தது. பயன்பாடு மாமா பாப் சொல்வது போல், “வலுவான ஆனால் கடினமானதல்ல, நெகிழ்வானது ஆனால் உடையக்கூடியது அல்ல”.

ராபர்ட் “மாமா பாப்” மார்ட்டின்

எனது வழிகாட்டியும் நண்பருமான காஷிஃப் ரசாக்கி அணியில் சேர்ந்து குழப்பத்தைத் தணிக்க எங்களுக்கு உதவியது. பெரிய மறுவடிவமைப்பு ஒருபோதும் நடக்கவில்லை, ஆனால் நாங்கள் எங்கள் குறியீட்டிலிருந்து நரகத்தை மறுசீரமைத்தோம்:

  • நாங்கள் ஒரு “சேவை” லேயரைச் சேர்த்துள்ளோம், மேலும் UI அல்லாத அனைத்து குறியீடுகளையும் அவற்றில் நகர்த்தினோம், ஒரு நேரத்தில் ஒரு சேவை.
  • நாங்கள் AsyncTasks ஐத் துண்டித்து, கொய்யாவைப் பயன்படுத்தி கேட்கக்கூடிய எதிர்காலத்திற்குச் சென்றோம்.
  • OkHttp க்காக AsyncHttpClient ஐ வெளியேற்றினோம்.
  • ஆனால் மிக முக்கியமாக, நாங்கள் நிறைய படிக்க ஆரம்பித்தோம்: சுத்தமான குறியீடு, சுத்தமான கட்டிடக்கலை, SOLID, DRY, தி ப்ராக்மாடிக் புரோகிராமர், ஜாவா கான்கரன்சி இன் பிராக்டிஸ், டொமைன் டிரைவன் டிசைன் போன்றவை.

எங்கள் முயற்சிகளின் பலன்களை விரைவில் காண ஆரம்பித்தோம். உற்பத்தித்திறன் அதிகரித்தது, நாங்கள் விஷயங்களை வேகமாக எழுதிக்கொண்டிருந்தோம், எல்லோரும் மகிழ்ச்சியாக இருந்தார்கள்.

எங்கள் பயன்பாடுகளை நாங்கள் ஒன்றிணைக்கும் வரை மற்றும் எல்லா நரகங்களும் இழக்கும் வரை இது இருந்தது. கூடுதல் சேவை அடுக்கு இருப்பதால் அதை குறைக்கவில்லை.

சுத்தமான குறியீட்டின் கலை

சுத்தமான கட்டிடக்கலை குறித்த மாமா பாப்பின் வீடியோக்களை பலமுறை பார்த்ததும், ஆண்ட்ராய்டு பயன்பாட்டு கட்டமைப்பில் நிறையப் படித்ததும், எம்விபி வடிவமைப்பு முறை மற்றும் ஆர்எக்ஸ்ஜாவாவுடன் பரிசோதனை செய்ய முடிவு செய்தேன்.

சோதனைக்கு சில நாட்கள், நாங்கள் RxJava க்கு மாறி, சுத்தமான கட்டிடக்கலையைப் பயன்படுத்தி MVP ஐ செயல்படுத்த முடிவு செய்தோம். இடைமுகங்கள் மற்றும் பிரிக்கப்பட்ட கவலைகளுக்குப் பின்னால் எல்லா அடுக்குகளையும் இணைத்துள்ளோம் என்பதை உறுதிசெய்துள்ளோம்.

  • வழக்கமாக ஒரு துண்டால் செயல்படுத்தப்படும் காட்சி, தொகுப்பாளருக்கு ஒரு குறிப்பைக் கொண்டுள்ளது. ஒவ்வொரு முறையும் ஒரு இடைமுக நடவடிக்கை இருக்கும்போது, ​​தொகுப்பாளரிடமிருந்து ஒரு முறையை அழைப்பதே பார்வை செய்யும் ஒரே விஷயம்.
  • காட்சி மற்றும் மாடலுக்கு இடையில் நடுத்தர மனிதராக செயல்பட தொகுப்பாளர் பொறுப்பு. இது மாதிரியிலிருந்து தரவை மீட்டெடுக்கிறது மற்றும் அதை பார்வைக்கு வடிவமைக்கிறது. வழக்கமான எம்.வி.சி போலல்லாமல், நீங்கள் பார்வையுடன் தொடர்பு கொள்ளும்போது என்ன நடக்கும் என்பதையும் இது தீர்மானிக்கிறது.
  • மாடல் என்பது டொமைன் லேயர் அல்லது வணிக தர்க்கத்தின் நுழைவாயில் மட்டுமே.
  • இன்டராக்டர் I / O உடன் செயல்படுகிறது மற்றும் பார்வையில் காண்பிக்கப்பட வேண்டிய தரவை வழங்குபவர்.

முற்றிலும் புதிய செயலாக்கத்துடன் ஒரு அடுக்கை மாற்றுவது இப்போது மிகவும் எளிதானது. Android பயன்பாட்டு வளர்ச்சியின் ஒரு பகுதியும் பகுதியுமான UI ஐ மறுவடிவமைப்பு செய்வது மிகவும் எளிதாகிவிட்டது. விஷயங்கள் இறுதியாக உடைக்காமல் வேகமாக நகரும்.

பாய் சாரணர் விதி

குறியீட்டை நன்றாக எழுத இது போதாது, காலப்போக்கில் குறியீட்டை சுத்தமாக வைத்திருக்க வேண்டும். வாழ்க்கையின் உண்மை என்னவென்றால், மென்பொருளுக்கு என்ட்ரோபிக்கு ஒரு போக்கு உள்ளது. நாம் அனைவரும் காலப்போக்கில் குறியீடு அழுகுவதையும், சீரழிவதையும் பார்த்திருக்கிறோம், எனவே எளிய சிறுவன் சாரணர் விதியை நாங்கள் கடன் வாங்கினோம்: “நீங்கள் கண்டுபிடித்ததை விட முகாம் மைதானத்தை சுத்தமாக விடுங்கள்.”

நாம் அனைவரும் எங்கள் குறியீட்டைச் சரிபார்த்தால், அதைச் சரிபார்க்கும்போது இருந்ததை விட சற்று சுத்தமாக இருந்தால், குறியீட்டை அழுக முடியாது. துப்புரவு பெரியதாக இருக்க வேண்டியதில்லை. ஒரு மாறி பெயரை சிறப்பாக மாற்றவும், கொஞ்சம் பெரியதாக இருக்கும் ஒரு செயல்பாட்டை உடைக்கவும், ஒரு சிறிய பிட் நகலை அகற்றவும், அறிக்கை இருந்தால் ஒரு கலவையை சுத்தம் செய்யவும்.

முடிவுரை

அளவிடக்கூடிய பயன்பாட்டை உருவாக்குவதற்கான எங்கள் வழி “சரியானது” அல்ல, இந்த இடுகையுடன் நீங்கள் உடன்படவில்லை. எல்லாவற்றிற்கும் மேலாக, அனைத்து தற்காப்புக் கலைஞர்களும் சிறந்த தற்காப்புக் கலை அல்லது ஒரு சிறந்த நுட்பத்தைப் பற்றி உடன்படவில்லை;)

எம்விபியை நோக்கி பலவிதமான அணுகுமுறைகள் உள்ளன, மேலும் அதை ஆண்ட்ராய்டுடன் மாற்றியமைக்க நிறைய சுவாரஸ்யமான தீர்வுகள் உள்ளன. எங்களால் மறுக்க முடியாத ஒரு உண்மை என்னவென்றால், சுத்தமான குறியீடு முக்கியமானது, அதை நீங்கள் ஒரு கம்பளத்தின் கீழ் துடைக்க முடியாது.

இந்த இடுகை மாமா பாபின் சுத்தமான குறியீட்டிலிருந்து பெரிதும் கடன் வாங்குகிறது மற்றும் 2011 முதல் காஷிப்பின் டிராய்டிகான் பேச்சிலிருந்து தலைப்பைத் திருடுகிறது.

சுத்தமான குறியீடு உங்களுக்கு முக்கியம் என்றால், அரட்டை அடிப்போம் :) ட்விட்டர்: ar_arunsasi LinkedIn: https://www.linkedin.com/in/arunsasidharan

இந்த இடுகை உங்களுக்கு பிடித்திருந்தால், தயவுசெய்து சிறிய இதயத்தை அடியுங்கள்! ❤