Sudah hari Sabtu ini, kita akan bertemu dengan semua rubist di konferensi utama yang didedikasikan untuk teknologi ini -
RubyRusia 2019 . 28 September sangat dekat, dan dalam wawancara ini pertanyaan untuk
Xavier Noria disiapkan oleh pengembang Evrone
Pavel Argentov , dan siswa serta guru yang bekerja dengannya pada kursus "Bahasa Pemrograman Internet" di MSTU membantunya.
Foto langka dari kunjungan terakhir Chavier ke Rusia - di RailsClub Moscow 2012Apa yang Anda anggap paling menarik dan penting dari apa yang baru-baru ini terjadi di dunia RoR?Saya pikir Rails 6 adalah rilis yang mengesankan. Komponen inti baru, dukungan untuk banyak basis data, pengujian paralel; Bootloader baru yang "mengirim ke riwayat" rake terkenal dengan autoload.
Anda mencari nafkah dengan konsultasi Rails. Apa yang Anda berikan sebagai programmer?Sebagian besar, itu memberi saya pengalaman dan kesadaran bahwa pekerjaan biasa tidak dapat menyediakan. Konsultasi memperkaya. Setiap perusahaan dan setiap tim, mereka berbeda. Anda menjumpai berbagai bidang bisnis, budaya, alur kerja, arsitektur, fitur, dan preferensi. Adaptasi dengan lingkungan seluler, tugas-tugas yang harus ditangani, mempertahankan keterampilan untuk memecahkan masalah yang dipertajam.
Melanjutkan dengan pertanyaan sebelumnya, berdasarkan pengalaman Anda, apa yang harus diingat oleh pengembang Rails?Pengembang harus terlebih dahulu mengetahui Ruby dan Rails sedalam mungkin. Ini berarti membaca buku dan dokumentasi, bukan posting blog yang tersebar. Master harus memiliki instrumennya. Misalnya, Anda perlu memahami SQL dengan baik sehingga Rekaman Aktif adalah katalis untuk proses, bukan kotak hitam. Gunakan Rekaman Aktif - untuk dengan mudah dan aman menghasilkan SQL yang seharusnya ditulis tangan - dan dengan mudah memproses set data yang dihasilkan. Pemahaman HTTP yang baik adalah penting karena itu adalah bahasa yang digunakan aplikasi untuk dunia luar (termasuk mengingat WebSockets). Ada banyak hal lain yang perlu diingat, tetapi saya akan secara khusus menyebutkan kinerja. Anda perlu tahu cara mengemudi tolok ukur, Anda perlu tahu tentang GVL di MRI dan semua itu. Cari sumber daya tentang topik ini, pelajari mereka, kembangkan intuisi informasi.
Apakah Ruby benar-benar bahasa yang membuat pikiran programmer lebih baik? Bagaimana cara memaksimalkan ini?Saya pribadi ragu dengan generalisasi semacam itu. Ruby menggairahkan saya, dan Scala menggairahkan programmer Scala. Saya telah melakukan Perl selama beberapa tahun dan sangat mencintainya, tetapi banyak yang tidak menyukainya. Otak yang berbeda menemukan kesenangan dalam formalisme yang berbeda, bahkan preferensi Anda sendiri dapat berubah seiring waktu. Sebagai seorang programmer, Anda lebih baik menggunakan bahasa sebanyak mungkin dan paradigma sebanyak mungkin. Bahasa yang mematahkan pikiranku adalah Prolog. Paradigma yang paling memengaruhi saya adalah "pemrograman sastra" dengan gaya Knuth. Mengalami metode pemrograman yang sangat berbeda ini membuat Anda lebih baik. Saya menemukan Ruby sangat fleksibel dan tingkat tinggi.
Tingkat tinggi membantu untuk berdebat "lebih dekat dengan tugas." Ini menarik saya ke bahasa tingkat super tinggi (VHLL). Saya seorang ahli matematika berdasarkan pendidikan, dan saya dapat bekerja dengan formalisme apa pun yang akan mereka tanam; bahasa pemrograman di sini adalah mainan anak-anak. Kelengkapan Turing, misalnya, tidak sesuai dengan ekuivalensi praktis. Untuk memecahkan masalah nyata, sulit untuk menghasilkan sesuatu yang lebih baik daripada VHLL. Anda merasa sangat kuat dan produktif, karena kompleksitas buatannya lebih sedikit, dan Anda dapat lebih berkonsentrasi pada solusi nyata untuk masalah tersebut. Memecahkan masalah nyata adalah apa yang membuat saya mengejar karir di bidang pemrograman. Secara umum, "di mana C diperlukan - ambil C".
Kami membuat konferensi lebih "Ruby" daripada "on Rails". Aplikasi Ruby apa yang ada selain Rails, atau bahkan selain webdev?Jika ingatanku benar, program Ruby pertama yang saya gunakan adalah FreeBSD Port / Package Manager. Itu terjadi pada awal 2000-an sebelum Rails. Perangkat lunak Ruby populer yang tidak terkait langsung dengan pengembangan web adalah Vagrant, Metasploit, Jekyll, Chef, Puppet, atau Homebrew. Selain itu, sistem di perusahaan Rails jarang hanya terdiri dari antarmuka web. Biasanya, ada keseluruhan ekosistem perangkat lunak. Sebuah perusahaan yang bahasa utamanya adalah Ruby biasanya juga memiliki perangkat lunak Ruby backend yang bersih (mungkin bersama dengan teknologi lainnya).
Misalnya, di perusahaan yang saat ini saya berkonsultasi dengan Stuart Delivery, saya baru saja mengimplementasikan layanan yang menerima pesan dari Kafka ke Redis untuk diproses oleh pekerja Sidekiq. Kami juga bekerja pada proyek migrasi data non-sepele dan emulator bisnis yang sangat menarik. Semuanya ditulis dalam Ruby murni. Bagian depan dari sisi server perusahaan adalah Rails, tetapi di belakang layar dan pada seluruh platform ada banyak program dan bahasa yang jauh lebih berbeda. Ini adalah kejadian umum dalam latihan saya.
Waktu spoiler - akan seperti apa laporan Anda di RubyRussia 2019?Saya akan berbicara tentang Zeitwerk, permata Ruby baru yang mengimplementasikan pengisian otomatis, boot ulang, dan boot aktif untuk proyek-proyek Ruby. Rails 6 mendelegasikan fitur-fitur ini ke Zeitwerk secara default.
Apa kesan terbaik Anda tentang dunia Ruby? Mungkin kode, teknologi, pengetahuan atau sikap?Ini adalah kesan subjektif, tapi saya pikir dunia Ruby secara mengejutkan inovatif. Kami membicarakan hal ini dengan Terence Lee beberapa waktu lalu. Sebagai permulaan, saya pikir sulit untuk tidak setuju dengan pernyataan bahwa Rails mewakili revolusi nyata dalam pengembangan web. Perusahaan seperti Heroku, Relik Baru, Shopify atau GitHub hanya revolusioner. Namun, dalam pengalaman saya, orang-orang yang condong ke komunitas tertentu sebagian buta terhadap apa yang terjadi di komunitas di lingkungan itu. Saya yakin bahwa inovasi dapat ditemukan di komunitas mana pun, baik itu Scala, Haskell, atau bahkan Brainfuck. Jadi, jika saya dapat secara global mengamati setiap komunitas, saya akan menemukan bahwa komunitas Ruby tidak terlalu inovatif karena mereka semua inovatif dalam satu atau lain cara.
Menurut pendapat Anda, apakah Rails membutuhkan sesuatu seperti pustaka komponen CMS standar? Suka perancah untuk membangun bagian CMS standar?Menurut pendapat saya, ini adalah topik yang agak off untuk Rails. Izinkan saya juga menggunakan pertanyaan ini untuk berkomentar bahwa perancah hanyalah cara yang terjangkau untuk melakukan demonstrasi cepat di konferensi atau menghasilkan aplikasi untuk memeriksa sesuatu, mereproduksi kesalahan, melihat bagaimana fungsi tertentu bekerja. Saya belum pernah melihat perancah "dalam pertempuran"; mereka tidak cocok untuk penggunaan praktis.
Solusi modern umumnya heterogen: kita dapat menggunakan Julia untuk ML, Java untuk beban kerja bisnis yang berat. Apakah Ruby Menyediakan Alat untuk Interaksi Bahasa Cukup? Apakah ada alat untuk mempermudah ini?JRuby berkomunikasi dengan Jawa secara asli. Anda dapat menulis ekstensi-C untuk MRI, Anda dapat membungkus perpustakaan-C dengan cara portabel menggunakan FFI, dan Helix memungkinkan Anda untuk menulis ekstensi di Rust. Secara umum, lebih mudah untuk berkomunikasi dengan proses dengan cara standar menggunakan sistem file, soket, HTTP, database, gRPC, broker pesan.
Seperti yang diketahui banyak orang, Ruby tidak lagi "baru dan berkilau." Sekarang lebih โbahasa tua yang baikโ. Siswa, di sisi lain, masih muda. Bagaimana memotivasi minat mereka untuk belajar Ruby?Pada 2000-an, saya mengajar Perl kepada mahasiswa di Universitas Barcelona selama tujuh tahun di waktu luang saya. Sebelum kursus saya, mereka terutama berurusan dengan C dan Java, dan saya berbicara tentang bahasa scripting, dan Perl digunakan sebagai contoh. Itu sangat menyenangkan. Kami membutuhkan program menarik yang akan mengajarkan pemrograman, dan akan fokus pada apa yang tersedia dengan bahasa-bahasa ini, dan akan memungkinkan Anda mempelajari pilihan tertentu. Dalam kasus Ruby, ini adalah dari implementasi OOP sederhana hingga kemampuan pemrograman metap yang fantastis. Anda dapat menunjukkan, misalnya, bagaimana model Rekaman Aktif bekerja tanpa satu baris kode di tubuh kelas.
Ada puluhan bahasa pemrograman untuk dipilih. Mengapa memilih Ruby, mengapa tidak Python atau JavaScript, bagaimana dengan Clojure, Rust, C ++, Go? Semua opsi kontroversial atau sebaliknya - semua opsi ini sangat bagus. Pilih satu, buat kursus menjadi berkesan, dapatkan siswa untuk mempelajari pemrograman, praktik terbaik, konsep idiom, biarkan mereka belajar cara memeriksa dokumentasi, dan menjelajahi masalah-masalah terkait yang penting yang melampaui formalisme. Inilah yang akan membuat mereka tumbuh, mempersiapkan mereka untuk profesi secara mendasar. Menurut pendapat saya, ini adalah peran universitas.
Ada banyak alat berbeda untuk hal yang sama: Inti rel dengan Rekaman Aktif, Dry-rb dan lainnya. Haruskah saya mengambil alternatif? Apakah mereka tidak membuat Rails "jalan", bukan "jalan"?Ini sangat tergantung pada preferensi individu. Anda harus mempelajari dan memahami kombinasi alat, lapisan, pola yang cocok untuk Anda. Penting untuk diingat bahwa "Jalur rel" tidak berarti "jatuhkan seluruh aplikasi ke folder default". Ini adalah kesalahpahaman umum. Anda ingin dekorator? Objek layanan, PORO? Hebat! Ini tidak bertentangan dengan apa yang disebut "The Rails Way". Rails menyediakan satu set abstraksi default dan organisasi kode, yang, menurut pendapat kami, cukup baik untuk banyak aplikasi, setidaknya sebagai titik awal. Dan kemudian, jika Anda suka menulis tindakan pengontrol sebagai file baris tunggal yang membongkar semua pekerjaan ke objek layanan, Anda bisa melakukannya. Beberapa mungkin tidak menyukai ini. Orang yang berbeda - beda otak.
Sampai jumpa di RubyRussia!Ingatlah bahwa konferensi sudah Sabtu ini,
pendaftaran masih terbuka.
Tidak hanya akan ada laporan, tetapi juga stand dari perusahaan terbaik:
Penyelenggara -
EvroneMitra Umum -
ToptalMitra Emas -
GettMitra Perak -
Valarm ,
JetBrains ,
Bookmate dan
CashwagonMitra Perunggu -
InSales