Džiugu, kad prisidedi prie bendruomenės, bet tokie kodo pavyzdžiai tikrai nėra skatintinas dalykas. Galiu patikinti, kad mano domenų duomenų bazė tikrai nėra surinkta "brute force" metodu tiesiog bandant visas kombinacijas. Jei tai pradės daryti visi ir masiškai - netrukusu galimybės tikrinti domenų statusą neliks išvis dėl perteklinio srauto generavimo į KTU serverį ;) Toks tikrinimas tolygu DDOS...
Vienas 1300eu kitas 700eu su tom paciom zinio, nes nemoka saves parduot. Taip ir gyvena IT'shnikai nekomunikabilus life is life, jeigu pats neprasysi daugiau retai kas tau daugiau mokes.
Vienas 1300eu kitas 700eu su tom paciom zinio, nes nemoka saves parduot. Taip ir gyvena IT'shnikai nekomunikabilus life is life, jeigu pats neprasysi daugiau retai kas tau daugiau mokes.
Sveiki, Atsakykite į anoniminę apklausą. Analogišką dariau 2015 m. sausį, bus labai įdomu palyginti rezultatus, kas pasikeitė per metus ir po euro įvedimo. Ir persiųskite pažįstamiems kas gali atsakyti, kad būtų kuo daugiau respondentų ir galima būtų statistines išvadas daryti.
Man tai tokie juokintojai kaip pats juokina. Pirmiausia - kuo daugiau pluginu - tuo daugiau tikimybe visom skylem:) Pasikliauti pluginais tai tas pats, kas ziema iseiti i lauka su vienu batu ir galvoti kad abu apauti:)
Puiki žinia, Google pagaliau viešai išleido SEO gidą instrukcijas tinklapių vertintojams, kuriose išsamiau paaiškina pagal kokius kriterijus reitinguojamos svetaines. Išleista 2015 metų pilna versija (net 160 psl.), planuojama ją nuolat atnaujinti, todėl tikriausiai visada bus viešai prieeinama aktuali info.
Manau vienas is padoriausiu atveju rasti per oDesk'a koki zmogeli ar imone, pas kuri yra pastoviai part time darbo ir su juo dirbti. Nes zvejuoti atskirus valandinius darbus per daug laiko suryja ....
Dirbau ir aš prieš tai įmonėj panašioj į NFQ patiko irgi atrodė, kad viskas smagu įdomu dirbt ir pan. Išdirbau beveik metus ir gavau pasiūlymą kitur. Dabar, kai žiūriu į aną įmonę atrodo vienintelis pliusas nemokama kava virtuvėj. Nors manau visose įmonėse tas pats šiandien yra. Dirbu dabar tarptautinėj kompanijoj. Kodo lygis nepalyginamas su tuo ką mačiau anksčiau. Aišku visur yra to pacrapinimo, bet čia jo daug mažiau, ir tas pats laikui einant bus perrašyta. Visiškai kitaip žiūrima į darbuotoją, nėra jokių pliusiukų minusiukų kaip kažkuris narys sakė. Pats nusistatai savo "estimate" užduotim, jei nespėji niekas neverčia jaustis nevykeliu ir pan. Ilguoju laikotarpiu kiti pamato kiek padarai ir nuo to tavo alga kyla. :) Komanda pasiskirsčiusi visam pasaulį, tai ir per scrumus dar ir savo anglų kalbos žinias kaip reikiant pakeli. Dabar dirbu komandoje, kurioj esu vienas lietuvis, tai visa komunikacija anglų kalba.
Pagrindinė bėda, kad daugumoj lietuviškų įmonių dirba studentai arba katik baigę studijas ir iš komandos tik vienas kitas developeris turi 10m+ patirties. Todėl kodo lygis apgailėtinas. Bet tikiuos, kad su laiku situacija keisis. :) Taip, kad šaunuolis, bet neužsistovėk vietoj, o žvalgytis yra dar daug kur, įgausi patirties, tada pamatysi dar vieną naują lygį.
Manau reikia pridėti prie šio forumo ajax, kad automatiškai atnaujintu naujas temas ir komentarus, nes kartais net refresh'inant (perkraunant) puslapį jau būna parašytas panašus komentaras, na ir žinoma dėl patogumo, matant naujas temas. Ką manot apie įdėja? Na nebent nepatems serveris dėl resursų :)
buvau cia nesenai Vilniuje del darbo, pokalbyje. Siule darba, parduoti runescape gold, USA,EU rinkai :)) tipo kaip supportas, ir pirkimo/pardavimo vadybininkas :) sake apie 6-8 darbuotojus turi :))) va tokius darbus galima rasti CVbankas.lt puslapyje :))))
TL;DR: Pažaidžiau su index puslapiu, panaudojau Silex mikro-karkasą, Twig šablonus, Doctrine DBAL (DB abstrakciją).
Repositorija - https://github.com/apsimetu/tex (pakeistas tik index.php failas) Silex šaka - https://github.com/apsimetu/tex/tree/silex/tex (Silex, Twig, Doctrine)
Kad būtų aiškesnė veiksmų eiga, galima eiti per kiekvieną kodo pakeitimą - https://github.com/apsimetu/tex/commits/silex
Pirmas pastebėjimas, kad SQL faile https://github.com/apsimetu/tex/blob/4aa5618f7e12ca2d89a3b9cc004811d93069ede0/nimbo_tex.sql#L22 ir https://github.com/apsimetu/tex/blob/4aa5618f7e12ca2d89a3b9cc004811d93069ede0/nimbo_tex.sql#L43 vietoj latin1 turėtų būti UTF8 kitaip projektas turės problemų ateityje su koduotėmis.
Viena svarbiausių problemų projekte yra kodo ir atvaizdavimo maišymas kartu. Pradėjau iškeldamas dalį PHP kodo į failo viršų - https://github.com/apsimetu/tex/blob/a06054e01d8a198843c9bed5f72e88328037d8c2/tex/index.php
Čia autorius matyt per klaidą paliko fetch_array - https://github.com/apsimetu/tex/commit/6ad798da914de5bc8df5ea1582d01796ae28c64f
Čia berods dar viena autoriaus klaida. Manau bandyta vietoj datos su laiku rodyti tik datą, bet gavosi taip, kad visi įrašai rodo šiandienos datą - https://github.com/apsimetu/tex/commit/364b24ae418233d03bf843c0feb261cfafd91604
Jau iškelta pagrindinė puslapio lentelė, tačiau šablone dar likę šiek tiek logikos kurią reikėtų ištraukti - https://github.com/apsimetu/tex/blob/f4482605ef57520c249a562b731382d11239ad9a/tex/index.php
Apvalom šabloną ištraukdami stilaus logiką į atskirą funkciją - https://github.com/apsimetu/tex/commit/b72d5921f10b2c6276c8be19b6aef7a6b8e8c620
Ištraukiam Facebook kodą į atskirą funkciją, kad dar šiek tiek apvalyti šabloną - https://github.com/apsimetu/tex/commit/d2787a5890bf98ef107568deb52ffa62ea6e6d40
Ištraukiamas paskutinis didesnis PHP logikos kodas naudojamas puslapiavimui. Dabar jau PHP kodas atskirtas nuo HTML, puslapis atrodo švaresnis - https://github.com/apsimetu/tex/blob/73169452b1f3b562571e07fd77e78566f47e4fce/tex/index.php
Nedidelė optimizacija - https://github.com/apsimetu/tex/commit/41fb46ba934254712a429a4e92d595e4ec88457b
Dabar jau būtų galima pradėti galvoti apie PHP kodo atskirimą į atskirą failą, duomenų bazės funkcijų atskyrimą, šablonų sistemos naudojimą. Dviračio išradinėti nereikia, visa tai padeda atlikti karkasai (framework'ai). Šiam pavyzdžiui nenorėjau naudoti pilno karkaso, tokio kaip Symfony, Laravel ar Yii, tad buvo puiki proga man pačiam susipažinti su vienu iš mikro-karkasų - Silex. Twig šablonus taip pat naudoju pirmą kartą (geriau vėliau negu niekada) :)
Susiinstaliuojam Twig šablonus naudodami Composer ir bandom index failo šablona naudodami tik statinę informaciją (tiesiog HTML be PHP) - https://github.com/apsimetu/tex/commit/b329b6c9e20bc9f412bff8affca2835e8a3b6a64
Iš seno index failo perkeliam DB prisijungimą ir funkciją kuri generuoja statistikos rezultatus. Šiuos rezultatus paduodam į šabloną ir pačiam šablone naudojam Twig ciklo funkciją atvaizdavimui.
Kaip ir su statistika, tuo pačiu būdu įkeliam puslapiavimą - https://github.com/apsimetu/tex/commit/bf07363ce143e416cc075346040a3c0deae528ca
Toliau eina pagrindinė lentelė, bet kol kas praleidžiam stulpelius, kur reikia šiek tiek logikos - https://github.com/apsimetu/tex/commit/4f23cfbd500f4df9885b3b11bba81022af57ba3d
Twig leidžia gan elegantiškai formatuoti datą - https://github.com/apsimetu/tex/commit/56efb6cc6b60c1e0b28824d0f661a4cc6fbdec6a
Lentelės eilučių spalvai nustatyti galim naudoti CSS klases. Pasirodo lietuviškos raidės klasių pavadinimam tinka :) - https://github.com/apsimetu/tex/commit/0dc8a42b884043dfd4dc5923fc3b1f8680d8a857
Su Facebook stulpelio logika šiek tiek sudėtingiau, reikia susikurti Twig pagalbinę funkciją - https://github.com/apsimetu/tex/commit/6db40016dd30f57597c4df32ad0731b2f06c88fe
Viskas veikia, bet procedūrinės mysqli funkcijos atrodo ne savo vietoj :) Kad jau naudojam karkasą, galim pasinaudoti ir karkaso suteikiama duomenų bazės abstrakcija. Silex naudoja Doctrine DBAL (be ORM). Instaliuojam naudodami Composer https://github.com/apsimetu/tex/commit/ec3b9fa70e7bf782216d7bb70ac9299baf9bd44e
Bandom konvertuoti pirmą mysqli funkciją į Doctrine. Atrodo viskas veikia - https://github.com/apsimetu/tex/commit/ce4ef5815e2242d3dd04f770c1b892841e814895
Žinoma query() metodas neduoda jokių pranašumų prieš mysqli funkciją ir jo naudoti nepatartina, tad keičiam į fetchAll() metodą ir tuo pačiu nebereikia kurti masyvo laikyti rezultatams - https://github.com/apsimetu/tex/commit/e3f61c45c582151176cf52b3240e1391650e29d4
Toliau konvertuojam puslapiavimo užklausą - https://github.com/apsimetu/tex/commit/ea3ffc3acdf52b7d46c5c106939e065cb81c47cd
Toliau imam lentelės rezultatus. Čia pasinaudojam parametrų atskirimu nuo pačios SQL užklausos. Lipdyti SQL užklausą maišant tekstą ir kintamuosius yra bloga praktika - https://github.com/apsimetu/tex/commit/a32b956ae8d42cd7f36b5d27127c465cc3789517
Dabar visos mysqli funkcijos jau pakeistos, todėl galim panaikinti mysqli prisijungimą prie DB - https://github.com/apsimetu/tex/commit/746088795dd7acfe3a983d927352c10db4ea5bbf
HTTP užlausos parametrams skaityti, vietoj _GET masyvo galim naudotis patogesniu Request objektu - https://github.com/apsimetu/tex/commit/870de1a29f76d2be0048989046d5c044c3b6107b
Dabar silex.php failas atrodo jau neblogai, bet gan didelę dalį jame užima Twig pagalbinės funkcijos kodas. Jam kontroleryje ne vieta, tad sukuriam atskirą klasę TwigExtensions, kur laikysim visas pagalbines Twig funkcijas reikalingas šiam projektui - https://github.com/apsimetu/tex/commit/2e58a8e97ae65fd2d01cbdf9a24cc54a18b1ce6b
Daug geriau, bet nesinori kiekvieną kartą sukūrus naują klasę naudoti require_once failo viršuje. Mes naudojam Composer, tad galim pasinaudoti autoload funkcionalumu - https://github.com/apsimetu/tex/commit/5a90cded278fbce836ca75056f2bcb370da85567
Užklausos į duomenų bazę kontroleryje yra bloga praktika, tad iškeliam jas į repositoriją - https://github.com/apsimetu/tex/commit/25b9774c22e0b9ad5124461dd95b3ef6cb24ef9c
Na ir skaitomumo dėlei galim iškelti visą su aplikacijos inicijavimu susijusį kodą į atskirą failą - https://github.com/apsimetu/tex/commit/4aa5618f7e12ca2d89a3b9cc004811d93069ede0
Šiuo metu orginalaus index.php failo atitikmuo atrodytu taip: