Evaluarea codului – simplist

Cind am inceput sa programez , criteriul pentru proiecte bune era sa fie codul functional.

Dupa citiva ani, criteriul a fost: se poate re-utiliza codul pentru alte aplicatii ?

Dupa alti citiva ani, criteriul a fost :codul se poate re-folosi pentru aplicatii DOS / Desktop / Web ?

Acum criteriul la care am ajuns este : daca adaug cite o tabela de istoric la fiecare tabela, cit TIMP / cit COD  iti ia ca interfata de search / load by id / etc sa functioneze astfel incit utilizatorului sa i se prezinte unitar rezultatele ?

(Mie mi-a fost de ajuns un AutoMapper  …)

ce trebuie sa stie un programator asp.net

 

 

1. Test a,b : http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html

2. Test fizzbuzz :  http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html

3. Cunostinte ASP.NET  de baza : how do you store user data ? What’s the difference between Application and Session ?<and so on>

4. Cunostinte ASP.NET aprofundate  : http://www.hanselman.com/blog/ASPNETInterviewQuestions.aspx

5. Cunostinte .NET de baza  -  clasele  din framework – System.Io.File , de exemplu

6. Apoi  .NET aprofundat : http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx

Daca nu treceti de 1 si 2, nu aveti ce cauta mai departe…

Intilnire programatori Bucuresti

Intilnirile RONUA BUCURESTI se vor tine in fiecare a 2-a marti la fiecare 2 luni

Acum pica in data de 14 septembrie 2010.

Ne  vom intilni  la Mojo club, str Gabroveni  nr. 14 (linga Hanul Lui Manuc, Unirii)

Locatia se afla la adresa :

http://maps.google.com/maps?q=mojo+club+bucuresti+map&oe=utf-8&client=firefox-a&ie=UTF8&ei=KMeITOHiG4WSswbG483eCg&ved=0CAkQ_AU&hq=mojo+club&hnear=Bucuresti+021689,+Romania&ll=44.431328,26.102657&spn=0.007094,0.01929&z=16&iwloc=F

sau (pe scurt)

http://tinyurl.com/2ww2ruh

Vor fi 2 prezentari :

Andrei Gheorghe   va vorbi despre "Dynamic Data"

Nicolas Montana va vorbi despre " Google AppEngine"

Va astept deci marti, 14 septembrie 2010 , la ora 18:30 !

PS : din pacate,am aflat ca am sedinta cu parintii… Asa ca o sa intirzii si o sa vin, probabil, la ora 19:30…. Gazda va fi Andrei Gheorghe si ii multumesc si pe aceasta cale!

Cu multumiri

Andrei Ignat

Cit dureaza trimisul unor emailuri – partea a 2-a

Data trecuta (http://serviciipeweb.ro/iafblog/2010/08/30/CitDureazaTrimisulUnorEmailuri.aspx)am intrebat cit dureaza sa programezi ceva simplu : trimisul unor notificari prin email la un produs software deja existent.

Hai sa vedem :

  1. adaugat o tabela de tinut evidenta celor care sa se trimita emailul si criteriilor   + cod de acces tabela + teste = 40 minute.
  2. trimis email efectiv de test ( setare in fisirul config pickup directory) = 10 minute
  3. observat problema de securitate la introdus codul unde trebuie   – ar trebui receptorul emailului sa vada toate detaliile ? Integrat in securitatea existenta = 60 minute
  4. dat seama ca acel email este un fel de GUI – trebuie sa prezinte utilizator – adus datele esentiale de identificare si actiune ulterioara = 30 minute
  5. adaugat coduri de eroare   = 10 minute
  6. retestat solutia =  10 minute
  7. scris codul pentru testare automata si verificat = 30 de minute
  8. Realizat ca nu trebuie sa trimita la acelasi om care a aprobat – refacut de la punctul 3 la 7 : 60 minute
  9. Meditat daca sa fie facut ca (DOS app + task scheduler) sau Windows Service = 5 minute
  10. Facut DOS App si verificat = 20 minute

Total : 4 ore si 35 minute de munca efectiva pentru un task care suna : “ as vrea, daca un document vine si are caracteristica X( data de cel care introduce documentul ) sa imi trimita un email atunci cind trece de seful acestuia. Se poate ?”

 

Sa imi fie invatatura de minte!

Cit dureaza trimisul unor emailuri

Din munca de programator : se da un program care tine niste documente pe niste caracteristici .Are aproximativ 30 de tabele. E gata facut, interfata Web, merge aproape bine(cam incet, ca sunt destule verificari pe tabele  pentru securitate – ca documentele sa le vada doar cel care face si seful acestuia, un workflow mic pe el , etc).

Vine seful si zice : as vrea, daca un document vine si are caracteristica X( data de cel care introduce documentul ) sa imi trimita un email atunci cind trece de seful acestuia. Se poate ?

Intrebare aditionala programator : e ok daca vine la sfirsitul zilei ?

Raspuns :sigur, nu trebuie sa fie real time.

Evaluare programator : avem tabelele angajat, angajatsef ( sa spuna seful angajatului), document( contine aprobatde – numele sefului care a aprobat ) , liniedocument , infoliniedocument ( contine caracteristica).

Codul e scris cu DAL, Repository, business rules, security si interfata web.

La cite ore/om ati evalua acest task ?

Raspunsul – in postul urmator , adica aici : http://serviciipeweb.ro/iafblog/2010/09/06/CitDureazaTrimisulUnorEmailuriParteaA2a.aspx

De ce scriu mai bine sau mai prost

Vreau sa raspund la un blog post de pe Ronua(nu merge acum site-ul, dar o sa pun linkul ASAP)  , care ma acuza ca scriu cod de care ar trebui sa imi fie rusine

In primul rind sa spun de ce scriu aici  :ca sa am o ocazie sa impartasesc experientele mele. Nu sunt un programator foarte bun ( poate nici macar unul bun ? ), dar sunt un programator care invata. Iar acest blog este modul meu de a invata cum sa scriu ca sa explica altora ce am facut. Bine, rau – am facut si, daca il pun pe blog, inseamna ca sunt mindru de el .

In al doilea rind, de ce blog-posturile sunt inegale: e normal. Ginditi-va ca sunt un om obisnuit, cu chef sau nu de scris  -dar care vrea sa scrie un post pe saptamina referitor la programare. Bun, rau – vreau sa scriu.

In al treilea rind, rezolvarea este simpla , daca nu va place : fie oferiti-mi feedback, fie nu mai cititi ce scriu eu. S-ar putea sa pierdeti ceva – totusi, nu e sigur. Pe de alta parte, trebuie sa ne potrivim – mie imi placeau mai mult blog-posturile lui Hanselman cind era la Corilian decit acum, cind este la MS.

In al patrulea rind, va multumesc pentru atentia cu care mi-ati urmarit rindurile si va invit sa faceti un comentariu fie aici, fie la http://msprogrammer.serviciipeweb.ro/2010/08/09/project/

Cu stima

Andrei

Cistigatori Concurs VS2010 Ultimate with MSDN

Acesta este postul cu cei care au cistigat la concursul de aici

Nu am reusit sa ma decid intre 2 aplicatii  – asa ca le-am selectat pe amindoua .

Cistigatorii sunt :

1. Sorin Aungurenci :

“deja avem un mic tool care va lucra cu TFS si principala problema
pe care o avem este nu mai putem testa deoarece am avut doar 1 luna de test pe un server in internet.
Pentru comunitate, cel putin cei care sunt inscrisi in Ronua si vor sa foloseascca ceea ce vom dezvolta, le vom oferi aceste tooluri gratuit pentru utilizare.
In afara de asta in functie de proiect poate deschidem si ceva subiecte interesant de dezbatut in cadrul comunitati.
Ca si timeline primul tool am vrea sa-l avem pe la inceputul lui octobrie si in paralel sa definitivam planul si infrastrucutra pentru SOA.”

2.Cristea Catalin George :

“Proiectul despre care vreau sa iti vorbesc a inceput de curand si suntem in momentul in care incercam sa strangem o comunitate. Numele lui este Web of Hope (www.webofhope.ro) si a aparut din dorinta de a face ce stim noi mai bine pentru a ajuta persoanele care au nevoie. Ce stim noi sa facem mai bine este sa programam, sa facem design-uri sau alte lucruri de genul asta….si cum astfel de actiuni nu pot fi de ajutor unor oameni care nu au o locuinta, sau au nevoie de diferite lucruri pentru a duce o viata decenta…a aparut ideea de a lucra pentru diverse compani/persoane fizice ( fara a fi platiti)  cu o singura conditie…beneficiarii muncii noatre sa ajute prin donarea unor bunuri familiile aflate in impas.”

 

Felicitari amindorura ! Au primit subscriptia MSDN pe email!

Concurs VS2010 Ultimate with MSDN

Pentru ca in ultima vreme am avut niste neplaceri , nu am putut scrie blog-postul obisnuit de luni. Si acesta o sa fie putin pe linga.

Va propun RONUA.RO – turneu VS2010 (  http://newsletter.ronua.ro/tsp/?src=000040851833188  , 19 iulie Bucuresti, cladirea MS ca data trecuta ) , tombola (http://newsletter.ronua.ro/VS2010/social.php) cu premii consistente.

Si va mai propun si eu un concurs in care cistigatorul va fi decis de catre mine – premiul este un Visual Studio 2010 Ultimate cu MSDN (in care scrie ca “all software benefits, including Microsoft Office 2010 products, are for development and test purposes only”) . De unde il am ? Pai, ce sa zic  …. MVP ofera si niste chestii bune !

Ce trebuie sa faceti pentru concursul meu :

Sa scrieti un email (adresa o gasiti sus , dreapta) sau un comentariu sau un blogpost pe blogul vostru( oh, daca ati avea si un link aici, ar fi si mai bine!)

Ce sa contina  ?

a) Ce ati face cu acest VS2010 Ultimate +MSDN pe care nu il puteti face cu VSExpress .

b) Cum ar ajuta ce ati face voi pe altii ( comunitate de programatori, comunitate de … avocati, de ex?)

