Plugin-uri sunt argumente pro și contra - notează

Ne-am atins deja cu privire la aspectele tehnice de a crea plugin-uri în Qt. De data aceasta ne vom concentra pe latura teoretică a problemei. Acum ne confruntăm cu întrebarea nu este „Cum?“ Și „De ce?“

Pe scurt amintesc ceea ce este un plug-in. Plugin - biblioteca dinamică opțională care implementează interfața specificată. Aceasta înseamnă că o aplicație care utilizează module, ce constă dintr-un miez și plugin-uri. Aceste module sunt opționale. Pot fi adăugate în mod arbitrar și eliminate fără recompilarea întregului proiect, și să aibă un număr minim de dependențe între un (în mod ideal - nu depind unele de altele). În acest caz, orice persoană care cunoaște o interfață plug-in, poate crea propria lor extensie conectabile pentru aplicații fără a avea acces la codul sursă al proiectului.

Această definiție implică unele argumente pro și contra utilizării de plug-in-uri.

Plugin-uri - pro

Începem, desigur, cu argumente pro.

popularizarea aplicației

Plugin-uri pentru a adăuga suport pentru proiect și să nu se bazeze pe acest avantaj destul de ciudat. Extensiile de la terți dezvoltatori - forța motrice principală a oportunităților de creștere și popularitatea cererii dumneavoastră în acest caz.

Introducerea open-Sors pentru proiect nu oferă aceleași beneficii. În cazul în care cererea este deschisă, dar nu există modalități simple de a adăuga extensii, utilizatorii vor fi mulțumiți cu orice versiune a „scos din cutie“, sau alegeți o soluție mai „flexibilă“. Această situație este relevantă pentru DWM shell grafic. Descrie cum se instalează „extensii“ pentru DWM (sau mai degrabă - patch-uri) sa dovedit a fi atât de complex, care sa transformat într-un articol complet.

Ușor de a face upgrade

aplicatie modulara, care este format de plug-in-uri de pe partea de utilizator este mult mai ușor să faceți upgrade decât monolitic. Punct de vedere tehnic, acest lucru se reduce la o simpla adăugare sau înlocuirea unuia sau mai multor biblioteci de extensii de fișiere.

Deoarece plugin-uri puțin dependente unele de altele, orice utilizator poate construi aplicația pe gustul tau, un designer. Cu toate acestea, el devine doar ceea ce are nevoie. Această aplicație este un design practic imposibil să pună în aplicare fără utilizarea de plug-in-uri - ar trebui să aibă mii de ansambluri cu toate combinațiile posibile de seturi de caracteristici (sau pentru a obține sistem de patch-uri de disconfort, la fel ca în DWM).

Plugin-uri - contra

Nu este lipsit de o abordare bazată pe plug-in-uri și dezavantaje.

Complexitatea mai mare a punerii în aplicare

Flexibilitatea mai mare a sistemului, cu atât mai greu este să pună în aplicare și să mențină. Mai mult decât atât, este evident în toate etapele de dezvoltare - de la proiectare la codificare.

Provocarea într-adevăr este destul de complicată. Compromisurile sunt necesare. Dificultatea este aceasta: cum să selectați interfața plug-in care se deschide simultan tot ceea ce este necesar, și în același timp, ascunde restul. Așa că vom trece treptat la următorul minus.

probleme de securitate

Dacă nu restricționează libertatea de acțiune de plug-in-uri, puteți rula în probleme de securitate. Responsabilitatea pentru ceea ce se întâmplă plugin-uri poartă dezvoltator și proiectant al miezului de aplicare. Trebuie să ne amintim întotdeauna că atacatorul poate aluneca utilizator plug-in-ul sub masca de „bun“. Dacă plugin-ul se poate face nimic, atunci totul se poate întâmpla, orice, în funcție de nivelul de autoritate al utilizatorului, care a lansat cererea.

Pentru a rezolva această problemă aveți nevoie pentru a oferi o reducere a beneficiilor, care va rula plugin-ul.

Convenabil de a utiliza construcții limbaj de programare de securitate. Un bun exemplu - limbajul Java, care are o varietate de sisteme și niveluri de protecție.

Dacă sunteți foarte grave, despre reputația produsului, puteți merge chiar mai departe și să ia Respingerea de plugin-uri „rele“. Dezvoltatorii de extensie trebuie să treacă prin controale de calitate, fără de care nu vor primi plugin-ul în baza de date oficiale. O decizie similară a fost făcută în App Store de la Apple.

Acum putem da un răspuns la următoarea întrebare: „Când și ce să facă plug-in-uri.“ Dacă intenționați să actualizați frecvent aplicația; oferind utilizatorilor libertatea de alegere în ceea ce privește setul necesar de funcții; prevăd posibilitatea unui relativ simplu adăugarea de module de la terți dezvoltatori, conectați - alegerea ta.

Dar nu uitați că suport complet pentru plug-in-uri - este o mare responsabilitate. Ar trebui să fie avertizați în prealabil cu privire la versatilitate, fiabilitate și securitate interfață plug-in. Dacă ia în considerare beneficiile pe care vă interesează nu este puternic, este mult mai ușor de a limita dinamice obișnuite (sau statice) biblioteci, care ar fi în mod clar legate de procesul de construcție a proiectului. Deci, de multe ori vă simplifica sarcina dumneavoastră și de a reduce în mod semnificativ volumul de muncă.


Proiectarea unui exemplu de cod OOP flexibil


Cinci greșeli tipice de proiectare și programare


Crearea unui Qt-in-uri


Zece sfaturi pentru crearea unui cod de program flexibil