NGV: pemalam

DDD
Lepaskan: 2024-10-30 02:45:02
asal
343 orang telah melayarinya

NGV: plugins

Dalam episod ini kita akan melihat pendekatan pemalam untuk NGV, rangka kerja Pemapar 3D Moden kami. Ini adalah sebahagian daripada siri NGV.

Menyasarkan pembangun

Satu pendekatan adalah untuk menyasarkan pengguna akhir bukan pembangun dengan penyelesaian "klik sahaja untuk mendayakan". Kelemahannya ialah anda perlu menulis dan menyelenggara banyak kod tambahan, dokumentasi dan itu menjadikannya memakan masa dan tegar.
Akibatnya, kami menyasarkan pembangun dan memberi tumpuan untuk memudahkan mereka. Sebenarnya terdapat banyak teknologi di sekitar pemalam dan kod boleh guna semula yang boleh kami manfaatkan: git, modul ES, docker...
Satu lagi penyederhanaan besar ialah tidak mempunyai pemalam luaran: untuk memanjangkan pengguna perisian harus menghentikan projek dan membinanya.

Kebolehselenggaraan / kebolehgunaan semula

Pemalam adalah baik untuk penyelesaian yang boleh diselenggara. Dengan pemalam anda terpaksa berfikir tentang apa yang teras dan apa yang tidak; apa yang perlu dipanjangkan atau diganti. Anda perlu memperkenalkan abstraksi, antara muka dan itu menjadikan kod lebih terpencil dan lebih mudah difahami. Selain itu, anda menulis dokumentasi dan arahan untuk membantu orang di luar pembangun teras memahami API anda: yang menjadikannya lebih mudah untuk semua orang.

Contohnya, kami telah mencipta pemalam ngv-plugin-cesium-widget untuk mengasingkan kod Cesium peringkat rendah daripada kod aplikasi. Kami merancang untuk mempunyai berpuluh-puluh aplikasi: mempunyai kod biasa dalam pemalam membolehkan kami berkongsi kod tetapi juga konsep antara aplikasi. Pemalam adalah generik dan kami mendedahkan antara muka untuk mengkonfigurasinya: pemalam boleh mengendalikan sebarang konfigurasi, ia adalah kalis masa hadapan.

@customElement('ngv-plugin-cesium-widget')
export class NgvPluginCesiumWidget extends LitElement {
  public viewer: CesiumWidget;

  @property({type: Object})
  cesiumContext: IngvCesiumContext;

  @property({type: Object})
  modelCallback: (name: string, model: Model) => void;
Salin selepas log masuk

Sambungan / Penyesuaian

Dengan sistem pemalam, pengguna mempunyai kuasa untuk melampaui konfigurasi. Penyelesaiannya boleh disesuaikan dan juga dilanjutkan.

Sebagai contoh, semua aplikasi geospatial mempunyai bar carian, tetapi tidak ada yang sama: hujung belakang berbeza, format berbeza, ciri berbeza.

Pemalam carian boleh disertakan dengan pembekal yang dipratentukan (cth: OpenstreetMap Nominatim) dan membolehkan anda memberikan milik anda (cth: Pelias, Photon, ...).

Pembekal ini bebas daripada aplikasi itu dan boleh dikongsi atau disumbangkan ke hulu dengan mudah.

Selain itu, pemalam carian boleh digantikan sepenuhnya dengan pelaksanaan lain, selagi ia mematuhi antara muka asas.

    for (const pc of descr.config.providers) {
      const initialize = providerInitializers[pc.name];
      if (!initialize) {
        console.error("could not find provider", pc.name, "skipping it");
        continue;
      }
      const provider = initialize(pc.config);
      this.providers.push(provider);
    }

    this.autocomplete = new Autocomplete(this.autocompleteRef.value, {

      search: this.search.bind(this),
      onSubmit: this.onSubmit.bind(this),
      renderResult: this.renderResult.bind(this),
      getResultValue: this.getResultValue.bind(this),
    });
Salin selepas log masuk

Piawaian

Sangat hampir dengan idea "plugin" ialah konsep "modul". Sesungguhnya, modul Ecmascript ialah cara teknikal kami "mengemas" dan menyediakan pemalam kami, secara dalaman, dalam rangka kerja NGV.

Dengan cara yang sama, komponen web, ialah standard teknikal yang membolehkan kami mendedahkan pemalam UI kepada DOM.

Kami juga boleh melihat git sebagai alat asas yang membolehkan strategi pemalam kami, dengan memperkasakan pengguna untuk bercabang, menyesuaikan diri, menyumbang.

Kesimpulan

Penyelesaian kami kepada masalah pemalam ialah seni bina yang bergantung pada standard, memanfaatkan pengetahuan pembangun dan ekosistem, ia membolehkan kod lebih mudah difahami, terpencil dan lebih boleh diselenggara.

Adakah anda telah mereka bentuk sistem pemalam? Atau adakah anda mula memikirkannya? Beritahu saya maklum balas anda dalam ulasan.

Atas ialah kandungan terperinci NGV: pemalam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan