Bukan pada saat runtime, tetapi pada waktu desain

gambar

Sekali waktu, seorang pengembang tua yang bijaksana memberi saya saran, yang sampai saat ini saya tidak begitu menghargai.

Selama peninjauan kode, kami mempertimbangkan beberapa fungsi yang mengharuskan program menampilkan daftar huruf AZ (misalnya, daftar kontak dengan serangkaian tombol yang memungkinkan Anda untuk beralih ke nama yang dimulai dengan huruf tertentu).

Jadi, seorang programmer muda yang sukses muncul. (Ya, itu saya.) Saya memutuskan bahwa alih-alih hardcode dari array semua huruf, akan lebih mudah untuk menulis perulangan for yang berjalan dari 65 hingga 90, dan kemudian menghasilkan huruf dengan kode karakter yang diterima.

Dalam varian JavaScript, tampilannya akan seperti ini:

for (let i = 65; i <= 90; i++) { letters.push(String.fromCharCode(i)) } 

Seorang pengembang tua yang bijak menatap saya dan bertanya mengapa saya tidak melakukan hardcode pada array ini. Itu tidak terlihat seperti alfabet akan berbeda dari satu sesi ke sesi lainnya. Jadi mengapa menghitungnya setiap waktu?
Perangkat Lunak EDISON - pengembangan web
Artikel ini diterjemahkan dengan dukungan Perangkat Lunak EDISON, yang mengembangkan sistem diagnostik repositori dokumen Vivaldi dan berinvestasi dalam startup .

Saya takut. β€œBagaimana kamu bisa mengharapkanku mengetik setiap huruf, seperti semacam anak kecil. Saya adalah pengembang perangkat lunak profesional! "Aku punya algoritma dan struktur data, dan koprosesor matematis, demi Tuhan!"

"Bagus," katanya. "Cukup gunakan fungsi ini pada waktu desain untuk menghasilkan array, lalu salin dan tempel ke kode kerja Anda."

Dan kemudian dia mengatakan ini:
"Hindari saat runtime apa yang dapat Anda lakukan selama pengembangan."
Sekarang mari kita jujur. Sedikit untuk loop saya tidak akan memperlambat aplikasi. Dan mesin modern akan sangat cepat untuk memahami kode ini sehingga tidak seorang pun akan menyadarinya. Tetapi, sebagai suatu peraturan, ini adalah nasihat yang bijak.

Terlalu sering, kami menulis kode yang jarang mengubah data dari satu format ke format lain dengan setiap permintaan. Pikirkan semua situasi ketika kita mendapatkan konten dari basis data yang dapat berubah sekali atau dua kali setahun, format dan kirimkan ke browser, tanpa harus memperlambat aplikasi. Ini terutama berlaku untuk situs yang terkait dengan sistem manajemen konten.

Itu sebabnya saya berpikir bahwa di tahun-tahun mendatang, pemain terkenal seperti Wordpress, Drupal, dll., Akan menghadapi masalah serius dari generator situs statis seperti Gatsby , Hugo atau Jekyll , dikombinasikan dengan proses pembangunan yang mulus, CMS tanpa kepala , CDN murah dan proses integrasi berkelanjutan cepat.

Pola ini disebut JAMstack , yang berarti "JavaScript, API, dan tumpukan markup." Dan hasilnya sangat mengesankan .

Saran dari pengembang tua yang bijak terdengar di telinga saya: "Hindari selama pelaksanaan program apa yang dapat Anda lakukan selama pengembangan." Dan seiring waktu, saya menyadari bahwa saran ini memiliki konsekuensi yang luas. Tidak hanya untuk pengembangan perangkat lunak, tetapi juga seumur hidup.

Baru-baru ini saya membaca buku indah Ray Dalio, Principles: Work and Life . Tema utama buku ini adalah bahwa ada jauh lebih sedikit jenis masalah daripada masalah sebenarnya. Karena itu, jika Anda mengerjakan ini terlebih dahulu dan mencari tahu bagaimana Anda akan mendekati jenis masalah tertentu yang mungkin Anda temui, maka ketika itu datang, Anda akan jauh lebih siap untuk menghadapinya.

Bahkan, Anda dapat membuat keputusan yang lebih baik lebih cepat dengan menyortir pendekatan Anda ke berbagai jenis masalah selama "pengembangan", ketika Anda diam-diam berpikir tentang kehidupan, dan bukan selama "eksekusi", ketika Anda dihadapkan dengan masalah aktual saat ini dan panik.

Dalio menerapkan teknik ini dengan membuat katalog pendekatannya sebagai seperangkat prinsip. Dia bahkan melangkah lebih jauh sehingga dia mengodifikasi proses pengambilan keputusannya menjadi satu set algoritma komputer sehingga dia bisa menguji sejumlah besar data historis.

Mengingat bahwa dia adalah seorang multi-miliarder dan menjalankan perusahaan investasi yang sangat sukses, saya akan mengatakan itu berhasil. Bahkan, Wall Street mulai merekrut lebih banyak programmer daripada pedagang saham. Jadi, jika Anda ragu bahwa Anda telah memilih profesi yang salah, ada banyak bukti bahwa perangkat lunak memakan dunia.

  • Saya membagikan tips dan pelajaran saya sendiri dalam sebuah wawancara baru-baru ini di podcast Developer On Fire, yang dapat Anda dengarkan di sini .
  • Anda dapat bertemu JAMstack di Jamstack.org
  • Blog Netlify juga memiliki ikhtisar yang baik tentang generator situs statis.
  • Dan di sini ada artikel tentang tumpukan tertentu yang baru-baru ini saya ulas dan rekomendasikan yang menggunakan kombinasi Gatsby, Contentful, Netlify, dan Algolia sebagai alternatif dari CMS tradisional untuk situs dokumentasi.


Publikasi yang lebih menarik





Baca juga blognya
Perusahaan EDISON:


20 perpustakaan untuk
aplikasi iOS yang spektakuler

Source: https://habr.com/ru/post/id475920/


All Articles