Kodėl rašau į Pixel.lt?

Rašau dėl vienos labai paprastos priežasties. Vienas iš pixel.lt įkūrėjų NePo, man nuoširdžiai pagelbėjęs testuojant vieną sistemą (taip pratestavo, kad net teko atidėti jos paleidimą :), pasiūlė ką nors parašyti į šį technologijų blogą. Kadangi į gerą reikia atsakyti geru, tai negaliu atmesti tokio pasiūlymo. Dauguma čia rašote apie programavimą, tai bandysiu ir aš laikytis šios krypties, nors nesu nei programuotojas nei panašus į jį ( nesu labai liesas ir nenešioju ilgų plaukų :) )

Apie mano programavimo patirtį: nors „Hello world“ moku suprogramuoti bent 8 programavimo kalbomis, bet iš jų nei viena nemoku programuoti padoriai. Niekada nedirbau profesionaliu programuotoju (ir turbūt nedirbsiu), o programuoju tik kartą į pusmetį savo malonumui kai nerandu geresnio būdo prasmingai prastumt laiką.

Todėl šis straipsnis (straipsnių serija) jokių būdu nepretenduoja tapti mokymo priemone programuotojams ar ketinantiems jais tapti. Jei, mieli vaikučiai, suaugę norite tapti tikrais programuotojais, jokiu būdų neimkite giliai į galvą mano pamokymų – sugadinsite savo programuotojišką mąstyseną (todėl ir straipsnio pavadinime yra kiek ironiška frazė „kaip nereikia programuoti“ - tai lyg disclaimeris nuo visų profesionalių programuotojų, kurie bandys mane kritikuoti dėl nemokšiško kodo rašymo).
Todėl šį mano tekstą priimkite kaip lengvą laisvalaikio skaitalą.

Tai apie ką aš čia rašysiu? Neseniai žiūrėjau multiką apie žiurkę, o jo pagrindinė idėja buvo „Virėju gali būti kiekvienas“. Tad aš perfrazuoju šį šūkį „Programuoti gali kiekvienas“ ir bandysiu jį pagrįsti realiu pavyzdžiu.

Prie ko tada čia ()?

Taigi, ir bus tas nuostabus įrankis, kuris padės įgyvendinti mano užsibrėžtą tikslą. Apie šį programavimo karkasą (angl. ) turbūt jau skaitėte ankstesniuose pixel.lt straipsniuose. Juose buvo akcentuojama, kad pagrindinis privalumas yra tas, kad programuotojas norėdamas sukurti kažką funkcionalaus su turi parašyti daug mažiau kodo nei programuodamas kitose aplinkose. Tokiu būdu sutaupoma nemažai laiko, pridaroma mažiau klaidų, lengviau skaitomas kodas.

Aš norėčiau pridurti dar vieną privalumą, lyginant su kitomis programavimo kalbomis (aplinkomis) – išmokti programuoti su yra nepalyginamai lengviau. kodo rašymas tai lyg žmogaus pokalbis su kompiuteriu ( čia truputį nusišnekėjau:) ), bet programuojant labiau praverčia kalbos kalbos gramatikos žinios, nei matematikos. :) Nežinau kiek reikėtų sugaišti laiko, kad išmoktum su php suprogramuoti kažką veikiančio, bet tikrai tai užtruktų ne vieną savaitę. Su veikiančią aplikaciją galite susikurti jau po pirmų kelių mokymosi valandų, net jei nesate programuotojas, o tiesiog turite kažkiek loginio matematinio mąstymo.
Aišku lyginti php su yra kiek nekorektiška, reikėtų lyginti su analogišku karkasu, pavyzdžiui, CakePHP – bet pastarojo nesu bandęs, tai nieko apie jį negaliu pasakyti.

Kadangi aš esu iš tų žmonių, kurie labai nemėgsta mokytis per prievartą, vien dėl to, kad kažką išmoktų, todėl dažniausiai mokausi darbo procese, t.y. darydamas kažką naudingo. Aišku, kai mokaisi darbo proceso metu, tai sukurtą produktą tenka perdaryti bent keletą kartų (mūsų atveju perrašyti kodą) – nes tik darbo pabaigoje pramoksti ir supranti, kad darbas pradėtas ne nuo to galo ir viską reikia perdaryti :) Kadangi mes čia susirinkome programuoti savo malonumui, tai nieko čia baisaus, kad teks viską perdaryti :)

Kad patvirtintume pavadinime iškeltą šūkį, per keletą naktų aš (net nepanašus į profesionalųjį programuotoją) pabandysiu sukurti veikiantį interneto projektą. Kūrybos procese bandysiu paaiškinti ką, kaip ir kodėl darau ir kodėl taip veikia. Nelabai žinau profesionalios terminologijos, tad aiškinsiu viską ūkiškai, kad ir bobutė savo gyvenime nemačiusi kompiuterio galėtų viską suprasti. Nepamirškite mano šūkio – mano tikslas ne labai išsamiai mokyti kaip kokios funkcijos veikia, o parodyti, kad tai yra paprasta ir kiekvienas tai gali padaryti.

Idėja

Kiekvieno projekto pagrindas yra idėja, t.y. ką įdomaus mes pasiūlysime išpuikusiems nuo paslaugų gausos internautams. Pirminę idėją galima pasivogti (kas nėra labai gražu), galime sugalvoti savo labai unikalią (kas labai sveikintina, bet labai sudėtinga). O galime pasižvalgyti į kitus, bet aklai nekopijuoti, pridėti savo ir galbūt sukursime kažkas įdomaus. Pagal pastarąjį variantą pasielgsiu ir aš - kažkur kažką mačiau, liko atmintyje, papildysiu savo ir pabandysiu „sukonstruoti“ :)

Projektas

Kadangi internautus vienija ne tik linkai į draugų blogus, bet ir alus, tai pavadinsiu projektą „StatauAlaus.lt“ :) Idėja yra tokia – dažnai internete (forumuose, bloguose, pan.) gauname gerą patarimą už kurį negaila patarėjui pastatyti bokalą alaus. Bet aišku, greitai pamirštame apie gerus darbus ir geras žmogus lieka be alaus bokalo. Pagrindinė mūsų kuriamo tinklalapio paskirtis bus tokia – vartotojas „papostina“ tinklalapyje, kad jis kitam žmogui stato alaus bokalą už kažkokį gerą darbą. Vartotojo profilyje matosi kiek jis yra skolingas alaus ir kiek jam skolingi. Tas kitas žmogelis gauna pranešimą, kad jam priklauso bokalas alaus, susisiekia su „statytoju“ ir sutaria kada gali gauti savo alaus bokalą. Kai realiame bare jis gauna savo bokalą, jis tinklalapyje pažymi, kad bokalas išgertas ir skola nuo pirmojo nusirašo. Vienu žodžiu bus toks beprasmis servisas, bet dažniausiai kuo kvailesnis dalykas tuo labiau visiems patinka (arba ne) :)

Vėliau, kai viskas veiks pilnu pajėgumu, įdiegsim mokėjimų kortelių aptarnavimą ir tiesiai tinklalapyje galės vartotojas nupirkti kitam alaus. O alaus gavėjas atsispausdins kuponą su barkodu, kurį pateikęs Čili pica kabake gaus savo alaus bokalą (čia „nice to have“, o ne „must have“ funkcionalumas apie kurį galvosim vėliau).

Taigi mūsų projekto funkciniai reikalavimai būtų tokie (vėliau aišku jie keisis ir pildysis):

