Razvoj web-stranica

Razvoj web-stranica - Rasprava

david7 sub 11.2.2012 14:39

Evo ja bih želio podijeliti loše iskustvo s Webmajstori foruma... Popljuvali su me u startu kada sam pitao što dodati, oduzeti ili promijeniti u odnosu na već postojeće CMS sustave, na što su oni počeli u smislu šta će ti tvoj cms? Uzmi wp, joomlu pa ih nadogradi. Imaš modul skoro za sve, šta će ti to? Pa su onda počeli o iskustvu... Mah, ako netko hoće pogledati, tema je "Vlastiti CMS - Što dodati, oduzeti, promijeniti u odnosu na već postojeće" u podforumu "Razvoj softvera - teorija, praksa i alati.. Nisam dao direktan link zbog pravila.... Želim čestitati ekipi s Bug foruma(ovog {#}) na susretljivosti i razumijevanju... Ovdje je atmosfera daleko ugodnija.....

Nilturion sub 11.2.2012 17:48

Raditi potpuno samostalno skroz funkcionalni CMS koji možeš primjenjivati bilo kada je dosta teško, to jest zahtjeva jako puno vremena i truda. Ali zato raditi custom cms prema potrebama pojedinih korisnika, recimo prilikom izrade neke web stranice i da on može osnovne stvari modificirati nije nista neizvedivo. Ja to recimo radim kada dizajn koji korisnik želi nije moguce napraviti pomocu vec postojecih CMS-ova. Mnogi će ti reći da je potrebo puno vremena, a kvaliteta je upitna. Na početnu je to istina, ali nakon male prakse, pomocu PHP-a i neke baze mogu se napraviti jako dobri radovi prema mjeru korisnika u svega tjedan dana. A vjeruj mi znam puno primjera kada su developeri radili web stranice u nekom CMS i onda korisnik nije niti jednom to pokušao urediti. Tako da sve prema potrebi.

tnakir sri 15.2.2012 08:11
david7 kaže...

CMS će biti razvijen za vlastite potrebe... Planiram ga koristiti na budućim projektima.. Normalno da neću ubaciti neki nepotrebni feature, ali ću ga po potrebi dodati...

Samo daj. Razviti svoj CMS nije nikakva nuklearna znanost. 

 

Ja vec godinama radim iskljucivo na svom CMS-u. Upravo kucam verziju 4. U svakoj verziji dodajem nove feature, peglam UI, mijenjam logiku prema onome sto mi se u tom trenutku cini efektivnije i bolje. Na njemu (ili njima, s obzirom na verzije) sam zaradio fine svote.

 

Prednost svog CMS-a je jednostavnija i potpunija modifikacija prema potrebama klijenata.

Nedostatak je - ipak razvoj zahtjeva vremena, nije sve drag & drop (dakle takav sustav nije za decke koji ce u Joomlu ubaciti temu, modul i reci evo ja napravio stranicu).

Bypass sri 15.2.2012 08:16
tnakir kaže...
david7 kaže...

CMS će biti razvijen za vlastite potrebe... Planiram ga koristiti na budućim projektima.. Normalno da neću ubaciti neki nepotrebni feature, ali ću ga po potrebi dodati...

Samo daj. Razviti svoj CMS nije nikakva nuklearna znanost. 

 

Ja vec godinama radim iskljucivo na svom CMS-u. Upravo kucam verziju 4. U svakoj verziji dodajem nove feature, peglam UI, mijenjam logiku prema onome sto mi se u tom trenutku cini efektivnije i bolje. Na njemu (ili njima, s obzirom na verzije) sam zaradio fine svote.

 

Prednost svog CMS-a je jednostavnija i potpunija modifikacija prema potrebama klijenata.

Nedostatak je - ipak razvoj zahtjeva vremena, nije sve drag & drop (dakle takav sustav nije za decke koji ce u Joomlu ubaciti temu, modul i reci evo ja napravio stranicu).

U čemu ga radiš? ASP, jesam li u pravu?

 

Ja sam napravio prvu verziju svojeg google app engine cms-a, sa brdo opcija, plugin-ova itd.

 

Još radim na jednoj web aplikaciji za dobrotvornu organizaciju (jednu poznatu), te radim na klijentskoj aplikaciji za jednu kompaniju u engleskoj. Oboje PHP + mysql, sa ajax-json-jquery glupostima.

tnakir sri 15.2.2012 08:39
Bypass kaže...

U čemu ga radiš? ASP, jesam li u pravu?

 

Ja sam napravio prvu verziju svojeg google app engine cms-a, sa brdo opcija, plugin-ova itd.

 

Još radim na jednoj web aplikaciji za dobrotvornu organizaciju (jednu poznatu), te radim na klijentskoj aplikaciji za jednu kompaniju u engleskoj. Oboje PHP + mysql, sa ajax-json-jquery glupostima.

Da, ASP.Net MVC 3 + MSSQL + AJAX, CSS3, jQuery

kakapo sri 15.2.2012 08:41

mislim da izrada vlastitog cms-a nije neki bauk - pa samo treba googlati termine tipa 'php mysql cms in a afternoon' 'how to build your own cms with php and mysql' ili nešto slično, i ima masu tutorijala kako se može napraviti. Uostalom, (govorim o phpu jer ga najbolje poznajem) ako imalo znaš programirati, mislim da uopće nije problem napraviti neki flatfile cms. Jer, već na prvim susretima sa phpom sam se susreo sa otvaranjem/zatvaranjem fajlova, uređivanjem, hvatanjem sadržaja fajla u neki textarea i uređivanje itd. 

 

Ja sam recimo davno naišao na jedan flatfile cms, malo ga uzeo pod svoje ruke, popravio bugove koje je imao, poboljšao admin layout, i kasnije samo dodavao fukcije - i danas imam svašta od manipulacije fajlovima, uređivanje fajlova, imam i wysiwyg editor, i syntax highlighting integriran, kopiranje/brisanje/preimenovanje foldera, nekakav template  engine i neke stvari još u razvoju, jer planiram iskorititi HTML DOM maksimalno. Ideja mi je i da taj cms obradim kao temu za završni rad. 

 

Tak da, nije problem

tnakir sri 15.2.2012 08:48
kakapo kaže...

mislim da izrada vlastitog cms-a nije neki bauk - pa samo treba googlati termine tipa 'php mysql cms in a afternoon' 'how to build your own cms with php and mysql' ili nešto slično, i ima masu tutorijala kako se može napraviti. Uostalom, (govorim o phpu jer ga najbolje poznajem) ako imalo znaš programirati, mislim da uopće nije problem napraviti neki flatfile cms. Jer, već na prvim susretima sa phpom sam se susreo sa otvaranjem/zatvaranjem fajlova, uređivanjem, hvatanjem sadržaja fajla u neki textarea i uređivanje itd. 

 

Ja sam recimo davno naišao na jedan flatfile cms, malo ga uzeo pod svoje ruke, popravio bugove koje je imao, poboljšao admin layout, i kasnije samo dodavao fukcije - i danas imam svašta od manipulacije fajlovima, uređivanje fajlova, imam i wysiwyg editor, i syntax highlighting integriran, kopiranje/brisanje/preimenovanje foldera, nekakav template  engine i neke stvari još u razvoju, jer planiram iskorititi HTML DOM maksimalno. Ideja mi je i da taj cms obradim kao temu za završni rad. 

 

Tak da, nije problem

Kakvi fajlovi? Pa sve upisujes u bazu? Osim slika koje uploadas, naravno.

 

Sto se tice WYSWYG, tu imas FCKEditor, TinyMCE, onaj zamjenik FCKEditora (koji meni nije nikako lego).

Bypass sri 15.2.2012 09:19

Ja bi samo upozorio da nije baš najpametnije koristiti te made-in-one-day "CMS-e" jer uopće nema naglaska na sigurnost. I dok ste vi sretni jer ste napravili cmsić koji radi, dođe neki prištavi klinjo sa izguglanim sql injectom i drop-a vam cijelu bazu u nepovrat.

 

MIslim da bi oni koji počinju sa takvim avanturama trebali prvo malo naučiti o sigurnosnim praksama prije nego krenu lupati kod. Super je pokupiti lovu od klijenta, ali nije super dok te nazove i kaže da mu je na naslovnici neka matrix slika sa natpisom al-rashid turhish h4kz0rz team bla bla.

 

Dakle ako radite nešto što mislite prodavati, razmislite malo i o svojoj odgovornosti u tom djelu.

tnakir sri 15.2.2012 09:23
Bypass kaže...

