DevForum.ro

Sunt, de ceva timp, activ pe Comunitatea Dezvoltatorilor Web. Dar pentru că sunt câteva neajunsuri (căutare ineficientă, lipsa unei minime organizări a conținutului, fiecare utilizator trebuie aprobat, nu există nici un fel de formatare a textului sau de a face highlight la cod șamd), am decis să instalez un forum: devforum.ro în care dezvoltatorii (web și nu numai) să poată discuta.

Am făcut câteva categorii, am încercat să pornesc câteva discuții etc.

Să vedem ce iese :)

Chestii tehnice:
Instalat pe o instanță DigitalOcean din două motive: pentru că am tot auzit de ei eram curios cum se comportă și pentru că versiunea de Ubuntu oferită de MXHost era ceva mai veche decât cerea Discourse. Nu am avut prea mult timp de pierdut pentru update & co, prin urmare am luat o instanță de test.

Instalarea Discourse este extrem, dar extrem de simplă, cu pașii foarte bine stabiliți și explicați. A durat mai mult descărcarea pachetelor decât instalarea propriu zisă.

Structura unui proiect

De când am început să scriu cod am avut probleme în a avea o structură cât de cât OK pentru toate directoarele și fișierele folosite:

Prima dată am abordat o metodă extrem de simplă: toate în rădăcina proiectului: un fișier CSS, un folder images și un folder js. Asta a mers ceva timp, dar imediat ce au început să vină proiectele ceva mai complexe am ajuns la concluzia că nu se pretează: există mai multe fișiere CSS. Există plugin-uri ce au imagini și/sau fișiere CSS, iar a le pune în rădăcină ar fi însemnat multe foldere inutile.

A doua metodă, folosită intens la câteva proiecte lucrate în echipe ceva mai mari, a fost să pun totul într-un folder numit, assets: css, js, images. Problema plugin-urilor am rezolvat-o foarte simplu, inspirându-mă din diverse frameworks: un folder vendor (e.g. vendor/lightbox).

Această metodă a funcționat foarte bine până când a trebuit să folosesc trei chestii noi: SASS, concatenare și minify pentru Javascript: unde puneam sursele SASS? Unde puneam CSS-ul generat? Unde puneam JS-ul minificat?

Prin urmare, a apărut metoda nr. 3 (folosită de aproximativ doi ani): Avem în continuare un folder assets dar în interiorul acestui director avem alte două foldere: src și dist.

  +---dist
  |   +---images
  |   +---javascripts
  |   +---stylesheets
  \---src
      +---images
      |   \---sprites
      +---javascripts
      +---stylesheets
      |   +---responsive-small
      |   +---screen
      |   |   +---components
      |   |   \---layout
      |   \---utils
      |       \---mixins
      \---vendor
          \---bower_components

Reguli:

  1. Tot ce este în directorul dist este generat de Grunt. Orice se editează manual în acest director se pierde.
  2. Nimic din ce este în directorul src nu va fi folosit în producție sau la altceva decât la generarea fișierelor cu Grunt.
  3. Prin urmare, folderul src poate fi șters (sau se poate bloca accesul prin .htaccess) în producție.
  4. Directorul vendor este ignorat în VCS, conținutul său fiind generat fie de bower, fie de submodule Git.

Pentru a începe un proiect mai rapid, am modificat baseproject astfel încât să-mi genereze fișierele cu care pot începe treaba și l-am împărțit în două:

  1. Grunt-WP
  2. Assets (ce este folosit ca submodul)

Modului Assets este un exemplu de structurare a fișierelor, cu un Gruntfile și un package.json; în cazul în care ai nevoie doar de acest modul, trebuie să editezi assets.json și să înlocuiești {%= name %} cu numele unui folder existent.

Ziceam acum un an că abandonez plugin-ul din cauza lipsei de interes a echipei Profitshare. Doar că treburile s-au schimbat un pic și a apărut un API în peisaj. Este în regim semi-public (adică trebuie să ceri acces) și mi se șoptește că în curând va fi public pentru toată lumea. La prima vedere pot spune că permite o grămadă de operațiuni (de la generarea de link-uri până la statistici; majoritatea operațiunilor posibile din interfața web vor fi disponibile și prin API).

Prin urmare, am apucat să rescriu o bună parte din plugin suficient pentru a decide că este într-un stadiu beta. Dacă ești dispus să-l încerci, ai de făcut câteva lucruri:

  1. Cere acces la API-ul Profitshare (detalii la sfârșitul acestui articol)
  2. Asigură-te că ai PHP 5.3.20 (minimum) instalat pe server.
  3. Lasă un comentariu la acest post să-ți trimit o arhivă cu plugin-ul.

În momentul de față plugin-ul are o funcționalitate limitată (doar înlocuiește link-urile la posturile noi și permite scanarea posturilor mai vechi pentru link-uri; partea nasoală este că încă nu tratează erorile din partea profitshare) dar funcționează cu toți advertiserii din rețea (deci nu doar emag!): altex, strollers, pcfun etc.