Autor | Zpráva | ||
---|---|---|---|
joe Profil |
#1 · Zasláno: 4. 4. 2013, 02:25:31
Ahoj,
rád bych věděl, jakou používáte adresářovou strukturu pro vaše projekty? Třeba i v práci. Kam ukládáte CSS, JavaScript, fonty, obrázky (layoutové a obsahové). Zkoumal jsem různé CMS a weby, ale pořád to není ono. Záměrně zatím nebudu uvádět žádné své tipy na vítěze :) Díky |
||
Taps Profil |
#2 · Zasláno: 4. 4. 2013, 06:57:12
joe:
možná hledáš architekturu MVC - viz např. http://doc.nette.org/cs/presenters |
||
joe Profil |
#3 · Zasláno: 4. 4. 2013, 11:54:29
Taps:
Ne, jednak nemyslím návrhový vzor, ale myslím skutečně adresářovou strukturu a ne ani tak pro aplikaci jako takovou (tj. třídy, aplikace, konfigurace, apod.), ale strukturu pro obrázky, JavaScript, různé soubory atp., viz to, co jsem napsal :) |
||
Sir Tom Profil |
#4 · Zasláno: 4. 4. 2013, 13:35:56
joe:
Rozděl jsi ty soubory podle druhů (obrázky, js, css, viz to - co jsi napsal...), jednotlivé druhy můžeš ještě rozdělit (např. u js na vlastní js kódy a cizí js kódy) - takže si vytvoříš několik skupin a podskupin a ty pak vložíš do různých souborů (popř. balíčků, jmených prostor, ...). |
||
Camo Profil |
#5 · Zasláno: 4. 4. 2013, 13:52:17
joe:
Ja mám taký hybrid odvodený z MVC. Mám jeden kontróler a jednotlivé moduly mám ako adresáre. Každý ten modul má vlastný JS, IMG, Template a pod. adresár. Ja som usúdil, že nieje dobré to mať všetko v jednom napr. IMG adresáry, ale neni ani dobré mať všetko rozsekané na 1000 podadresárov. Malo by to byť niečo medzi tým. Proste ak chceš upraviť JS napr. na hlavnej stránke tak vieš, že to máš napr. v súbore OBSAH/JS/default.js. A eshop bude mať trebárs ESHOP/JS/kosik.js. Takto mi to príde najlogickejšie. Ale možno existujú aj lepšie návrhy... |
||
Chamurappi Profil |
#6 · Zasláno: 4. 4. 2013, 15:54:30
Reaguji na joa:
CSS, JS, flashe a obrázky dáváme v práci na separátní doménu, protože nepotřebují cookies. Každý typ dat je ve svém podadresáři. Obsahové obrázky jsou v podadresářích podle času a podle formátu (a také na jiné doméně). |
||
aDAm Profil |
#7 · Zasláno: 4. 4. 2013, 17:01:30
Reaguji na joa:
pokud ti jde o strukturu staci files tak třeba takto: web_dir ....scripts .........core .............vlastni js knihovny co sou prave pro to dane cms .........nette .............js soubory co sou soucasti nette .........jquery .............plugins .................ui ....................js jquery pluginy co se tykaji ui .................forms ....................js jquery pluginy co se tykaji formularu .................tables ....................js jquery pluginy co se tykaji datatables atd. .................core ....................js pro samotne jquery core ....themes .........theme_1 ..............images ..............css ..................css soubory daneho tematu ..............fonts ..................fonty atd.. |
||
joe Profil |
#8 · Zasláno: 5. 4. 2013, 00:23:21
Možná by bylo dobré u jména zobrazovat počet příspěvků, třeba bych tu pak některým nebyl za úplného začátečníka :-)
Camo: „Takto mi to príde najlogickejšie. Ale možno existujú aj lepšie návrhy...“ Je mi úplně jedno jakýkoli doporučovaný návrh, řídím se sám sebou a používám to, co se mi líbí, asi tak jako většina a jsem hodně vybíravej. Čekal jsem odpovědi jako od aDAma, ale děkuju za všechny, moc jsem se zatím neinspiroval :-) Sir Tom: „Rozděl jsi ty soubory podle druhů (obrázky, js, css, viz to - co jsi napsal...), jednotlivé druhy můžeš ještě rozdělit“ Neptám se jak to můžu rozdělit, ptám se na to, co používáte. Camo: Možná šikovné, ale zase se mi to zdá méně přehledné. Podobně to řeší třeba v PrestaShopu, kdy něco dají přímo k modulům, něco jiného do tématu. A pak aby se v tom člověk vyznal, kde co je. Takovýho stavu rozhodně nechci nikdy docílit. Chamurappi: A používáte tu doménu pro více projektů? Tím myslim, jestli třeba jedna knihovna (na jedné URL) se používá ve více projektech? Pokud ano, co děláte, pokud takový server spadne? Nepojede žádný projekt? :-) aDAm: Zdá se mi to moc roztahané a složité. Pokud píšu JavaScript a určuju si u něj jmenné prostory, dávám ho pak do složek odpovídající jmennému prostoru, něco jako balíky v Javě. --- www index.php / index.html (public|files)/ css / (global|main|common).css print.css js / images / layout / content / |
||
1Pupik1989 Profil |
#9 · Zasláno: 5. 4. 2013, 03:14:38
No já mám v základu 4 adresáře a to "css,js,images,gallery" (pokud je tam galerie, či cokoliv kde neukládám obrázky přímo pro web). V js mám něco jako "graphics.object.js nebo math.matrix4.js". Zkrátka první mám název skupiny do které ten soubor patří a druhý konkrétní název v té skupině. Dělám to tak s většinou souborů (javascript, php) a nikdy jsem v tom neměl zádrhel.
|
||
Str4wberry Profil |
#10 · Zasláno: 5. 4. 2013, 07:12:49
Nevím, jestli lze něco universálního doporučit.
Pokud není web obří, může stačit mít jeden CSS soubor a jeden JS soubor i pro vývoj. Potom uspořádání css/styl.css a js/javascript.js trochu ztrácí smysl.
Problém je, že se často dopředu neví, zda bude web velký nebo malý. Další problém je s cizími skripty, které mají nějakou svou adresářovou logiku. Třídit si je do svých adresářů a upravovat v nich cesty je dost nepraktické. Na tvém nástřelu se mi subjektivně nelíbí obrázky k designu a obrázky k obsahu ve společné složce. |
||
aDAm Profil |
#11 · Zasláno: 5. 4. 2013, 08:26:14
reguji na joa:
no můj návrh je možná roztahaný, ale to z toho důvodu že mám nějaké globální JS, které je více méně založené jen na jQuery, namespace tam nehrajou a tyto js jsou společné jak pro admin, tak pro fornt a samo pro X instalovaných projektů. Zbytek je v themes rozděleno podle jednotlivých témat a tam jsou pak podsložky pro images, fonts, css a js co už se týká konkrétního tématu. A pak je ještě v rootu webu složka media do které se nahrávají fota, videa atd pro konkrétní webovou prezentaci, jednoduše media položky obsahu webu. |
||
Camo Profil |
joe:
Úprimne povedané, ja som raz skúšal preskúmať štruktúru Joomly a dodnes nechápem, ako sa im mohlo podariť vytvoriť takú obludu. Prestashop bude asi podobný, ale ten nepoznám... |
||
1Pupik1989 Profil |
#13 · Zasláno: 5. 4. 2013, 15:47:25
Str4wberry: Obrázky k designu a obrázky k obsahu beru jako jedno a to samé. Rozlišuji pouze obrázky které přidal uživatel a ty které nepřidal (neměnné, pevně dané layoutem, zkrátka součást stránky). Nicméně by asi nebyl problém složku images dále rozčlenit. Spíše bych ale použil něco na styl jak jsem psal, čili rodič.název_potomka.koncovka
|
||
aDAm Profil |
#14 · Zasláno: 5. 4. 2013, 15:54:02
Reaguji na 1Pupik1989: brát obrázky co tvoří layout(design) a obrázky co tvoří obsah jako to same je IMO hloupost už jen proto jak se na web aplikují - kaskády vs img tagy.
|
||
margin Profil * |
#15 · Zasláno: 5. 4. 2013, 16:01:59
1Pupik1989:
„neměnné, pevně dané layoutem, zkrátka součást stránky“ To jsou snad obrázky designu. aDAm: Třebas logo je součást obsahu, vkládá se jako img a patří do layoutu stránky. Dávat logo jako pozadí je hloupost. |
||
aDAm Profil |
#16 · Zasláno: 5. 4. 2013, 16:17:42
Reaguji na margin
to záleží jak se na to logo díváš a jak je celkově projekt postaven. V okamžiku kdy je to nějaké CMS co je založeno na tematech tak to logo je v obsahové části a tudíž dostupné uživateli. |
||
Str4wberry Profil |
#17 · Zasláno: 5. 4. 2013, 17:25:02
Reakce na 1Pupika1989:
Já takové obrázky beru jako nějaká uživatelská data, která mě při vývoji nezajímají, tedy je vhodné, když se pletou co nejméně. Reakce na margina: „Třebas logo je součást obsahu, vkládá se jako img a patří do layoutu stránky. Dávat logo jako pozadí je hloupost.“ Proč je to hloupost? |
||
margin Profil * |
#18 · Zasláno: 5. 4. 2013, 17:51:21
Str4wberry:
Protože logo je obsah. Logo je něco jiného, než ilustrační obrázek v hlavičce, ten patří do CSS. |
||
Chamurappi Profil |
#19 · Zasláno: 5. 4. 2013, 18:00:55
Myslím, že dává smysl rozdělovat soubory do adresářů nikoliv přímo podle typů, ale podle lidí (nebo přesněji profesí), kteří s nimi pravidelně pracují. Je to vlastně jen prodloužení výše zmíněné logiky, že uživatelem dodané obrázky jsou jinde než grafika webu. To je moje, tohle je tvoje, tamto jeho… každý si hlídá své teritorium, každý ví, za kým přibližně jít, když chce něco změnit nebo když se něco rozbije. Pokud se kodér stará jen o CSS, nechť má oddělený adresář pro CSS, pokud pracuje i s obrázky, měl by mít společný adresář na obrázky i CSS (klidně si může dělat podadresáře, ale spíš podle dílčích částí projektu než podle typů). Pokud je vedle redakční systém, kde se o všechno starají serveroví programátoři, měly by být související styly zase někde při ruce u něj a ne u zbytku CSS. Udržení jisté typově-logické struktury je důležité jen pro nováčky, aby se rychleji zorientovali, tudíž pokud projekt nestřídá přehnaně často pracovní síly, je komfort při vývoji přínosnější.
Sám si na svých malých webech dávám CSS i JS do jednoho adresáře, protože je často měním oba naráz. Tady na DJPW to vlastně je také tak. Reaguji na joa: „A používáte tu doménu pro více projektů?“ V podstatě ano. Ale všechny projekty jsou víceméně naše. „Pokud ano, co děláte, pokud takový server spadne?“ Mrtvé brouky :-) Fyzicky to není jen jeden server, takže stoprocentní pády jsou extrémně vzácné (tím spíš, že je to jen hloupé skladiště souborů). „Nepojede žádný projekt?“ Nepojedou styly a skripty. To není zase taková tragédie. Reaguji na aDAma: „tyto js jsou společné jak pro admin, tak pro fornt a samo pro X instalovaných projektů“ Pak se nabízí otázka, proč vlastně nejsou spojené v jednom souboru… |
||
Str4wberry Profil |
#20 · Zasláno: 5. 4. 2013, 20:02:29
Reakce na margina:
„Protože logo je obsah. Logo je něco jiného, než ilustrační obrázek v hlavičce, ten patří do CSS.“ Dobrá. Ale hodilo by se také v tom vidět nějaký reálný přínos než jen vyhovění definici. 1) CSS obrázek i <img> obrázek se návštěvníkovi zobrazí stejně.
2) Uživatel obrazové čtečky asi <img> obrázek loga neocení.
3) CSS obrázkem se ušetří jeden HTTP požadavek. 4) CSS obrázek je flexibilnější a vhodnější pro responsive design. Lze mít několik variant (velikostí) loga a dle velikosti okna prohlížeče je vyměňovat než se spoléhat na nekvalitní zmenšení <img> .
5) Z posice vyhledávače asi také není logo příliš zajímavé. Co tu máme dál? Komplikovanější možnost obrázek uložit, nezobrazení bez stylů, to jsou spíš detaily. Tedy mi vychází, že CSS logo rozhodně hloupostí není. |
||
Časová prodleva: 8 dní
|
|||
joe Profil |
#21 · Zasláno: 13. 4. 2013, 17:50:06
Rád bych si vymyslel takovou strukturu, která bude snadno rozšiřitelná a ponese hezké a zároveň odpovídající názvy adresářů.
Str4wberry: „Potom uspořádání css/styl.css a js/javascript.js trochu ztrácí smysl.“ Nemyslím si, že by ztrácelo smysl. Kdykoli může přijít požadavek na další rozšíření, klasicky třeba galerie - nutnost nějakého lightboxu (nebo jeho klonu) a ten už se zase skládá z více souborů (CSS, JS, obrázky). Otrava ale je, když taková knihovna "nerespektuje" moji adresářovou strukturu, protože pak je třeba cesty v CSS přepsat a nebo třeba celou knihovnu přesunout do zvláštního adresáře, kde budou knihovny, ... 1Pupik1989: „Obrázky k designu a obrázky k obsahu beru jako jedno a to samé“ Málokdo to bere jako jedno a to samé. Co když budeš mít nějaké produkty a k nim jednotlivé obrázky? Dáš je do adresáře, kde máš ostatní obrázky a nebo je radši zanoříš? Co když pak dojde k rozdělení prodktů na letní a zimní kolekci? ... Chamurappi: „dávám CSS i JS do jednoho adresáře, protože je často měním oba naráz“ Často měnit naráz lze i soubory, které jsou v odlišných složkách :-) Ale chápu, není ideální se pořád překlikávat do jiných adresářů. Pokud jde o jednoduchý web, proč ne... „Mrtvé brouky :-)“ Já něco podobného navrhoval, zamítlo se to z důvodu toho, že to je nesmysl, že se bojí, co se stane s jinýma webama, kdyby náhodou to "hloupé skladiště souborů" vypadlo z prozovu. Takže raději kopírujeme tisíce stejných souborů z projektu do projektu a pokud něco měníme, tak jen tam, kde to právě měníme a ne všude pro všechny projekty naráz. „Nepojedou styly a skripty. To není zase taková tragédie.“ Pro klienta nepojede web, velká tragédie a určitě spousta e-mailů a telefonátů. Str4wberry: „2) Uživatel obrazové čtečky asi <img> obrázek loga neocení.“ Z jakého důvodu? Teď z hlavy přesně nevím, co hlasová čtečka ohlásí, nalezne-li obrázek, co řešení takové, že na úvodní stránce by byl tag <img> nahoře a na ostatních dole?
„3) CSS obrázkem se ušetří jeden HTTP požadavek.“ Nevidím důvod proč, požadavek se přece vyšle, ať se načítá obrázek z HTML nebo z CSS nebo ne? --- „CSS obrázek je flexibilnější a vhodnější pro responsive design“ Bohužel se v dnešní době "musí" (vypadá to hezky) vytvářet obrázky pro různá zařízení, jinak to jsou lehce rozmazané fleky místo hezkých obrázků. |
||
Str4wberry Profil |
#22 · Zasláno: 13. 4. 2013, 18:16:28
„Otrava ale je, když taková knihovna "nerespektuje" moji adresářovou strukturu, protože pak je třeba cesty v CSS přepsat a nebo třeba celou knihovnu přesunout do zvláštního adresáře, kde budou knihovny, ...“
Což je v podstatě každá knihovna. A člověk pak stojí před dilematem, zda si takovou knihovnu roztřídit do svých adresářů (a tím značně zkomplikovat budoucí upgrade knihovny), nebo na takové členění resignovat. „Z jakého důvodu? Teď z hlavy přesně nevím, co hlasová čtečka ohlásí, nalezne-li obrázek, co řešení takové, že na úvodní stránce by byl tag <img> nahoře a na ostatních dole?“
Tak teoreticky, kdyby bylo v alt u loga něco jako „Logo diskuse jak psát web, skládá se z fotografie bílé klávesy á “, tak by to asi výhoda byla. :–)
„Nevidím důvod proč, požadavek se přece vyšle, ať se načítá obrázek z HTML nebo z CSS nebo ne?“ Předpokládám, že na stránce bude více obrázků, tedy půjde logo přidat mezi ostatní obrázky do společného obrázku. |
||
margin Profil * |
#23 · Zasláno: 13. 4. 2013, 18:33:33
Str4wberry:
„Předpokládám, že na stránce bude více obrázků, tedy půjde logo přidat mezi ostatní obrázky“ To nevylučuje použití IMG. http://jsfiddle.net/gPYqk/ |
||
joe Profil |
#24 · Zasláno: 13. 4. 2013, 18:42:08
margin:
„To nevylučuje použití IMG.“ Tohle řešení se mi teda vůbec nelíbí, kromě toho, že když stránku vytiskneš, může se ti místo loga vytisknout celá plachta s obrázkama a taky když pak budeš hledat logo, může být zaindexovaná opět stejná plachta. Str4wberry: „Předpokládám, že na stránce bude více obrázků ...“ Ok, nedošlo mi, že v tom spojení myslíš sprite. |
||
1Pupik1989 Profil |
#25 · Zasláno: 13. 4. 2013, 21:46:45
joe:
> Málokdo to bere jako jedno a to samé. > > > Co když budeš mít nějaké produkty a k nim jednotlivé obrázky? Dáš je do adresáře, kde máš ostatní obrázky a nebo je radši zanoříš? Co když pak dojde k rozdělení prodktů na letní a zimní kolekci? ... Ovšem obrázky produktu beru jako uživatelsky napsané, čili je mám ve složce gallery jak jsem psal výše. :) viz.:[#9] |
||
Časová prodleva: 4 dny
|
|||
Chamurappi Profil |
#26 · Zasláno: 17. 4. 2013, 20:57:07
Reaguji na joa:
„Ale chápu, není ideální se pořád překlikávat do jiných adresářů. Pokud jde o jednoduchý web, proč ne...“ Nabízí se otázka, jestli vlastně existují jiné než jednoduché weby. Občas mi připadá, že komplikovaní jsou jen tvůrci webů :-) Velké weby se skládají z menších jednoduchých celků, na nichž obvykle pracují různí lidé, a na ně jde také pohlížet odděleně. Třeba když vyrábím nějaký ovládací prvek do velkého redakčního systému, tak si také vyrobím adresář spíš speciálně pro něj (pro obrázky, CSS i JS), než abych jednotlivé součásti roztahal do adresářů vyhrazených pro dané typy souborů. Na rozpoznání typu souboru stačí přípona. „co se stane s jinýma webama, kdyby náhodou to "hloupé skladiště souborů" vypadlo z prozovu“ Ono by to hloupé skladiště nemuselo být fyzicky na jiném serveru. Může padat synchronně se zbytkem webu a přesto být na jiné doméně. „Pro klienta nepojede web, velká tragédie a určitě spousta e-mailů a telefonátů.“ Nebo má většinu statického obsahu v keši a výpadku si skoro nevšimne. |
||
aDAm Profil |
#27 · Zasláno: 18. 4. 2013, 14:31:55
reaguji na Chamurappiho:
Pak se nabízí otázka, proč vlastně nejsou spojené v jednom souboru… protože se s nimi pracuje a sám musíte uznat že se lépe pracuje s oddělnými daty než kilometrovou nudlí. Samotná aplikace pak vše "slepí" a minifikuje sama. |
||
Časová prodleva: 2 měsíce
|
|||
peta Profil |
#28 · Zasláno: 19. 6. 2013, 15:10:10
[#20]
6) Obrazek v css nabira 1/3 na velikosti. 7) Obrazek v css, pokud si to nedefinujes dobre jako class, musis duplikovat, protoze css neumi skladat. (Jen doplneni) [#26] Priklad toho je CK editor (FCK), jako plugin ma vlastni adresare, strukturu a nezajima ho cms. Jestli je to spatne nebo dobre jsem se nerozhodl. Dobre by bylo, kdyby nekdo oficialne stanovil strukturu, ktera by byla programatory povazovana za prijatelnou a zacali ji respektovat (ucitele ucit na skolach, jenze zatm se ti zadny takovy navyk nesnazi vnuti, jen ti vysvetli princip jazyka). |
||
pcmanik Profil |
#29 · Zasláno: 19. 6. 2013, 15:21:32
peta:
Odkiaľ si zobral, že veľkosť obrázku v CSS je o 1/3 väčšia? Totižto je to dosť veľké číslo a zatiaľ som o tom nepočul. |
||
Chamurappi Profil |
#30 · Zasláno: 19. 6. 2013, 15:45:31
Reaguji na pcmanika:
Zřejmě nějakou záhadnou úvahou dospěl k názoru, že obrázek bude v CSS zapsaný jako data:image/něco v base64 . Což samozřejmě nemusí být, peta se pouze snaží naplnit svoji kvótu blábolovosti.
|
||
Téma pokračuje na další straně.
|
0