Ja bi samo upozorio da nije baš najpametnije koristiti te made-in-one-day "CMS-e" jer uopće nema naglaska na sigurnost. I dok ste vi sretni jer ste napravili cmsić koji radi, dođe neki prištavi klinjo sa izguglanim sql injectom i drop-a vam cijelu bazu u nepovrat.

 

MIslim da bi oni koji počinju sa takvim avanturama trebali prvo malo naučiti o sigurnosnim praksama prije nego krenu lupati kod. Super je pokupiti lovu od klijenta, ali nije super dok te nazove i kaže da mu je na naslovnici neka matrix slika sa natpisom al-rashid turhish h4kz0rz team bla bla.

 

Dakle ako radite nešto što mislite prodavati, razmislite malo i o svojoj odgovornosti u tom djelu.

Sa modernim frameworcima SQL inject je proslost, bar u .Netu. Neznam kakvo je stanje u PHPu.

U svakom slucaju, napraviti prevenciju protiv SQL injecta nije neka filozofija.

alankish sri 15.2.2012 09:31
kakapo kaže...

mislim da izrada vlastitog cms-a nije neki bauk - pa samo treba googlati termine tipa 'php mysql cms in a afternoon' 'how to build your own cms with php and mysql' ili nešto slično, i ima masu tutorijala kako se može napraviti. Uostalom, (govorim o phpu jer ga najbolje poznajem) ako imalo znaš programirati, mislim da uopće nije problem napraviti neki flatfile cms. Jer, već na prvim susretima sa phpom sam se susreo sa otvaranjem/zatvaranjem fajlova, uređivanjem, hvatanjem sadržaja fajla u neki textarea i uređivanje itd. 

 

Ja sam recimo davno naišao na jedan flatfile cms, malo ga uzeo pod svoje ruke, popravio bugove koje je imao, poboljšao admin layout, i kasnije samo dodavao fukcije - i danas imam svašta od manipulacije fajlovima, uređivanje fajlova, imam i wysiwyg editor, i syntax highlighting integriran, kopiranje/brisanje/preimenovanje foldera, nekakav template  engine i neke stvari još u razvoju, jer planiram iskorititi HTML DOM maksimalno. Ideja mi je i da taj cms obradim kao temu za završni rad. 

 

Tak da, nije problem

Zainteresirao si me, kakav flatfile CMS? Pišeš proceduralno ili koristiš prednosti OOP-a? Sneek&Peek na live preview...? Daj 'vamo komadić koda, konstruktori, klase..

Jel to bazirano na nekom frameworku?

Bypass sri 15.2.2012 09:33
tnakir kaže...

Sa modernim frameworcima SQL inject je proslost, bar u .Netu. Neznam kakvo je stanje u PHPu.

U svakom slucaju, napraviti prevenciju protiv SQL injecta nije neka filozofija.

.Net to sam radi, PHP ne (osim u nekim framework-ima), a velika većina koristi php .

 

Pa baš i nije istina, jer kompleksnost današnjih injecta je poprilično visoka. Ali o tom potom, bitno je da osnove barem naprave.

tnakir sri 15.2.2012 09:43
Bypass kaže...
tnakir kaže...

Sa modernim frameworcima SQL inject je proslost, bar u .Netu. Neznam kakvo je stanje u PHPu.

U svakom slucaju, napraviti prevenciju protiv SQL injecta nije neka filozofija.

.Net to sam radi, PHP ne (osim u nekim framework-ima), a velika većina koristi php .

 

Pa baš i nije istina, jer kompleksnost današnjih injecta je poprilično visoka. Ali o tom potom, bitno je da osnove barem naprave.

Neznam, najjednostavnija zastita u .Netu je parametizirani unos. Da ne spominejm razne object mappere koji takvo nesto potpuno iskljucuju.

david7 sri 15.2.2012 11:06

Nije neka velika umjetnost zaštiti se od SQL Injectiona... Što se tiče tog FCKEditora, to je ustvari CKEditor, jesam li u pravu? Ja sam uzeo CKEditor jer je dosta jednostavan za integraciju, lijepo izgleda, ali ima i dosta funkcionalnosti... CMS pišem proceduralno, bez OOP-a, za upis u bazu koristim jednostavnu if petlju i sve funkcionira kako treba... Također nije korištena nikakva MVC struktura... U daljnjim verzijama planiram koristiti i OOP i MVC(bez frameworka) i dodati dosta feature-a... Inače, sistem odmaranja od pisanja PHP-a mi je dizajniranje UI-a, tako da kad pišem PHP, posvetim se tome, a kad odmaram, dizajniram UI i tako ću si možda znatno skratiti vrijeme razvijanja iako dizajn nije neka nuklearna fizika..

