Jump to content
php.lv forumi

Kā tu programmē?


EdgarsK

Recommended Posts

  • Replies 48
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Es tā pat kā 2easy lietoju Editplus.

 

Nezinu, varbūt ne pa tēmu, bet patīk pielietot template strūktūru kur php, fijas, utt.. ir atdalītas no output daļas. Vienkārši, kad esi pie tā visa jau pieradis un ienāk kods ar fijam un pa vidu ar pardesmit echo or print, jāsaķer galva un jāsāk domāt.

 

Ja nu kāds grib ietestēt, to ko es ar to domāju, kā labu piemēru varētu ieteikt šo template engine:

 

http://quickskin.worxware.com/

 

Līdz ar to, arī ir kaut kāda veida dokumentācija visai tavai koda uzbūvei, un jebkurš cits koders var ērti iebraukt sistēmā, veidot neatkarīgus moduļus, neaiztiekot esošo struktūru :) Labojiet, ja kļūdos ar domu vai neesmu to pareizi precizējis.

post-1596-126478917989_thumb.png

Edited by foxsk8
Link to comment
Share on other sites

oo izrādās vēl kāds lieto editplus! :))

man jau likās, ka es vienīgais kkāds freaks esmu :D:D:D

 

šeit ir fragments no standarta koda, ko izmantoju, rakstot piemērus priekš php.lv

jāsaka gan, ka nelietoju nevienu toolbaru (tāpēc tie visi ir aizvākti). vienīgi rindiņu numerācija un visible tab,space, jo man tā ir ērtāk formatēt kodu, kad redzu visus simbolus. galvenais ir pure code

editplus_1264794102.pngšeit ir tikai low level lib funkcijas. pāris ļoti tehniskas funkcijas (timer) ir single line, neskatoties uz to, ka tajās ir multi statement. tā daru reti un tiešām tikai pavisam tehniskām funkcijām. kr4 pieturos pie principa, ka zemāka līmeņa kodu rakstu pēc iespējas kompaktu, bet augstāka līmeņa nedaudz plašāk. tāpat arī low level funkciju nosaukumi ir pārsvarā lowercase, bet augstāka līmeņa - camel case (for readability). ar low level ir domātas dažādas palīgfunkcijas, kas ir vispārīgas, tb neatkarīgas no konkrētās applikācijas. savukārt high level ir tieši pretēji - applikācijas specifiskas funkcijas (tajā piemērā gan nav nevienas tādas, bet vēlāk iepostošu kādu "simple example". kko labāku par līdz šim postētajām atbildēm)

 

princips ir vnkāršs: vieta (rindiņas) ir jāizmanto lietderīgi ^^

kr4 nevajag liet ūdeni :P

Edited by 2easy
Link to comment
Share on other sites

Kā jau solīju - kā mans kods (nu kods jau, būtībā, izskatās tāpat - redaktors cits) izskatās mājās. Parasti rakstu garus un (cerams) saprotamus funkciju/mainīgo/klašu nosaukumus un īpaši neiespringstu uz koda garumu. Cenšos neveidot garas rindas - ja kkas sāk veidoties garš, tad izdalu viņu pa vairākām rindām. Cenšos rakstīt daudz komentārus, un šad, tad sanāk, ka komentārs ir garāks par funkciju :) Pagaidām neviens nav sūdzējies par manu kodu (darbā, tas ir), tā kā uzskatu, ka viss ir galīgi OK :)

 

Ā - un editors ir E.

 

post-3461-12648197366_thumb.png post-3461-12648197382_thumb.png post-3461-126481974541_thumb.png

 

EDIT:

 

2easy: es laikam nojūgtos lasot tavu kodu :D tās garās rindas un tie mikro nosaukumi :) Redzot horizontālo scroll bar'u acis pavērās o_O

Edited by rATRIJS
Link to comment
Share on other sites

2easy: es laikam nojūgtos lasot tavu kodu :D tās garās rindas un tie mikro nosaukumi :) Redzot horizontālo scroll bar'u acis pavērās o_O

es to saucu par "vertikālo programmēšanu"

 

mikro nosaukumi ir "labi zināmie" standarta saīsinājumi (priekš tam ir komentāri/dokumentācija)

strlen() arī ir "mikro nosaukums", taču mēs visi zinām, ka tas ir string length. neviens taču nesūdzas, lai php izveidotāji to nomainītu ar garāku un saprotamāku string_length() vai stringLength(). un kā jau teicu, tās ir low level library funkcijas. applikācijas loģikas līmenī ir funkcijas un mainīgie ar garākiem nosaukumiem un arī rindas ir īsākas. nopietni ;) šis sample kods varbūt sanāca mazliet par daudz hardcore, bet pēc tā nevajag spriest par visu web applikācijas kodu kopumā

 

redzēsi, ka ar laiku kodējot, iespējams, tev apniks gari rakstīt. pagaidi dažus gadus...

sāksi domāt "vai tiešām man tik daudz jāraksta, lai uzkodētu tās dažas vnkāršās lietas?". ok, ja tev maksā par darbā nosēdēto laiku, tad tamlīdzīgi jautājumi droši vien neradīsies (tad ir izdevīgi radīt ilūziju, ka ir baigi daudz darba), bet ja tev maksā par rezultātiem, tad tu daudz ātrāk sāksi aizdomāties par tādām lietām

 

anyway, paskatīsimies, kā tu kodēsi pēc 5-10 gadiem (ja vēl būs interese kodēt) :D:D:D

 

es arī kādreiz rakstīju funkcijas ar tādiem plašiem komentāriem, kas aizņēma 2x vairāk vietas nekā pati funkcija, pat neskatoties uz to, ka tā funkcija darīja vnkāršu pašsaprotamu darbu un kods jau tā bija self documenting. tas ir normāli. visi tam iet cauri...

 

P.S.

man savukārt nepatīk lasīt kodu, kur nekas nenotiek. n-tās rindas ar visādu iekšējo menedžmentu, bet kods, kas izpilda reālu darbu, ir labi ja 10%

Edited by 2easy
Link to comment
Share on other sites

Man tieši otrādi - vajadzēja pagaidīt dažus gadus, lai īsajiem nosaukumiem tiktu vaļā (kā tu raksti 2easy), un rakstītu normālus nosaukumus, kurus visi saprot. Paskatīsimies tieši kā tu kodēsi pēc 5-10 gadiem :) Sāksi domāt vai tiešām man jāburto ko kolēģis uzrakstījis, tā vietā lai normāli saprastu, ko dara funkcija pēc tās nosaukuma (jeb atkal tie mani kolēģi nekā nesaprot, ko es esmu sarakstījis...) Sāksi strādāt komandā, tad tu daudz ātrāk sāksi aizdomāties par tādām lietām.

Link to comment
Share on other sites

Nu, patiesībā, man ir līdzīgi kā bubu :)

 

Sākumā rasktīju diezgan īsi, ar maz-izsakošiem nosaukumiem, bez īpašiem komentāriem, utt... arī rindas bija garas (piemēram kāds SQL kvērijs), nemēdzu lauzt uz pusēm.

 

Darbā vispār vajag dokumentēt kodu, rakstīt wiki, utml. Šaubos, vai sākšu rakstīt visu horizontāli :P

 

Arī lasīt OpenSource kodu var redzēt kā tiek dokumentēts un rakstīts kods :) un tur nav vienrindnieki :P

 

P.S.

 

PHP funkciju nosaukumi dažreiz ir FAIL - kā gan savādāk var nosaukt imagecopyresampled() un, piemēram, mysqli_escape_string() atšķirības + exceptioniem ir getMessage() metode + vēl tevis nosauktais strlen() :) 4 dažādi stili.

Link to comment
Share on other sites

2easy, piedod par ironiju, bet man tev ir vēl pāris ieteikumi īsajiem f-ju nosaukumiem: a(), b(), c(), d() ... z(). Ja nepietiek ar alfabēta burtiem, tad paņem talkā vēl ciparus un tad gan pietiks - a1(), a2() .. z9() :)

Link to comment
Share on other sites

viss kārtībā waplet ^^

tas ir par tēmu, turklāt es jau arī pirms tam mazliet paironizēju par viņu

btw offtopikā rakstīt offtopiku ir pilnīgi legāli :D

 

tas ir normāli, ka kādam (šajā gadījumā man) viedoklis un pieeja atšķiras no vispārpieņemtā "kas ir pareizi". topiks jau no tā tikai iegūst. savādāk, ja mēs visi pateiktu, kā mēs vienādi domājam, tad nekāda interesantā diskusija nesanāktu. turklāt tagad visi zinās, kā nevajag darīt! tipa "paskatāties, kādu kodu raksta 2easy, un nekādā gadījumā tā nedariet!!!" :D:D:D anyway, es jau arī negaidīju, ka mani te sagaidīs ar kkādām ovācijām :D

 

2easy, piedod par ironiju, bet man tev ir vēl pāris ieteikumi īsajiem f-ju nosaukumiem: a(), b(), c(), d() ... z()

haha labais ;)

vari droši ironizēt, es protu par sevi pasmieties ^^

un arī nebaidos kļūdīties (un tamdēļ izskatīties smieklīgi :D)

 

bet ja nopietni, tad domājot par funkciju nosaukumiem man sanāca, ka tomēr vajag vismaz 2 burtus, savādāk ir pārāk daudz kolīziju. biežāk gan ir 3x 4x un vairāk burti, jo funkcijas nosaukums sastāv no vairākiem vārdiem/saīsinājumiem, kurus es šajā gadījumā saucu par simboliem. piemēram, imty() - image type - funkcija, kas izdod bildes tipu gif/jpg/png (argumentā ir bildes path). bieži izmantoju http://acronyms.thefreedictionary.com lai kādam angļu vārdam sameklētu pēc iespējas labāku saīsinājumu

 

attiecībā uz mainīgo nosaukumiem 1x burts gan ir ok, taču tikai for very standard ones, piemēram:

$i $j - cikla counteri (ja vajag vēl vairāk, tad gan $i $i2 $i3 ...)

$s $a - string/array, ko dotā funkcija return (tiek saformēts funkcijas izpildes laikā)

$k $v - array key/value

$r - row/record no mysql_fetch_...() (datu tips: array/object)

$m - regular expression match (datu tips: array)

vēl īsākus nosaukumus par šiem gan nevar! :( :D:D:D

 

citiem mainīgajiem nosaukumus rakstu camel stilā, prefiksā liekot data type (lai mainīgā nosaukums būtu more informative)

$bTest - bool test

$sTi - string title

$nPrice - number price (number - int/float. tb šie prefiksi nav strikts data type mappings. tikai informative)

$iLen $iCnt $iSz - integer length/count/size

 

varbūt kādam noder kāda ideja no tā visa (vai tieši otrādi, lai zinātu, kā nevajag darīt :D:D:D)

 

P.S.

ja pavēro tendences tehnoloģiju attīstībā, tad mobīlie paliek arvien mazāki (bet iespēju arvien vairāk), datori arvien vieglāki, auto dzinēji arvien efektīvāki... visādas optimizēšanas notiek ik uz soļa. kāda tehnika bija pirms dažām desmitgadēm un kāda ir tgd! un kāpēc? tāpēc, ka kāds mēģināja kko novienkāršot vai padarīt efektīvāku! :)) kādi prikoli vēl panesīsies, kad nanotehnoloģijas visur ieviesīsies...

kr4 ir jau ir tā tendence uz minimizēšanos. tikai katrā sfērā tas izpaužas kkā savādāk. programmēšanā gan brīžiem notiek tieši pretēji. bloated code, bloated software... :P (laikam tāpēc, ka vājais posms visā šajā progresā ir cilvēks)

Edited by 2easy
Link to comment
Share on other sites

2easy, piedod par ironiju, bet man tev ir vēl pāris ieteikumi īsajiem f-ju nosaukumiem: a(), b(), c(), d() ... z(). Ja nepietiek ar alfabēta burtiem, tad paņem talkā vēl ciparus un tad gan pietiks - a1(), a2() .. z9() :)

 

Kas par muļķībām? a1????? WTF?

kad beidzas latīņu alfabēts vēl ir ā(),č(),š(), tālāk seko krievu alfabēts п(),э(), pie tam atceramies, ka varam izveidot divas atšķirīgas funkcijas a(), vienu ar latīņu alfabētu, vienu ar krievu.

Tālāk grieķu: ,α(),β() persiešu: ی(),()ف

Link to comment
Share on other sites

codez, jau vairākkārt apbrīnoju tavu ģeniālo pieeju! ;)

tev kkā labi sanāk domāt ar visām smadzeņu puslodēm vnlaicīgi :D

 

tomēr praktisku apsvērumu dēļ pieturos pie ascii only :))

Edited by 2easy
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...