c) TimeLine propus.

Pentru concursul meu, data limita este 1 august 2010.

Cum sa faci Automat istoricul modificarilor pe tabele cu EF4 si fisiere t4

De nu stiu cite ori am avut de facut istoricul de tabele. Am incercat de toate – triggeri, Change Data Capture ( si –reclama  – GUI  http://cdchelper.codeplex.com/ ) . Dar fiind programator mi-a placut sa le fac din cod – insa trebuia sa tin minte de fiecare data sa insereze inca ceva.

Acum , cu EF4 si template – le pot face automat. Solutia o gasiti aici :

http://msprogrammer.serviciipeweb.ro/2010/06/28/ef-automatic-history-of-table-and-t4-files-tt-files/

Are citeva conventii/presupuneri despre structura tabelelor ( ca au _history ca sufix si ca au cimpurile  [ModifiedDate], [ModifiedBy], [ModifiedType] ) dar se poate modifica din fisierul tt.

Daca nu ma credeti, downloadati proiectul  history 

(Apropo : fisierele tt merg doar cu Windows 2010 – iar codul merge pentru EF4 , care genereaza si FK-urile pentru obiecte)

Codul e partea care se vede

Bineinteles, dupa ce scriu si colaborez cu multi la www.scurt.ro ( vezi documentul de la http://www.scurt.ro/Home/About ) intilnesc urmatorul post :

 

http://timstall.dotnetdevelopersjournal.com/coding_is_just_the_tip_of_the_iceberg.htm

Si nu aminteste de clienti, marketing, PR, comunicare, si multe altele ( in documentul de la http://www.scurt.ro/Home/About   gasiti inclusiv cum sa va faceti firma in RO)

Succes!