Nemācieties programmēšanu, izmantojot PHP

Pēdējās dienās man bija tā iespēja piedalīties studentu kvalifikācijas darbu vērtēšanas komisijā. Ja skatās no izmantoto programmēšanas valodu popularitātes, tad laikam PHP bija pirmajā vietā. Bet ja skatās no saņemto atzīmju viedokļa, tad PHP vidēji statistiskais rezultāts bija pēdējā vietā.

Kādēļ tā? Tādēļ, ka PHP dod lielu rīcības brīvību, lai uzrakstītu sliktu kodu un tie, kas mācas programmēt, kā pirmo mācīšanās valodu izmantojot PHP, visbiežāk arī uzrakstīs sliktu kodu. Tipiskās problēmas, ar ko saskāros studentu darbos:

  • Lieli gabali ar PHP kodu, bez strukturēšanas funkcijās / procedūrās
  • PHP kodā tiek blakus salikta kopā HTML ģenerēšana un SQL datubāzes pieprasījumi
  • lielākajā daļā darbu bija SQL injekciju drošības problēmas
  • kods bieži vien bija slikti formatēts
  • nebija vienoti principi mainīgo / funkciju nosaukumu veidošanai
  • parasti netika izmantota objektorientētā pieeja sistēmas veidošanai

Manuprāt, ja kāds ir iesācējs programmēšanā un vēlas to apgūt profesionālā līmenī, tad labāk ir izvēlēties programmēšanas valodas un “freimworkus”, kas uzliek daudz lielāku disciplīnu, lai piespiestu sekot labākajai programmēšanas praksei. Ja sākumā strikti seko stingrai programmēšanas disciplīnai, tad pēc kāda laika arī nāk “apgaismība” par to, kāpēc tas viss ir vajadzīgs un kāpēc tas ir labi. Ja šai disciplinētās programmēšanas stadijai neiziet cauri, tad ir ļoti liels risks palikt stadijā “es esmu kruts programmētājs un rakstu kruto kodu, bet visi pārējie nesaprot, cik es esmu kruts un cik mans kods ir kruts”.

Šis nav tikai mans viedoklis par PHP, bet arī citu “guru” viedoklis. Ar to es negribu teikt, ka jebkurš PHP kods ir slikts un jebkurš PHP programmētājs raksta sliktu kodu, bet vidēji statistiski PHP piemīt šī sliktā “aura”.

Bet ko tad darīt kādam topošajam web programmētājam, kādu programmēšanas valodu tad būtu labāk izvēlēties, lai iemācītos labi programmēt? Nu ja prasa man, tad jau jūs laikam zinat atbildi – paskatieties pāris rakstus iepriekš🙂

14 Responses to Nemācieties programmēšanu, izmantojot PHP

  1. sandis says:

    Piekrītu, un patreiz izskatās ja māk kaut ko no .NET (C# vai Java), tad var arī cerēt uz atbilstošu darbu ar iespējām savilkt galus mūsdienu ekonomiskajā pasaulē. Un PHP var pastudēt pa vakariem. Ironiski, bet savu pirmo darbu par PHP kodētāju tālajā 2000. gadā dabūju pēc 2 nedēļu darbošanāš ap viņu. Tiesa man bija Qbasic/Delphi apakšā pirms tam.

    Bet kopumā, ja pieiet smuki ar klasēm/objektiem, tad jau kods ir tīri alright.

  2. korkijs says:

    pilnīgi piekrītu, php, kā pirmā valoda ir pirmkārt jau pārāk iespējām bagāta (qbasic anyone?) un otrkārt – tipiski jau pats php apgūšanas process ir orientēts uz pēc iespējas ātrāku vizuāla, smuka rezultāta sasniegšanu web lapas izskatā, nevis programmēšanas jautājumu apgūšanu, risināšanu

  3. BlackHalt says:

    A man pajāt kā es rakstu savu kodu. Es nelietoju Worpress vai jebkādu citu sviestu blogam😛
    Mana izglītība nav programmētajs. Es nelietoju WordPress, lai apspriestu citu sliktos kodus ~P
    Man patīk, ka programmētaji raksta sliktus kodus. WordPress programmētaji raksta sliktu kodu.
    Man slinkums.

  4. Sandis says:

    Mana izglītība nav programmētājs, bet es rakstu kodu arī php un darba devējs ir apmierināts. Mana pirmā programmēšanas valoda – QBasic, bet pirmā kurā es kautko arī sapratu – Borland Pascal.

    PHP patiešām dod milzīgu brīvību programmējot kaut vai ar to ka nav strikti jādeklarē mainīgie. Pieņemu, ka ja sāk programmēt tieši no PHP var rasties šī te izpratne, ka programmu var uzmuhļīt da jebkā, ka tik strādā.

  5. r21vo says:

    piedod atvaino, bet objektorientētā pieeja nepavisam nav vienīgais variants kas der vienmēr un visur (bieži vien daudz labāk piemērota ir tā pati vecā procedurālā pieeja, un atsevišķos gadījumos – funkcionālā) tāpēc nosaukt objektorientētās pieejas neizmantošanu ir muļķīgi.

    freimworkus iesācējam? normāls programmētājs sākas ar izpratni par procesiem, kurus veic sistēma, tieši tādēļ sākt mācīties ar augstā līmeņa valodām vai pat freimworkiem ir ačgārni.

  6. v3rb0 says:

    jā, ir, ir ruby tā vis, vis, vis pareizākā un pārākā valoda🙂
    php nebūtu ne vainas, ja viņu nebūtu kaunterstraikisti apsēduši, šamie ar ģenerē visus uzskaitītos mīnusus un māca aplami n00bijus.

  7. Dao says:

    Es sakšu ar C =)

  8. Andrejs ProgrammerWannaBe says:

    Es gribu iemācīties taisīt web-lapas.
    Ko mācīties – html, php, javascript, ruby?
    Mācīties pašam vai iet kursos?
    Vai tādi kursi maz ir? Cik skatījos, ir aizdomīgi kantori kur rāda FrontPage.
    Es labprāt piedalītos jūsu Ruby specseminaros, bet, laikam, man nav atbilstošo priekšzināšanu un, otrkārt, pirmos n esmu jau izlaidis.
    Liels paldies par padomu.

  9. Sandis says:

    Andrej, sāc ar html, tas ir visa pamats. Internetā ir pieejamas 101 pamācība kā sākt programmēt html, bet laikam ja neesi atradis, tad man radās motivācija uzrakstīt vēl vienu :p
    Pēc html apguves ņem css un javascript pamatus. Tie arī ir pieejami internetā un pēc šīm trīs apmācībām tu jau mācēsi taisīt pieklājīgas web lapas.
    Visbeidzot ruby vai php – tur nu tev pašam būs jāizdomā kuru pirmo, jo abas šīs valodas ir pietiekami apjomīgas un dažādas, kā arī neesi pieminējis iemācīties lietot datubāzes kā MySQL, kas glabā un dod datus visām lielajām “web lapām”.

  10. jānis says:

    Nu galīgi tumšs mežš!!

  11. darkYuris says:

    es būt ‘ačgārnais’ variants. sāku kodēt c#`ā. i nesūdzos. man procedurālās valodas šķiet jocīgi neērtas.

    a par koda kvalitāti – neko daudz nevajag. pāris rules un viss ir savās vietās:
    1. vienots variabļu vārdu definēšanas stils
    2. ‘1 metode 1 ekrāna garumā’
    3. un tā mazliet globālāk – vajadzētu arī koda arhitektūrā vienotu stiliņu piekopt

    aber par security – jaunie koderi vienkārši nav informēti. starp citu, ja pareizi atceros, pat valsts policijas informāciju sistēmā datuapmaiņa ar sql`i notiek 4erez zho…, t.i. – javascriptu. vienīgi – šiem internal tīkls.

  12. coolzero says:

    Ui kaa man shitais barins neprofesionalju iepatiikaas. PHP kaa jau pashi teicaat ir visaadaam nelabaam injekcijaam pakljauts. Taatad risinta probleemas ar IDS/IPS, peec tam WEBserverii uzstaadiet mod_rewrite, lai routeetos celjo bez ?=. PHP valodai nav iespeejams izsekot liidzi – parakstaties php.net veestuleem.
    un jaa tiem kas nezin: PHP5 tika izlaizts pirmkaart lai taa buutu Objektu orenteeta valoda – un ta arii ir. Zend studio zinaat? Ja nav naudas taadiem riikiem tad nerunaajiet par to ko nezinat

  13. Slakteris says:

    es pats esmu aizsacis visu ar pascal un c++ , un nemos ar delfi un visual basic , bet kada vaina ir PHP , ja php kodetajs , zin ko vinsh veido un ka vinsh veido , es domaju vinsh jau sen butu padomijis par tadam lietam ka anti sql system , kuru ir loti viegli izveidot , ta pati problema ir shell , kuram ari var viegli izveidot droshibu izmantojot funkcijas kas parbauda failus ! Nja pats sudzeties es nevaru macos jau PHP gadu , un loti labi zinu , ja cilveks grib , vinsh iemacities var vissuu !

  14. Gatis says:

    pie “neprofesionāliem” kodiem PHP absolūti nav vainīgs… un stereotipi ir tikai cilvēku galvās – ja kods strādā un viss notiek pareizi tad viss ir OK un absolūti nav svarīgi vai izvadi veic ar echo vai ar print, – OOP brīžiem arī aizbrauc auzās sašķeļot kodu sīkās lauskās un ja operācija jāveic tikai vienu reizi nezinu vai tā īpāši jāizdala atsevišķā funkcijā – it sevišķi ja dotā operācija loģiski iekļujas izpildes plūsmā… – es pieturos pie principa – vai tas atbilst kontekstam? – vai tas ir saprotami? – vai tas ir racionāli? un pie kājas streotipiskos pareizi – nepareizi… tādi principi – šitādi principi…

    pie sliktiem kodiem ir vainīgs pasniegšanas princips… parsti visur sāk mācīt ar mainīgajiem, cikliem u.t.t. (detaļas) pēc tam VARBŪT pieskaras struktūrai (un es šieit nedomāju klases vai funkcijas bet arhitektūru)… māju sāk būvēt ar plānošanu – projektu… pēc tam iet detaļās – tāda flīze, šitāds ķieģelis,,,

Komentēt

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Mainīt )

Twitter picture

You are commenting using your Twitter account. Log Out / Mainīt )

Facebook photo

You are commenting using your Facebook account. Log Out / Mainīt )

Google+ photo

You are commenting using your Google+ account. Log Out / Mainīt )

Connecting to %s

%d bloggers like this: