Илүү сайн кодлох 10 Зөвлөмж

Код бичих нь заримдаа ямар ч програм хангамж хөгжүүлэх үйл явцын хамгийн хэцүү хэсэг байж болно. Хэрэв та бүх зүйлийг эхнээс нь зохион байгуулахгүй бол, ялангуяа том төслүүдийн хувьд кодлох үйл явц, кодын менежмент нь зөвхөн цаг хугацаа шаардахаас гадна том толгой өвдөх болно.

Сайн код нь хадгалах боломжтой, Дахин ашиглах боломжтой, турших боломжтой. Дараах зөвлөмжүүд нь таныг болон/эсвэл таны хөгжүүлэлтийн баг янз бүрийн кодчиллын ажлуудыг хэрхэн зохицуулж болох, бүх зүйлийг аль болох цэвэр байлгах талаар авч үздэг. Би танд илүү сайн код бичиж, таныг болон танай багийг аз жаргалтай, үр дүнтэй болгоход туслах зарим “шилдэг туршлага” – ыг танилцуулах болно.

1. Кодлох стандартыг ашиглах
Муу, зохион байгуулалтгүй код бичих амархан ч ийм кодыг хадгалахад хэцүү. Сайн код нь ихэвчлэн конвенцийг нэрлэх, форматлах гэх мэт зарим стандартыг дагаж мөрддөг. Тэд дараа нь таны кодыг уншсан хүмүүст зүйлийг детерминистик болгох, учир нь ийм стандарт сайхан байна, өөрийгөө гэх мэт.

Та өөрийн кодлох стандартыг бий болгож чадна, гэхдээ энэ нь өргөн хүлээн зөвшөөрөх нь нэг зөөгч нь илүү дээр юм. Zend Framework Coding Standard гэх мэт олон нийтэд хадгалагдаж буй стандартууд эсвэл удахгүй PSR-1 Coding Style Guide-ийн оронд бусад хүмүүст дасан зохицоход илүү хялбар байх болно.

2. Хэрэгтэй Сэтгэгдэл Бичих
Сэтгэгдэл маш чухал. Та хэдэн өдрийн турш мянган мөрт бичгээ орхиод буцаж очоод туршиж үзэх хүртэл та тэднийг үнэлэхгүй байх болно. Ашигтай сэтгэгдэл өөртөө болон таны кодыг хадгалах хэрэгтэй та нарын дараа хүмүүст амьдралыг илүү хялбар болгох.

Тодорхой бус шугамын утга учиртай, нэг мөр тайлбар бичих; функц, аргын бүрэн параметр, функцын тайлбарыг бичих; төвөгтэй логик блокуудын хувьд шаардлагатай бол логикийг өмнө нь үгээр тайлбарла. Мөн битгий мартаарай, үргэлж таны санал өдөр хүртэл байлгах!

3. Рефактор
Код refactoring нь өндөр үр дүнтэй хөгжүүлэгчдийн найм дахь зуршил юм. Итгэж байна уу, үгүй юу, та өдөр тутмын бааз дээр кодоо refactoring байх естой, эсвэл таны код нь сайн эрүүл мэнд биш юм! Refactoring таны кодыг эрүүл байлгадаг, Харин та нар юу refactor, хэрхэн байх естой?

Та бүх зүйлийг refactoring байх естой, таны арга, чиг үүрэг нь таны архитектур нь, хувьсагчууд нэр, арга Хүлээн авсан нэмэлт өгөгдлүүдтэй тоо, гэх мэт.

Хэрхэн refactor нь шинжлэх ухаан илүү урлагийн илүү байна, Харин үүн дээр зарим нэг гэрэл урсгасан болно эрхий хурууны хэд хэдэн дүрэм байдаг:

Хэрэв таны функц эсвэл арга нь 20-25 мөрөөс илүү бол та дотор нь хэтэрхий их логик оруулаад байгаа байх магадлал өндөр бөгөөд та үүнийг хоер ба түүнээс дээш жижиг функц/арга болгон хувааж магадгүй юм.
Хэрэв таны арга/функцийн нэр 20 тэмдэгтээс илүү бол нэрийг нь бодолцох, эсвэл эхний дүрмийг хянаж бүхэл функц/аргыг бодолцох хэрэгтэй.
Хэрэв та олон тооны түүвэрлэсэн гогцоотой бол үүнийг мэдэлгүй зарим нөөц ихтэй боловсруулалт хийж болно. Ер нь бол 2-оос дээш гогцоо үүрч байгаа бол логикийг бодолцох хэрэгтэй. Гурван түүвэрлэсэн гогцоо нь зүгээр л аймшигтай юм!
Таны код дагаж болох холбогдох дизайны хэв маяг байгаа эсэхийг анхаарч үзээрэй. Та зөвхөн хэв маягийг ашиглахын тулд хэв маягийг ашиглах есгүй, гэхдээ хэв маяг нь хэрэглэж болох туршиж үзсэн, жинхэнэ бэлэн сэтгэлгээний шийдлийг санал болгодог.
4. Глобал Кодоос Зайлсхий
Глобал хувьсагч ба гогцоо нь замбараагүй бөгөөд таны програм сая сая кодын мөрөнд өсөхөд асуудалтай байж болно (ихэнх нь хийдэг!). Тэд ялган танихад хэцүү, эсвэл дуу чимээ ихтэй нэршлийн мөргөлдөөн үүсгэдэг бусад кодыг нөлөөлж болно. Хувьсагч, функц, гогцоо гэх мэт дэлхийн нэрийн хуудсыг бохирдуулахаас өмнө хоер удаа бодоод үзээрэй.

Хамгийн тохиромжтой тохиолдолд та дэлхийн хэмжээнд тодорхойлсон блокгүй байх естой. Юм. бүх солих тайлан, үзээрэй-барих, foreach, байхад-гогцоо, гэх мэт. арга буюу функц дотор бичсэн байх естой. Арга нь ангийн тодорхойлолт дотор бичигдэх естой бөгөөд анги, функцийн тодорхойлолт нь нэрийн хуудасны дотор байх естой.

5. Утга Учиртай Нэр Ашиглах
Хувьсагчдаа $k, $m, $test гэх мэт нэрийг хэзээ ч бүү ашигла. Цаашид ийм кодыг хэрхэн уншина гэж бодож байна вэ? Сайн код нь хувьсах нэр, функц/аргын нэр, ангийн нэрний хувьд утга учиртай байх естой. Утга учиртай нэр зарим сайн жишээ юм: $хүсэлт, $dbResult, болон $tempFile (таны кодлох загварын удирдамжийн хамааран эдгээр доогуур зураас ашиглаж болно, camelCase, эсвэл PascalCase).

6. Утга Учиртай Бүтцийг Ашиглах
Таны програмыг бүтэцжүүлэх нь маш чухал юм; нарийн төвөгтэй бүтцийг бүү ашигла, үргэлж энгийн байдалд наалддаг. Сангуудыг болон файлуудыг нэрлэх үед, Хэрэв та өөрийн багт хүлээн зөвшөөрч нь нэрлэх конвенцийг ашиглах, эсвэл таны кодлох стандартад холбоотой нэгийг нь ашиглах. Үргэлж өөр хоорондоо тусдаа ямар ч ердийн PHP програмын дөрвөн хэсгийг хувааж – CSS, HTML загварууд / байрлал, JavaScript, PHP код – тус бүр бизнесийн логик нь сангуудыг хувааж үзээрэй. Мөн таны лавлах шатлалыг аль болох гүехэн байлгах нь зүйтэй бөгөөд ингэснээр таны хайж буй кодыг чиглүүлж, олоход илүү хялбар болно.

7. Хувилбар Хяналтын Програм Хангамжийг Ашиглах
Хуучин өдрүүдэд, сайн хөгжлийн багууд хувилбар хяналтын CVS болон ялгаа засварууд дээр тулгуурладаг байсан. Өнөө үед ч бидэнд олон янзын шийдэл байгаа. Өөрчлөлт, засварыг удирдах нь хялбар боловч үр дүнтэй байх естой тул хөгжүүлэлтийн багийнхаа ажлын урсгалд хамгийн сайн ажиллах ямар ч хувилбарын хяналтын програм хангамжийг сонгоорой. Би Git эсвэл Mercurial гэх мэт тархсан хувилбарын хяналтын хэрэгслийг ашиглахыг илүүд үздэг; хоеулаа үнэгүй програм хангамж / нээлттэй эх сурвалж, маш хүчтэй байдаг.

Хэрэв та ямар хувилбарын хяналтын програм хангамж болохыг мэдэхгүй бол Би Sean Hudgston-ийн GIT-ийн цуврал танилцуулгыг уншихыг зөвлөж байна.

8. Автомат Бүтээх Хэрэгслийг Ашиглах
Эх сурвалжаа бэлтгэсэн, шахсан, гаргачихсан байхын тулд шоргоолж эсвэл Финг гэх мэт хэрэгслийг ашиглахыг хичээ. Бүх Програмаа нэг командаар бүтээх нь давтагдах даалгаврыг гүйцэтгэх үед тохиолддог алдаа, орхигдсон зүйлсээс урьдчилан сэргийлэх гайхамшигтай арга бөгөөд автоматжуулсан туршилтын стратегийн хувьд ерөнхийдөө үндсэн урьдчилсан шаардлага юм. Би Phing ашиглахыг зөвлөж байна, Энэ нь шоргоолжийг дуурайхаар бичсэн PHP-ийн сайн дэмждэг бүтээх хэрэгсэл юм; Хэрэв та үүнийг мэдэхгүй байгаа бол Shammer C-ийн нийтлэлийг Phing, PHP бүтээх хэрэгсэл, Вито Тардиагийн нийтлэлийг ашиглан шалгаж үзээрэй.

9. Код Баримтлагч Ашиглах
Хэд хэдэн анги, нэрийн хуудсыг хамарсан том програмуудын хувьд та API баримтыг автоматаар үүсгэсэн байх естой. Энэ нь маш ашигтай бөгөөд хөгжлийн баг ” юу мэдэж хадгалж байдаг.”Хэрэв та нэгэн зэрэг хэд хэдэн төсөл дээр ажилладаг бол төслүүдийн хооронд нааш цааш шилжих бүтцийн талаар мартаж магадгүй тул ийм баримт бичгийг адислал олох болно. Ийм нэг баримтжуулагчийг та хэрэглэж үзэж болох юм DocBlox байна.

10. Туршилтын хүрээг ашиглах
Миний үнэхээр үнэлдэг олон хэрэгсэл байдаг, гэхдээ миний хамгийн их үнэлдэг зүйл бол туршилтын үйл явцыг автоматжуулахад тусалдаг хүрээ юм. Туршилт (ялангуяа системчилсэн туршилт) нь таны сая долларын Хэрэглээний хэсэг бүрт чухал ач холбогдолтой юм. Сайн туршилтын хэрэгсэл таны PHP хичээл тест нэгж PHPUnit болон SimpleTest байна. GUI туршилтын хувьд би SeleniumHQ хэрэгслийг санал болгож байна.

Хураангуй
Энэ нийтлэлд та илүү сайн код бичих шилдэг туршлагуудын зарим нь тоймыг харсан, бүхэлд нь баг даяар Код хэлбэршүүлэлт нэгтгэх нь кодлох стандартыг ашиглах гэх мэт, refactoring ач холбогдол, Түүнийг хэрхэн хүлээн авах, болон Туршилтын хүрээ гэх мэт мэргэжлийн арга хэрэгслийг ашиглах, код Баримт бичиг, болон хувилбар хяналтын таны codebase удирдах нь туслах. Хэрэв та аль хэдийн эдгээр зөвлөмжийг дагаж байгаа бол, энэ нь тэднийг батлах, зам дээр таны багийг авах хүчин чармайлт нь зүйтэй юм.