Pagina 1 din 2 12 UltimulUltimul
Rezultate 1 la 10 din 16

Subiect: Best practices in development

  1. #1
    Avatarul lui danielbuca
    danielbuca este deconectat Ambasador
    Reputatie:
    36
    Data înscrierii
    13th August 2006
    Locaţie
    Bucharest
    Vârstă
    46
    Posturi
    431
    Putere Rep
    36


    Post Best practices in development

    Tocmai am scris pe blog un articol despre best practices in development si m-am gandit ca este ok sa-l ofer si comunitatii de aici.


    Nu te repeta
    Conform acestui principiu, atunci cand scrii cod, trebuie sa eviti sa repeti sectiuni logice similare in mai multe locuri.
    Ideea este ca atunci cand vrei sa faci modificari asupra unui segment al aplicatiei pe care o dezvolti sa nu fii nevoit sa faci modificari in mai multe parti ale acesteia.
    Principiul se extinde si asupra bazei de date si se cheama normalizare.

    Bineinteles ca exista si exceptii de la acest principiu, atunci cand situatia o cere.
    De exemplu: poti crea redundanta in baza de date daca asta aduce un plus de performanta aplicatiei.

    Urmeaza o conventie
    Si acest principiu se aplica atat la cod cat si la baza de date.
    Nu conteaza ce conventie atata timp cat tu si ceilalti membrii ai echipei implicate in proiect o urmati.
    Folosind aceeasi conventie duce la eficientizarea lucrului in echipa.

    Scrie cod pentru oameni
    Acest principiu este legat oarecum de cel anterior.
    Chiar daca scrii cod folosind aceeasi conventie ca si colegii tai, chiar daca scrii comentarii tot nu este suficient uneori.
    Gandeste-te ca alti oameni vor citi acest cod si cu cat inteleg mai repede ce se intampla acolo, cu atat mai repede isi vor face treaba.
    Asta inseama ca numele de variabile, de functii, de clase, de tabele si campuri din baza de date sa fie scrise cat mai natural, inteligibil.

    Scrie reutilizabil
    Atat baza de date cat si codul scris trebuie gandite, in limite rezonabile si atunci cand e posibil, pentru a fi reutilizate.
    Chiar daca vorbim de o functie, de o secventa de cod sau de o tabela sau chiar mai mult acestea trebuie scrise in asa fel incat sa le putem utiliza si in alte module ale aplicatiei si in alte aplicatii.
    Nu incercati sa scrieti un intreg framework personal de la primul proiect, acesta poate prinde contur in timp.

    Revino pe cod pentru optimizari si rescriere
    Niciodata nu vom reusi sa scriem cod exceptional de la prima incercare oricat am vrea.
    Din cauza aceasta este bine sa ne intoarcem pe cod pentru optimizare.
    Deasemenea, putem reveni pe cod pentru a rescrie portiuni din acesta din diverse motive, atat estetice cat si de functionale.

    Bineinteles ca aceste principii nu sunt nici perfect si nici suficiente. Sunt doar un punct de plecare sau o sursa de inspiratie.

  2. #2
    Avatarul lui Tudi
    Tudi este deconectat Ambasador
    Reputatie:
    35
    Data înscrierii
    30th December 2007
    Locaţie
    Cluj-Napoca
    Vârstă
    38
    Posturi
    1.581
    Putere Rep
    35


    Implicit

    You must spread your rep around before bla bla. Dar ai aprecierea mea pentru postul asta. Nu pentru ca as fi programator, ci pentru ca ajuti la popularea forumului cu continut de calitate.

  3. #3
    Avatarul lui danielbuca
    danielbuca este deconectat Ambasador
    Reputatie:
    36
    Data înscrierii
    13th August 2006
    Locaţie
    Bucharest
    Vârstă
    46
    Posturi
    431
    Putere Rep
    36


    Implicit

    Multumesc pentru aprecieri.
    Intotdeauna am considerat ca daca toti am oferii experienta noastra celorlalti ne-ar fi mai bine tuturor.

  4. #4
    Avatarul lui haos
    haos este deconectat Ambasador
    Reputatie:
    59
    Data înscrierii
    19th February 2008
    Locaţie
    Craiova
    Posturi
    2.239
    Putere Rep
    59


    Implicit

    Pai doar atat, doar 5?
    Citeste primul meu curs SEO - principii de baza. Vezi oferta mea de advertoriale PR5.

  5. #5
    Avatarul lui danielbuca
    danielbuca este deconectat Ambasador
    Reputatie:
    36
    Data înscrierii
    13th August 2006
    Locaţie
    Bucharest
    Vârstă
    46
    Posturi
    431
    Putere Rep
    36


    Implicit

    Este vorba de principii generale, s-au scris zeci de carti despre fiecare in parte.
    Daca vrei sa discutam despre unul din principii sau sa dezvoltam subiectul esti invitatul meu.

  6. #6
    Avatarul lui Chaos
    Chaos este deconectat Ambasador
    Reputatie:
    34
    Data înscrierii
    3rd April 2006
    Locaţie
    Cluj-Napoca
    Vârstă
    41
    Posturi
    389
    Putere Rep
    34


    Implicit

    Best practices in development este o idee foarte buna si chiar merita dezvoltata. Poate asa putem sa facem share de cunostinte.. atat cat stim fiecare.
    Eu as propune dezvoltarea in jurul a doua principii: Single Responsibility si Open/Close Principle.
    Primul este partial reflectat de punctele 1, 4, 5 in sensul in care o clasa trebuie sa aiba un singur motiv pentru a fi modificata.
    Al doilea inseamna deschis la extindere insa inchis la modificari.
    Ce parere aveti?
    Nu as vrea sa duc discutia pe plan "filosofic"... ci mai degraba "real life" ...

  7. #7
    Avatarul lui danielbuca
    danielbuca este deconectat Ambasador
    Reputatie:
    36
    Data înscrierii
    13th August 2006
    Locaţie
    Bucharest
    Vârstă
    46
    Posturi
    431
    Putere Rep
    36


    Implicit

    Open/Close Principle este si el un principiu de baza (multumesc pentru reminder) care este foarte important.

    Eu, la momentul respectiv, l-am inteles cam asa: in momentul in care construiesti o aplicatie trebuie sa iti construiesti un sistem piramidal plecand de la cele mai simple funtionalitati sau de la cele mai simple entitati si mergand spre functionalitatile sau entitatile de care ai nevoie.

    Modul acesta de lucru este foarte bun, l-am folosit si in alte domenii cu succes. Intotdeauna este mai usor sa spargi o problema complicata in probleme mai mici care au rezolvari simple si evidente.

    Desi Open/Close Principle se refera strict la development acesta poate fi adaptat si in alte domenii.

    Cred ca majoritatea dintre noi am folosit acest principiu, chiar daca nu stiam de el, in unul sau mai multe cazuri. Atunci cand folosim totusi constient acest principiu este foarte benefic pe long term.

  8. #8
    Avatarul lui Marius Mailat
    Marius Mailat este deconectat Membru SeoPedia
    Reputatie:
    38
    Data înscrierii
    16th November 2005
    Vârstă
    46
    Posturi
    1.818
    Putere Rep
    38


    Implicit

    Citat Postat în original de Chaos Vezi Post
    Nu as vrea sa duc discutia pe plan "filosofic"... ci mai degraba "real life" ...
    Real life sugestiile mele sunt urmatoarele:

    - alege un limbaj de programare potrivit pentru fiecare necesitate ( Java pentru Ent apps, Delphi pentru desktop tools, PhP pentru siteuri mici, etc etc)
    - alege un limbaj de programare in functie de posibilitatile lui de a se extinde, de componentele si third party tools care exista
    - patterns, patterns, patterns + 3rd party components
    - foloseste un version control system (subversion, source safe etc)
    - automatizeaza toate procesele (ex build cu protectie de aplicatie, code signing, installer, etc)

    Toate real life.
    Directory Submitter - soft de inscriere in 4500 de directoare straine si 1025 romanesti
    Anunturi - soft de inscriere in 500 de siteuri de anunturi

  9. #9
    Avatarul lui Chaos
    Chaos este deconectat Ambasador
    Reputatie:
    34
    Data înscrierii
    3rd April 2006
    Locaţie
    Cluj-Napoca
    Vârstă
    41
    Posturi
    389
    Putere Rep
    34


    Implicit

    @mmariusel - Foarte interesanta abordarea. Si eu sunt de parere ca in development best practices trebuie sa fie de fapt o combinatie intre coding optim si proceduri de lucru bine puse la punct.
    Referitor la patterns - as completa si cu de ce sunt importante si e un must know pentru orice developer. Design patterns sunt de fapt best practices pentru o anumita situatie, te scutesc de reinventarea rotii si, de cele mai multe ori simplifica o problema complexa prin spargerea ei in probleme simple dupa cum spunea si daniel mai sus.
    Exista si reversul medaliei.. tendinta de a folosi patterns la orice si in orice situatie insa aici intervine partea de eficienta care si ea trebuie sa fie parte din best practices. Unul dintre cele 2 pericole majore in realizarea unei aplicatii este overengineering care e la fel de periculos ca si underengineering cu diferenta ca primul nu e la indemana oricui.
    As incheia pentru moment cu: refactorizari continue prin identificarea si rezolvarea de "coding smells" dar si code review ocazional si (daca permit resursele) pair programming (pot sa iasa niste lucruri foarte frumoase in sistemul acesta).

  10. #10
    Avatarul lui danielbuca
    danielbuca este deconectat Ambasador
    Reputatie:
    36
    Data înscrierii
    13th August 2006
    Locaţie
    Bucharest
    Vârstă
    46
    Posturi
    431
    Putere Rep
    36


    Implicit

    Pair programming, uite un lucru care mi s-a parut intotdeauna foarte interesant dar nu am avut niciodata posibilitatea sa experimentez.
    E un sistem care ar trebui folosit ocazional, nu permanent, si cel putin cu scop de mentoring / tutoring / knowledge share.

    Vreunul dintre voi a experimentat pana acum pair programming ? Please share

Pagina 1 din 2 12 UltimulUltimul

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. SEOmoz New Best SEO Practices
    De Cristina Andrei în forumul Discutii generale privind optimizarea si motoarele de cautare
    Răspunsuri: 23
    Ultimul Post: 1st July 2009, 12:14
  2. Caut cativa oameni buni (design + development)
    De danielbuca în forumul Locuri de munca
    Răspunsuri: 13
    Ultimul Post: 4th September 2008, 21:42
  3. ofer servicii web design & development
    De novakane în forumul Servicii web / Jobs
    Răspunsuri: 2
    Ultimul Post: 20th May 2007, 10:24

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •