Dalam semua contoh (leaderboard, permainan kata, dll.) Mereka memiliki satu file template HTML tunggal. Apakah ada beberapa proyek Meteor open source besar dengan banyak file template HTML berbeda yang dapat kita gunakan sebagai contoh praktik terbaik? Tampaknya tidak praktis untuk meletakkan semua yang dibutuhkan aplikasi besar semua dalam satu file templat.
165
Jawaban:
Benjolkan semuanya! Dari dokumen:
sumber
Seperti dalam faq meteor tidak resmi, saya pikir cukup banyak menjelaskan cara membuat aplikasi besar:
Cari tahu lebih lanjut: FAQ Meteor Tidak Resmi
sumber
mobile-config.js
?Saya setuju dengan yagooar, tetapi bukannya:
Menggunakan:
main. * file dimuat terakhir. Ini akan membantu memastikan bahwa Anda tidak memiliki masalah pemuatan pesanan. Lihat dokumentasi Meteor, http://docs.meteor.com/#structuringyourapp , untuk detail lebih lanjut.
sumber
Meteor dirancang agar Anda menyusun aplikasi dengan cara apa pun yang Anda inginkan. Jadi jika Anda tidak suka struktur Anda, Anda bisa memindahkan file ke direktori baru, atau bahkan membagi satu file menjadi banyak bagian, dan untuk Meteor hampir semuanya sama. Perhatikan saja perlakuan khusus direktori klien, server, dan publik seperti yang ditentukan dalam halaman dokumentasi utama: http://docs.meteor.com/ .
Hanya menyatukan semuanya dalam satu isian HTML tentu tidak akan muncul sebagai praktik terbaik.
Berikut adalah contoh dari satu struktur yang mungkin: di salah satu aplikasi saya, forum diskusi, saya mengatur berdasarkan modul atau "tipe halaman" (home, forum, topik, komentar), menempatkan file .css, .html, dan .js untuk masing-masing jenis halaman bersama dalam satu direktori. Saya juga memiliki modul "base", yang berisi kode .css dan .js dan templat induk, yang menggunakan {{renderPage}} untuk membuat salah satu modul lain bergantung pada router.
Anda juga dapat mengatur berdasarkan fungsi
Saya berharap beberapa struktur praktik terbaik dan konvensi penamaan yang lebih spesifik muncul.
sumber
Untuk semua orang yang Googling tentang topik ini:
The
em
tool baris perintah (oleh EventedMind, orang-orang di balik Iron Router) sangat membantu ketika rigging sebuah Meteor App baru. Ini akan membuat struktur file / folder yang bagus. Jika Anda sudah mengerjakan aplikasi dan ingin mengatur ulang, cukup buat proyek baruem
dan Anda dapat menggunakannya untuk inspirasi.Lihat: https://github.com/EventedMind/em
Dan di sini: /programming/17509551/what-is-the-best-way-to-organize-templates-in-meteor-js
sumber
Saya pikir struktur file dari Discover Meteor Book benar-benar bagus dan awal yang kuat.
sumber
Buat paket
Tentu saja tidak semuanya cocok dengan pendekatan ini, tetapi dalam aplikasi besar Anda akan memiliki banyak fungsi yang dapat diisolasi. Apa pun yang dapat dipisahkan dan digunakan kembali dalam paket, sisanya masuk dalam struktur direktori yang biasa, seperti disebutkan dalam jawaban lain. Sekalipun Anda tidak membuat paket untuk menghindari overhead, menyusun kode secara modular adalah ide yang bagus (lihat saran ini )
Meteor memungkinkan kontrol yang baik atas bagaimana Anda memuat file Anda (urutan pemuatan, di mana: client / server / keduanya) dan apa yang diekspor paket.
Saya khususnya merasa sangat mudah cara mudah untuk berbagi logika antara file terkait. Katakan, misalnya, Anda ingin membuat beberapa fungsi util dan digunakan dalam file yang berbeda. Anda hanya membuatnya "global" (tanpa
var
) dan Meteor akan membungkusnya di namespace paket, sehingga tidak akan mencemari namespace globalInilah dokumen resmi
sumber
Setelah beberapa saat keluar dari pengkodean meteor, saya senang memiliki waktu luang untuk mencurahkan untuk membangun game online yang cukup kompleks. Struktur aplikasi telah menjadi salah satu perhatian pertama saya, dan sepertinya beberapa programmer yang sangat baik telah memperjuangkan metode paket-satunya untuk menyusun aplikasi, yang memungkinkan Anda untuk secara longgar pasangan paket yang berbeda secara fungsional. Ada keuntungan lain dari pendekatan ini, dan 2 artikel yang sangat bagus menjelaskan pendekatan tersebut dapat ditemukan di sini:
http://www.matb33.me/2013/09/05/meteor-project-structure.html http://www.manuel-schoebel.com/blog/meteorjs-package-only-app-structure-with-mediator -pola
sumber
Kami memiliki proyek besar (mungkin salah satu proyek Meteor terbesar yang pernah dibangun siapa pun karena sedang dalam pengembangan penuh waktu selama 1,5 tahun). Kami menggunakan set nama file yang sama di setiap tampilan. Ini sangat konsisten dan membantu kita dengan cepat menavigasi ke apa yang kita cari:
Sepertinya ini dalam sebuah proyek:
Template terkait hanya disimpan bersama dalam file yang sama. Isi dari yang
view/order/checkout/templates.html
ditampilkan diciutkan di sini:Kami menggunakan subfolder ketika tampilan menjadi kompleks dengan banyak bagian:
Kami juga mengembangkan dengan WebStorm, editor yang sangat kuat dan fleksibel untuk pengembangan Meteor. Kami merasa sangat membantu ketika mencari dan mengatur kode kami dan bekerja secara produktif.
Senang berbagi detail berdasarkan permintaan.
sumber
Gunakan CLI scaffolding besi-cli. Memang membuat semuanya sangat mudah.
https://github.com/iron-meteor/iron-cli
setelah diinstal. gunakan
iron create my-app
untuk membuat proyek baru. Ini akan membuat struktur berikut untuk Anda. Anda juga dapat menggunakan ini pada proyek yang ada. gunakaniron migrate
dalam direktori proyek.sumber
Saya mengikuti format boilerplate mattdeom, yang sudah termasuk router besi & Model (Collection2). Lihat di bawah :
sumber
Ada banyak pendekatan berbeda untuk penataan aplikasi Anda. Sebagai contoh jika Anda memiliki router dan template halaman yang berbeda, dan di dalam setiap template halaman Anda memiliki banyak bagian halaman dan seterusnya, saya akan menyusunnya tergantung pada semantik dari level yang> lebih tinggi.
Sebagai contoh:
Tentu saja, Anda bisa meletakkan template berita Anda di folder umum, karena Anda bisa menggunakan template berita Anda di halaman yang berbeda.
Saya pikir itu yang terbaik Anda menyusun aplikasi Anda dengan cara yang Anda sukai.
Saya menulis aplikasi kecil di sini: http://gold.meteor.com Dan itu sangat kecil, saya hanya menggunakan satu file html dan hanya satu file template.js .. :)
Saya harap ini sedikit membantu
sumber
Ada kelas baru di Evented Mind yang disebut Mengatur Proyek Meteor yang membahas ini tetapi juga berbicara tentang konfigurasi proyek dan mengatur lingkungan pengembangan Anda.
Dari video Struktur Aplikasi di kelas: Meteor tidak memiliki pendapat yang sangat kuat tentang bagaimana aplikasi Anda harus disusun tetapi di sini ada beberapa aturan:
1) Muat pesanan - Meteor pergi ke lokasi terdalam di direktori file terlebih dahulu dan memproses file dalam urutan abjad
2) klien dan server adalah folder khusus yang diakui Meteor
Struktur kami terlihat seperti ini:
The todos_controller meluas RouteController, sesuatu yang datang dengan Iron Router.
The
em
alat yang disebutkan di atas juga mendapatkan update besar sekarang dan harus jauh lebih baik dan tersedia di: https://github.com/EventedMind/emsumber
Saya juga mencari praktik terbaik untuk meningkatkan dan skala aplikasi saya melalui arsitektur yang dipahami dengan baik. Semua praktik yang disebutkan di atas berfungsi untuk aplikasi berukuran kecil hingga sedang, tetapi akan gagal saat Anda bekerja di tim yang lebih besar. Ada beberapa cara yang saya coba:
1) Saya mengikuti strategi ini: https://github.com/aldeed/meteor-autoform untuk membuat skala dan menggunakan kembali template. Penulis memiliki ide yang sangat bagus tentang desain komponen dan bidang. Saat ini saya mengimplementasikannya karena komunitas mengembangkan 36 paket yang mencakup hampir setiap kasus dan saya dapat menggunakan TypeScript untuk mengetikkan aman selama fase pengembangan.
Berikut ini adalah posting blog yang bagus tentang cara melakukannya: http://blog.east5th.co/2015/01/13/custom-block-helpers-and-meteor-composability/ juga di sini: http: // meteorpedia .com / baca / Blaze_Notes
2) Yang ini terlihat sangat menjanjikan tetapi belum diperbarui akhir-akhir ini. Ini adalah paket yang ditulis dalam skrip kopi yang disebut. Komponen Blaze ( https://github.com/peerlibrary/meteor-blaze-components ) untuk Meteor adalah sistem untuk mengembangkan elemen UI kompleks yang perlu digunakan kembali di sekitar aplikasi Meteor Anda. Anda dapat menggunakannya dalam CoffeeScript, JavaScript vanilla, dan ES6. Yang terbaik adalah, komponennya adalah OOP. Ini adalah salah satu contoh mereka:
3) Saya suka jenis dan transpiler yang memberi tahu saya di mana dan kapan ada sesuatu yang salah. Saya menggunakan TypeScript untuk bekerja dengan Meteor dan menemukan repositori berikut: https://github.com/dataflows/meteor-typescript-utils sepertinya pencipta mencoba menyelesaikan pendekatan MVC.
Sayangnya, proyek ini tidak dikelola atau dikembangkan secara aktif.
4) dan saya pikir itu sudah disebutkan, Anda dapat skala menggunakan paket. Itu membutuhkan cara berpikir abstrak yang baik. Tampaknya berfungsi untuk Teleskop: https://github.com/TelescopeJS/Telescope
5) meteor-template-extension - menyediakan berbagai cara menyalin pembantu templat, penangan peristiwa dan kait di antara templat, memungkinkan penggunaan kembali kode; Kelemahannya adalah bahwa semua penyalinan harus diperhatikan oleh pengembang, seringkali berulang kali, yang menjadi masalah ketika basis kode bertambah; selain itu, tanpa komunitas API yang jelas tidak dapat membangun dan berbagi komponen
6) Komponen Aliran - Komponen Aliran lebih dekat untuk Bereaksi dalam desain API sementara Komponen Blaze menyimpan konsep yang sudah dikenal seperti konteks data dan bantuan templat; Komponen Flow di sisi lain masih menggunakan event handler berbasis template sementara Blaze Components membuatnya menjadi metode kelas sehingga lebih mudah untuk memperluas atau menimpanya melalui warisan; secara umum Komponen Blaze tampaknya lebih berorientasi OOP; Komponen Arus belum dirilis secara resmi ( kredit teks untuk # 5 dan # 6 https://github.com/peerlibrary/meteor-blaze-components#javascript-and-es6-support )
Nomor 2 dan 3 perlu dibiasakan juga, tetapi Anda akan mendapatkan kecepatan pengembangan seiring waktu. Nomor empat memungkinkan Anda membuat dan menguji komponen untuk membuat kode Anda lebih stabil. Nomor tiga hadir dengan keuntungan dari keamanan tipe penuh dari ScriptScript, yang merupakan nilai tambah besar ketika Anda berkembang dalam tim dengan dokumentasi yang buruk. Namun, saya saat ini porting nomor dua ke TypeScript karena saya merasa sangat nyaman untuk bekerja dengannya dan saya tidak perlu tweek paket kompiler untuk membuatnya bekerja dengan Meteor ketika saya tidak menggunakan Gulp.
Masih sulit menemukan cara yang tepat untuk bekerja dengan Meteor. Anda harus mengetahuinya sendiri, jika tidak, Anda akan berakhir dengan struktur folder yang tertata dengan baik, tetapi Anda tidak tahu di mana semuanya berada. Selamat coding.
sumber