Cum să codificați corect fișierele diferite

Codul de trecere în dll separat are sens doar dacă doriți să executați mai multe instanțe ale programului sau în dll poate face un cod specific care depinde de tipul de sistem de operare sau de alți factori (np. Crearea unei biblioteci de testare și care îndeplinesc)
Despre divizarea unui fișier în mai multe - aici @KOLANICH descris corect. Voi adăuga că este de dorit să nu plasezi nimic în fișierele antet (.h) cu excepția definirii tipurilor și claselor, precum și descrierea semnelor funcțiilor: adică. nici variabilele globale, nici organismele de realizare a funcțiilor nu ar trebui să fie aici, în general - nu orice logică.
De asemenea, încercați să includeți mai puține fișiere antet între ele - apoi pe rake cu ordinea de compilare stumble.

Programare sistem, inginerie inversă, C ++

Și pentru ceea ce este necesar să intrăm în mai multe DLL-uri. Poate pur și simplu să re-cod, adică refactor și să las totul ca într-un singur DLL?

V-aș sfătui. În timp ce "trăiați" în cadrul aceleiași DLL și refactoring, atunci programul extern care utilizează DLL-ul dvs. va servi drept bancă de testare bună și va fi mult mai ușor să efectuați testul de testare după refactorizare! A doua etapă, dacă decideți în continuare să vă împărțiți în mai multe DLL-uri, veți fi mult mai ușor, deoarece codul clar și este testat!

Se rupe prin gândire și întrebări.
Fiecare modul trebuie să răspundă afirmativ la întrebarea "Nu rezolvă într-adevăr o singură sarcină?". În același timp, nu ar trebui să înțelegem sarcinile primitive "citirea dintr-un fișier" sau "numărarea entropiei", prin "o sarcină" înțelege un punct luat din nivelul abstractizării.

În orice caz, nu există metode ideale de împărțire! Nimeni nu vă va învăța cum să programați, este un proces iterativ, mai bine astăzi decât ieri și mâine va fi chiar mai bine decât astăzi;)

Expert în dispute cu studenții

În primul rând trebuie să înțelegeți ideea de dll. Ei trebuie să introducă componente gata fabricate, care au sens dincolo de specificitatea îngustă a unui proiect sau pentru a sprijini modularitatea (plug-in-uri, de exemplu). Aproximativ vorbind, trebuie să ne gândim, este o semnificație importantă în acest sens? Dacă doriți doar să divizați logic codul programului, atunci pentru aceasta va exista o separare suficientă la nivelul codului sursă. Restul este spus mai sus.

Articole similare