Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Tools & Tips
Code

Membangun Aplikasi Dengan Yeoman Workflow

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Zadip (you can also view the original English article)

Apa Itu Yeoman

Pertanyaan jebakan. Itu bukan apa-apa. Orang ini:

yo

Pada dasarnya, dia memakai topi, tinggal di komputer Anda, dan menunggu Anda untuk memberi tahu dia jenis aplikasi apa yang ingin Anda buat. Sebagai contoh, perancah aplikasi web akan terlihat seperti ini:

yo-webapp

Hal pertama yang terlintas dalam pikiran adalah OMG sangat termenung. Kedua, terima kasih, kawan.

Yang kami lakukan hanyalah memberi tahu dia apa yang kami inginkan dan dia menjawab dengan pertanyaan spesifik untuk memberi kami kendali lebih besar.

Mari kita mundur selangkah. Tidak semua komputer baru dilengkapi dengan instalasi Yeoman. Dia tinggal di repositori paket NPM. Anda hanya perlu memintanya sekali, lalu dia berkemas dan bergerak ke hard drive Anda. Pastikan Anda membersihkan, ia menyukai hal-hal baru dan mengkilap.

Dia orang yang punya perasaan dan opini, tapi dia sangat mudah diajak bekerja sama. Jika Anda berpikir dia terlalu keras kepala, dia dapat dengan mudah diyakinkan.

Mari kita luangkan waktu sejenak untuk memecahkan apa perintah yo webapp itu, dari screenshot sebelumnya benar-benar terjadi.

yo

Ini adalah perintah sistem-lebar OS X, Linux, dan Windows yang mengaliri hard drive Anda untuk setiap "generator" yang diinstal, kemudian memberi mereka kontrol berdasarkan argumen berikutnya:

webapp

Ini sebenarnya adalah plug-in terpisah, atau 'generator,' yang disebut generator-webapp. Yeoman mengenali generator-____ modul Node lainnya, yang membuka pintu untuk menggunakan Backbone, AngularJS, dan banyak lagi you-name-it generators.

Yang penting untuk diambil dari ini adalah, modul generator-webapp yang meminta kami dengan pertanyaan. Hal yang sama berlaku untuk generator lain yang kami pasang. Mereka dipelihara oleh komunitas, tidak harus anggota tim Yeoman sendiri.

Dengan menggunakan Yeoman, kamu tidak mengatakan "Aku ingin melakukan sesuatu dengan caramu, tuan. busur panah, "tanpa kontrol. Hal ini sebenarnya justru sebaliknya. Yang benar-benar Anda katakan adalah, 'Saya ingin membuat aplikasi yang mengikuti praktik terbaik yang telah ditemukan oleh pengguna dan kontributor kerakyatan komunitas pengembangan web.'

Serius, Anda harus mengatakannya begitu saja, atau itu tidak akan berhasil.

Jika Anda lebih suka melakukan sesuatu yang berbeda dari apa yang ia berikan kepada Anda, Anda cukup mengubah kode yang dihasilkan untuk Anda, atau bahkan pergi ke sumber "generator" itu sendiri, dan mengirimkan kontribusi Anda.


Persahabatan

Teman kami, yo punya teman sendiri, dan mengira kalian semua akan bergaul dengan teh dan senyum tanpa akhir. Jika Anda belum pernah mendengar Grunt atau Bower, berikut adalah rangkuman singkat tentang apa yang diberikan kepada kami:

Grunt

Grunt adalah task runner berbasis JavaScript, yang melakukan hal-hal kotor. Seperti yo, itu juga menyediakan seperangkat fungsi dasar, kemudian memungkinkan komunitas untuk berbagi plug-in mereka sendiri, atau "tugas" yang membantu menyelesaikan hal-hal umum. Ketika Anda men-scaffold aplikasi Anda dengan yo webapp, Grunt dan beberapa tugas yang dipilih akan datang, yang menyelesaikan hal-hal seperti menjalankan situs web Anda di lingkungan pengembangan lokal, menggabungkan dan mengurangi kode Anda, mengoptimalkan gambar Anda, dan banyak lagi. Tugas dijalankan melalui baris perintah, dengan mengetikkan grunt server, grunt build, grunt test, dan banyak lagi.

Tugas didefinisikan dan disesuaikan dalam file Gruntfile.js, yang hidup di direktori root proyek Anda. Check it out untuk melihat apa Yeoman diatur untuk Anda.

Bower

Tidak ada yang suka pergi ke GitHub atau situs developers acak untuk mengunduh .zip dari alat JavaScript. Seperti ketika mengambil paket Node dengan npm install ___, Bower memungkinkan Anda mengatakan bower install ___. Komponen ini kemudian disimpan dalam direktori pilihan Anda, umumnya, app/bower_components/ untuk aplikasi yang dibuat Yeoman. Dengan asumsi Anda ingin jQuery, Anda akan menjalankan perintah bower install query, kemudian sertakan file yang relevan di dalam file HTML Anda. Dalam kasus kami,<script src="bower_components/jquery/jquery.js">


Sebuah aplikasi khas

Ayo kita gila-gilaan. Saatnya membuat aplikasi.

Sangat cepat, temukan terminal terdekat dan pastikan Anda telah menginstal yo secara global:

Untuk menghasilkan aplikasi web, Anda juga perlu generator-webapp:

Buat folder yang bisa kita mainkan, lalu jalankan:

Inilah yang seharusnya terjadi:

  • Banyak hal.

Melakukannya? Bagus!

Untuk mencegah Anda menggulir ke atas semua teks yang baru saja diludahi, inilah ikhtisarnya:

yo-webapp-long

Aplikasi web baru telah di-scaffold dan komponen Bower dan paket NPM Anda diinstal secara otomatis.

Buka semua hal baru ini di editor favorit Anda, dan kami akan memeriksa apa yang kami miliki.

Jika Anda mengambil apa pun dari artikel ini, biarkan itu adalah representasi teks file/folder yang indah di atas. Yang hanya mengambil Mountain Dew seluruh waktu saya.

Kembali ke jalur. Apa yang Anda lihat adalah struktur aplikasi yang paling umum yang dihasilkan oleh generator Yeoman.

  • app/ adalah tempat tinggal kode sumber Anda yang murni, tidak dikompilasi, dan tidak diperkecil.
  • app/scripts/ adalah tempat JavaScript Anda pergi. Anda bebas membuat sub-direktori dan bahkan menggunakan CoffeeScript jika itu secangkir teh Anda. Yang tidak masuk akal. Lagi. Anda bebas menggunakan TeaScript jika itu secangkir kopi Anda. Nope.
  • app/styles/ adalah tempat CSS Anda berjalan. Sekali lagi, sub-direktori, LESS, Sass, whatevs.
  • app/index.html adalah versi index.html yang tidak dikecilkan yang pada akhirnya akan dijepret dan dikirimkan ke klien. Lebih lanjut tentang itu nanti.
  • Gruntfile.js memiliki semua tugas membangun, server, dan tes yang ditentukan.

Pada titik ini, yo telah melakukan pekerjaannya. Dia memberi Anda semua yang Anda butuhkan untuk meluncurkan aplikasi web siap produksi. Sekarang mari kita menggeser fokus kita ke tugas-tugas Grunt yang dia pra-konfigurasi untuk kita.

grunt build

Menjalankan grunt build mengambil file kode app/ sumber code Anda dan mengubahnya menjadi aplikasi yang dapat didistribusikan, yang berakhir di dist/.

Dist/ folder itu adalah apa yang Anda berikan ke server Anda. dist/ akan memiliki index.html itu sendiri, dengan referensi ke dist/scripts dan dist/styles yang diperkecil dan digabungkan, dan dist/images yang dioptimalkan. Pengguna Anda akan menghargai ini. Kartu telepon Anda, pengguna dial-up akan sangat menghargai ini.

Di belakang layar, grunt build adalah tugas yang menjalankan beberapa sub-tugas. Salah satunya adalah grunt-usemin, yang mencari blok di dalam app/index.html Anda, seperti ini:

App/index.html

Setelah tugas grunt build Anda selesai, Anda akan berakhir dengan ini:

dist/index.html

Itu menghisap skrip-skrip tersebut, digabungkan, diperkecil, dan bahkan menambahkannya dengan hash unik untuk mencegah peramban menyimpan versi yang sudah kedaluwarsa. Cukup kuat.

Itu adalah salah satu fitur yang bersinar tentang penggunaan Yeoman. Daripada menentukan secara manual apa yang Anda inginkan dari proses build Anda setiap kali Anda membuat aplikasi, Anda bisa menempatkan kepercayaan pada Yo dan generator yang Anda pilih. Bersama-sama, mereka akan menghubungkan Anda dengan semua yang Anda butuhkan untuk meluncurkan aplikasi siap produksi.

grunt server

Sekarang Anda telah melihat jenis pekerjaan apa yang akan dilakukan oleh grunt build ketika aplikasi Anda selesai, Anda mungkin harus mulai mengerjakan aplikasi Anda! Kami akan membuat satu bersama-sama hanya dalam beberapa detik, tetapi pertama-tama mari kita lihat jenis alur kerja apa yang akan kita miliki. Seperti grunt build, grunt server menggunakan beberapa tugas Grunt lainnya untuk membuat pengembangan semudah mungkin.

Cobalah:

yo-webapp-grunt-server

"Beberapa tugas Grunt" yang disebutkan sebelumnya adalah:

  • clean: Yeoman menyimpan beberapa barang di folder .tmp. Yang akan dihapus.
  • coffee: Mengompilasi file-file CoffeeScript Anda dari app/scripts.
  • compass: mengkompilasi file Sass Anda dari app/styles.
  • connect: menciptakan server lokal, watches untuk perubahan ke file sumber Anda, kemudian memicu reload di browser Anda.
  • open: Membuka contoh server, biasanya localhost:9000 di browser Anda.

Buat satu atau dua edit di file sumber untuk melihat perubahan yang ditampilkan di browser. Seperti saya katakan di atas, ini semudah mungkin. Itu hanya berfungsi.


Let's App It Up!

Saya tentu saja berarti makanan pembuka. Ambil beberapa stik keju, lalu temui aku sebentar lagi.

Cuci tangan Anda!


Mari kita membuat aplikasi

Untuk merasakan beberapa generator Yeoman lainnya, mari kita coba Backbone. Kami akan membuat aplikasi To Do sederhana, menggunakan Bower untuk dependensi kami, dan memperkenalkan Anda ke alur kerja kehidupan nyata dengan Yeoman.

$ Terdengar bagus? (Y/n)

Saya akan menganggap Anda memasukkan 'Y'. Kami naik! Tapi pertama-tama:

Buka aplikasi baru di editor Anda. Hal-hal seharusnya terasa cukup akrab setelah pengalaman kami dengan generator aplikasi web. Anda masih memiliki direktori aplikasi, dengan scripts/, styles/ dan index.html.

Sebelum kita mulai mengedit file, jalankan:

Seperti yang kita bicarakan sebelumnya, ini memulai server, mengatur jam pada file kita, bla bla yipsie-doodle. Browser Anda harus terbuka, dan Anda akan disambut dengan:

'Allo, 'Allo!

Yah, tembak, kita harus mempertahankannya. Ini sangat bagus. Namun, mari kita membersihkan hal-hal lain.

index.html

Ketika Anda menyimpan, browser Anda akan menyegarkan, dan di sana kami memilikinya! Hanya yang sederhana, hangat "'Allo,' Allo".

Mari kita dapatkan rencana permainan. Kami tahu kami akan membuat aplikasi To Do, tetapi apa yang mungkin terlihat seperti itu? Apakah kita memerlukan perpustakaan lain untuk membantu kami?

Hmm.

Sudah setidaknya 4 detik, dan saya belum mendengar jawaban.

Baiklah, aku akan mengambil Dew lain setelah pohon file itu meminum yang terakhir. Saya akan memberi tahu Anda jika saya memikirkan apa pun.


To Do: Mengatur Struktur File Anda

B3. Slot yang mengerikan di mesin penjual otomatis untuk minuman berkarbonasi. Fizz, foam, disaster.

Ketika saya berada di kamar mandi mencuci tangan saya, saya memiliki visi.

Atau...

vision-big

Mari kita mengatur diri dengan struktur yang akan menghidupkan visi ini.

generator-backbone datang dengan beberapa senjata rahasia: sub-generator. yo backbone merancap aplikasi kami, tetapi kembali ke terminal Anda dan memeriksa apa yang dapat dilakukan oleh orang-orang ini:

todo-generate-models

Lihat index.html Anda:

Bagaimana dengan itu! Itu tidak hanya membuat dan menempatkan file dalam direktori yang relevan, bahkan memasukkannya dalam HTML Anda untuk Anda.

Saya telah membuat repositori untuk aplikasi To Do kami --lihat saja. Kami akan melihat file bersama-sama, tetapi silakan lihat repositori untuk mendapatkan kode lengkap.

scripts/main.js

Pikiran

Generator Backbone membangun beberapa praktik bagus yang dapat Anda gunakan langsung dari kotak. Ini mengambil nama direktori Anda, dalam kasus saya 'backboneApp', dan mengekspos objek literal untuk menahan Model, Koleksi, dan objek Backbone lainnya yang dapat kami buat.

Generator juga menggabungkan JSHint ke dalam proses pembuatan aplikasi Anda, memastikan kode Anda memiliki kualitas tertinggi dan paling konsisten. Anda didorong untuk menyesuaikan preferensi Anda di dalam file .jshintrc di akar direktori proyek Anda.

Akhirnya, $(dokumen).ready akan memanggil backboneApp.init, yang menciptakan TodosCollection, kemudian diteruskan ke TodosView. Saya akan membahasnya lebih detail segera.

scripts/collections/todos-collection.js

Pikiran

Jika kami ingin aplikasi To Do kami agak dapat digunakan, kami harus menyimpan item To Do kami di suatu tempat. Ada adaptor Backbone yang berguna yang mungkin Anda kenal dengan Backbone.LocalStorage. Ini akan mencegat panggilan Backbone ke backend remote default dan menggunakan window.localStorage browser Anda sebagai gantinya.

Kami tahu kami membutuhkan adaptor Backbone.LocalStorage, tetapi ke mana kami harus mendapatkannya? Ide! Ide!

Kami belum banyak memanfaatkan Bower secara langsung. Ketika aplikasi kami di-scaffold, Bower digunakan di belakang layar untuk mengambil Modernizr, Twitter Bootstrap, jQuery, Underscore, dan Backbone. Tapi, bagaimana jika kita ingin menambahkan ketergantungan JavaScript lain?

Kembali ke terminal favorit Anda dan coba ini:

bower-search-backbone

Ok, wow. Itulah... banyak. Mungkin kita harus mempersempitnya.

Di sana kami pergi. Sekarang kita hanya perlu menginstalnya.

Ketika bekerja dengan banyak pengembang, itu bisa merepotkan untuk memastikan semua orang memiliki dependensi dan versi yang sesuai. Dengan menggunakan --save di atas, kami memberi tahu Bower untuk mengingat dependensi baru ini, lalu menulisnya di file bower.json kami. Ketika pengembang lain mengkloning proyek Anda, mereka hanya perlu menjalankan bower install untuk mengunduh setiap dependensi, menjaga semua orang tetap sinkron. Itu sebabnya app/bower_components tercantum dalam file .gitignore Anda. Lewatlah sudah hari-hari repositori kembung!

Sekarang Bower telah awesomed di seluruh aplikasi kami, masuk ke app/index.html dan perbarui blok komentar scripts/vendor.js:

Bila Anda menyimpan file, browser Anda akan menyegarkan dan Anda akan memiliki perpustakaan baru siap untuk digunakan. Lebih khusus lagi, TodosCollection akan siap untuk digunakan.

scripts/collections/todo-model.js

Pikiran

Ini adalah Model Backbone yang cukup mendasar. Kami menetapkan beberapa properti default untuk item To Do kami dan menentukan toggle function, cukup digunakan untuk beralih antara status 'Lengkap' atau 'Tidak Lengkap'.

scripts/views/todos-view.js

Pikiran

Ini adalah Backbone View kami yang paling kuat, jadi untuk melihat definisi berbagai properti dan metode ini, silakan lihat repositori.

Namun, berikut beberapa hal penting:

Pemilih ini cocok dengan elemen <section id='todo-app'> </ section> yang kami buat di file index.html kami. Ini akan menjadi pandangan utama kami.

Hal JST kecil ini menyelinap masuk ketika kita mengatakan yo backbone:view ____. Ketika file JavaScript Tampilan kami dibuat, sub-generator Backbone membuat file template yang cocok untuk kami: app/ scripts/templates/todos.ejs.

File template .ejs ini akan mendefinisikan HTML Tampilan kami. Saat kami menjalankan aplikasi kami dengan grunt server atau grunt build, file template kami akan dihancurkan bersama menjadi objek JavaScript, JST. Ketika file pandangan kita mengatakan template:JST['path/to/view /template.ejs'], ini mengacu pada objek itu.

