Tujuan dari panduan ini adalah memberikan standar gaya dan cara-cara terbaik menulis kode untuk sebuah aplikasi AngularJS. Cara-cara ini dikumpulkan dari:
Catatan 1: Panduan ini masih berupa konsep, tujuan utamanya adalah agar dikendalikan oleh komunitas, jadi menyumbangkan waktu anda untuk proyek ini akan sangat dihargai seluruh komunitas. Catatan 2: Sebelum mengikuti panduan ini, pastikan bahwa panduan ini versi yang terbaru atau sama dengan versi dalam bahasa inggris (bisa anda cek dari waktu commit). Dalam panduan ini, anda tidak akan menemukan panduan umum untuk menulis kode javascript. Seperti yang bisa anda temukan di:
Tapi setidaknya kami merekomendasikan anda untuk mengikuti Panduan menulis kode javascript milik Google. Di halaman GitHub milik AngularJS ada sebuah wiki yang bagus seputar topik ini, kontribusi dari ProLoser, anda bisa melihatnya di sini. Daftar isiStruktur DirektoriKarena sebuah aplikasi bisa mempunyai banyak komponen, sangat baik untuk membuatnya terstruktur seperti struktur direktori. Ada 2 struktur yang biasa digunakan: Struktur 1: Membagi menjadi 2 divisi, divisi atas disusun berdasarkan komponen, divisi bawah berdasarkan fungsionalitas. Dengan cara ini, struktur akan terlihat seperti ini:
Struktur 2: Membagi menjadi 2 divisi, divisi atas disusun berdasarkan fungsionalitas, divisi bawah berdasarkan komponen. Dengan cara ini, struktur akan terlihat seperti ini:
Struktur tambahan: Ketika membuat directives, akan sangat memudahkan apabila anda menempatkan semua file yang berhubungan (seperti: templates, CSS/SASS) di dalam direktori yang sama. Jika anda mengikuti cara ini, anda harus konsisten.
Struktur tambahan ini bisa dikombinasikan dengan 2 struktur di atas. Variasi Struktur: Seperti yang digunakan di proyek . Di dalam proyek tersebut, setiap unit testing ditempatkan dalam 1 direktori yang sama dengan komponen. Dengan cara tersebut, anda akan menemukannya dengan cepat dan juga bisa digunakan untuk dokumentasi dan cara penggunaan komponen tersebut.
Saya sendiri lebih menyukai struktur pertama, karena komponen lebih mudah dicari. Untuk Aturan standar penamaan komponen bisa ditemukan di panduan tiap bagian. MarkupTLDR; Letakan semua script di bagian bawah halaman.
Buat semuanya simpel dan susun file dari yang sangat umum hingga directive yang spesifik di bagian akhir. Dengan begitu lebih mudah untuk melihat, mencari dan mengubahnya.
Untuk atribut HTML yang lain, ikuti panduan Optimasi "digest cycle"
Lain Lain
Ini akan mempermudah testing dan akan mencegah kejadian tidak terduga (seperti, jika anda melewatkan 5 di 6).
module.factory('Service', function ($rootScope, $timeout, MyCustomDependency1, MyCustomDependency2) { return { //Something }; });Modules
Ada 2 struktur umum untuk modul:
Saat ini 2 struktur di atas tidak terlalu berbeda, tapi yang pertama lebih terlihat bersih. Namun, apabila module 'lazy-loading' sudah diimplementasikan (walaupun saat ini module tersebut tidak ada dalam roadmap tim AngularJS), struktur pertama dapat menambah performa aplikasi anda. Controllers
module.controller('MyCtrl', ['dependency1', 'dependency2', ..., 'dependencyN', function (dependency1, dependency2, ..., dependencyN) { //...body }]); Gunakan cara definisi seperti ini untuk menghindarkan masalah minifikasi. Anda dapat secara otomatis menghasilkan definisi seperti di atas dengan menggunakan tool seperti ng-annotate (dan grunt task grunt-ng-annotate).
module.controller('MyCtrl', ['$scope', function (s) { //...body }]); Akan lebih susah dimengerti daripada: module.controller('MyCtrl', ['$scope', function ($scope) { //...body }]); Hal ini akan sangat berguna ketika file yang anda baca cukup panjang.
0
app.js 1HomeCtrl 2template.html 3Directives
Bagian ini adalah informasi tentang komponen service secara umum di AngularJS dan tidak spesifik tentang ( module.factory('Service', function ($rootScope, $timeout, MyCustomDependency1, MyCustomDependency2) { return { //Something }; });5, module.factory('Service', function ($rootScope, $timeout, MyCustomDependency1, MyCustomDependency2) { return { //Something }; });6 atau module.factory('Service', function ($rootScope, $timeout, MyCustomDependency1, MyCustomDependency2) { return { //Something }; });7), kecuali ditegaskan demikian.
5
6Templates
7Routing
TBD Sampai bagian ini selesai, anda bisa menggunakan panduan ini terlebih dahulu. KontribusiKarena panduan ini dibuat oleh komunitas, kontribusi sangatlah dihargai. Contohnya, anda dapat berkontribusi dengan memperluas bagian testing atau dengan menerjemahkan panduan ini ke dalam bahasa anda. |