Kada prestati raditi sa gotovim aplikacijama i platformama?

Švrljam po netu i gledam koji PHP završen framework najviše odgovara mom ukusu. Radim sa CodeIgniterom već dosta dugo, sviđa mi se zbog sintakse i brzine, ali nije to to, ‘customer support’ teško postoji, rijetko kad se dobije odgovor na njihovom community forumu, fali mu ono nešto… No ne bitno, zanima me kada prestati sa radom gotovih aplikacija? Vjerujem da ‘veće’ web stranice, zajednice, mreže, softveri, kako god, ne koriste tuđe gotove web aplikacije, biblioteke, frameworke, platforme, također vjerujem da nijedan gotov framework nije dovoljno stabilan da izdrži velik promet stranice.

Koje platforme ili frameworke vi koristite u izradi aplikacija? Kad prestati sa radom gotovih i početi izrađivati vlastite?

Inaće dosta rijetko bih nešto išao raditi od nule većinom koristio frameworke.
Sad sam išao napisati novu verziju jednog starog open source projekta i nakon tjedan dana testiranja sa frameworcima na kraju sam se odlučio da je najbolje rješenje krenuti od nule.
I normalno isplatilo se nakon nekog vremena no ispočetka se puno vremena potrošilo na testiranje i izrade konstrukcije odnosno frameworka. Na kraju uvijek završiš na frameworku.
No trebao bi krenuti sa tako nešto kad se ima dosta praktičnog i teorijskog znanja iz programiranja.
Kod pisanja svojeg library-a pa čak i bez detaljne pripreme, ako sljediš praksu koji si imao vidjetiti u drugim rješenjima, ako sljediš principe dobrog programiranje velike su šanse da ćeš napisati library koji će na kraju dovesti do bržeg rada, lakšeg održavanja, manjih troškova, nego da si koristio treća rješenja.

I sad kad stojim iza dizajna cjelog pristupa bazi, view, controllera te komponenta (HTML/AJAX komponente) mogu cijelu MVC struktruru isplanirati na taj način da bude međusobnoj vezi koja mi omogućava manje rada, lakših izmjena i više fleksibilnosti.
No trebalo je ispočetka ipak uložiti više vremena ali kasnije dolazi “payoff”.

Sve više mi se čini da si ti jedini aktivan ovdje na forumu, nitko drugi ne odgovara :slight_smile:

Znači isplati se izraditi vlastitu platformu, ako se ima znanja i vremena…

[quote=“jcrnkovic”]
Znači isplati se izraditi vlastitu platformu, ako se ima znanja i vremena…[/quote]

Jedan od glavnih razloga zašto sam se na to odlučio što i nemam vremena:)
Zadnje vrijeme radim na tome do 2 dana u tjednu, nadam se da će i biti više vremena uskoro.
Radi se o tome da samo na startu izgubiš vrijeme jer možeš raditi dosta abstraktno, znaći nema konkretnog programiranja.
No recimo sa model generator i vlastitim ORM (prilično jednostavno template rješenje) na koje sam utrošio tjedan i pol, rješio sam sva pitanja vezanao uz querije na bazu.
I pazi sad situaciju, promjenim tablicu, otvorim stranicu i izradim novi model, sa novim podacima.
Znaći tu nemam šta više za kodirati.
Zatim eto baš danas trebao mi count, napišeš kompleksni queriji i onda radiš count. To ako nemaš objektni pristup bazi gubiš vrijeme dok sve posložiš i tako na svakom queriju za count. Održavanje 0 bodova.
Možeš uzeti nešto poput Active Record, ZendDB ili Doktrine. Koliko ćeš vremena na tome izgubiti i na kraju raditi gluposti što ćini većina developera.

I što učinio, otvorio base klasu database modela i dodao tri metode:
count, removeQuery, updateQurey. Kad pozoveš count, pozove se removeQuery koji za sada briše “order by” i “limit” sa querija.
I zatim se pozive updateQuery koji izmjeni select query da radi count na tablicu.
I sad svi moji modeli poslje selecta mogu sa pozivanje count() dohvatiti broja mogučih rezultata za recimo paginaciju.
Ali da bih dobio to da mogu tako nešto dobiti za sat ili dva morao sam dva tjedna potrošiti na ORM.

Imao sam prilike raditi u firmi koja PHP koristi do maksimuma za vlastito poslovanje i poslje toga sam si rekao, e sad znam za kakve aplikacije treba Zend, Symfony ili nešto treće. To su enterpreise rješenja namjenjena za ogromne timove, u ogromnim sustavima gdje zajeb dođe samo tako par desetaka tisuća kuna u radnim satima.
Dobro je raditi u takvim rješenjima za učenje ali za razvijanje svojih aplikacija tako nešto ti netreba, to je overkill sa duplo w:)

Naravno ne u svim slučajevima, na kraju uvijek ovisi šta treba napraviti, zato sam si cijelu filozofiju autoloadera u svojoj aplikaciji podredio tome da mogu pozivati bilo što iz Zend frameworka bez ikakvog filozofiranja. Što je sigurno, sigurno je:)

tražiš jezik+framework sa kojim se brzo razvijaju kvalitetne web aplikacije?

groovy+grails

http://groovy.codehaus.org/

http://grails.org/

groovy radi unutar jvm

[quote=“jorgovan”]tražiš jezik+framework sa kojim se brzo razvijaju kvalitetne web aplikacije?

groovy+grails

http://groovy.codehaus.org/

http://grails.org/

groovy radi unutar jvm[/quote]

mislim da je on pitao za php framework…

a sta nije cakePHP odličan framework za razvoj web aplikacija?

Po meni je najbolje koristiti oop php + smarty template engine

Poslije je lako zamijeniti dizajn

[quote=“zerocoolos”]mislim da je on pitao za php framework…

a sta nije cakePHP odličan framework za razvoj web aplikacija?[/quote]

pa pitao je i koje mi platforme i jezike koristimo?

recimo da se meni sviđa java, djelomično php i grails+groovy.

java+ejb(eventualno)+jsf.
php + cakephp
groovy+grails

[quote=“mahir”]Po meni je najbolje koristiti oop php + smarty template engine

Poslije je lako zamijeniti dizajn[/quote]

za php framework i je oop php…

sve je u klasama i ti ih samo pozivas po vec principu kako radi framework…

[quote=“jorgovan”]pa pitao je i koje mi platforme i jezike koristimo?

recimo da se meni sviđa java, djelomično php i grails+groovy.

java+ejb(eventualno)+jsf.
php + cakephp
groovy+grails[/quote]

yep, i meni je java bolja solucija, nedavno sam je počeo učiti ali ne stignem puno zbog manjka slobodnog vremena, naravno nisam se nešto puno pozabavio jos programiranjem za web aplikacije, uskoro budem…

[quote=“mahir”]Po meni je najbolje koristiti oop php + smarty template engine

Poslije je lako zamijeniti dizajn[/quote]

Najbolji ti je framework OOP PHP? :smiley: Mislim da ti baš i ne znaš o čemu se priča ovdje. Smarty nema veze sa ovime što je autor pitao, Smarty je nešto drugo. :slight_smile:

Slažem se sa većinom što je gorrc rekao (kao i inače, moram primijetiti), jedino što eto ne bih tek tako “grupirao” Zend, Symfony ili nešto treće za rad na isključivo nekim masovnim milijunaškim projektima za ogromne timove. Npr Zend je ekstremno dobar pa ako i sam radiš na jednoj omanjoj do srednjoj aplikaciji, bez obzira što bi svako odmah povezao Zend sa nekim ogromnim projektom na kojem radi ogromni tim.

Da, naravno da je isplativo napisati vlastiti framework. Naravno, ne ići sa ciljem “ej idem ja sad napisati svoj framework” i bubati sve što ti padne na pamet. Vjerovao ili ne, ja svoj vlastiti framework pišem polako evo već 5-6 godina (naravno, ono najbitnije je bilo gotovo u samom startu, ovo što kažem 5-6 godina mislim kako ga konstantno proširujem kako/kada/što stignem i umijem. Čitaj dalje) i mislim da ga neću nikada ni završiti, a od prije cca godinu dana sam počeo primjećivati koliko sam tek CI izbacio iz uporabe. Naime - mislim da je naprirodniji pristup napraviti osnovni MVC, neke osnovne klase za koje si siguran da će ti trebati (tipa bazu podataka, sesije, kolačiće itd) a dalje osvježavaš svoj framework ovisno o potrebama, a to ćeš najbolje raditi tako što ćeš vježbati ili izrađivati određene aplikacije/projekte. Tako ja radim, uopće mi ne oduzima previše vremena a sa vremenom ti uvijek dođe neka nova funkcija ili klasa koja ti nije pala na pamet u samom početku međutim koja je jako korisna, i samim time pospješuješ vlastiti framework. Odatle mojih 5-6 godina.

Ne znam jesi li me baš najbolje razumio jer mi se čini da nisam bio najjasniji, ali da skratim - dakako da je isplativo pisati vlastiti MVC, međutim prije nego počneš uzmi papir i olovku i radi namjenski i polako. Tako ćeš imati 95% frameworka u malom prstu, a radit ćeš namjenski i sa vremenom ćeš početi koristiti isključivo i jedino vlastiti framework za razvoj bilo koje aplikacije.

Upravo se igram i zabavljam sa FuelPHP framworkom, koji je kombinacija kako kažu na stranici “FuelPHP is a simple, flexible, community driven PHP 5.3 web framework based on the best ideas of other frameworks with a fresh start.”, na jednom side projectu.

Mogu reći da me se jako dojmio do sada, command line, scaffolding, crud, rest, orm i sve ostale điđe miđe. Sve u svemu mislim da ću mu posvetiti malo više vremena u sljedećim tjednima.

Evo i link na isti:
http://fuelphp.com/

Piasnje svog frameworka danas je isto što je nekad bilo pisanje vlastitog CMS-a, neizmjerni izvor za učiti, naučiti i usavršiti svoje znanje u određenom polju i još usto ako ga kasnije možeš unovčiti kud ćeš bolje.

Prednosti:

  • iskustvo koje ćeš steći
  • znanje koje ćeš steći
  • jednostavnost kasnije nadogradnje
  • poznavanje sustava iznutra i izvana
  • sigurnost

Mane

  • treba znanja
  • dug period razvoja
  • upitna sigurnost
  • mogučnost monetizacije
  • ne znam što više staviti ovdje

Lijepo je raditi sa tim frameworcima kad ti trebaju manji djelovi, Zend je za odličan jer se svaki dio Zenda može koristiti standalone, van framworka.
No ako ideš kvalitetno raditi onda već nakon nekog vremena shvatiš da gubiš vrijeme.
Recimo u Zendu ono što mi je najgore su rad sa formama a one su neophodne.
Da izradiš kvalitetno formu prođe vrijeme i vrijeme i svaki put iznova i to se jednostavno nemože ubrzati a da se ne gubi na kvaliteti.
Eto bio tjedan dana proučavao YII framework i tamo je puno koraka za izrade forme izbačeno ako bi usporedili sa Zednom, a ako se ne varam postoji i Form Model objekt koji ju biti vrši spajanje Modela sa View, u ovom slučaju forme.
U Zendu zbog njegove prirode, visoka razina decouplinga klasa, to ne postoji, i može biti samo ako se izvede u nekom mikroframeworku koji bi funkcionirao unutar Zenda.

[quote=“CreatifCode”]Upravo se igram i zabavljam sa FuelPHP framworkom, koji je kombinacija kako kažu na stranici “FuelPHP is a simple, flexible, community driven PHP 5.3 web framework based on the best ideas of other frameworks with a fresh start.”, na jednom side projectu.
[/quote]

E to baš treba fresh start. Treba jedan pravi framework za izradu web 2.0 aplikacija, frameowork koji će omogućiti web developerima koji su i sa klijent strane i sa server strane potkovani da mogu ubrzati svoj rad. Tražio sam takav framework ali još nisam uspio naići.

Zašto nitko ne spominje ezFramwork po meni isto vrlo moćan ili ezComponents. Možda zato što nisu MVC pa nisu trendy?!?

Ma znam o cemu pricate, znam ja codeigniter i cakephp, ali govorim da mi je najdraze praviti aplikacije bez frameworka, već samo sa smarty-jem :slight_smile:

A baš sam mislio da neće biti odgovora… :slight_smile:

Je li uopće moguće napraviti kvalitetnu aplikaciju bez frameworka ili proceduralnim programiranjem?
Ne sviđa mi se Zend zbog njihovih imenovanja core klasa…

Za to je najbolji domaći framework :), kao što je CreatifCode rekao, poznaš ga iznutra i izvana :slight_smile:

[quote=“jcrnkovic”]A baš sam mislio da neće biti odgovora… :slight_smile:

Je li uopće moguće napraviti kvalitetnu aplikaciju bez frameworka ili proceduralnim programiranjem?
Ne sviđa mi se Zend zbog njihovih imenovanja core klasa…

Za to je najbolji domaći framework :), kao što je CreatifCode rekao, poznaš ga iznutra i izvana :)[/quote]

zasto proceduralnim programiranjem kad ti php omogucava objektno? iskreno ne vidim logike u tome + mozes si ustediti tonu vremena objektnim programiranjem, a i kasnije tonu klasa sto napravis koristiti i za druge projekte…

uglavnom, ne vidim zašto ne bi mogao napraviti dobru i kvalitetnu aplikaciju bez koristenja nekog frameworka…

[quote=“zerocoolos”]zasto proceduralnim programiranjem kad ti php omogucava objektno? iskreno ne vidim logike u tome + mozes si ustediti tonu vremena objektnim programiranjem, a i kasnije tonu klasa sto napravis koristiti i za druge projekte…

uglavnom, ne vidim zašto ne bi mogao napraviti dobru i kvalitetnu aplikaciju bez koristenja nekog frameworka…[/quote]

Na koji način si može uštediti tonu vremena programiranjem u objektno orijentiranom načinu u odnosu na proceduralni, ne kužim daj pojasni.

primjer

Ovo je smo primjer, ali ako treba možemo mi i puno kompleksnije primjere odrađivati ovdje usporedbe radi.

Druga stvar ako imaš tonu i tonu klasa i fileova koje ćeš koristiti i kasnije u drugim projektima, da li si svjestan da i tada govorimo o frameworku, samo što to nije MVC framework nego ajmo reći nekakav component based framework. Nekako imam osjećaj da ti ustvari sebi ne znaš rastumačiti što je to framework i čemu to služi.

I treća stvar ne vidim zašto ne bi mogao napraviti i dobru i kvalitetnu aplikaciju koristeći proceduralno programiranje.

Također, međutim ruku na srce ali to vrijedi za neke omanje aplikacije gdje neće biti (ili će biti jako malo) održavanja i nadopuna koda. Ako se radi o većim aplikacijama gdje će trebati biti ažuran po pitanju održavanja, i tada je moguće proceduralno međutim to je onda gubitak vremena i resursa definitivno.

[quote=“CreatifCode”]
Druga stvar ako imaš tonu i tonu klasa i fileova koje ćeš koristiti i kasnije u drugim projektima, da li si svjestan da i tada govorimo o frameworku, samo što to nije MVC framework nego ajmo reći nekakav component based framework. Nekako imam osjećaj da ti ustvari sebi ne znaš rastumačiti što je to framework i čemu to služi.

I treća stvar ne vidim zašto ne bi mogao napraviti i dobru i kvalitetnu aplikaciju koristeći proceduralno programiranje.[/quote]

Jel ovo meni upućeno ili zerocoolos? :smiley: Vjerujem da je njemu, ali kasno je :smiley:

zerocoolosu