Separarea preocupărilor
protocol Internet stackEdit
separarea preocupărilor este crucială pentru proiectarea Internetului. În suita de Protocol Internet, s-au depus eforturi mari pentru a separa preocupările în straturi bine definite. Acest lucru permite proiectanților de protocol să se concentreze asupra preocupărilor dintr-un singur strat și să ignore celelalte straturi. Protocolul SMTP al stratului de aplicație, de exemplu, este preocupat de toate detaliile desfășurării unei sesiuni de e-mail pe un serviciu de transport fiabil (de obicei TCP), dar nu este cel puțin preocupat de modul în care serviciul de transport face ca acel Serviciu să fie fiabil. În mod similar, TCP nu este preocupat de rutarea pachetelor de date, care este gestionată la nivelul Internet.
HTML, CSS, JavaScriptEdit
HyperText Markup Language (HTML), Cascading Style Sheets (CSS) și JavaScript (JS) sunt limbaje complementare utilizate în dezvoltarea de pagini web și site-uri web. HTML este utilizat în principal pentru organizarea conținutului paginii web, CSS este utilizat pentru definirea stilului de prezentare a conținutului, iar JS definește modul în care conținutul interacționează și se comportă cu utilizatorul. Din punct de vedere istoric, acest lucru nu a fost cazul: înainte de introducerea CSS, HTML a îndeplinit ambele îndatoriri de definire a semanticii și a stilului.
Programare orientată pe Subiectedit
programarea orientată pe subiect permite abordarea preocupărilor separate ca construcții software separate, fiecare pe picior de egalitate cu celelalte. Fiecare preocupare oferă propria sa structură de clasă în care sunt organizate obiectele în comun și contribuie cu starea și metodele la rezultatul compozit în care se taie unul peste celălalt. Regulile de corespondență descriu modul în care clasele și metodele din diferitele preocupări sunt legate între ele în punctele în care interacționează, permițând un comportament compozit pentru ca o metodă să fie derivată din mai multe preocupări. Separarea multidimensională a preocupărilor permite ca analiza și compoziția preocupărilor să fie manipulate ca o „matrice” multidimensională în care fiecare preocupare oferă o dimensiune în care sunt enumerate diferite puncte de alegere, cu celulele matricei ocupate de artefactele software corespunzătoare.
Programare orientată spre Aspectedit
programarea orientată spre Aspect permite abordarea problemelor transversale ca preocupări primare. De exemplu, majoritatea programelor necesită o anumită formă de securitate și înregistrare. Securitatea și exploatarea forestieră sunt adesea preocupări secundare, în timp ce preocuparea principală este adesea realizarea obiectivelor de afaceri. Cu toate acestea, atunci când proiectați un program, securitatea acestuia trebuie încorporată în proiectare de la început, în loc să fie tratată ca o preocupare secundară. Aplicarea securității după aceea duce adesea la un model de securitate insuficient, care lasă prea multe lacune pentru atacurile viitoare. Acest lucru poate fi rezolvat cu programare orientată spre aspect. De exemplu, un aspect poate fi scris pentru a impune faptul că apelurile către un anumit API sunt întotdeauna înregistrate sau că erorile sunt întotdeauna înregistrate atunci când o excepție este aruncată, indiferent dacă codul procedural al programului gestionează excepția sau o propagă.
niveluri de analiză în inteligența artificialăedit
în știința cognitivă și inteligența artificială, este obișnuit să se facă referire la nivelurile de analiză ale lui David Marr. La un moment dat, un cercetător se poate concentra pe (1) Ce aspect al inteligenței trebuie să calculeze, (2) Ce algoritm folosește sau (3) Cum este implementat acel algoritm în hardware. Această separare a preocupărilor este similară cu distincția de interfață / implementare în ingineria software și hardware.
sisteme Normalizatedit
în sistemele normalizate separarea preocupărilor este unul dintre cele patru principii directoare. Aderarea la acest principiu este unul dintre instrumentele care ajută la reducerea efectelor combinatorii care, în timp, sunt introduse în software-ul care este menținut. În sistemele normalizate, separarea preocupărilor este susținută activ de instrumente.
SoC prin clase parțialedit
separarea preocupărilor poate fi implementată și aplicată prin clase parțiale.
SoC prin clase parțiale în RubyEdit
bear_hunting.rb
class Bear def hunt forest.select(&:food?) endend
bear_eating.rb