Jump to content
php.lv forumi

Labā programmēšanas prakse


briedis

Recommended Posts

Rakstā izklāstītas metodes, kas būtu jāievēro, lai kods būtu vieglāk lasāms, saprotams.

 

Dažbrīd skatoties jauno kodētāju kodu redzami dieva brīnumi, tāpēc, domāju, ka katram iesācējam (un netikai) šis ir jāizlasa un jāizdara secinājumi! :)

 

http://net.tutsplus.com/tutorials/html-css-techniques/top-15-best-practices-for-writing-super-readable-code/

Link to comment
Share on other sites

Daudziem tas noteikti vēl nav zināms :)

 

Ar IDE domā, kā piemēram Eclipse un NetBeans? :) Pašlaik izmantoju Notepad++, bet domāju, vajadzētu kaut kā nedaudz atvieglot dzīvi ar to pašu Eclipse (kodējot džavā izmantoju, likās ērti)

Edited by briedis
Link to comment
Share on other sites

Es kodēju Java, izmantojot Eclipse. Esmu izmantojis arī Eclipse php programmēšanai, bet tas vairs nav tas... Konkrēti Javā programmēt, izmantojot Eclipse IDE ir ļoti ērti. Vismaz nav līdz šim nekas parocīgāks redzēts un izmantots.

 

Tagad nedaudz vispārīgāk. Notepad++, manuprāt, ir ērta teksta rediģēšanas lietojumprogramma, bet Notepad++ nav nekāds sakars ar IDE! Kā redzam wikipedia, zem vārda Integrated Development Environment atrodas daudz vairāk funkcionalitātes un Notepad++ spēj aizvietot tikai ļoti mazu daļu no tā visa. Piemēram, "code editor", "compiler and/or interpreter", "build automation tools", "debuger" un patiesībā citas iespējas vēl kā kontroles versiju sistēmu atbalsts utt... Patiesībā pat notepad++ piedāvātās iespējas teksta rediģēšanā nekonkurē ar daudzu IDE piedāvātajām.

 

Manā izpratnē IDE jāpiedāvā ne tikai šīs iespējas, bet arī ērtu lietojamību. Piemēram, jāiekļauj ir arī sekojošas lietas:

1) klaviatūras saīsnes (keyboard shortcuts), izmantojot pamatfunkcijas, piemēram, failu meklēšana, formatēšana (koda sakārtošana), importu organizēšana, objektu koka apskate utt.

2) pilnvērtīgu "code assist" un "code completition", jo nav jāzin visas pieejamās klases un to metodes no galvas. Protams, tai skaitā komentāru apskate bez pašas metodes vai klases apskates (javadoc vai phpdoc). Protams, arī pašu komentāru automātiskas ģenerēšana, izmantojot attiecīgo formātu (javadoc vai phpdoc).

3) ērti izvietojami palīglogi, kuros piemēram, atrodas projektu saraksts, to direktoriju un failu koks, kontroles versijas sinhronizācijas rezultāti, atvērtā failā iekļauto elementu struktūra, atkļūdotājs (debugger), konsole, brīdinājumu un kļūdas, galvenie komentāri, "logi", meklēšanas rezultāti un tā tālāk... Piebildīšu, ka jo sevišķi šīs priekšrocības palīglogu izvietošanā saskatīs tie, kam ir modernie monitori "widescreen" formā, lai smuki horizontāli var visu ērti izvietot.

4) Iespējas spraudņiem un papildinājumiem, pie tam, lai lielākā daļa no tiem būtu pieejami absolūti bez maksas.

5) Citas nenosauktās iespējas (visas aprakstīt šeit nemaz īsti nevar, tur nepieciešams veidot gandrīz grāmatas formātu).

 

Atgriežoties vēl nedaudz pie resursa, kas ir šīs tēmas pamatā - http://net.tutsplus.com/tutorials/html-css-techniques/top-15-best-practices-for-writing-super-readable-code/, un ņemot vērā visu, ko aprakstīju par IDE un vēl vairāk (nenosauktas lietas), ērta integrētā izstrādes vide varētu atvieglot un vismaz daļēji automatizēt sekojošos no tiem "top 15 best practices...":

1. Commenting & Documentation

2. Consistent Indentation

5. Consistent Naming Scheme

8. Limit Line Length

9. File and Folder Organization

11. Capitalize SQL Special Words

... un patiesībā vēl citas (tur neminētas) prakses, kas arī ir pamats labam programmēšanas stilam.

 

Attiecīgi lem pats - vai turpināsi rakstīt, izmantojot Notepad++, vai arī pāriesi uz augstākiem plauktiem...

Link to comment
Share on other sites

Attiecīgi lem pats - vai turpināsi rakstīt, izmantojot Notepad++, vai arī pāriesi uz augstākiem plauktiem...

javisti var sēdēt savā augstajā plauktā un viņiem arī ir ieteicams izmantot IDE, taču tie, kas kodē vienkāršas lietas (html,css,js,php), tiem arī vajag vienkāršus instrumentus (kā notepad++ vai editplus), nevis kkādu kosmosa kuģi ar ūber paneļiem

Link to comment
Share on other sites

2easy, PHP/JS/CSS/HTML tikai līdz zināmai robežai ir vienkāršas lietas. Tad, kad tiek pie kāda lielāka projekta, IDE priekšrocības nevar noliegt. Ikdienā nu jau vairāk kā gadu dzīvojos pa Eclipse PDT un nesūdzos. Reizēm pat ar smaidu skatos uz notepad++ lietotājiem, kā viņi navigē pa kodu :)

Link to comment
Share on other sites

nu jā, kad daudzas vienkāršas lietas saliek kopā, tad rodas kkas mazāk vienkāršs ;)

manuprāt, ja jau sākotnēji ir laba koda arhitektūra/organizētība (labs sadalījums pa moduļiem un pēc iespējas lineāras dependencies), tad arī, projektam apaugot ar viskko, būs viegli to menedžēt. galvenais tajā kvantitātē nepakāst vienkāršību

 

varbūt dažos gadījumos ide tiek izmantota tikai kā glābiņš, kad kkas ir uztaisīts 4erez izpūtēju? :P

mūsdienās visādu tūļu pārbagātībai ir arī savs blakusefekts, ka tiek veicināta pavirša/nepārdomāta pieeja koda arhitektūrai: visu samet vienā čupā un tad meklē tūli, kas palīdzēs visā tajā orientēties :D

 

man īsti nav priekšstata, kā koderi 70. gados c valodā rakstīja Unix'u, bet es domāju, ka viņiem nebija nekāda gui ide, bet gan vnkāršs teksta/koda redaktors (pilnīgi droši bez nekādiem autocomplete un varbūt pat bez syntax highlighting) un kompilators, ko palaist no komandrindas. un neskatoties uz to, taisīja augšā lielas lietas

 

protams, es nevienam neieteiktu kodēt parastajā notepadā (ja nu vienīgi treniņa pēc, vai lai salīdzinātu, cik daudz ērtāks ir koda redaktors), taču tāpat arī es neizmantotu baigi advancēto tūli, ja es neizmantoju tās fīčas, kas tur ir. protams, idi vajag lietot tad, kad no tās ir reāli ieguvumi. tā ka tiešām it depends on project...

Link to comment
Share on other sites

javisti var sēdēt savā augstajā plauktā un viņiem arī ir ieteicams izmantot IDE, taču tie, kas kodē vienkāršas lietas (html,css,js,php), tiem arī vajag vienkāršus instrumentus (kā notepad++ vai editplus), nevis kkādu kosmosa kuģi ar ūber paneļiem

Nepareizi! IDE būtu vajadzīga arī, programmējot vienkāršas lietas - JavaScript (nejaucam, lūdzu, html un css rakstīšanu ar programmēšanu). PHP arī ir parasti vienkārša lieta tikai līdz jāsāk taisīt kaut kas nopietnāks un komerciālāks.

IDE principā ir tikai 2 mīnusi:

1) salīdzinoši lielā resursu ietilpība;

2) tā ir jāmācās (tā pilnībā no A līdz Z apgūt IDE var tikai strādājot gadiem ar to).

Pirmajam mīnusam mēs varam likt pretim argumentu, ka profesionāļi var atļauties nopirkt arī mūsdienīgus kompjus ar izcilu vismaz apmierinošu veiktspēju.

Otrajam mīnusam mēs varam mierīgi apgalvot, ka, ja cilvēks nav gatavs nepārtraukti mācīties ko jaunu, tad no viņa sanāks "švaks" programmētājs vispār...

 

Reizēm pat ar smaidu skatos uz notepad++ lietotājiem, kā viņi navigē pa kodu :)

Ir redzēti tādi skati un tiešām skatos uz to objektīvi kā uz "zemāku līmeni", jo tā tas patiesībā arī ir. Šķiet, ka tādi cilvēki to mēdz darīt, jo vienkārši daudziem no jaunizceptajiem programmētājiem patīk pierādīt nezinu - sev vai citiem - ka viņi prot rakstīt "uz Notepad" - ja nemaldos, tas arī skaitās "hakerstils". Par notepad++ un līdzīgiem editoriem varu runāt tikai labu, bet ne "software development" kontekstā! Tie neder profesionāļiem, kam ir svarīgas visas šīs lietas:

1. laiks;

2. darba rezultāta kvalitāte;

3. darba procesa kvalitāte (piemēram, ērtums).

 

Notepad++ pielietojumu saskatu tieši tam, kam tas domāts - tekstu rediģēšanā, kā brīvo lauku, kur iekopēt un saglabāt tekstus, kā arī - iesācēji, programmētāji, kamēr vēl tīri mācās programmēt (Aptuvenais līmenis: "uzrakstīju pāris izteiksmes - palaižu - skatos - sanāca! Pamainīšu kaut ko un tad skatīšos vēl...") - IDE viņi vēl paspēs apgūt, sākumā svarīgāk ir mācīties tieši programmēšanas valodu līdz to jau var tekoši lietot.

Link to comment
Share on other sites

2easy

Tev joprojām nav skaidrs, kaut arī lietas būtība tika izskaidrota.

Nemācēšana nav attaisnojums un ja kaut ko nemāk, tad pašam arī savas kļūdas jālabo.

Es nezinu kā kodēja 70tajos, varbūt tu biji tur klāt un visu redzēji. Mēs te apspriežam programmatūru, kas pieejam mūsdienās, jo mēs programmējam arī mūsdienu situācijā un mūsdienu un nākotnes tirgum, nevis 70to gadu patērētājiem...

Link to comment
Share on other sites

Izskatās, ka par programmēšanas praksti vairs netiks runāts un tēma pāries pie IDE`ēm - tad nu es arī izteikšos.

 

Man nepatīk IDEs. Vismaz tam ko daru es. Protams, piekrītu ka ir vietas un valodas, kur IDE ir daudz piemērotāka par teksta redaktoru, bet vairums WEB valodu es neuzskatu par tādām. Protams, ka JAVA es rakstītu izmantojot, piemēram, to pašu Eclipse un esmu to darījis gana ilgu laiku.

 

Kādēļ man nepatīk IDEs? Jo tās ir pārāk masīvas un es no to spējām neizmantoju pat 10%. Piedevām līdz ar lielo funkcionalitāti, man pašas vajadzīgākās lietas ir izpildāmas paŗāk sarežģīti kā gribētos.

 

Ko es lietoju ikdienā:

  • sintakses highlighter'u - tas saprotams
  • project manager'u - lai redzētu konkrētā projekta struktūru un pa to varētu ērti navigēt
  • snippet'us - uzrakstu fun, nospiežu TAB, man izveido funkcijas karkasu un tabulācijas taustiņu varu navigēt pa "karstajām" vietām (mainīt piemēram, redzamību, padotos parametrus, utt).
  • šortkatus, lai viektu dažādas darbības (pārslēgtos starp tabiem, iezīmētu vārdu, rindu, loģisko apgabalu, atvērtu failu no konkrētā projekta rakstot nosaukumu, utt)
  • ciešu saistību starp valodu kurā rakstu. Piemēram, ja es taisu lapu uz Ruby on Rails, atrodos kontroliera metodē show un nospiežu īpašu saīsni, tad man atver show templeitu konkrētajam modelim.
  • versiju kontroles integrācija
  • plugini, customize'ējamība un ātrums

Tas ir viss. Cik man zināms IDE, to visu VAR piedāvāt, bet papildus nāk klāt visāds šrots, kuru man nevajag un kurš mani padara lēnāku.

 

Vairāk kā gadu esmu bijis sava TOP redaktora meklējumos un esmu izpētījis vairums variantus (Notepad++, EditPlus, Emacs, jEdit, Sublime Text, Gedit, Geany), bet šobrīd esmu palicis pie E TextEditor (Textmate ekvivalents priekš PC). jEdit arī bija OK. Sublime Text arī ir interesants.

 

Vairums no maniem nosauktajiem redaktoriem var extend'ot uz IDEs līmeni, bet tā jau ir izvirtība.

 

Ā...un neuzskatu, ka esmu zemāka līmeņa kā cilvēks kurš izmanto IDE...ikdienā lietoju divas valodas PHP un Ruby (ar Rails) + klientu puses valodas. Tam, manuprāt, IDE nav vajadzīga, bet katrs dara pa savam.

Link to comment
Share on other sites

zinot vēsturi, var labāk saprast, kāpēc šodiena ir tāda, kāda tā ir...

 

2easy

Tev joprojām nav skaidrs, kaut arī lietas būtība tika izskaidrota.

lol, es gan nezinu, no kurienes tu ņēmi, ka man nav skaidra lietas būtība?

es taču piekrītu, ka ide ir krutāka un līmenis ir augstāks. apsveicu, ka esi to sasniedzis ;)

ja tev patīk domāt rāmīšos "pareizi/nepareizi" un pieturēties pie savas "ide only" un "ide for everything" filozofijas, tad go for it. varbūt, tev ir baigi svarīgs tas līmenis, kurā esi, un tāpēc cits "zemāka" līmeņa izstrādes rīks uzreiz asociējas ar zemāku līmeni, no kura tu iekšēji baidies vai negribi pieņemt. bet man ir p..uj kādos līmeņos mēs te esam. es uz to skatos savādāk (varbūt elastīgāk): ir dažādi uzdevumi, un ir dažādi instrumenti, un katrs izvēlas to, kas kuram ir ērtāks

 

btw, vai tiešām nevar pamanīt, ka mans pirmais posts šajā tēmā ir apzināti pievilkts pie kādas galējības, lai veicinātu diskusiju (kas arī izdevās)? :D:D:D

Link to comment
Share on other sites

2easy

Vēlreiz - runa ir par profesionāliem programmētājiem, kam var tikt uzdoti jebkāda apjoma projekti un ir ļoti svarīgas sekojošas lietas, programmējot:

1. laiks;

2. darba rezultāta kvalitāte;

3. darba procesa kvalitāte (piemēram, ērtums).

Kamēr 3. punkts ir svarīgs pašam programmētājam, tikmēr 1. un 2. punkts ir ļoti svarīgs klientam, jo viņš par to maksā! IDE piedāvā atvieglot šo punktu realizāciju kopumā, ja prot to pareizi izmantot! Normāli cilvēks nospiež 10 reizes peles klikšķus un 20 reizes klaviatūras taustiņus lēnāk nekā uzsit pa taustiņiem pāris saīšņu kombinācijas.

 

Ja pietiek ar "syntax highlighting" un formatēšanas funkcijām, tad, protams, labāk ir izmantot teksta redaktoru...

Link to comment
Share on other sites

Tas, par ko jūs tagad strīdaties, ir aizberga maliņa.

Man parasti tehniska koda rakstīšana labi ja sastāda 10% no programmēšanas!

Pat, ja izdotos tās efektivitāti dubultot uz pusi (10% -> 5%), tad kopējā efektivitāte uzlabotos tikai par 5% (100% -> 95%).

Link to comment
Share on other sites

Ipashi daudz nevaru komentēt, bet no savas puses varu pateikt, ka Java kodējot es 100% izvēlos Eclipse.

Taču PHP Eclipse izmantoju kādas 5as dienas (līdz šim notepad++) un ir dažas ērtības (kaut vai atverošās-aizverošās iekavas liekās automātiski :)), bet arī šķiet dažas lietas vēl nav skaidras (droši vien jākonfigurē kkas, bet ar to vēl nav skaidrības).

 

R.

Link to comment
Share on other sites

2easy

Vēlreiz - runa ir par profesionāliem programmētājiem, kam var tikt uzdoti jebkāda apjoma projekti

un es arī vēlreiz saku, ka es tač to ļoti labi saprotu ;)

jau vairrākārt manis teiktajam zemteksts ir tāds, ka vajag izdarīt izvēles atbilstoši situācijai, un tas nav nekādā konfliktā ar to, ko tu saki. patiešām! tavam pēdējam postam piekrītu pa 100%, tikai pirms tam laikam tu izlasīji kko citu nekā es domāju...

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...