Dokumentasi dibagi menjadi beberapa bagian.
Pagonila adalah sistem perancangan Perangkat Lunak berbasis API. Pengguna menulis rancangan perangkat lunak dalam bentuk desain basis data, alur proses, dan spesifikasi API. Hasil rancangan tersebut akan menghasilkan pustaka/library yang dapat digunakan sebagai backend dan driver pada frontend.
Misalkan sebuah website Toko Online sedang dalam proses pengembangan. Website tersebut kurang-lebih akan memiliki kebutuhan sebagai berikut:
Pada bagian ReactJS
, bentuk implementasi mungkin akan seperti ini:
Lalu pada backend ExpressJS
, implementasi mungkin berbentuk seperti berikut ini:
Pada contoh implementasi di atas, terdapat beberapa kode yang ditulis berulang pada dua platform berbeda.
Data berulang seperti model untuk request
dan response
API dan model basis data (misal: User
) seharusnya
dapat ditulis sekali saja. Spesifikasi API dan validasi request
juga dapat diefisiensikan pembuatannya sehingga
cukup ada satu sumber data yang digunakan oleh backend dan frontend tanpa harus menulis/mendaftarkan
API di kedua platform.
Permasalahan efisiensi di atas dapat ditangani dengan membuat sebuah sumber data terpusat yang dapat digunakan dengan berbagi data antara frontend dan backend. Perlu diperhatikan kode yang dibagikan ke kedua platform harus konsisten dan kompatibel.
Bagaimana seorang programmer dapat melakukan transfer knowledge sebuah sistem ke programmer lain dengan cepat?
Misalkan sebuah website yang cukup besar seperti "Toko Online", terdapat beberapa halaman unik pada website tersebut dengan proses yang cukup bervariasi di setiap halaman. Beberapa programmer yang saya temui akan mulai membahas tentang dokumentasi teknis.
Kejadian di lapangan ternyata cukup sulit dan memakan waktu untuk membaca dokumentasi teknis. Kebanyakan karena interpretasi setiap orang dan kalimat dalam menuliskan penjelasan di dokumentasi berbeda pada setiap programmer. Akan menjadi lebih sulit lagi ketika terdapat perbedaan preferensi dalam penulisan kode pada dokumentasi tersebut.
Data sebaiknya di-dokumentasikan pada sebuah bentuk relasional antar tabel. Terlepas bentuk data SQL atau no-SQL, setiap model data yang ada pada sebuah sistem kemungkinan besar akan memiliki hubungan dengan model data lain. Proses sebaiknya di-dokumentasikan dalam bentuk abstraksi berupa flowchart dan memfokuskan bagian-bagian penting dari proses tersebut.
Pagonila merangkum seluruh ketidakefisienan dari permasalahan di atas dan menghasilkan sebuah sistem terpusat yang mendokumentasikan dan menyediakan library (pustaka) sistem yang siap digunakan sebagai backend dan driver frontend.
Pengguna mendefinisikan model data dan proses dalam bentuk DBML dan flowchart. Data tersebut diolah ke dalam kerangka spesifikasi API. Kerangka dari spesifikasi API ini kemudian dilengkapi hingga menjadi spesifikasi API. Model data dan spesifikasi API yang telah lengkap kemudian di-deploy menjadi sebuah library yang siap digunakan.
Pagonila menyediakan editor untuk merancang skema basis data. Pengguna memasukan kode DBML lalu akan menghasilkan skema basis data pada kanvas editor. Penjelasan lebih lanjut tentang DBML dapat dilihat di halaman resmi https://dbml.dbdiagram.io/home.
Lihat selengkapnya Dokumentasi DBML Editor.
Flowchart builder yang ada pada Pagonila bertujuan untuk mendokumentasikan proses dari program. Flowchart ini berbeda dari cara dokumentasi program pada umumnya seperti menggunakan Markdown, komentar pada kode, ataupun halaman dokumen yang di-generate sistem seperti Doxygen, Javadoc, dll. Flowchart pada Pagonila lebih berfokus pada proses yang terjadi pada frontend terkait dengan proses pemanggilan data melalui API secara umum.
Seluruh proses API pada flowchart kemudian dikompilasi menjadi sebuah kerangka spesifikasi API pada tahap API Specification.
Lihat selengkapnya Dokumentasi Flowchart Builder.
Pada API Specification Editor kerangka spesifikasi API di-generate oleh sistem berdasarkan proses Flowchart Builder.
Spesifikasi API tersebut terhubung dengan data pada DBML Editor. Pengguna perlu melengkapi data API seperti parameters
,
return value
, atau schema
sesuai kebutuhan API.
Lihat selengkapnya Dokumentasi API Specification.
Setelah spesifikasi API dilengkapi, pengguna kemudian men-deploy spesifikasi tersebut menghasilkan sebuah pustaka/library. Library ini terdiri dari tiga bagian besar:
Pagonila berusaha membuat pengguna menuliskan seluruh dokumentasi sebuah program mulai dari model basis data hingga spesifikasi API. Dokumentasi ini kemudian dipublikasikan menjadi sebuah library yang dapat diimplementasi dan digunakan pada kode program sistem yang sedang dikerjakan. Produk keluaran dari sistem Pagonila pada akhirnya ada dua: