[ English | 中文 (简体, 中国) | русский | português (Brasil) | नेपाली | 한국어 (대한민국) | Indonesia | français | español | esperanto | English (United Kingdom) | Deutsch ]

Horizon Basics

Values

"Think simple" seperti yang dulu dikatakan oleh tuan lama saya (my old master) - artinya mengurangi seluruh bagiannya menjadi istilah yang paling sederhana, kembali ke prinsip pertama.

—Frank Lloyd Wright

Horizon memegang beberapa nilai kunci pada inti desain dan arsitekturnya:

  • Core Support: Dukungan out-of-the-box untuk semua proyek inti OpenStack.

  • Extensible: Siapa pun dapat menambahkan komponen baru sebagai "first-class citizen".

  • Manageable: Basis kode inti harus sederhana dan mudah dinavigasi.

  • Consistent: Paradigma visual dan interaksi dipertahankan semuanya.

  • Stable: API yang andal dengan penekanan pada kompatibilitas ke belakang (backwards-compatibility).

  • Usable: Menyediakan antarmuka awesome yang orang want digunakan..

Satu-satunya cara untuk mencapai dan menjunjung tinggi cita-cita itu adalah dengan membuatnya easy bagi pengembang untuk mengimplementasikan nilai-nilai itu.

Riwayat

Horizon mulai hidup sebagai aplikasi tunggal untuk mengelola proyek komputasi OpenStack. Karena itu, yang diperlukan hanyalah serangkaian tampilan, templat, dan panggilan API.

Dari sana ia tumbuh untuk mendukung beberapa proyek OpenStack dan API secara bertahap, diatur secara kaku ke dalam pengelompokan "dash" dan "syspanel".

Selama siklus rilis "Diablo", sistem plugin awal ditambahkan menggunakan sinyal untuk menghubungkan pola URL tambahan dan menambahkan tautan ke navigasi "dash" dan "syspanel".

Pertumbuhan tambahan ini melayani tujuan "Core Support" secara fenomenal, tetapi menyisakan "Extensible" and "Manageable" . Dan sementara nilai-nilai kunci lainnya terbentuk atas kemauan mereka sendiri, sekarang saatnya untuk merancang ulang arsitektur untuk masa depan modular yang dapat diperluas.

Arsitektur Saat Ini & Bagaimana Memenuhi Nilai-Nilai.

Pada intinya, Horizon should be a registration pattern for applications to hook into. Inilah yang artinya dan bagaimana penerapannya dalam hal nilai-nilai kami:

Dukungan Inti (Core Support).

Horizon dikirimkan dengan tiga dasbor pusat, dashboard "User Dashboard", "System Dashboard", dan "Settings". Di antara ketiganya mereka mencakup aplikasi inti OpenStack dan memenuhi Core Support.

Aplikasi Horizon juga dikirimkan dengan serangkaian abstraksi API untuk proyek-proyek inti OpenStack untuk menyediakan serangkaian metode yang dapat digunakan kembali secara konsisten dan stabil bagi para pengembang. Menggunakan abstraksi ini, pengembang yang bekerja di Horizon tidak perlu akrab dengan API dari setiap proyek OpenStack.

Extensible

Aplikasi dasbor Horizon berbasis di sekitar kelas Dashboard yang menyediakan API yang konsisten dan serangkaian kemampuan untuk kedua aplikasi dasbor OpenStack inti yang dikirimkan bersama Horizon dan juga untuk aplikasi pihak ketiga. Kelas Dashboard diperlakukan sebagai item navigasi tingkat atas.

Jika pengembang ingin memberikan fungsionalitas dalam dasbor yang ada (misal Menambahkan panel pemantauan ke dasbor pengguna), pola pendaftaran yang sederhana memungkinkan untuk menulis aplikasi yang terhubung ke dasbor lain semudah membuat dasbor baru. Yang harus Anda lakukan adalah mengimpor dasbor yang ingin Anda modifikasi.

Manageable

Di dalam aplikasi, ada metode sederhana untuk mendaftarkan Panel (sub-navigation items). Setiap panel berisi logika yang diperlukan (tampilan, formulir, tes, dll.) Untuk antarmuka itu. Rincian granular ini mencegah file (seperti api.py) menjadi ribuan baris dan membuat kode mudah ditemukan dengan menghubungkannya langsung ke navigasi.

Consistent

Dengan menyediakan kelas inti yang diperlukan untuk membangun, serta sekumpulan templat yang dapat digunakan kembali dan alat tambahan (kelas formulir dasar, kelas widget dasar, tag templat, dan mungkin bahkan tampilan berbasis kelas) kami dapat mempertahankan konsistensi di seluruh aplikasi.

Stable

Dengan membuat arsitektur di sekitar kelas inti ini dan komponen yang dapat digunakan kembali, kami membuat kontrak implisit bahwa perubahan pada komponen ini akan dibuat dengan cara yang paling kompatibel dengan mundur kapan pun memungkinkan.

Usable

Pada akhirnya itu terserah masing-masing dan setiap pengembang yang menyentuh kode, tetapi jika kita mendapatkan semua tujuan lain maka kita bebas untuk fokus pada pengalaman terbaik.

Lihat juga