1. Vartotojų registracija;
2. Alaus statymas atliekamas naudojant el. paštą (taip galima bus pastatyti alaus neregistruotam vartotojui);
3. Vartotojas į savo profilį gali įtraukti daug savo emailų (atsižvelgiant į 2 punktą), bet turi patvirtinti per aktyvacijos nuorodą, kad tai jo el. paštas;
4. Tituliniame puslapyje matome alaus einamuosius statymus;
5. Vartotojo profilyje rodoma, kiek jis skolingas alaus ir kiek jam skolingi kiti;
6. Bendras vartotojų sąrašas – kiek kas skolingas alaus ir pan.;
7. Top sąrašai – didžiausių skolininkų, dosniausių statytojų ir t.t.;
8. Apie veiksmus tinklalapyje vartotojai informuojami el. paštu (pavyzdžiui, kad gavo naują alaus bokalą);
9. Komentarus dar kur nors įpaišysim; :)
10. Oi, vos nepamiršau – straipsnio pavadinime paminėjau, kad projektas bus web 2.0. Kiek suprantu šį terminą, tai jame turime naudoti madingas technologijas, tokias kaip Ajax. Dizainas turi turėti dideles raides, logo turi būti melsvas su atspindžiu apačioje ir, be abejo, pats pagrindinis dalykas – tai BETA užrašas - kas savaime yra projekto sėkmės garantas.

Taigi dabar įdomiausias dalykas – jei sulauksiu bent 3 teigiamų komentarų, kad man verta visu tuo užsiimti ir rašyti šio serialo tęsinį, tai taip ir padarysiu. Jeigu niekam tai nėra įdomu tai nesivarginsiu. :)

Laukiu komentarų.

Panašūs straipsniai