alankish sri 15.2.2012 11:11
david7 kaže...

Nije neka velika umjetnost zaštiti se od SQL Injectiona... Što se tiče tog FCKEditora, to je ustvari CKEditor, jesam li u pravu? Ja sam uzeo CKEditor jer je dosta jednostavan za integraciju, lijepo izgleda, ali ima i dosta funkcionalnosti... CMS pišem proceduralno, bez OOP-a, za upis u bazu koristim jednostavnu if petlju i sve funkcionira kako treba... Također nije korištena nikakva MVC struktura... U daljnjim verzijama planiram koristiti i OOP i MVC(bez frameworka) i dodati dosta feature-a... Inače, sistem odmaranja od pisanja PHP-a mi je dizajniranje UI-a, tako da kad pišem PHP, posvetim se tome, a kad odmaram, dizajniram UI i tako ću si možda znatno skratiti vrijeme razvijanja iako dizajn nije neka nuklearna fizika..

Moj CMS je isto krenuo proceduralno, prelazim polako tj. pisem iz nule po OOP principima. Počeo sam polako CakePHP proučavat da si još više olakšam.

Bukva sri 15.2.2012 11:56
tnakir kaže...

Sa modernim frameworcima SQL inject je proslost, bar u .Netu.

U 10. mjesecu sam slušao jedno predavanje gdje je frajer izjavio (na temu .NET secure coding) da najveći problem kod .NET-a su developeri sa stavom - kakva sigurnost, pa mi koristimo .NET.

Spomenuo si parametrizirane upite. To je ok, ali oni ti ništa ne znači ako ih ne ukalupiš u stored procedure, a njih ti nema niti jedan framework na svijetu (jer ih, očito, moraš sam napisati zavisi što ti treba i kako ti baza izgleda). A prije svega toga preduvjet ti je da si upit sanitizirao.

 

Što se tiče samog CMSa, da njega jest jednostavno napraviti jer je to, bazično, CRUD aplikacija. I to pogotovo u PHP-a, gdje login možeš doslovno iskodirati unutar, pa ajde, 30 minuta (zajedno s bazom, aktivacijom, sessionima i cookijima, password forget i ostalo standardno što treba). I napraviti CMS je dobar uvid u to kako stvari funkcioniraju tamo na serveru.

Samo... Ako se ide u prodaju toga, to je onda sasvim druga priča. Jedna stvar je još napraviti CMS za nekog low-profile klijenta kojem doslovno treba samo login i neka admin / korisnik / baniran hijerarhija. Međutim, doslovno bi me bilo strah ići tako nešto raditi za neku veću "facu" jer to je filozofija i ima dosta 3.14zdarija - od sigurnosti preko, optimizacije (i CPU/RAM i baze) do učahurivanja u sve -endove na stranici. Jednostavno ne bih mogao mirno spavati da znam da sam odgovoran za XY lozinki, br kartica i ostalih ne-baš-bezazlenih informacija.

david7 sri 15.2.2012 12:07

Naravno da ne mislim raditi to što kažeš sa kreditnim karticama... Nemam još dovoljno znanja da mogu toliko zaštiti CMS.. Ipak su to tuđi novci.. Što se tiče lozinki, ako su to lozinke za pristup administraciji gdje neće biti nekakvih bankovnih podataka onda bih samo ostavio backup sajta(uvijek to radim) i u slučaju nekog hakerskog napada malo poboljšao encrypting, promijenio lozinke i sajt poslao na server...

tnakir sri 15.2.2012 12:10
Bukva kaže...
tnakir kaže...

Sa modernim frameworcima SQL inject je proslost, bar u .Netu.

U 10. mjesecu sam slušao jedno predavanje gdje je frajer izjavio (na temu .NET secure coding) da najveći problem kod .NET-a su developeri sa stavom - kakva sigurnost, pa mi koristimo .NET.

Spomenuo si parametrizirane upite. To je ok, ali oni ti ništa ne znači ako ih ne ukalupiš u stored procedure, a njih ti nema niti jedan framework na svijetu (jer ih, očito, moraš sam napisati zavisi što ti treba i kako ti baza izgleda). A prije svega toga preduvjet ti je da si upit sanitizirao.

 

