Oglas
Već smo vas prošli kroz najvažnija programska načela 10 osnovnih načela programiranja koje svaki programer mora slijeditiUvijek napišite kôd koji može održavati svatko tko može završiti rad na vašem softveru. U tu svrhu, evo nekoliko programskih načela koja će vam pomoći da očistite svoj čin. Čitaj više što trebate znati, ali postoji još jedna klasa programskih načela koja se mogu dokazati još blagotvornije nego oni.
Dok vas gore navedeni principi uče kako biti pametan S vašim će se kodom sljedeća načela naučiti biti mudar sa svojim kodom. Neki od njih su čudni i mnogi od njih su šaljivi, ali svi su podjednako praktični i važni. Obratite pažnju!
1. Načelo puhanja
Ova ima toliko mnogo varijacija da je teško odabrati jednu kao glavnu. Možda je „službena“ verzija Zakon o softveru o razvitku softvera, češće nazvan Zawinski zakon, nazvana po Jamieju Zawinskom i spomenuta u Umjetnost UNIX programiranja:
"Svaki se program pokušava proširiti dok ne može čitati poštu. Oni programi koji se ne mogu tako proširiti zamjenjuju se onima koji mogu. "
Govori o tendenciji programa da tijekom vremena privlače sve više i više mogućnosti i neizbježno se kreće ka sve većoj složenosti. Vi to možda znate puzanje, što je stalna dodavanja novih značajki koje nemaju nikakve veze s glavnom svrhom programa. Puzanje svojstava dovodi do napuhavanja, a napuhavanje je često nepoželjno.
To se također može primijeniti na performanse softvera:
"Softver se proširuje kako bi potrošio sve dostupne resurse."
U 90-ima, tvrdi diskovi i CPU i RAM bili su mnogo restriktivniji nego danas, a programeri su naporno radili kako bi stali u granice. No sada kada imamo veće pogone i brže CPU-ove i više RAM-a, i dalje se borimo za poštivanje ograničenja. Sve se vremenom nabuja. Vaš je posao to kontrolirati.
2. Mentalitet "Još gore je bolje"
Skoro kao da odgovorimo na načelo Bloat, imamo Još gore je bolji mentalitet, prvi put skovao Richard P. Gabriel je u eseju napisao o kvaliteti softvera:
"Ograničeni softver, ali jednostavan za korištenje, korisniku i tržištu može biti privlačniji od obrnutog."
Drugim riječima, pametno je shvatiti to jedan problem vaš softver želi riješiti i onda biti vrlo dobro na ono jedno. Neka bude jednostavno. Što se više tanko širiš, projekt će postati neusporediviji i nepoželjniji za korisnike.
Što se dogodi kad to ignorirate? Završavate s Program Peter Principle:
"Pretjerano složen projekt s vremenom će postati previše složen da bi ga mogli razumjeti čak i vlastiti programeri."
Potječe iz šireg načela Petera koja kaže da kad se zaposlenici promiču na temelju njihove trenutne struje kompetencijom, a ne njihovom očekivanom kompetencijom na sljedećoj poziciji, svi zaposlenici na kraju završe na poziciji nesposobnost. Uzmite taj princip i primijenite ga na softver i vidjet ćete zašto lošiji softver često može biti bolji.
3. Eaglesonov zakon
"Bilo koji vlastiti kôd koji niste gledali šest ili više mjeseci možda je napisao i netko drugi."
Ova naizgled demotivacijska izreka zapravo je nešto što bi trebalo prigrliti. Činjenica je da nitko nije savršen. Možda trenutno mislite da ste genijalan programer, ali postoji stalno nešto više što možeš naučiti, stalno više prostora za rast. Ako se ikada osvrnete na stari kod i izraz, to vjerojatno znači od tada ste naučili nešto novo.
Drugim načinom: ako se osvrnete na stari projekt i ne vidite ništa što biste mogli poboljšati ili napraviti drugi put sljedeći put, vjerojatno ćete stagnirati kao programer.
4. Načelo najmanjeg iznenađenja
"Ako neka značajka ima visoku faktor iznenađenja, možda će biti potrebno redizajnirati značajku."
Prvo objavljeno u IBM Systems Journal davne 1984., ovaj je princip i danas iznenađujuće relevantan - možda i više nego ikad prije.
U biti se dotiče osjetljive ravnoteže između inovacije i poznanstva: ako je to dio softvera previše različito od ostalih takve vrste i tada se ne podudaraju sa očekivanjima korisnika vjerovatno ga neće usvojiti. Bolje je težiti za postupnim poboljšanjima koja su dovoljno velika da budu impresivna, ali dovoljno mala da ostanu u znaku.
5. Zakon kibernetičke entomologije
"Uvijek postoji još jedna buba."
Često se zove Lubarskyjev zakon o kibernetičkoj entomologiji, nije jasno tko je zapravo Lubarsky. Međutim, njegov princip vrijedi za sve programere: bez obzira koliko čisto napisali svoj kôd, bez obzira na to robusno testirate svoje module, bez obzira koliko često refaktorirate nastavu, uvijek će postojati još jedan program.
Na neki način to je načelo oslobađanja. Dok bismo definitivno trebali težiti za kod bez grešaka važno je također zapamtiti da je perfekcionizam neprijatelj dobra. Potražite bugove, ispravite ih kada nastanu i krenite dalje.
6. Kernighanin zakon
"Otklanjanje pogrešaka dvostruko je teže od pisanja koda. Stoga, ako kôd napišete što je pametnije moguće, po definiciji niste dovoljno pametni da biste to uklonili. "
Brian Kernighan, isti onaj koji je bio koautor Biblija programskog jezika C Zašto programiranje C još uvijek vrijedi učitiC nije mrtav jezik. Zapravo, IEEE Spectrum magazin ju je uvrstio na prvo mjesto na prvom mjestu u 2017. godini. Evo pet razloga zbog kojih. Čitaj više , poznat je po ovom pronicavom zakonu. Suština toga je: pisati dobro kod, pisati čitljiv kod, pisati jednostavan kodirati, sve dok nije pametan kodirati.
Pokušaj fleksiranja vaših programskih mišića složenošću kula od bjelokosti potpuno je suprotno od onoga što znači napisati čist i bolji kod 10 savjeta za pisanje čistije i bolji kodPisanje čistog koda izgleda lakše nego što zapravo jest, ali koristi su vrijedne toga. Evo kako danas možete početi pisati čistiji kod. Čitaj više . Što je vaš kôd teže razumljiv, to će teže biti uklanjanje pogrešaka kad se neminovno pokvari.
I kao Robert C. Martin objašnjava, ne radi se samo o uklanjanju pogrešaka:
"Zapravo, omjer vremena provedenog u čitanju u odnosu na pisanje iznosi preko 10 prema 1. Stalno čitamo stari kod kao dio napora za pisanje novog koda... [Dakle,] olakšavanje čitanja olakšava pisanje. "
7. Otklanjanje pogrešaka s gumenim patkama
Ovaj nije toliko princip koliko tehnika, ali je toliko koristan i čudan da bi nas odbacili da ga izostavimo.
Prvo rečeno u Pragmatični programer, otklanjanje pogrešaka od gumene patke je kada uklanjate program s oštećenim softverom objašnjavajući svoj kôd neživom objektu (npr. gumenoj patki) jednu po jednu. Djeluje zato što čin objašnjenja pokreće različite dijelove vašeg mozga i vjerojatnije je da ćete uočiti nedosljednosti i shvatiti gdje ste pogriješili.
Iz tog razloga gumena patka može biti a iznenađujuće sjajan poklon za programere Najbolji geek pokloni za programere: 20 ideja za kodire i živiceTražite poklon za programera? Ovdje su najbolji pokloni za geek, u rasponu od mehaničkih klavijatura do stojećih stolova i još mnogo toga. Čitaj više , bilo da ga kupite za sebe ili za svog programera.
8. Pravilo devedeset i devedeset
„Prvih 90 posto koda čini prvih 90 posto vremena razvoja. Preostalih 10 posto koda čini ostalih 90 posto vremena razvoja. "
Ova bezobrazna mala poslovica Toma Cargilla u središtu je zašto programiranje može biti tako frustrirajuće: bez obzira koliko ste mislili da trebate završiti, mnogo dalje nego čak i vaše najbolje procjene. Kad mislite da ste gotovi, tek ste na pola puta.
To ide ruku pod ruku s Hofstadterovim zakonom:
"To uvijek traje duže nego što očekujete, čak i kad uzmete u obzir Hofstadterov zakon."
9. Parkinsonov zakon
"Rad se proširuje kako bi se popunilo vrijeme dostupno za njegovo okončanje."
Ovaj jedan princip, skovao Cyril Northcote Parkinson, širi je princip koji se apsolutno odnosi na programiranje ruku pod ruku s gornjim Pravilom devedeset i devedeset: koliko vam vremena treba da dovršite projekt, koliko točno treba proći uzeti. U razvoju softvera, "završiti rano" prilično je mit.
Parkinsonov zakon razlog je zašto su valjani rokovi ključni ako želite dovršiti i otpremiti svoj softver. Zato moderni profesionalni programeri često preporučuju principi agilnog upravljanja projektima Kako se koristiti principima okretnog upravljanja projektima za organiziranje vašeg životaAgile, najpoznatiji kao metoda upravljanja projektima, odličan je okvir za upravljanje vašim osobnim životom. Pokazat ćemo vam koje principe možete posuditi - uključeno je besplatno preuzimanje radnog lista! Čitaj više i alati za upravljanje projektima poput Asane Trello vs. Asana: Najbolji besplatni alat za upravljanje projektima je ...Izbor između Trella i Asane je težak. Ovdje uspoređujemo besplatne planove i pomažemo vam odlučiti koji je alat za upravljanje projektima najbolji za vaš tim. Čitaj više .
10. Brookov zakon
"Dodavanje radne snage u kasni softverski projekt čini kasnije."
Sljedeći put kada zakasnite na projektu, što je vjerojatno budući da je većini programskih projekata potrebno više vremena nego što je dodijeljeno, imajte na umu da dodavanje kodera to neće riješiti brže.
Zapravo, vjerojatno će trebati više dovršiti. Ne samo da je potrebno da novi koder ubrzate, oni će se vjerojatno sukobiti s postojećim koderima. Trebat će dokumentirati više stvari, trebat će više birokratije da bi se svi zadržali na istoj stranici, a više trenja će se pojaviti u čitavom iskustvu vremena.
Naprijed kao programer
Sada kada znate ove principe, zapravo ste bolji za stvarni svijet programiranja, a ne samo ono na što ste naišli u školi, web tečaju ili u kampu za pokretanje računala. Ti principi proizlaze iz godina i godina iskustva i neuspjeha.
S ovom novonastalom mudrošću sada možete pristupiti a velika karijera programiranja 10 Poslovi računalnog programiranja koji su trenutno u potraziBudući da slijetanje programskog posla može biti teško u trenutnom krajoliku, razmislite o fokusiranju na jednu od sljedećih koncentracija kako biste poboljšali svoje šanse za uspjeh. Čitaj više s realnijim očekivanjima. Za to naučite kako maksimizirajte svoje mogućnosti karijere u programiranju Kako poboljšati svoje karijerne mogućnosti programiranjaAko se želite pokrenuti, ponovno pokrenuti ili na neki drugi način poboljšati svoju programsku karijeru, to nije lako. Ako ste na fakultetu, vrijeme je sada. Evo nekoliko savjeta koji bi vas mogli odvesti daleko. Čitaj više . A ako odlučite da programiranje nije za vas, nemojte se brinuti - razmislite o jednom od njih umjesto toga nekodirajuće tehnološke poslove Kodiranje nije za svakoga: 9 tehničkih poslova koje možete dobiti bez njegaNemojte se obeshrabriti ako želite biti dio tehničkog područja. Puno je poslova za ljude bez vještina kodiranja! Čitaj više .
Koji od ovih principa vam vjeruje u povjerenje? Znate li koja druga čudna programska načela koja su nam nedostajala? Javite nam dolje u komentarima ispod!
Joel Lee ima B.S. u računalnim znanostima i preko šest godina profesionalnog pisanja. Glavni je urednik MakeUseOf-a.