“Kaip per 3 naktis sukurti web2.0 internetinį projektą arba kaip nereikia programuoti su Ruby on Rails (Įžanga)” komentarų: 28

  1. asterisk

    Įžanga, tokia kaip įžanga, nieko gero, bet toliau turėtų būti įdomu :)
    Laukiam tęsinio.

  2. ogo

    Pradžia nebloga, kaip matau domenas jau išpirktas taigi laukiam tęsinio.
    (čia teigiamas atsiliepimas)

  3. Tadas

    tai negi tamstai pačiam neįdomu pažiūrėti, kaip gausis projektas, kad kitų palaikymo klausi? :] Šiaip sudominai, būtų visai nieko tokį ‘šou’ pamatyt :].

  4. PLUTON

    Labai įdomu :) Kęęp goįn’ (2 komentarai yra - dar vienas, ir gali pradėt kodint) :)

  5. R

    laukiam tesinio, o izanga tai ne kokia, pilstai cia is tuscio y kiaura:)

  6. Martinas

    Na, entuziazmo, kaip matom, netrūksta ;-) tad jei atitinkamai yra laiko ir resursų, tai pirmyn!

  7. Tomas Aleksiejunas aka NPBMK

    Taigi čia įžanga, ko čia varot, kad nieko įdomaus :)
    Kol įžangą rašiau ir pixel.lt adminai išsiblaivė bei mano rašliavą įkėlė, jau ir RoR 2.0.2 versija spėjo išeit. Ir žiūriu ne viskas iš 1.x versijos veikia. Dabar pačiam iš naujo mokytis reiks :)

  8. Rimantas

    Jei kam įdomu iš kokio „kažkur kažką“ atėjo įkvėpimas: http://foamee.com/

  9. Saulius

    Projekto idėja patiko. Laukiu sekančio straipsnio :)

  10. Tomas Aleksiejunas aka NPBMK

    2 Rimantas. Taip, vienas iš tų. Jei dar pavyktų sukryžminti jį su http://www.yougotbeer.com ar + http://www.coastr.com , tai būtų visai oK.

  11. fogenous

    Idomiai idomiai. Noretusi pamatyt, kas is to gausis.

  12. Blogorama #292 : nežinau.lt

    […] techniškai palinkusiems yra antroji Juozo straipsnio apie PHP kintamuosius dalis ir girtas Ruby on Rails projektas Pixel tinklaraštyje (nejau negalima gerų idėjų pakreipti kaip nors racionaliau?). Mano vargus su Ubuntu priminė […]

  13. elt.lt » Blog Archive » Apžvalga. Šiandien aš skaičiau… #12

    […] įmanoma per tris naktis sukurti Web2.0 projektą… Autorius: Elt.lt siūlyti topix.lt | siūlyti kaip.tikten.lt | siūlyti zynios.lt | siūlyti […]

  14. KIK

    Tikiuosi kiti tavo straipsniai bus lakoniškesni.

  15. Tautrimas

    Tiesiog negaliu pagirti autoriaus už gerą raišką ir be galo mielą stilių – tiesiog nesinori atsitraukti nuo šio straipsnio. Čia net ir juokelių pilna, kai jų pixel.lt kartais tikrai pasigendu! Laukiu kitų tavo rašinių jau vien dėl šmaikštumo, nekalbant apie gaunamą naudą ir žinias beskaitant apie nežinomus dalykus (tokius, kaip RoR). Sėkmės!

  16. tomas

    Jei padarysi, pastatysiu alaus :)

  17. Criminal

    Na, lauksim. Žiūrėsim, kas gausis.
    Beje, 10-asis punktas apie WEB2 baisiai ironiškai nuskambėjo :)

  18. Saulius

    Pirmas punktas turi būti - “išmokti TDD arba BDD”. Ruby kodas yra arba dengiamas testais, arba išmetamas į šiukšių dėžę. O šiaip, jei nori ką nors kokybiško sukalti ant RoR, tai reikia neblogai pavargti, t.y. suliesėt šiek tiek :). Per tris naktis tiek svorio nenumesi :).

  19. Tomas Aleksiejunas aka NPBMK

    O Sauliau, pasirodo tu ir lietuviškai rašyti moki :) Tad, why does rubyonrails in Lithuania speak English language?

    Jei jau atėjai iš tokio tinklapio, tai paklausiu:
    Koks rubyonrails.lt tikslas? Suburti Lietuvos RoR programerių bendruomenę? Pupuliarinti Ruby on Rails Lietuvoje?

    Na atleisk, bet juokingai atrodo, kai straipsnis rašomas anglų kalba, komentarai lietuviškai, o atsakymai į tuos komentarus vėl angliškai. Tuo tarpu ir straipsnio autorius ir komentatoriai lietuviai :)

    Labai sveikintinas dalykas jei asmeninį blogą angliškai rašytum, bet pavadinimas “RoR in Lithuania” ir rubyonrails.lt domenas nuteikia, kad tai kiek kitoks resursas.

    Nieks lietuviškai neskaito? Norisi, kad iš googlės amerikonų paduotų? Ir kas iš to bus?

    Mano galva dabartiniu formatu rubyonrails.lt ne populiarina RoR Lietuvoje, o geriausiu atveju turi neutralų poveikį, nes nelabai kas skaito ;)

  20. Saulius

    Tomai, dėkui už klausimus. Anglų ir lietuvių kalbų mišrainė bloge pasidarė dėl to, kad iš pradžių jis buvo lietuviškas, o po to pasikeitus aplinkybėms jis pradėjo transformuotis į blogą anglų kalba.

    http://www.rubyonrails.lt tikslas yra įtraukti žmones į įvairių problemų, su kuriomis nuolat susiduria RoR programuotojai, sprendimą. Iš esmės, tai yra daugumos RoR blogų tikslas, nes daug problemų su RoR yra sprendžiamos labai paprastai, tačiau yra nemažai problemų, kurioms sprendimai nėra trivialūs, tad dažnai nepavyksta švariai išsisuktų. Tokioje situacije būtų puiku, jei kas nors mesteltų geresnę mintį kaip geriau išspręsti problemą. Taigi straipsnis = problema + autoriaus problemos sprendimas, komentaras = įdėja kaip geriaus spręsti problemą. Deja, lietuviškai suprantantys ir rašyti mokantys RoR programuotojai neparodė laukiamo aktyvumo sprendžiant problemas, tad teko pakeisti kalbą į tą, kurią supranta daugelis RoR programuotojų.

    Dabartinis http://www.rubyonrails.lt tikslas nėra “Suburti Lietuvos RoR programerių bendruomenę. Pupuliarinti Ruby on Rails Lietuvoje”. Jei kas nors nori ir gali tuo užsiimti, tai būtinai priimsim po rubyonrails.lt domenu.

    Dėl “RoR in Lithuania”, tai, turint galvoje blogo koncepciją, reiškia straipsnius apie problemas, su kuriomis susiduria lietuviai RoR programuotojai.

    Norisi ne amerikonų, o geresnių problemų sprendimų.

    Dėl populiarinimo… kaip jau minėjau, dabar tai nėra tikslas, bet laukiam ir sveikinam iniciatyvas. Atvirai, Rails programuotojams yra bent du etapai - pirmajame viskas labai įdomu, skaitai viską kas tik ką išpopuliarina :), o antrajame - jau sukaupęs solidų pagrindą ieškai efektyvių tam tikrų problemų sprendimų. Taigi kas dar esate pirmajame etape ir trykštate populiarinimo entuziasmu, prisijunkite prie rubyonrails.lt plėtojimo ir RoR populiarinimo Lietuvoje.

  21. Tomas Aleksiejunas aka NPBMK

    Man atrodo, kad globalias problemas geriau diskutuoti ir spręsti “pasauliniuose” forumuose, kur iš karto gausi ir feedbacka ir begalę skirtingų nuomonių. nemanau, kad lietyvių programuotjų problemos yra kitokios nei likusio pasaulio. Angliškai kalbančiam pasauliui nebent lokalizavimas nelabai įdomus, bet visa kita juk tas pats.

    O rubyonrails.lt populiarinimo skiltis yra būtina, nes esat patys kalti, kad nusipirkot tokį domeną, kuris įpareigoja rūpintis RoR plėtra ir populiarumu Lietuvoje :) Niekas negimsta profesionalu, visi kažkada būna naujokais. Todėl ir turite juos užsiauginti. O dabar žmogus ,nuėjęs į rubyonrails.lt, nieko nesupras ir eis mokintis php… Tad kaip daugės tų profesionalų?

  22. Saulius

    Mūsų komanda nusprendė problemas spręsti po rubyonrails.lt domenu. Daugelis Rails programuotojų tai daro bloguose, o ne forumuose. Man nepatinka tavo požiūris, t.y. kaltinimas. Aš nežinau iš kokios aplinkos tu esi, bet mano aplinkoje, jei esi nepatenkintas, tai ne kaltini, o imi ir darai geriau. Jei sugebi tik kaltinti, tai tada patyli ir priimi situacija tokią, kokia ji yra. Mes sveikinam visas iniciatyvas, kurios gali padaryti geriau ir kviečiame jungtis. Beje, aš asmeniškai literatūra apie Rails praktiškai visada skaitau anglų kalba, tikriausiai dėl to toks mano požiūris apie Rails populiarinimą lietuviškai Lietuvoje.

  23. Tomas Aleksiejunas aka NPBMK

    Nu jezusmarija, tu tikras programeris. Negi neskiri draugiško patarimo nuo kažkokių kaltinimų?

  24. Saulius

    Atskirti yra lengva, kai tiesiogiai kalbi, tačiau parašytą tekstą kiekvienas interpretuojame savaip ir pagal aplinkybes. Grįžtant prie straipsnio temos, tikriausiai visvien tikiesi, kad iš to kas nors išeis gero, o ne tik “kaip nereikia programuoti”. Kadangi testuoti nėra lengva išmokti, tai gali pradėti kažką lipdyti be testų. Turėtų išeiti nebloga serija “kaip nereikia programuoti”, o tada po truputi teks lipti ant TDD/BDD. Mūsų komanda galėtų prisidėti tuos straipsnius komentuodama “kaip reikia programuoti”. Išeis visai neblogas RoR populiarinimas :).

  25. Tomas Aleksiejunas aka NPBMK

    tu teisus, su rubu daryti testų aš nemoku ir niekada nesigilinau kaip jie daromi, nes programuoju tik savo malonumui.
    Komentarai “kaip reikia programuoti” yra very welcome, tik tokiu atveju gali tekti labai daug tu komentarų prirašyti :)

  26. Dolcas

    O programuoti per ROR sunku pradėt?

  27. strakalas

    ir projektėlis šachas?

  28. Norit PHP sudėtingai? » Pixel.lt

    […] tik 1.0.3 versija. Ruby on Rails yra nuostabus, žmogus net neturėdamas programavimo žinių gali sukurti svetainę per tris naktis. Nekeista, kad atsiradus RoR susvyravo PHP pozicijos ir daugelis programuotojų susimąstė, […]

Rašyti komentarą

Jūs privalote prisijungti jeigu norite rašyti komentarą.