Facebook Pixel
Searching...
മലയാളം
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Clean Code

Clean Code

A Handbook of Agile Software Craftsmanship
എഴുതിയത് Robert C. Martin 2007 464 പേജുകൾ
4.37
22k+ റേറ്റിംഗുകൾ
ശ്രദ്ധിക്കുക
Listen to Summary

പ്രധാന നിർദ്ദേശങ്ങൾ

1. വായനാസൗകര്യം ഉറപ്പാക്കുക

കോഡ് ഗുണമേന്മയുടെ ഏകമായ അളവുകൂടി: WTFs/മിനിറ്റ്

വായനാസൗകര്യം പ്രധാനമാണ്. ശുദ്ധമായ കോഡ് മറ്റ് ഡെവലപ്പർമാർക്ക് എളുപ്പത്തിൽ മനസ്സിലാക്കാവുന്ന വിധത്തിൽ എഴുതണം. ഇത് ലളിതവും, ആകർഷകവുമായിരിക്കണം, കൂടാതെ അക്രമണങ്ങൾ ഇല്ലാതിരിക്കണം. വിശദമായ കമന്റുകൾ ആവശ്യമില്ലാതെ, അതിന്റെ ഉദ്ദേശ്യം വ്യക്തമായി പ്രകടിപ്പിക്കുന്ന കോഡ് എഴുതാൻ ശ്രമിക്കുക. അർത്ഥമുള്ള വ്യത്യാസങ്ങളും ഫംഗ്ഷൻ നാമങ്ങളും ഉപയോഗിക്കുക, ഫംഗ്ഷനുകൾ ചെറുതും കേന്ദ്രീകൃതവുമായിരിക്കണം, കൂടാതെ കോഡ് തർക്കരഹിതമായി ക്രമീകരിക്കുക.

പരിപാലനക്ഷമത വികസനത്തിന് സഹായിക്കുന്നു. മാറ്റാൻ ബുദ്ധിമുട്ടുള്ള കോഡ് ഒരു ബാധ്യതയാകുന്നു. നിങ്ങളുടെ കോഡ് മാറ്റങ്ങൾക്കനുസൃതമായി ക്രമീകരിക്കാവുന്ന വിധത്തിൽ ലവലവായും മോഡുലാർ ആയിരിക്കണം. DRY (Do Not Repeat Yourself) എന്നതുപോലുള്ള തത്വങ്ങൾ പിന്തുടർന്ന്, loosely coupled, highly cohesive systems സൃഷ്ടിക്കുക. പെരുമാറ്റം മാറ്റാതെ കോഡ് ഘടന മെച്ചപ്പെടുത്താൻ ക്രൂരമായി പുനഃസംരചന നടത്തുക.

ശുദ്ധമായ കോഡ് ലാഭം നൽകുന്നു. ശുദ്ധമായ കോഡ് എഴുതാൻ കൂടുതൽ upfront ശ്രമം ആവശ്യമായിട്ടുണ്ടെങ്കിലും, ഇത് ദീർഘകാലത്ത് വലിയ സമയം, തലവേദനകൾ എന്നിവയെ രക്ഷിക്കുന്നു. ശുദ്ധമായ കോഡ് ഡിബഗ് ചെയ്യാൻ, വിപുലീകരിക്കാൻ, പരിപാലിക്കാൻ എളുപ്പമാണ്. ഇത് ഡെവലപ്പർമാർക്ക് കൂടുതൽ കാര്യക്ഷമമായി പ്രവർത്തിക്കാൻ അനുവദിക്കുന്നു, കൂടാതെ മാറ്റങ്ങൾക്കിടയിൽ ബഗുകൾ ഉണ്ടാകാനുള്ള അപകടം കുറയ്ക്കുന്നു. ശുദ്ധമായ കോഡ് നിങ്ങളുടെ വികസന പ്രാക്ടീസിന്റെ ഒരു പ്രധാന ഭാഗമാക്കുക.

2. അർത്ഥമുള്ള നാമവ്യവസ്ഥകൾ പിന്തുടരുക

ഒരു വ്യത്യാസത്തിന്റെ, ഫംഗ്ഷന്റെ, അല്ലെങ്കിൽ ക്ലാസിന്റെ പേര് എല്ലാ വലിയ ചോദ്യങ്ങൾക്കും ഉത്തരം നൽകണം. ഇത് എങ്ങനെ ഉപയോഗിക്കുന്നു, എന്താണ് ചെയ്യുന്നത്, എന്തുകൊണ്ടാണ് ഇത് ഉണ്ടാകുന്നത് എന്നിവ പറയണം.

ഉദ്ദേശ്യം വ്യക്തമാക്കുന്ന നാമങ്ങൾ ഉപയോഗിക്കുക. വ്യത്യാസങ്ങൾ, ഫംഗ്ഷനുകൾ, ക്ലാസുകൾ എന്നിവയുടെ ഉദ്ദേശ്യവും പെരുമാറ്റവും വ്യക്തമായി പ്രകടിപ്പിക്കുന്ന നാമങ്ങൾ തിരഞ്ഞെടുക്കുക. ഒറ്റ അക്ഷര നാമങ്ങൾ അല്ലെങ്കിൽ രഹസ്യ ചുരുക്കങ്ങൾ ഒഴിവാക്കുക. എളുപ്പത്തിൽ തിരയാൻ കഴിയുന്ന ഉച്ചാരണം ചെയ്യാവുന്ന നാമങ്ങൾ ഉപയോഗിക്കുക. ഉദാഹരണത്തിന്:

  • മോശം: d (ദിവസങ്ങളിൽ ചെലവഴിച്ച സമയം)
  • നല്ലത്: elapsedTimeInDays

സ്ഥിരതയും കൃത്യതയും ഉറപ്പാക്കുക. നിങ്ങളുടെ കോഡ്‌ബേസിൽ സ്ഥിരമായ നാമവ്യവസ്ഥകൾ ഉപയോഗിക്കുക. അംബിഗ്വിറ്റിയെ ഒഴിവാക്കാൻ കൃത്യമായിരിക്കണം - ഉദാഹരണത്തിന്, getActiveAccounts() എന്നതും getActiveAccountInfo() എന്നതും പോലുള്ള അർത്ഥമുള്ള വ്യത്യാസങ്ങൾ ഉപയോഗിക്കുക. മൂല്യം ഇല്ലാതെ ശബ്ദം കൂട്ടുന്ന എൻകോഡിംഗുകൾ അല്ലെങ്കിൽ പ്രിഫിക്സുകൾ ഒഴിവാക്കുക. ക്ലാസ് നാമങ്ങൾ നാമപദങ്ങൾ ആയിരിക്കണം, മെത്തഡ് നാമങ്ങൾ ക്രിയകൾ ആയിരിക്കണം.

നാമത്തിന്റെ നീളം പരിധിയുമായി പൊരുത്തപ്പെടണം. വലിയ പരിധിയുള്ള വ്യത്യാസങ്ങൾക്കും ഫംഗ്ഷനുകൾക്കും കൂടുതൽ വിവരണാത്മകമായ നീണ്ട നാമങ്ങൾ ഉപയോഗിക്കുക. ചെറു, പ്രാദേശിക പരിധികൾക്കായി ചെറു നാമങ്ങൾ അംഗീകരിക്കപ്പെടുന്നു. ഒരു നാമത്തിന്റെ നീളം അതിന്റെ ഉപയോഗ പരിധിയുമായി അനുപാതമായിരിക്കണം. നാമം ഉപയോഗിക്കുന്ന സാഹചര്യത്തിൽ വായനാസൗകര്യം, മനസ്സിലാക്കൽ എന്നിവയ്ക്ക് അനുസൃതമായി ഒപ്റ്റിമൈസ് ചെയ്യുക.

3. ഫംഗ്ഷനുകൾ ചെറുതും കേന്ദ്രീകൃതവുമായിരിക്കണം

ഫംഗ്ഷനുകൾ ഒരു കാര്യമാണ് ചെയ്യേണ്ടത്. അത് നന്നായി ചെയ്യണം. അത് മാത്രം ചെയ്യണം.

ചെറുതാണ് മനോഹരം. ഫംഗ്ഷനുകൾ ചെറുതായിരിക്കണം - സാധാരണയായി 5-10 വരികൾ നീളമുള്ളവ. അവ ഒരു സ്ക്രീനിൽ ഒതുക്കണം, ഉടൻ graspable ആയിരിക്കണം. നീണ്ട, സങ്കീർണ്ണമായ ഫംഗ്ഷനുകൾ എഴുതുന്നതിന് പകരം, നന്നായി നാമകരണം ചെയ്ത സഹായക ഫംഗ്ഷനുകളിലേക്ക് കോഡ് എടുക്കുക. ചെറുതായ ഫംഗ്ഷനുകൾ മനസ്സിലാക്കാൻ, പരീക്ഷിക്കാൻ, പരിപാലിക്കാൻ എളുപ്പമാണ്.

ഒരു കാര്യമാണ് നന്നായി ചെയ്യുക. ഓരോ ഫംഗ്ഷനും ഒരു ഏക, വ്യക്തമായ ഉദ്ദേശ്യം ഉണ്ടായിരിക്കണം. ഒരു ഫംഗ്ഷൻ നിരവധി കാര്യങ്ങൾ ചെയ്യുകയാണെങ്കിൽ, അവയെ വ്യത്യസ്ത ഫംഗ്ഷനുകളിലേക്ക് എടുക്കുക. ഒരു ഫംഗ്ഷൻ വളരെ അധികം ചെയ്യുന്നതിന്റെ അടയാളങ്ങൾ ഉൾപ്പെടുന്നു:

  • നിരവധി സങ്കലന തലങ്ങൾ
  • നിരവധി വിഭാഗങ്ങൾ അല്ലെങ്കിൽ കോഡ് ബ്ലോക്കുകൾ
  • നിരവധി പാരാമീറ്ററുകൾ

