JavaRush /Java Blog /Random-TK /Arassa kod nädip ýazmaly

Arassa kod nädip ýazmaly

Toparda çap edildi
Koduňyzy arassa we owadan etmek möhletleri ýerine ýetirmegiň ajaýyp usulydyr. Robert Martin özüne bildirýän sözleriniň biri bilen kellä dyrnagy urdy: “Kodyň hiliniň ýeke-täk ölçegi What-The-F ** ks / Minute birligi . "" Asyl nusgada). Arassa kody nädip ýazmaly - 1Munuň manysyny düşündirip bereýin. Her gezek kody gözden geçirenimde beýnim üç duýgynyň birinden geçýär:
  • “WTF ?! Näme boldy ?! " (ýigrenç bilen) - bu beýle däl ... hemme zat gaty erbet ....
  • “WTF ?! Näme boldy ?! " (haýran galmak bilen) - hmm, akylly ýigit muny etdi!
  • “WTF ?! Näme boldy ?! " (gaharlanma bilen) - haýsydyr bir bulaşyklyk, hatda näme hakda gürleşýäris ?!
Onda iň esasy näme we käbir kod görenimizde nämä baha berýäris? Ine, arassalygy we gözelligi. Arassa we owadan kod ýazmak ukyby, ýokary hünärli işläp düzüjiniň görkezijisidir. Bu ussatlygy öwretmek iki komponente esaslanýar - bilim we iş. Bilim size nagyşlary, ýörelgeleri, amallary, ýuristika öwredýär. Olaryň hünär taýdan ösmegi zerur. Diňe bu tejribäni gubka ýaly yzygiderli tejribe we zähmet bilen siňdirmeli. Gysgaça aýdanyňda, arassa kod ýazmak aňsat däl. Bu gaty agyr, agyr iş we bu ugurda köp işlemeli bolarsyňyz. Synag we ýalňyşlyk arkaly, isleýän çözgüdiňizi tapýançaňyz, şol ädimleri gaýtalap gaýtalap gowulaşarsyňyz. Has ýönekeý ýol ýok. Aşakda arassa kod ýazmagy öwrenmäge kömek edýän käbir maslahatlar bar.

Adynda näme bar

Kendrik Lamar (Amerikaly hip-hop aýdymçysy - redaktoryň belligi) bir gezek takyk belläpdir: "Hakyky wakany gürrüň berjek bolsam, adymdan başlamaly". Programma üpjünçiligini döretmekdäki atlar hemme ýerde. Funksiýalary, synplary, argumentleri, paketleri, programmalary - hemme zady atlandyrýarys. Çeşme faýllaryny we salgylanma kitaplaryny we oňa bagly zatlaryň hemmesini atlandyrýarys. Biz zatlara tükeniksiz at dakýarys we bu arassa kod döretmek ugrunda işlemegiň möhüm bölegine öwrülýär. Bir zat beren adyňyz niýeti görkezmelidir. Gowy at tapmak aňsat däl, wagt gerek, ýöne kod bilen iş salyşmaly we ýagdaý çylşyrymlaşanda köp wagt tygşytlaýar. Şonuň üçin bu prosese seresap boluň we has laýyk bir zat tapsaňyz atlary üýtgetmekden gorkmaň. Koduňyz bilen iş salyşýanlaryň hemmesi size örän minnetdar bolar.

Islendik üýtgeýjiniň, synpyň, funksiýanyň ady üç esasy soraga jogap bermelidigini ýadyňyzdan çykarmaň: näme üçin (üýtgeýän, funksiýa we ş.m.) bar, näme edýär we näme üçin ulanylýar.

Munuň üçin diňe bir gowy suratlandyryş endikleri däl, eýsem umumy erudisiýa we giň dünýägaraýyş hem talap edilýär. Muny hiç kim özüňizden has gowy öwredip bilmez.

arassa kod

“Bir funksiýa” - bir zat

Lui Genri Suliwan (Amerikaly rasionalist we modernist binagär) bir wagtlar meşhurlyk bilen: “funksiýa formany kesgitleýär ” . Ol muny jaýlaryň binagärçiligi barada aýtdy, ýöne munuň düýp manysyny üýtgetmeýär. Her ulgam, takyk suratlandyrmak üçin programmistleriň döredýän käbir domen aýratyn dillerinde gurulýar. Funksiýalar diliň işlikleri hökmünde hereket edýär, synplar atlardyr. Programma dilini guramakda köplenç funksiýalar birinji orunda durýar we olary dogry ýazmak gowy kod döretmegiň özenidir. Hil funksiýalaryny ýazmagyň diňe iki altyn düzgüni bar:
  1. Olar kiçi bolmaly
  2. Bir zady, bir işi etmeli we ony gowy etmeli
.Agny, siziň funksiýaňyz kiçi bolmaly we içerde gurlan gurluşlar bolmaly däldir. Şeýlelik bilen, funksiýanyň indentasiýa derejesi bir ýa-da ikiden köp bolmaly däldir. Bu çemeleşme, kody okamagy, düşünmegi we düşünmegi has aňsatlaşdyrýar. Mundan başga-da, funksiýanyň içindäki sözlemleriň abstraksiýanyň deň derejededigine göz ýetirmeli. Abstraksiýa derejelerini bir funksiýanyň içinde garyşdyrmak elmydama köp bulaşyklyk döredýär we netijede dolandyrylmaýan koda getirýär. Iň oňat programmistler funksiýalary diňe ýazmak üçin kod däl-de, aýdyljak hekaýalar hökmünde görýärler. Saýlanan programmirleme diliniň gurallaryndan peýdalanyp, ajaýyp hekaýaçy hökmünde çykyş edip biljek baý, täsirli we has arassa kod blokyny döretmek üçin ulanýarlar.

"Teswirler erbet kody düzmeýär"

Amerikaly tennisçi we Wimbledonyň bäş gezek çempiony Wenera Williams: “Her kim öz teswirini galdyrýar. Ine, myş-myşlar peýda bolýar " . Teswirler goşa gylyçly gylyç ýalydyr. Gowy ýerleşdirilen teswir gaty peýdaly zat. Başga bir tarapdan, manysyz, peýdasyz teswirlerden başga hiç zat boşadmaýar. Mostöne iň zyýanly teswirler nädogry maglumatlary we ýalanlary ýaýradýan teswirlerdir. Gysgaça aýdylanda, teswirler zerur bir erbetlikdir. Hemişe däl, köplenç. Näme üçin? Bu ýönekeý, teswir näçe köne bolsa, şonça-da kyn saklamak we programmistleriň köpüsi, bilşiňiz ýaly kodlary üýtgetmek bilen birlikde teswirleri hemişe üýtgetmeýär. Kod hereket edýär we ösýär. Kodyň bölekleri yza we yza süýşürilýär, ýöne teswir ýok. Bu meselä öwrülýär!

Rememberadyňyzdan çykarmaň: az teswirli arassa, arassa kod çylşyrymly, bulaşyk koddan has gowudyr. Teswirlerde döreden bulam-bujarlygy düşündirmek üçin güýjüňizi sarp etmäň. Şol bulaşyklygy arassalamak üçin wagt sarp edeniň gowudyr.

arassa kod

"Kod formatirlemek hemişe ileri tutulýar"

Muny Robert C. Martin, Bob daýza, programma üpjünçiligini ösdürmek boýunça köp kitaplaryň awtory, geňeşçi, Agile manifestiniň awtorlary we ş.m. Şeýle hem, sözüniň üstüni ýetirdi: “Kod formatlamak aragatnaşyk görnüşidir. Islendik hünärmen üçin aragatnaşyk iň möhüm meseledir. ” Aboveokardaky sözleme kembaha garamaly däl, sebäbi ajaýyp döredijiniň iň möhüm aýratynlyklaryndan biri bilen gürleşýär. Formatlanan kod aňyňyza çuňňur seretmäge mümkinçilik berýär. Adamlary arassalygymyz, jikme-jikliklere ünsümiz, pikirlerimizi tertipleşdirmek we beýan etmek ukybymyz bilen haýran galdyrmak isleýäris. Peopleöne adamlar koda seredenlerinde, başlangyjy ýa-da soňy bolmadyk winaigretti ýada salýan haýsydyr bir bulaşyklygy görseler, bu siziň tagallalaryňyzy puja çykarýar we döredijiniň abraýyny peseldýär. Muňa şübhelenmäň! Bu işde esasy zat “kod diňe işleýär” diýip pikir etseňiz, hakykatdan gaty daşdyňyz. Häzirki wagtda döredýän funksiýaňyz indiki neşirde üýtgediler, ýöne koduň okalmagy üýtgemez. Kodyň stili we oňat okalmagy, asyl kody tanalmazdan üýtgedilenden soň hem uzak wagtlap saklamagy aňsatlaşdyrýar.
Geljekde ýadyňyzda saklanjak zadyň koduňyzyň däl-de, stiliňiziň we yzygiderliligiňizi ýatdan çykarmaň. Şonuň üçin koduň gowy formatda bolandygyna we ähli toparyň agzalary üçin düşnükli ýönekeý düzgünlere eýerýändigine göz ýetiriň.

Ilki bilen "synap görmek-ahyrynda" blok dörediň

Georges Canguilhem (ylym taryhçysy, filosof) dogry belläp geçdi: "mistakesalňyşlyk etmek adam üçin tebigy zat, ýöne ýalňyşlyklary talap etmek şeýtandan gelýär " . Näsazlyklary düzetmek ähli programmistleriň edýän zady. Nädogry maglumatlar giriş girizip biler we enjamlar şowsuz bolup biler. Döredijiler hökmünde koduň edilmeli zady ýerine ýetirýändigine göz ýetirmeli. Mesele diňe bir ýalňyş işlemek däl, eýsem “arassa we okamak aňsat” ýalňyşlyk bilen işlemek. Köp programmalar ýalňyşlyklary düzetmäge uýgunlaşýarlar. Şeýle etseňiz, hemme zat şeýle bir bulam-bujarlyga düşýär welin, esasy koduň maksady we logikasy ýok edilýär. Bu nädogry, beýle bolmaly däl. Kod arassa we ygtybarly bolmaly, säwlik bilen işlemek koda bökdençsiz we tebigy dokalan bolmaly. Bu ýokary derejeli programmistiň görkezijisidir. Muňa ýetmegiň usullarynyň biri dogry höwürtgelemek we synanyşyk bloklaryndaky ähli ýalňyşlyklary ýapmakdyr. Bu bloklar koduňyzyň çägini kesgitleýär. Synag-ahyrky blokuň synag böleginde kod ýerine ýetireniňizde, ýerine ýetirişiň islendik wagt ýatyrylyp, soňra tutulyp dowam edip biljekdigini aýdýarsyňyz. Şonuň üçin kod ýazanyňyzda ahyrsoňy synap görmekden başlamagy maslahat berýäris. Synag wagtynda kodda nämäniň nädogrydygyna garamazdan, ulanyjynyň koddan nämä garaşyp biljekdigini kesgitlemäge kömek eder.
Taşlaýan her bir kadadan çykmaňyzyň ýerini we çeşmesini kesgitlemek üçin ýeterlik mazmun bolmalydygyny ýadyňyzdan çykarmaň. Döredijilik we maglumat beriji säwlik habarlary, kod ýazylandan soň uzak wagtlap ýatda saklanýar, hatda programmist eýýäm düýbünden başga meseleler bilen meşgullanýar.
arassa kod

Geliň, jemläliň

Adaty bolmadyk bir söz, ýokardakylaryň hemmesini jemlemäge kömek eder. Bu kod manysy ýa-da “umumy kod duýgusy”, umumy manyda ekwiwalent programmaçy. Robert Martiniň sözleri: “Arassa kod ýazmak,“ arassaçylyk ”duýgusynyň we birneme agyryly duýgusynyň netijesinde ulanylýan köp sanly tehnikany yzygiderli ulanmagy talap edýär. Bu kiçi usullara bilelikde kod manysy diýilýär . " Käbirimizde bu “ses kody manysy” bar, beýlekiler ony dowamly tejribe arkaly ösdürmeli. Bu instinkt diňe bir erbet we gowy koduň arasyndaky tapawudy tanamaga kömek etmän, eýsem erbet kody gowy ýagdaýa öwürmäge gönükdirilen strategiýalary düzmäge hem kömek edýär. Erbet kod hemme zady ýok edýär. Göçme manyda aýdanyňda, it boky bilen iň lezzetli torty doňsaň, onda ... eh ... muny hiç kim halamaz. Kod manysy programmaçylara arassa kod döretmek maksadyna ýetmek üçin dogry gurallary ulanmaga kömek edýär. Kod manysynyň nämedigine düşünýän programmist, köp ýyllap ýatda galar ýaly boş ekranda sungat eserini döredip biljek suratkeşdir. Mitiň kompýuter ylymlarynyň professory we Creative Commons we Erkin Programma Gaznasynyň esaslandyryjysy Harold “Hal” Abelsonyň jemleýşi ýaly: “Programmalar ilki bilen adamlar okap biler ýaly, soň bolsa bolup biler ýaly ýazylmalydyr; jezalandyryldy. "awtoulag " Mowzukda okap boljak zatlaryňyz: “Çekeleşikli programma ussatlygynyň gollanmasy” - Robert Martin. “Çekeleşikli baha beriş gollanmasy” - Maýk Kon Awtor hakda: Ravi Şankar Rajan, Mumbaydan (Hindistan) Global IT Programma Dolandyryjysy. Meşhur blogçy, haiku şahyry, höwesli arheologiýa we taryh buff. Onuň bilen Twitter , Orta , LinkedIn- de birigip bilersiňiz
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION