Aflați cum să creați o arhitectură a aplicațiilor - saturație în stivă în limba rusă

Am început să observ că, pe măsură ce stăpânesc C #, mă gândesc tot mai mult la modul în care să implementez arhitectural una sau alta parte a aplicației.

De exemplu, atunci când dezvoltați o aplicație pentru a interacționa cu un dispozitiv USB, m-am întrebat exact cum vor interacționa componentele sale.







De exemplu, puteți implementa o singură clasă care va face totul: să lucreze la nivelul WinAPI cu USB, să aștepte sosirea pachetelor, să înțeleagă protocolul de comunicare, să implementeze secvențe de comandă și să răspundă proceselor la acestea etc.

Dar aceasta este o decizie incomodă. Este mai bine să împartă straturi și, de exemplu, pentru a face comunicarea prin USB într-un modul separat, și apoi, în cazul în care schimbarea USB la Ethernet, atunci puteți pur și simplu a scrie un nou modul fără a afecta restul.

Ok, scriem un modul de comunicare prin USB. Pentru aceasta, mai întâi scrieți interfața cu stratul superior. Au scris. Deci, ceva aici este teren pentru schimbul sincron, dar dintr-o dată aveți nevoie de o asincronă. Noi suplimentează. Și câțiva parametri.







Începem să scriem modulul propriu-zis. Se pare că funcționalitatea încorporată este redundantă. Și încă ceva este greșit și acolo, etc. Din nou începem să gândim, să corectăm / să suplimentez.

Ca rezultat, am săpa în problemele din seria „și cel mai bun de a face acum, în viitor, a fost convenabil pentru a sprijini?“, Performanța scade, și complexitatea inventat structurile în creștere brusc și ca urmare se dovedește unele terci, cod nu este perfect pe care am a vrut să primească.

Ce fac greșit? Cum fac programatorii cu experiență? Cum evită aceste întrebări nesfârșite și în același timp scrie un cod complet susținut și ușor de înțeles?

Ce literatură poate fi citită pentru a trece prin aceste întrebări? Modele de design? Nu sunt prea ascuțite pentru proiecte mari și dificile pentru proiecte mici?

Și cineva are legături cu proiectele din C #, unde puteți vedea soluții arhitecturale?

stabilit pe 25 martie 14 la 17:57

Închis din cauza faptului că este necesar să se reformuleze problema, astfel încât să poată da un răspuns corect obiectiv de către participanții la Oceinic. Regent. Peter Olson. xaja. Berbec 15 Oct 15 la 10:29.

Întrebarea dă naștere la dezbateri nesfârșite și discuții bazate nu pe cunoaștere, ci pe opinii. Pentru a primi un răspuns, reformulați-vă întrebarea astfel încât să poată fi răspuns cu un răspuns corect neechivoc sau să ștergeți întreaga întrebare. Dacă întrebarea poate fi reformulată în conformitate cu regulile menționate în certificat. editați-l.







Articole similare

Trimiteți-le prietenilor: