Abstraksi adalah kunci kode sederhana.

gambar


Apakah ada cara untuk meningkatkan keterampilan Anda 10 kali? Apakah ada rahasia ajaib yang - jika Anda hanya tahu ini - akan membuka bagi Anda seluruh dunia keterampilan dan produktivitas baru dalam pengembangan perangkat lunak?



Di sinilah orang-orang yang ragu berpikir, β€œAnda tidak dapat mengambil jalan pintas di sini! Setiap orang harus berlatih untuk menjadi baik! " Dan ini benar, tetapi apa yang dilakukan para ahli untuk mempercepat pengembangan perangkat lunak, dan adakah satu hal kunci yang dapat membuat perbedaan besar?



Iya! Ada!



Tetapi bahkan jika saya membaginya dengan Anda - bahkan jika saya merincinya untuk Anda - mungkin Anda membutuhkan 10 tahun untuk tumbuh dan sepenuhnya menghargai kesederhanaannya.



Setidaknya itulah yang terjadi pada saya. Ini diajarkan kepada saya dalam bahasa Inggris sederhana oleh guru pemrograman SMA saya. Saya telah melalui proses penerapannya langkah demi langkah menggunakan beberapa contoh kode. Dan ini benar-benar terjadi hanya setelah 10 tahun. Tetapi sekarang, berkat pengalaman saya, saya sangat menghargai pelajaran ini, dan meskipun saya tahu bahwa Anda tidak dapat benar-benar menghargai itu pada pandangan pertama, saya akan membagikannya kepada Anda.



Rahasia ini adalah perbedaan utama antara kinerja rata-rata dan kinerja 10x. Menggunakan leverage yang diberikan oleh rahasia ini, Anda bisa menjadi urutan yang lebih efisien.



Anda dapat menulis kode yang lebih dapat digunakan kembali dan cenderung rusak ketika persyaratan baru diperkenalkan dan perubahan terjadi dalam kode.



Rahasia menjadi 10 kali lebih produktif adalah menguasai abstraksi. Banyak pengembang menganggap "abstraksi" sebagai kata kotor. Anda dapat mendengar saran, misalnya, "jangan terlalu cepat abstrak" atau Zen Python yang terkenal "eksplisit lebih baik daripada implisit", yang berarti bahwa beton lebih baik daripada abstrak. Ini semua saran bagus, tergantung konteksnya.



Tetapi aplikasi modern menggunakan sejumlah besar kode. Jika Anda mencetak kode sumber dari 10 aplikasi modern terbaik, rim kertas ini akan bersaing dengan ketinggian gedung pencakar langit, dan perangkat lunaknya menghabiskan banyak uang untuk mempertahankannya. Semakin banyak kode yang Anda buat, semakin banyak biayanya.



Abstraksi adalah kunci kode sederhana.



Abstraksi yang tepat dapat membuat kode lebih mudah dibaca, beradaptasi, dan dapat dipelihara, menyembunyikan detail yang tidak penting untuk konteks saat ini, dan mengurangi jumlah kode yang diperlukan untuk melakukan pekerjaan yang sama - seringkali beberapa kali.



"Kesederhanaan mengurangi yang jelas dan menambahkan yang bermakna."

- John Maeda: Hukum Kesederhanaan


Abstraksi bukan jalan satu arah. Ini dibentuk oleh dua konsep tambahan:



  • Generalisasi - menghapus bagian berulang (jelas) dan menyembunyikannya di belakang abstraksi.
  • Spesialisasi - penggunaan abstraksi untuk kasus penggunaan tertentu, hanya menambahkan apa yang seharusnya berbeda (bermakna).


Pertimbangkan kode berikut:



const doubleList = list => {
  const newList = [];
  for (var i = 0; i < list.length; i++) {
    newList[i] = list[i] * 2;
  }
  return newList;
};


Tidak ada yang salah dengan kode, tetapi berisi banyak detail yang mungkin tidak relevan untuk aplikasi khusus ini.



  • Ini termasuk informasi terperinci tentang struktur data kontainer yang digunakan (array), yang berarti bahwa itu hanya akan bekerja dengan array. Ini berisi ketergantungan bentuk negara .
  • Ini termasuk logika iterasi, yang berarti bahwa jika Anda memerlukan operasi lain yang juga perlu mengunjungi setiap item dalam struktur data, Anda juga perlu mengulangi logika iterasi yang sangat mirip dalam kode ini. Hal ini menyebabkan pengulangan , yang dapat melanggar prinsip KERING (jangan ulangi sendiri) .
  • Ini termasuk tugas eksplisit daripada deskripsi deklaratif dari operasi yang akan dilakukan. Itu verbose .


Semua ini tidak diperlukan. Semua ini bisa disembunyikan di balik abstraksi. Dalam hal ini, itu adalah abstraksi yang serba guna yang telah mengubah cara kita membangun aplikasi modern dan mengurangi jumlah eksplisit untuk loop yang perlu kita tulis.



"Jika Anda menyentuh satu hal dengan kesadaran yang mendalam, Anda menyentuh segalanya."

- Thih Nhat Han


Dengan menggunakan operasi peta, kita dapat mengurangi kode menjadi satu-baris, menghapus yang jelas (bagian-bagian yang kemungkinan akan kita ulangi dalam kode yang sama) dan berfokus pada signifikan (hanya apa yang harus berbeda untuk penggunaan kita). Contoh:



const doubleList = list => list.map(x => x * 2);


Pengembang junior berpikir mereka perlu menulis banyak kode untuk mendapatkan nilai yang bagus.



Pengembang senior memahami nilai kode yang tidak perlu ditulis oleh siapa pun.



Bayangkan diri Anda seorang programmer yang telah mempopulerkan penggunaan operasi peta dalam bahasa pemrograman seperti JavaScript. Peta abstrak jauh dari detail seperti jenis data yang Anda petakan, jenis struktur data yang berisi data, dan logika iterasi yang diperlukan untuk membuat daftar setiap node data dalam struktur data. Ini telah meningkatkan kinerja setiap aplikasi yang saya buat selama dekade terakhir.



Jeremy Ashkenasmembuat beberapa operasi ini populer di JavaScript, dan membuka jalan bagi banyak pintasan sintaksis hebat yang sekarang kita terima begitu saja dalam JavaScript ketika kami pertama kali menggunakannya dalam CoffeeScript. Dia menciptakan Underscore, yang menelurkan Lodash (masih merupakan alat paling populer untuk pemrograman fungsional dalam JavaScript) dan Backbone, yang mempopulerkan arsitektur MVC dalam JavaScript dan meletakkan dasar untuk Angular dan React.



John Rezigmembuat jQuery, yang sangat populer dan berpengaruh sehingga membentuk koleksi terbesar modul JavaScript yang di-enkapsulasi ulang (plugin jQuery) hingga modul Node standar dan modul ES6 muncul beberapa tahun kemudian. API pemilih jQuery sangat kuat sehingga menjadi dasar API DOM modern. Saya mendapat manfaat dari API ini hampir setiap hari ketika saya menguji komponen Bereaksi .



Abstraksi yang tepat adalah tuas yang kuat yang dapat secara signifikan mempengaruhi kinerja. Abstraksi bukanlah kata yang kasar. Modul, fungsi, variabel, kelas adalah semua bentuk abstraksi, dan seluruh alasan mereka ada adalah untuk menyederhanakan abstraksi dan menyusun abstraksi.



Anda tidak dapat menulis program yang rumit tanpa abstraksi. Bahkan bahasa assembly menggunakan abstraksi - nama untuk instruksi, variabel untuk alamat memori, titik kode untuk melompat ke subrutin (seperti panggilan fungsi), dan sebagainya. Perangkat lunak modern adalah lapisan abstraksi yang berguna, dan lapisan ini memberi Anda keunggulan.



"Beri aku tuas cukup lama dan titik tumpu yang bisa aku sandarkan, dan aku akan menggerakkan seluruh dunia."

- Archimedes


Kunci kesederhanaan: rahasia yang kita cari adalah bagaimana mengurangi jumlah kode yang kita buat - bagaimana melakukan lebih banyak dengan lebih sedikit. Ketika Anda menguasai ini, Anda akan menjadi programmer 10 kali lebih baik. Saya jamin itu.





gambar



Pelajari detail cara mendapatkan profesi yang dicari dari awal atau Tingkatkan keterampilan dan gaji dengan menyelesaikan kursus online berbayar SkillFactory:






Baca lebih lajut






All Articles