Organizarea fișierelor comune.

Inițial am vrut să folosesc „assets”, dar mi-a fost ușor teamă de eventualele repercursiuni, așa că le-am zis fișiere comune. Întâi să-ți dau câteva exemple despre ce ar putea însemna fișierele comune și de ce trebuie să le organizezi:

  • Librării JS: jQuery, prototype, moo etc;
  • Framework-uri server side: Zend, Cake, Symphony etc. Sunt destul de sigur că se poate aplica și la alte limbaje decât PHP.
  • Imagini folosite în mai multe proiecte (gif-uri animate pentru ajax activity, de exemplu)

De ce?

În urmă cu ceva timp am scris despre cum să faci un folder pentru fișierele comune și să incluzi de acolo ce ai nevoie. Problema a apărut însă în momentul când trebuia să trimit lucrarea finală clientului: unele librării erau în directorul /assets, ce era localizat în altă parte decât restul proiectului. Rezultatul? Toate scripturile nu funcționau (nu se încărca jQuery, jQuery UI, etc). Prin urmare, a trebuit să găsesc o soluție.

În cazul în care lucrezi la mai mult de un proiect, iată avantajele:

  • Poți face update foarte simplu: înlocuiești UN fișier și gata
  • Ocupă mai puțin spațiu pe HDD. Sigur, nu se cunoaște nicio diferență în cazul jQuery, dar în cazul lui… să zicem Zend framework (aprox 100Mb), lucrurile stau un pic diferit. Mai ales dacă lucrezi de pe un notebook cu un hdd nu foarte generos

Cum?

Folosindu-ne de hard link-uri, respectiv symbol link-uri. În esență, ambele înseamnă cam același lucru. Diferența fiind că symbol link-urile sunt pentru fișiere, în timp ce hard link-urile pentru foldere.

Începând cu Win NT (sau 2000, nu sunt foarte sigur), poți face astfel de link-uri în două feluri:

  1. Start->Run-> cmd și scrii:
    mklink link target
    

    dacă e fișier sau

    mklink /d link target
    

    Dacă e folder.

    În ambele cazuri, link reprezintă numele link-ului (copiei) iar target este numele fișierului/folderului existent. Da, trebuie să specifici toată calea: c:\users\șamd

    Atenție, trebuie să ai drepturi de administrator!

  2. Folosești Link Shell Extension. Faci click dreapta pe fișier/folder, alegi pick source, te duci unde vrei să faci link-ul, faci click dreapta și alegi Drop as-> Symbolic link. Simplu, nu? :D (via Andy)

Oricare din metode ai alege-o, sistemul de fișiere trebuie să fie NTFS. Am precizat acest mic amănunt deoarece sunt încă destui care încă folosesc FAT32 deoarece… Habar n-am de ce!

Și dacă n-am Windows?

Majoritatea (toate?) sistemele de operare moderne au ceva asemănător. În Linux ai comanda ln iar în OSX ai tot ls ln. Cum nu folosesc niciunul din aceste OS-uri în mod curent, nu îți pot da detalii suplimentare.

5 Comentarii to “Organizarea fișierelor comune.”

  1. In Linux/OSX pentru fisiere avem:
    ln link target
    pentru directorii
    ln -s link target.

    Apropo, corecteaza propozitia unde spui ca in OSX ai ls.

  2. Staicu Ionuț-Bogdan

    Done. Mulțumesc de confirmare & corectare :)

  3. Staicu Ionuț-Bogdan

    păi și ce legătură are version control cu fișierele comune? :|

  4. Dacă faci deployment-uri, de regulă în proiect nu ar trebui să incluzi fișierele web, caz în care un script batch care să îți facă soft linkuri către folderere cu fișere web ar fi mai mult decât recomandat.

    Tot așa, pentru viteze nesimțite de lucru, recomand și utilizarea de ram drive-uri. Eu pe laptop (am doar 3GB) prefer să aloc între 512MB și 1GB de memorie RAM pentru un RAM-drive și să las sistemului (mediul de dezvoltare, server si baza de date) restul de 2GB – 2,5GB.

    P.S. Comanda rd vă șterge soft-linkul creat cu mklink. :D

Show trackbacks

Ți-a plăcut articolul? Lasă un comentariu!

You can insert code snippets using BBcode:
[js].[/js] [html].[/html] [php].[/php] [css].[/css]
You can also use some HTML tags:
<blockquote>.</blockquote> <code>.</code> <a href="">.</a> <strong>.</strong> <em>.</em>

windows apple dropbox facebook twitter