Kata-Kata atau Frasa Pemrograman Besar

Pelindung SakuBekerja dengan beberapa programmer yang luar biasa, saya sering menemukan diri saya dalam pertemuan dengan arsitek, pimpinan dan pengembang yang (menurut saya) suka melontarkan beberapa kata atau frasa penting di luar sana untuk mencoba dan menakut-nakuti Manajer Produk atau klien mereka.

Itu salah satu hal yang suka dilakukan oleh programmer. Inilah sepuluh dari mereka dengan deskripsi yang sangat sederhana (yang tidak diragukan lagi akan menarik kemarahan pengembang di mana-mana saat saya meretas terminologi mereka sampai mati dengan metafora mobil sederhana saya):

  1. Abstraksi - ini mengambil proses atau fungsi yang sulit dan pada dasarnya memecahnya secara logis… baik menurut hierarki (A milik B, B milik C, dll.) Atau menurut fitur atau fungsi (warna, ukuran, bobot, dll.). Abstraksi membuat pemrograman berorientasi objek lebih mudah dengan mengatur fungsionalitas secara logis. Untuk membuat mobil saya, saya membuat rangka, mesin, dan bodi secara terpisah.
  2. Bantahan - ini berarti bahwa ada beberapa kode lama dalam sistem yang mungkin tetap ada tetapi perlu dihentikan secara bertahap. Ketika kode tidak digunakan lagi, programmer tidak mereferensikan kode atau menggunakan kode yang lebih baru sampai semua referensi pergi ke yang lama, yang pada saat itu harus dihapus. Terkadang, jika itu adalah fitur yang akan ditiadakan, Anda dapat menyimpannya untuk sementara dengan peringatan kepada pengguna Anda bahwa fitur itu akan menghilang. Saya mendapatkan sistem stereo baru dengan kabel baru tetapi saya meninggalkan kabel lama dan tidak menggunakannya.
  3. Enkapsulasi - ini adalah proses mengatur fungsi pemrograman Anda di dalam induk ketika fungsi tersebut tidak menjangkau bagian lain dari sistem. Jika Anda memiliki jutaan fungsi, Anda ingin membuatnya diatur dan berfungsi secara efisien dalam area tempat mereka beroperasi daripada membuatnya tersedia secara global. Saya meletakkan mekanik pendukung mesin di ruang mesin… Saya tidak memasang filter oli di jok belakang.
  4. Warisan - ini adalah kemampuan untuk mengambil properti dari bagian lain dari kode umum (kelas) untuk menggunakannya kembali untuk fungsionalitas baru tanpa harus menulis ulang. Pewarisan adalah praktik pengembangan berorientasi objek yang baik. Kursi mobil saya dapat digunakan untuk membawa anak atau orang dewasa - siapa pun yang duduk di dalamnya.
  5. Normalisasi - Ini adalah metode pengorganisasian data yang lebih efisien dalam database dengan membangun referensi. Contohnya jika saya harus mencatat lampu lalu lintas sepanjang hari… merah, kuning dan hijau. Daripada menulis setiap catatan dengan warna merah, kuning, dan hijau - saya menulis 1, 2, dan 3 dan kemudian membuat tabel lain di mana 1 = merah, 2 = kuning dan 3 = hijau. Dengan cara ini saya hanya merekam merah, kuning dan hijau sekali. Setiap pintu mobil saya memiliki pegangan pintu yang sama. Satu pegangan, digunakan di 4 lokasi berbeda daripada 4 pegangan berbeda.
  6. Berorientasi pada objek - dalam bahasa pemrograman modern, ini adalah metode desain yang memungkinkan Anda menulis kode tertentu dalam beberapa bagian, berdasarkan fungsionalitas, dan kemudian menggunakannya kembali. Contohnya adalah jika saya ingin memeriksa alamat email yang dibuat secara valid. Saya bisa membangun fungsi satu kali, dan kemudian menggunakannya di mana pun saya butuhkan dalam aplikasi saya. Mobil saya memiliki pelek 18 yang dapat digunakan pada mobil lain oleh produsen yang sama atau lainnya.
  7. Polimorfisme - Yang satu ini sulit untuk dijelaskan, tetapi pada dasarnya ini adalah kemampuan untuk mengembangkan kode yang dapat digunakan secara dinamis untuk situasi lain. Dengan kata lain, ia dapat mewarisi fungsionalitas yang unik dan dinamis hanya dengan cara dirujuknya. Ini adalah cara pembangunan yang sangat efisien. Saya dapat menggunakan stopkontak mobil saya untuk mengisi daya ponsel saya atau untuk memasok jus ke pompa ban saya.
  8. Rekursi - ini adalah metode di mana kode mereferensikan dirinya sendiri. Terkadang, itu efisien dan disengaja, tetapi di lain waktu itu dapat membuat aplikasi Anda di luar kendali. Saya mengklik seek di stereo mobil saya dan memutar melalui stasiun radio. Itu tidak pernah selesai, terus saja.
  9. Pemfaktoran ulang - ini adalah proses penulisan ulang kode agar lebih mudah diikuti atau diatur dengan lebih baik tetapi tidak perlu menambahkan fungsionalitas tambahan apa pun. Saya membangun kembali mesin saya.
  10. Arsitektur Berorientasi Server (SOA) - ambil pemrograman berorientasi objek dan terapkan ke sistem besar di mana Anda dapat memiliki seluruh sistem yang melakukan fungsi tertentu. Anda mungkin memiliki sistem manajemen hubungan pelanggan yang mengacu pada sistem e-niaga yang mengacu pada sistem pengiriman, dll. Saya menarik trailer dengan mobil saya untuk mengirim barang dari satu tempat ke tempat lain. Saya menggunakan trailor hitch (XML) untuk menghubungkannya.

Saya menyadari bahwa metafora saya tidak selalu tepat sasaran. Saya harap mereka sedikit membantu!

Beberapa saran ketika Anda mendengar kata-kata ini dalam pertemuan Anda berikutnya dengan pengembang… jangan lari kembali ke tempat duduk Anda dan lihatlah Wikipedia, mereka akan mengawasi. Jangan gentar, mereka akan menyerang. Inilah yang harus dilakukan… renungkan ke luar jendela seolah-olah Anda sedang berpikir keras dan kemudian melihat ke belakang dengan tatapan ingin tahu atau menggaruk dagu Anda. Tunggu sampai mereka menindaklanjuti pernyataan mereka dengan info lebih lanjut.

… Mereka mengawasi.

8 Komentar

  1. 1

    LOL Anda benar-benar berhasil Doug 🙂 Apakah Anda mencoba membuat kami keluar dari bisnis? Anda tahu betul kami mengandalkan konsep-konsep yang tidak dipahami dan karena itu berhasil dengan klien. Sekarang kita harus mencari cara untuk menghancurkan mereka menggabungkan kata kunci tersebut untuk membuat satu frase raksasa yang mungkin seperti ini:

    Anda tahu bahwa fitur yang Anda coba masukkan dapat disarikan ke beberapa objek yang merangkum fungsionalitas dan berkomunikasi melalui arsitek berorientasi layanan.

  2. 5

    Menjadi pengembang perangkat lunak, saya dapat menghargai posting ini. Kita tidak seburuk itu 😉 Aku tidak akan pernah memperdaya orang dengan celoteh techno seperti itu 🙂

    Biarkan saya mencoba dan memikirkan beberapa kata lagi untuk Anda….

Bagaimana menurut Anda?

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.