Što se tiče samog CMSa, da njega jest jednostavno napraviti jer je to, bazično, CRUD aplikacija. I to pogotovo u PHP-a, gdje login možeš doslovno iskodirati unutar, pa ajde, 30 minuta (zajedno s bazom, aktivacijom, sessionima i cookijima, password forget i ostalo standardno što treba). I napraviti CMS je dobar uvid u to kako stvari funkcioniraju tamo na serveru.

Samo... Ako se ide u prodaju toga, to je onda sasvim druga priča. Jedna stvar je još napraviti CMS za nekog low-profile klijenta kojem doslovno treba samo login i neka admin / korisnik / baniran hijerarhija. Međutim, doslovno bi me bilo strah ići tako nešto raditi za neku veću "facu" jer to je filozofija i ima dosta 3.14zdarija - od sigurnosti preko, optimizacije (i CPU/RAM i baze) do učahurivanja u sve -endove na stranici. Jednostavno ne bih mogao mirno spavati da znam da sam odgovoran za XY lozinki, br kartica i ostalih ne-baš-bezazlenih informacija.

Nisam rekao da si siguran ako koristis .Net framework, nego da je SQL injection proslost ako pametno koristis .Net fw. 

 

Sto se tice sigurnosti, ja nikad nebi pristao da spremam brojeve kreditnih kartica kod sebe u bazi, niti tako radim niti je takva praksa (Sony se opekao po tom pitanju sa PS i anonymousom). Za takvo nesto postoje payment gatewayi koji taj dio odradjuju. Kada bih nesto takvo radio onda bih se potruzdio da budem i dovoljno placen, ali da... neznam bi li se usudio raditi nesto takvo. 

 

Security je poprilicno problematican u drugim aspektima (korisnik manipulacijom moze doci do podataka koje nebi smio vidit manipulacijom url-ova, namjernih generiranja runtime errora i slicno).


Sto se tice toga da je kvalitetan CMS samo CRUD nebih se slozio, al dobro. Napisati u pola sata CMS koji ce editirati clanke, vijesti i usere (dakle osnove) a da na nesto lici... tesko da bi to odradio u pola sata. U zadnje vrijeme dosta pazim na UX i UI jer su i mene neke stvari pocele nervirati tako da i tu gubim dosta vremena.

 

Sto se tice optimizacije CMS-ova... ako se jedna Joomla vrti onako sporo kako se vrti, a moj sustav radi sve sto i ona i izvrsava se jedno 100x brze i fluidnije uz dosta manje resursa onda mislim da sam napravio dobar posao. Samo jbg, moj CMS ne moze implementirati svatko u 5 min.

alankish sri 15.2.2012 12:14
Bukva kaže...

 

Što se tiče samog CMSa, da njega jest jednostavno napraviti jer je to, bazično, CRUD aplikacija. I to pogotovo u PHP-a, gdje login možeš doslovno iskodirati unutar, pa ajde, 30 minuta (zajedno s bazom, aktivacijom, sessionima i cookijima, password forget i ostalo standardno što treba). I napraviti CMS je dobar uvid u to kako stvari funkcioniraju tamo na serveru.

Samo... Ako se ide u prodaju toga, to je onda sasvim druga priča. Jedna stvar je još napraviti CMS za nekog low-profile klijenta kojem doslovno treba samo login i neka admin / korisnik / baniran hijerarhija. Međutim, doslovno bi me bilo strah ići tako nešto raditi za neku veću "facu" jer to je filozofija i ima dosta 3.14zdarija - od sigurnosti preko, optimizacije (i CPU/RAM i baze) do učahurivanja u sve -endove na stranici. Jednostavno ne bih mogao mirno spavati da znam da sam odgovoran za XY lozinki, br kartica i ostalih ne-baš-bezazlenih informacija.

99% CMS jest upravo  CRUD aplikacija. Logika aplikacije potrebna za jedan osobni imenik je dovolja za večinu CMS-ova. Zanima me u čemu projektirate bazu i veze? Papir+olovka, whiteboard ili koristite nekakve softisficiranije alate? Koje? S naglaskom na alate orijentirane na MySQL. Ja osobno vjerujem da dobro projektirana aplikacija i backend, tj. baza i logika čine 90% posla. OStalo riješavaš u hodu i s novim vertijama dodaješ nove mogućnosti.