ഒരു സങ്കലന തലമുറ നിലനിർത്തുക. ഒരു ഫംഗ്ഷനിലെ പ്രസ്താവനകൾ എല്ലാം ഒരേ സങ്കലന തലത്തിൽ ആയിരിക്കണം. ഉയർന്ന തലത്തിലുള്ള തർക്കങ്ങൾ താഴ്ന്ന തലത്തിലുള്ള വിശദാംശങ്ങളുമായി മിശ്രിതമാക്കരുത്. താഴ്ന്ന തലത്തിലുള്ള പ്രവർത്തനങ്ങളെ വ്യത്യസ്ത ഫംഗ്ഷനുകളിലേക്ക് എടുക്കുക. ഇത് ഫംഗ്ഷനുകൾ കേന്ദ്രീകൃതവും ആശയപരമായി ലളിതവുമായിരിക്കുവാൻ വായനാസൗകര്യം മെച്ചപ്പെടുത്തുന്നു.

4. ശരിയായ ഫോർമാറ്റിംഗ്, ക്രമീകരണം പ്രായോഗികമാക്കുക

കോഡ് ഫോർമാറ്റിംഗ് ആശയവിനിമയത്തെക്കുറിച്ചാണ്, ആശയവിനിമയം പ്രൊഫഷണൽ ഡെവലപ്പറുടെ ആദ്യത്തെ ബിസിനസ്സ്.

സ്ഥിരമായ ഫോർമാറ്റിംഗ് പ്രധാനമാണ്. നിങ്ങളുടെ കോഡിൽ സ്ഥിരമായ ഇൻഡന്റേഷൻ, വരി ഇടവേളകൾ, ഇടവേളകൾ എന്നിവ ഉപയോഗിക്കുക. ഇത് വായനാസൗകര്യം മെച്ചപ്പെടുത്തുകയും മാനസികഭാരം കുറയ്ക്കുകയും ചെയ്യുന്നു. നിങ്ങളുടെ ടീമുമായി ഫോർമാറ്റിംഗ് മാനദണ്ഡങ്ങളിൽ സമ്മതിക്കുക, അവയെ നടപ്പിലാക്കാൻ സ്വയം പ്രവർത്തിക്കുന്ന ഉപകരണങ്ങൾ ഉപയോഗിക്കുക. പ്രധാന ഫോർമാറ്റിംഗ് മാർഗനിർദ്ദേശങ്ങൾ ഉൾപ്പെടുന്നു:

  • ശരിയായ ഇൻഡന്റേഷൻ
  • സ്ഥിരമായ ബ്രേസ് സ്ഥാനം
  • തർക്കരഹിതമായ വരി ഇടവേളകൾ
  • അനുയോജ്യമായ ശൂന്യസ്ഥലങ്ങൾ

കോഡ് തർക്കരഹിതമായി ക്രമീകരിക്കുക. ബന്ധപ്പെട്ട കോഡ് ഒന്നിച്ച് കൂട്ടുകയും ബന്ധപ്പെട്ട കോഡ് വേർതിരിക്കുകയും ചെയ്യുക. തർക്കരഹിതമായ ഭാഗങ്ങൾക്കിടയിൽ "പാരഗ്രാഫ്" ഇടവേളകൾ സൃഷ്ടിക്കാൻ ശൂന്യമായ വരികൾ ഉപയോഗിക്കുക. ബന്ധപ്പെട്ട ഫംഗ്ഷനുകൾ അടുത്തുള്ളവയാക്കുക. ഫയലുകൾ ഒരു ഏക ആശയം അല്ലെങ്കിൽ ഘടകത്തിൽ കേന്ദ്രീകൃതമായിരിക്കണം. അനുയോജ്യമായപ്പോൾ വലിയ ഫയലുകൾ ചെറുതും കേന്ദ്രീകൃതവുമായവയാക്കി വിഭജിക്കുക.

സ്റ്റാൻഡേർഡ് കൺവെൻഷനുകൾ പിന്തുടരുക. നിങ്ങളുടെ ഭാഷയും സമൂഹവും സംബന്ധിച്ച സ്റ്റാൻഡേർഡ് കൺവെൻഷനുകൾ പാലിക്കുക. ഇത് നിങ്ങളുടെ കോഡ് മറ്റ് ഡെവലപ്പർമാർക്ക് കൂടുതൽ പരിചിതവും ലഭ്യവുമായിരിക്കും. ഉദാഹരണത്തിന്, ജാവയിൽ:

  • ക്ലാസ് നാമങ്ങൾ PascalCase ഉപയോഗിക്കുന്നു
  • മെത്തഡ് നാമങ്ങൾ camelCase ഉപയോഗിക്കുന്നു
  • സ്ഥിരങ്ങൾ ALL_CAPS ഉപയോഗിക്കുന്നു

5. ആശ്രിതങ്ങളെ നിയന്ത്രിക്കുക, പുനരാവൃത്തി ഒഴിവാക്കുക

പുനരാവൃത്തി സോഫ്റ്റ്‌വെയറിൽ എല്ലാ ദോഷങ്ങളുടെ മൂലകമായിരിക്കാം.

