Sudah lama sejak saya telah melakukan pengembangan web yang substansial dan saya ingin mengambil keuntungan dari praktik-praktik terbaru tapi saya berjuang untuk memvisualisasikan alur kerja untuk menggabungkan semuanya.
Inilah yang ingin saya gunakan:
- Kerangka CakePHP
- jsmin (JavaScript Minify)
- SASS (StyleSheets Luar Biasa Secara Sintaksis)
- Git
CakePHP:
Cukup jelas, buat modifikasi dan perbarui sumbernya.
jsmin:
Saat Anda memodifikasi skrip, apakah Anda menjalankan jsmin secara manual untuk mengeluarkan kode minified yang baru, atau apakah akan lebih baik untuk menjalankan hook pre-commit yang secara otomatis menghasilkan output jsmin dari file javascript yang telah berubah. Asumsikan bahwa saya tidak memiliki pengetahuan menerapkan kait komit.
KELANCANGAN:
Saya sangat suka apa yang ditawarkan SASS tetapi saya juga sadar bahwa kode SASS tidak didukung oleh peramban secara default sehingga, pada titik tertentu, kode SASS perlu ditransformasikan ke CSS normal. Pada titik apa dalam alur kerja ini dilakukan.
Git
Saya takut mengakuinya tetapi, terakhir kali saya melakukan pengembangan web yang substansial, saya tidak menggunakan kontrol sumber SCM (IE, saya memang menggunakan kontrol sumber tetapi terdiri dari log perubahan yang sangat rinci dengan cadangan).
Sejak itu saya punya banyak pengalaman menggunakan Git (dan juga mercurial dan SVN) untuk pengembangan desktop tapi saya bertanya-tanya bagaimana cara terbaik mengimplementasikannya untuk pengembangan web).
Apakah ini praktik umum untuk menerapkan repositori jarak jauh pada host web sehingga saya dapat mendorong perubahan langsung ke server produksi, atau apakah ada beberapa alat lintas platform (windows / linux) yang membuatnya mudah untuk mengunggah hanya file yang diubah ke server produksi . Apakah ada perusahaan web hosting yang membuatnya mudah untuk menerapkan repositori jarak jauh, apakah saya memerlukan akses SSH, dll ...
Saya tahu bagaimana melakukannya di server pengujian saya sendiri dengan repositori jarak jauh dengan cabang pelacakan jarak jauh yang terpisah, tetapi saya belum pernah melakukannya di server hosting web produksi jarak jauh sebelumnya, jadi saya belum mengetahui pilihannya.
Tambahan:
Saya sedang mempertimbangkan untuk mengimplementasikan kerangka kerja javascript di mana file javascript terpisah yang digunakan pada suatu halaman dikompilasi menjadi satu file untuk setiap halaman pada server produksi untuk membatasi jumlah unduhan file yang dibutuhkan per halaman.
Apakah sesuatu seperti ini sudah ada? Apakah sudah ada proyek open source di alam bebas yang mengimplementasikan hal serupa yang dapat saya gunakan dan berkontribusi?
Mengingat betapa paranoid web devs tentang kinerja (dan fakta bahwa jumlah permintaan file di situs web adalah hit besar untuk kinerja) Saya menduga bahwa ada beberapa penyihir penyihir di internet yang telah mengatasi masalah ini.
sumber
jsmin
Jika Anda tidak memiliki satu ton JS, Anda bisa mengatur sesuatu untuk meminimalkan setiap kali Anda menekan save. Jika Anda memiliki banyak JS, jadikan itu bagian dari proses penerapan Anda (lihat Git di bawah).
KELANCANGAN
Gunakan Kerangka Kompas . Ini termasuk SASS, ditambah skrip kecil yang "melihat" direktori SASS Anda dan mengkompilasi file ke dalam CSS (termasuk CSS yang diperkecil, jika Anda mau) setiap kali Anda menyimpan. Ini dibangun dengan mempertimbangkan RoR, tetapi Anda dapat dengan mudah menggunakannya dengan kerangka kerja web apa pun dengan membuat file konfigurasi Compass dan menjalankan perintah "kompas watch". Kompas juga mencakup banyak alat praktis lainnya seperti Cetak Biru , mixin yang berguna , dan pembuatan sprite otomatis melalui plugin Lemonade (yang harus dibangun ke dalam Kompas pada rilis berikutnya ).
Git
Tergantung pada ukuran / kompleksitas situs, pertimbangkan untuk mengikuti Capistranomodel penempatan. Tidak yakin apakah Anda dapat menggunakan Capistrano langsung dengan CakePHP, tetapi intinya adalah ini: setiap server produksi memiliki folder "saat ini" yang berisi semua kode yang berjalan dalam produksi pada saat itu. Setiap kali Anda ingin menyebarkan kode baru, Anda menjalankan skrip yang ssh untuk setiap server produksi dan memilikinya (a) menyalin isi folder "saat ini" ke folder cadangan (dengan nama rilis / cap waktu di atasnya), ( b) periksa kode terbaru dari Git ke dalam folder "saat ini" dan (c) mulailah melayani kode baru ini dari folder "saat ini". Dengan cara ini, Anda dapat memutar kembali ke rilis sebelumnya jika perlu dan Anda dapat mengetahui dengan pasti revisi mana yang sedang diproduksi. Capistrano juga memungkinkan Anda menambahkan semua jenis tugas kustom sebagai bagian dari proses penerapan, termasuk minifaksi JS / CSS,
Tambahan
Ya, ada banyak. Google untuk sesuatu seperti "CSS / JS concat". Berikut ini adalah yang saya temukan untuk CakePHP: Paket Aset .
sumber