scripts/templates/todos.ejs

Pikiran

Karena kami menjawab "Ya" untuk menyertakan Twitter Bootstrap untuk Sass saat kami men-scaffold aplikasi kami, saya telah menambahkan beberapa nama kelas untuk melengkapi aplikasi kami. Jangan ragu untuk bergaya dengan isi hati Anda di file styles/main.scss.

styles/main.scss

Pikiran

Sass sangat keren.

Juga, itu cukup keren bahwa browser masih memuat ulang ketika Anda membuat perubahan ke file Sass Anda. Jika Anda telah menggunakan Sass sebelumnya, Anda tahu itu bisa menjadi kerumitan untuk mendapatkan lingkungan pengembangan yang produktif diatur dengan cepat. Dari kotak Yeoman, Anda sedang mengedit, menonton, dan memuat ulang tanpa satu pun dari kerumitan yang disebutkan di atas. Wajah tersenyum.

scripts/views/todo-view.js

Pikiran

TodoView ini akan mewakili item individual. Ini akan menjadi <li> dengan beberapa fungsi kustom menangani klik, klik dua kali, dan menyerahkan acara, memungkinkan pengguna untuk mengedit dan menyimpan item To Do.

scripts/templates/todo.ejs

Pikiran

Cukup sederhana. Kami menggunakan beberapa template Underscore dasar untuk memuntahkan nilai-nilai dan mengaktifkan status yang dicentang pada kotak centang kami.


To Do: Do ​​It Again

Aplikasi To To Do kami sebenarnya sudah selesai! Ini cukup mendasar dalam fungsi, tetapi Anda harus memiliki rasa bagaimana alaminya untuk mengembangkan aplikasi menggunakan Yeoman dan teman-teman Generator-nya. Dan meskipun fungsinya dasar, tidak ada teknik yang biasa kita dapatkan di sini "dasar". Kami menggunakan pustaka yang cerdas dan efisien (Sass, Backbone, Underscore) dengan proses pengembangan yang disempurnakan (Grunt, LiveReload, Compass), dan kami hanya membutuhkan beberapa perintah terminal.

Jika Anda seperti saya, Anda mungkin ingin berhenti dengan hal-hal yang Harus Dilakukan dan mulai membuat aplikasi Anda sendiri. Jika Anda ingin bermain-main, lakukanlah! Setelah selesai menghasilkan seperti orang gila, kembalilah dan kirimkan aplikasi To Do kami.


To Do: Mengirimnya

Mari letakkan benda ini di air dan lihat apakah dia mengapung! JANGAN meletakkan komputer Anda di dalam air. Tunggu, apakah mobil MacBook Air mengapung? Tidak, mungkin tidak. Hmm...

Itu adalah paragraf yang berbahaya. Mari kita siapkan aplikasi kita untuk produksi, aman dan kering.

grunt server sudah luar biasa, tapi sudah waktunya untuk bertemu saudaranya, grunt build. Kami berbicara tentang dia sedikit lebih awal, tapi mari kita membahas beberapa detail lebih lanjut.

Berikut adalah apa yang tugas grunt build didefinisikan sebagai dalam Gruntfile.js Anda:

Jadi, hal itu cukup sah. Semua tugas ini ditentukan di dalam Gruntfile.js, jadi silakan mencolek dan menyesuaikan untuk menyesuaikan aplikasi Anda. Kemungkinan besar Anda tidak perlu melakukan kustomisasi sama sekali, tetapi ada di sana jika Anda perlu.

Oh, satu hal lagi. grunt build sebenarnya terbungkus dalam tugas lain.

grunt

Hanya menjalankan grunt akan menjalankan tugas default:

Dua tugas pertama itu, jshint dan test mudah diabaikan ketika terburu-buru mengeluarkan aplikasi, tetapi sangat penting.

JSHint

Tugas jshint akan berkonsultasi dengan file .jshintrc Anda untuk mempelajari preferensi Anda, lalu pindai melalui semua file JS Anda untuk memastikan aturan Anda dipatuhi. Untuk menjalankan opsi Anda dengan JSHint, periksa dokumentasi JSHint.

Test

Tugas test terlihat seperti ini:

Pada dasarnya cukup untuk membuat dan melayani aplikasi Anda untuk kerangka tes Anda, Mocha, untuk menjalankan tes Anda.

Oh sial, tests.

Di sebelah app/ dan dist/ direktori anda, test/ buckaroo ini telah menunggu perhatian kami. Aww.

Jika Anda membuka itu, Anda akan melihat test/ memiliki bower.json sendiri dan index.html, serta spec/ direktori. Tes Anda akan memiliki beberapa dependensi mereka sendiri, Chai Asersi Library dan kerangka pengujian Mocha.

Perluas spec/ direktori dan Anda akan melihat file test.js yang terlihat seperti ini:

Ok, sepertinya kita bisa menggunakan pull request untuk memperbaiki beberapa tata bahasa. Siapa saja?

Jika Anda belum menulis tes Anda sendiri sebelumnya, Anda akan melihat istilah-istilah seperti describe, it, before, beforeEach, after, dan afterEach. describe adalah pembungkus untuk sekelompok tes terkait, ____Each adalah fungsi opsional yang akan dijalankan before atau after tes Anda, dan it adalah tes khusus.

Coba jalankan grunt test untuk melihat semua keajaiban terungkap.

todo-grunt-test

Anda harus bermain-main dan melihat apakah Anda dapat menulis beberapa tes untuk aplikasi To Do kami. Beberapa ide untuk kasus uji mungkin:

  • Apakah membuat item To Do baru disimpan di localStorage?
  • Apakah judul item To Do baru dipangkas (menghapus spasi ekstra)?
  • Saat mengedit item To Do, apakah menghapus judul, lalu menyimpan menghapus item To Do dari localStorage?

Hanya ada satu hal lagi yang harus dilakukan.

Tekan Enter

Anda harus melihat kata-kata favorit kami: Done, tanpa kesalahan.


Menemukan Yeoman

Yeoman masih cukup muda; dia baru saja berubah! Hal-hal sekarang cukup bagus dan mereka hanya akan menjadi lebih baik. Namun, seperti semua anak berumur satu tahun, Yeoman masih belajar berjalan tanpa jatuh, dan berbicara tanpa meneteskan air liur. Anda mungkin saja mengalami bug atau dua. Di saat seperti ini, pikirkan dia seperti keponakan kecilmu yang lucu. Ia membutuhkan teladan positif dalam hidupnya, jadi bantu dia belajar!

Itu punya buku anak-anak nyata, sangat cepat. Saya akan mengembangkannya sedikit: ada bug dan kami membutuhkan bantuan Anda untuk memadamkan doody dari mereka (saya katakan 'sedikit'). Bahkan jika itu bukan bug, tetapi Anda seperti, 'Saya tahu lebih cepat Grunt plug-in yang bisa digunakan oleh generator ini,' laporkan ke pelacak masalah generator yang sesuai.

Jika Anda ingin mempelajari lebih lanjut tentang Yeoman atau hanya mengenal tim, Anda akan menemukan kami dibumbui di seluruh situs berikut.

Jika Anda hanya terjebak, cobalah salah satu sumber daya berikut untuk membantu.

Yeoman hanyalah satu bagian dari keseluruhan tumpukan - NPM, Node, Grunt, dan Bower. Ini dapat mengintimidasi jika Anda tidak terbiasa dengan ini, tetapi sangat penting untuk tidak takut pada kurva! Belajar akan perlu terjadi, dan seperti biasanya, itu mungkin akan perlu terjadi dengan cara yang sulit sebelum benar-benar melekat.

Psst, jika Anda menggunakan sudo sebelum setiap perintah, jalankan, jangan berjalan, ke Node dan NPM dalam 30 detik. Di sana, Anda akan menemukan beberapa skrip yang dapat Anda jalankan untuk memberikan kontrol kembali ke akun pengguna Anda. Ini juga akan membantu Anda menginstal Node dan NPM jika Anda memulai dari awal.


Aplikasi Yo 'Berikutnya - Akankah Anda Yo?

Seperti semua alat, saya yakin Yeoman adalah sesuatu yang harus dicoba oleh setiap pengembang. Jika Anda mencobanya dan menemukan itu tidak cocok untuk tugas Anda, saya dan seluruh tim akan senang mendengar mengapa. Jika Anda membutuhkan seorang teman untuk membantu Anda dengan proyek Anda, temui saya. Saya selalu tersedia di sekitar tautan di atas, atau cukup ping saya di Twitter. Saya @stephenplusplus atau Stephen Sawchuk.

me

Senang bertemu dengan Anda.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.