പുനരാവൃത്തി ഒഴിവാക്കുക. പുനരാവൃതമായ കോഡ് ഒരു അഭ്യാസത്തിന്റെ നഷ്ടമായിരിക്കും. നിങ്ങൾ പുനരാവൃത്തി കാണുമ്പോൾ, പൊതുവായ കോഡ് ഒരു പുനരുപയോഗിക്കാവുന്ന ഫംഗ്ഷൻ അല്ലെങ്കിൽ ക്ലാസിലേക്ക് എടുക്കുക. ഇത് ലജിക് കേന്ദ്രിതമാക്കുകയും അസമാനമായ മാറ്റങ്ങളുടെ അപകടം കുറയ്ക്കുകയും ചെയ്യുന്നു. ശ്രദ്ധിക്കേണ്ട പുനരാവൃത്തി തരം:

  • സമാനമായ കോഡ് ബ്ലോക്കുകൾ
  • ചെറിയ വ്യത്യാസങ്ങളുള്ള സമാന ആൽഗോരിതങ്ങൾ
  • ആവർത്തിച്ച സ്വിച്ച്/കേസ് അല്ലെങ്കിൽ if/else ശൃംഖലകൾ

ആശ്രിതങ്ങളെ സൂക്ഷ്മമായി നിയന്ത്രിക്കുക. മോഡ്യൂളുകൾക്കിടയിലെ ആശ്രിതങ്ങൾ കുറയ്ക്കുക, ഇത് ബന്ധം കുറയ്ക്കുന്നു. കോഡ് കൂടുതൽ മോഡുലാർ, പരീക്ഷണയോഗ്യമായതാക്കാൻ ആശ്രിത ഇൻജക്ഷൻ, നിയന്ത്രണത്തിന്റെ മറുവശം എന്നിവ ഉപയോഗിക്കുക. ആശ്രിത ഇൻവേഴ്ഷൻ പ്രിൻസിപ്പിൾ പിന്തുടരുക - കൃത്യമായതിൽ ആശ്രിതമാകുക, കൃത്യമായതിൽ അല്ല. ഇത് നിങ്ങളുടെ കോഡ് കൂടുതൽ ലവലവായും മാറ്റാൻ എളുപ്പമായും ആകുന്നു.

കുറഞ്ഞ അറിവിന്റെ തത്വം ഉപയോഗിക്കുക. ഒരു മോഡ്യൂൾ അത് കൈകാര്യം ചെയ്യുന്ന വസ്തുക്കളുടെ ഉള്ളടക്കം അറിയേണ്ടതില്ല. ഇത് മോഡ്യൂളുകൾക്കിടയിലെ ബന്ധം കുറയ്ക്കുന്നു. ഉദാഹരണത്തിന്, ഡെമീറ്റർ നിയമം ഉപയോഗിക്കുക - ഒരു മെത്തഡ് മാത്രം വിളിക്കണം:

  • അതിന്റെ സ്വന്തം വസ്തു
  • പാരാമീറ്ററുകളായി കൈമാറിയ വസ്തുക്കൾ
  • അത് സൃഷ്ടിക്കുന്ന വസ്തുക്കൾ
  • അതിന്റെ നേരിട്ടുള്ള ഘടക വസ്തുക്കൾ

6. പിശകുകൾ സുഖകരമായി കൈകാര്യം ചെയ്യുക

പിശകുകൾ കൈകാര്യം ചെയ്യുന്നത് പ്രധാനമാണ്, എന്നാൽ അത് തർക്കത്തെ മറയ്ക്കുന്നുവെങ്കിൽ, അത് തെറ്റാണ്.

പിശക് കോഡുകൾക്കുപകരം വ്യത്യാസങ്ങൾ ഉപയോഗിക്കുക. വ്യത്യാസങ്ങൾ കൂടുതൽ ശുദ്ധമാണ്, കൂടാതെ നിങ്ങളുടെ കോഡിന്റെ പ്രധാന തർക്കത്തെ അക്രമിക്കുകയില്ല. അവ പിശക് കൈകാര്യം ചെയ്യലിനെ സന്തോഷകരമായ വഴിയിൽ നിന്ന് വേർതിരിക്കാൻ അനുവദിക്കുന്നു. വ്യത്യാസങ്ങൾ ഉപയോഗിക്കുമ്പോൾ:

  • വിവരപ്രദമായ പിശക് സന്ദേശങ്ങൾ സൃഷ്ടിക്കുക
  • വ്യത്യാസങ്ങളുമായി പശ്ചാത്തലവും നൽകുക
  • വിളിക്കാനുള്ള ആവശ്യങ്ങൾ അടിസ്ഥാനമാക്കിയുള്ള വ്യത്യാസ ക്ലാസുകൾ നിർവചിക്കുക

നല്ലത് തിരികെ നൽകരുത്. നന്നായി തിരികെ നൽകുന്നത് നുള്ള് പോയിന്റർ പിശകുകൾക്ക് നയിക്കുന്നു, കൂടാതെ നുള്ള് പരിശോധനകളാൽ കോഡ് അക്രമിക്കുന്നു. പകരം:

  • പട്ടികകൾക്കായി നന്നായി തിരികെ നൽകുന്നതിന് പകരം ശൂന്യമായ ശേഖരങ്ങൾ നൽകുക
  • നുള്ള് ഒബ്ജക്റ്റ് മാതൃക ഉപയോഗിക്കുക
  • ജാവയിൽ ഓപ്ഷണൽ അല്ലെങ്കിൽ ഫംഗ്ഷണൽ ഭാഷകളിൽ മേബി ഉപയോഗിക്കുക

ട്രൈ-കാച്ച്-ഫൈനലി പ്രസ്താവനകൾ ആദ്യം എഴുതുക. വ്യത്യാസങ്ങൾ എറിയാൻ സാധ്യതയുള്ള കോഡ് എഴുതുമ്പോൾ ട്രൈ-കാച്ച്-ഫൈനലി ഉപയോഗിച്ച് ആരംഭിക്കുക. ഇത് വിളിക്കാനുള്ള കോഡിന്റെ പരിധിയും പ്രതീക്ഷകളും നിർവചിക്കാൻ സഹായിക്കുന്നു. പിശക് സാഹചര്യങ്ങളിലും, ഉറപ്പായും വിഭവങ്ങൾ ശരിയായി കൈകാര്യം ചെയ്യപ്പെടുകയും വിട്ടുവിടുകയും ചെയ്യുന്നു.

7. സമഗ്രമായ യൂണിറ്റ് പരീക്ഷണങ്ങൾ എഴുതുക

പരീക്ഷണ കോഡ് ഉൽപ്പന്ന കോഡിന്റെ സമാനമായ പ്രാധാന്യമുണ്ട്.

TDDയുടെ മൂന്ന് നിയമങ്ങൾ പിന്തുടരുക. ടെസ്റ്റ്-ഡ്രിവൻ ഡെവലപ്മെന്റ് (TDD) കോഡ് ഗുണമേന്മയും രൂപകൽപ്പനയും മെച്ചപ്പെടുത്തുന്നു:

  1. ഉൽപ്പന്ന കോഡ് എഴുതുന്നതിന് മുമ്പ് ഒരു പരാജയപ്പെട്ട പരീക്ഷണം എഴുതുക
  2. പരാജയം തെളിയിക്കാൻ മാത്രം ഒരു പരീക്ഷണം എഴുതുക
  3. പരീക്ഷണം കടന്നുപോകാൻ മാത്രം ആവശ്യമായ ഉൽപ്പന്ന കോഡ് എഴുതുക

പരീക്ഷണങ്ങൾ ശുദ്ധവും പരിപാലനക്ഷമവുമായിരിക്കണം. നിങ്ങളുടെ പരീക്ഷണങ്ങൾക്ക് കോഡ് ഗുണമേന്മയുടെ സമാനമായ മാനദണ്ഡങ്ങൾ പ്രയോഗിക്കുക. പരീക്ഷണ കോഡ് സ്ഥിരമായി പുനഃസംരചിക്കുക, മെച്ചപ്പെടുത്തുക. നന്നായി ഘടനയുള്ള പരീക്ഷണങ്ങൾ രേഖപ്പെടുത്തലായി പ്രവർത്തിക്കുന്നു, കൂടാതെ ഉൽപ്പന്ന കോഡിന്റെ ഭയമില്ലാത്ത പുനഃസംരചനയ്ക്ക് അനുവദിക്കുന്നു.

സമഗ്രമായ പരീക്ഷണ കവറേജിന് ലക്ഷ്യം വെക്കുക. എഡ്ജ് കേസുകൾ, അതി പരിധികൾ, പിശക് സാഹചര്യങ്ങൾ എന്നിവ ഉൾക്കൊള്ളുന്ന പരീക്ഷണങ്ങൾ എഴുതുക - സന്തോഷകരമായ വഴിയല്ല. പരീക്ഷണ കവറേജിലെ പിഴവുകൾ കണ്ടെത്താൻ കോഡ് കവറേജ് ഉപകരണങ്ങൾ ഉപയോഗിക്കുക. 100% കവറേജ് ബഗ്-രഹിതമായ കോഡ് ഉറപ്പാക്കുന്നില്ല, എന്നാൽ പുനഃസംരചനയും മാറ്റങ്ങൾക്കുള്ള ആത്മവിശ്വാസം നൽകുന്നു.

8. കോഡ് തുടർച്ചയായി പുനഃസംരചിക്കുക

നിങ്ങൾ കണ്ടെത്തിയതിൽ നിന്ന് ക്യാമ്പ് ഗ്രൗണ്ട് കൂടുതൽ ശുദ്ധമായിരിക്കണം.

അവസരപരമായി പുനഃസംരചിക്കുക. നിങ്ങൾ ഒരു കോഡ് ഭാഗത്തേക്ക് പ്രവർത്തിക്കുമ്പോൾ കോഡ് ഘടന മെച്ചപ്പെടുത്തുക. ബോയ് സ്കൗട്ട് നിയമം പിന്തുടരുക: നിങ്ങൾ കണ്ടെത്തിയതിൽ നിന്ന് കോഡ് മെച്ചമായിരിക്കണം. ചെറിയ, ക്രമീകരണങ്ങൾ സമയം കൂടിച്ചേർക്കുന്നു, കൂടാതെ കോഡ് നശീകരണം തടയുന്നു. സാധാരണ പുനഃസംരചന സാങ്കേതികതകൾ ഉൾപ്പെടുന്നു:

  • രീതികൾ അല്ലെങ്കിൽ ക്ലാസുകൾ എടുക്കുക
  • വ്യക്തതയ്ക്കായി പുനർനാമകരണം
  • സങ്കീർണ്ണമായ നിബന്ധനകൾ ലളിതമാക്കുക
  • പുനരാവൃത്തി നീക്കം ചെയ്യുക

പരീക്ഷണങ്ങളോടെ സുരക്ഷിതമായി പുനഃസംരചിക്കുക. പുനഃസംരചന നടത്തുന്നതിന് മുമ്പ് എപ്പോഴും ഒരു ശക്തമായ പരീക്ഷണങ്ങളുടെ സമാഹാരം ഉണ്ടായിരിക്കണം. ചെറിയ, ക്രമീകരണങ്ങൾ നടത്തുക, പരീക്ഷണങ്ങൾ സ്ഥിരമായി നടത്തുക. ഇത് നിങ്ങളുടെ മാറ്റങ്ങൾ നിലവിലുള്ള പ്രവർത്തനക്ഷമത തകരാറിലാക്കുന്നില്ലെന്ന് ഉറപ്പാക്കുന്നു. ലഭ്യമായപ്പോൾ പിശകുകൾ അവതരിപ്പിക്കുന്ന അപകടം കുറയ്ക്കാൻ സ്വയം പ്രവർത്തിക്കുന്ന പുനഃസംരചന ഉപകരണങ്ങൾ ഉപയോഗിക്കുക.

മൂല്യവത്തായതുമായി പുനഃസംരചനയെ തുല്യമായി നിലനിർത്തുക. തുടർച്ചയായ പുനഃസംരചന പ്രധാനമാണ്, എന്നാൽ ഇത് പുരോഗതിയെ പാരാലൈസ് ചെയ്യാൻ അനുവദിക്കരുത്. പൂർണ്ണതക്കായി "മികച്ചതും" എന്നതിനെക്കാൾ "മികച്ചതും" ലക്ഷ്യമിടുക. കോഡിന്റെ ഏറ്റവും പ്രശ്നകരമായ അല്ലെങ്കിൽ സ്ഥിരമായി മാറ്റം വരുത്തുന്ന മേഖലകളിൽ പുനഃസംരചനാ ശ്രമങ്ങൾ കേന്ദ്രീകരിക്കുക. തുടർച്ചയായ കോഡ് മെച്ചപ്പെടുത്തലിന് പിന്തുണ ഉറപ്പാക്കാൻ പങ്കാളികളോട് പുനഃസംരചനയുടെ മൂല്യം ആശയവിനിമയം നടത്തുക.

9. ഒബ്ജക്റ്റ്-ഓറിയന്റഡ്, ഫംഗ്ഷണൽ പ്രോഗ്രാമിംഗ് തത്വങ്ങൾ പ്രയോഗിക്കുക

ഒബ്ജക്റ്റുകൾ അവരുടെ ഡാറ്റയെ അഭ്യാസങ്ങൾക്കു പിന്നിൽ മറയ്ക്കുന്നു, കൂടാതെ ആ ഡാറ്റയിൽ പ്രവർത്തിക്കുന്ന ഫംഗ്ഷനുകൾ പുറത്തു കാണിക്കുന്നു. ഡാറ്റ ഘടനകൾ അവരുടെ ഡാറ്റയെ പുറത്തു കാണിക്കുന്നു, എന്നാൽ അവയ്ക്ക് യാതൊരു അർത്ഥമുള്ള ഫംഗ്ഷനുകളും ഇല്ല.

ഒബ്ജക്റ്റ്-ഓറിയന്റഡ് തത്വങ്ങൾ സൂക്ഷ്മമായി ഉപയോഗിക്കുക. എളുപ്പമുള്ള, മോഡുലാർ രൂപകൽപ്പനകൾ സൃഷ്ടിക്കാൻ എങ്കല്പ്സുലേഷൻ, ഇൻഹെറിറ്റൻസ്, പോളിമോർഫിസം എന്നിവ പോലുള്ള തത്വങ്ങൾ പ്രയോഗിക്കുക. SOLID തത്വങ്ങൾ പിന്തുടരുക:

  • ഏക ഉത്തരവാദിത്വ തത്വം
  • തുറന്ന-മുറിച്ച തത്വം
  • ലിസ്കോവ് പകരം വയ്ക്കൽ തത്വം
  • ഇന്റർഫേസ് വിഭജനം തത്വം
  • ആശ്രിത ഇൻവേഴ്ഷൻ തത്വം

ഫംഗ്ഷണൽ പ്രോഗ്രാമിംഗ് ആശയങ്ങൾ പ്രയോജനപ്പെടുത്തുക. ഒബ്ജക്റ്റ്-ഓറിയന്റഡ് ഭാഷകളിൽ പോലും, ഫംഗ്ഷണൽ പ്രോഗ്രാമിംഗ് സാങ്കേതികതകൾ ശുദ്ധമായ കോഡിലേക്ക് നയിക്കുന്നു:

  • സൈഡ് എഫക്ടുകൾ ഇല്ലാത്ത ശുദ്ധമായ ഫംഗ്ഷനുകൾ
  • മാറ്റമില്ലാത്ത ഡാറ്റ
  • ഉയർന്ന-ഓർഡർ ഫംഗ്ഷനുകൾ
  • ഫംഗ്ഷൻ സംയോജനം

പ്രശ്നത്തിന് അനുയോജ്യമായ സമീപനം തിരഞ്ഞെടുക്കുക. ഒബ്ജക്റ്റ്-ഓറിയന്റഡ്, ഫംഗ്ഷണൽ പാരഡൈം ഓരോന്നിനും ശക്തികളും ദുർബലതകളും ഉണ്ട്. പെരുമാറ്റമുള്ള സങ്കീർണ്ണമായ ഡൊമെയിനുകൾ മോഡൽ ചെയ്യേണ്ടതുണ്ടെങ്കിൽ ഒബ്ജക്റ്റ്-ഓറിയന്റഡ് രൂപകൽപ്പന ഉപയോഗിക്കുക. ഡാറ്റ പരിവർത്തനം, പ്രോസസ്സിംഗ് പൈപ്പ്‌ലൈൻ എന്നിവയ്ക്കായി ഫംഗ്ഷ

അവസാനമായി പുതുക്കിയത്:

FAQ

What's "Clean Code: A Handbook of Agile Software Craftsmanship" about?

  • Focus on Clean Code: "Clean Code" by Robert C. Martin emphasizes writing code that is easy to read, understand, and maintain.
  • Professionalism in Coding: It argues that clean code is a hallmark of professionalism in software development.
  • Practical Advice: The book provides guidelines, examples, and case studies to help developers write clean and efficient code.

Why should I read "Clean Code: A Handbook of Agile Software Craftsmanship"?

  • Improve Coding Skills: It teaches how to write code that is clean, efficient, and maintainable.
  • Learn from Experts: Part of the Robert C. Martin series, known for its technical and pragmatic approach.
  • Long-term Benefits: Writing clean code reduces maintenance costs and makes you a more valuable developer.

What are the key takeaways of "Clean Code: A Handbook of Agile Software Craftsmanship"?

  • Code Readability: Emphasizes that code should be easy to read and understand.
  • Single Responsibility Principle: Advocates for each class or function to have one reason to change.
  • Continuous Improvement: Encourages developers to continuously improve their code, following the Boy Scout Rule.

How does "Clean Code: A Handbook of Agile Software Craftsmanship" define clean code?

  • Elegance and Efficiency: Clean code is described as elegant and efficient, with minimal dependencies.
  • Readable and Maintainable: It should read like well-written prose, making the designer's intent clear.
  • Focused and Single-minded: Each function, class, and module should have a single, clear purpose.

What is the Single Responsibility Principle in "Clean Code: A Handbook of Agile Software Craftsmanship"?

  • One Reason to Change: A class or module should have one, and only one, reason to change.
  • Improves Cohesion: Ensures that classes are cohesive, with closely related methods and variables.
  • Facilitates Maintenance: Makes the code easier to maintain and extend, reducing the impact of changes.

What is the "Boy Scout Rule" mentioned in "Clean Code: A Handbook of Agile Software Craftsmanship"?

  • Continuous Improvement: Suggests leaving the codebase cleaner than you found it.
  • Small, Incremental Changes: Encourages making small improvements, like renaming variables or breaking up functions.
  • Professional Responsibility: Presented as a professional responsibility to ensure maintainability.

How does "Clean Code: A Handbook of Agile Software Craftsmanship" approach Test-Driven Development (TDD)?

  • Fundamental Discipline: TDD is crucial for writing clean, reliable code.
  • Three Laws of TDD: Write a failing test first, write code to pass the test, then refactor.
  • Benefits: Helps catch bugs early and improves code design.

What are "code smells" according to "Clean Code: A Handbook of Agile Software Craftsmanship"?

  • Definition: Indicators of potential problems that hinder readability or maintainability.
  • Examples: Long methods, large classes, and duplicated code.
  • Addressing Smells: Provides heuristics and refactoring techniques to improve code quality.

How does "Clean Code: A Handbook of Agile Software Craftsmanship" suggest handling exceptions?

  • Prefer Exceptions: Use exceptions instead of error codes for better context and management.
  • Provide Context: Include meaningful messages and context when throwing exceptions.
  • Avoid Checked Exceptions: Suggests using unchecked exceptions for cleaner code.

What role do unit tests play in "Clean Code: A Handbook of Agile Software Craftsmanship"?

  • Ensure Code Quality: Unit tests ensure code works as intended and remains maintainable.
  • Test-Driven Development: Advocates writing tests before production code.
  • Clean and Readable Tests: Tests should be as clean and readable as production code.

What is the role of refactoring in "Clean Code: A Handbook of Agile Software Craftsmanship"?

  • Continuous Improvement: Refactoring improves code structure and readability without changing functionality.
  • Techniques: Provides techniques like Extract Method and Rename Variable to enhance code quality.
  • Fearless Refactoring: With comprehensive tests, developers can refactor confidently.

What are the best quotes from "Clean Code: A Handbook of Agile Software Craftsmanship" and what do they mean?

  • "Clean code does one thing well." Emphasizes focus and clarity in code.
  • "Leave the campground cleaner than you found it." Encourages continuous improvement of the codebase.
  • "You know you are working on clean code when each routine you read turns out to be pretty much what you expected." Highlights the importance of readability and predictability.

അവലോകനങ്ങൾ

4.37 ഇൽ നിന്ന് 5
ശരാശരി 22k+ Goodreads, Amazon എന്നിവിടങ്ങളിൽ നിന്നുള്ള റേറ്റിംഗുകൾ.

ക്ലീൻ കോഡ് വായനക്കാർക്ക് വായിക്കാൻ എളുപ്പമുള്ള, പരിപാലിക്കാൻ കഴിയുന്ന കോഡ് എഴുതുന്നതിന്റെ തത്വങ്ങൾക്കായി പ്രധാനമായും പോസിറ്റീവ് അവലോകനങ്ങൾ ലഭിക്കുന്നു. നാമകരണം, ഫംഗ്ഷനുകൾ, ടെസ്റ്റിംഗ് എന്നിവയിൽ പ്രായോഗിക ഉപദേശങ്ങൾ വായനക്കാർക്ക് ഇഷ്ടമാണ്. പുസ്തകത്തിന്റെ ജാവയിൽ കേന്ദ്രീകരിക്കുന്നതും ചില അധിക കർശനമായ മാർഗ്ഗനിർദ്ദേശങ്ങളും പൊതുവായി വിമർശനങ്ങൾക്കു വിധേയമാണ്. വികസകരുടെ കാഴ്ചപ്പാടിൽ ഇത് അനിവാര്യമായ വായനയായി കണക്കാക്കപ്പെടുന്നു, എന്നാൽ ചിലർക്ക് പരിചയസമ്പന്നരായ പ്രോഗ്രാമർമാർക്കായി ഇത് കുറച്ച് കുറവായതായി തോന്നുന്നു. കേസ് സ്റ്റഡികളും റിഫാക്ടറിംഗ് ഉദാഹരണങ്ങളും ചിലർക്ക് പ്രശംസനീയമായവയാണെങ്കിലും, മറ്റുള്ളവർക്ക് അത്രയും അധികമായതായി വിമർശിക്കപ്പെടുന്നു. ആകെ, അവലോകനക്കാർ ഈ പുസ്തകം കോഡ് ഗുണമേന്മയെക്കുറിച്ച് വിലയേറിയ അറിവുകൾ നൽകുന്നതിൽ ഏകമതമാണ്, എല്ലാ നിർദ്ദേശങ്ങളും സർവവ്യാപകമായി പ്രയോഗിക്കാവുന്നവയല്ലെങ്കിലും.

ലെഖകനെക്കുറിച്ച്

റോബർട്ട് സെസിൽ മാർട്ടിൻ, അങ്കിൾ ബോബ് എന്നറിയപ്പെടുന്നത്, പ്രശസ്തമായ സോഫ്റ്റ്വെയർ എഞ്ചിനീയറും ഉപദേശകനും ആണ്. ആജൈൽ വികസന രീതികൾക്കായി അദ്ദേഹം പ്രചാരണം നടത്തുന്നു, കൂടാതെ ഒബ്ജക്ട് മെന്റർ ഇൻക്കിന്റെ പ്രസിഡന്റാണ്. ഒബ്ജക്ട്-ഓറിയന്റഡ് ഡിസൈൻ, പാറ്റേർണുകൾ, യു.എം.എൽ, എക്സ്ട്രീം പ്രോഗ്രാമിംഗ് എന്നിവയിൽ മാർട്ടിന്റെ വിദഗ്ധത വ്യാപകമാണ്. ലോകമാകെയുള്ള ക്ലയന്റുകളുമായി അദ്ദേഹം പ്രവർത്തിച്ചിട്ടുണ്ടു, ഉപദേശനവും പ്രസംഗങ്ങളും വഴി തന്റെ അറിവ് പങ്കുവെച്ചിട്ടുണ്ട്. 1996 മുതൽ 1999 വരെ C++ റിപ്പോർട്ടിന്റെ എഡിറ്റർ ഇൻ ചീഫ് ആയി സേവനമനുഷ്ഠിച്ച അദ്ദേഹം, സോഫ്റ്റ്വെയർ വികസന സമൂഹത്തിലെ ഒരു പ്രശസ്ത വ്യക്തിത്വമാണ്, അന്താരാഷ്ട്ര സമ്മേളനങ്ങളിലും വ്യാപാര പ്രദർശനങ്ങളിലും സ്ഥിരമായി പ്രസംഗിക്കുന്നു. സോഫ്റ്റ്വെയർ കൃഷി, മികച്ച പ്രാക്ടീസുകൾ എന്നിവയെക്കുറിച്ചുള്ള തന്റെ പുസ്തകങ്ങളും ലേഖനങ്ങളും വഴി അദ്ദേഹത്തിന്റെ സ്വാധീനം ഉപദേശന പ്രവർത്തനങ്ങളെക്കാൾ കൂടുതൽ വ്യാപകമാണ്.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Get personalized suggestions
Ratings: Rate books & see your ratings
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Apr 8,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Appearance
Loading...
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →