Banyak kali saya lupa hal-hal tentang aplikasi saya. Saya tidak menghafal nama tabel atau apa yang dilakukan kueri dan saya mencari untuk mendapatkan apa yang saya inginkan. Ketua tim saya mengatakan bahwa saya harus mengingat nama tabel yang saya gunakan.
Apakah pengembang harus menghafal nama tabel dalam database, nama kelas, dll? Dan jika jawabannya adalah "Ya, sepanjang waktu," apa yang harus saya lakukan untuk mengingat hal-hal itu?
Jawaban:
Anda tidak perlu menghafal hal-hal ini secara eksplisit . Maksud saya duduk dan mempelajarinya seperti yang Anda lakukan daftar kata-kata untuk tes ejaan. Dalam contoh pertama nama harus mudah diingat dan dapat ditemukan sehingga Anda dapat menemukannya lagi tanpa terlalu banyak usaha.
Anda juga harus memiliki akses ke alat yang membantu Anda di sini dengan pelengkapan otomatis dan sejenisnya.
Dalam sistem besar lebih dari 100 tabel tidak mungkin Anda dapat benar-benar diharapkan untuk mengingat setiap nama tabel dan setiap nama kolom, namun, dengan nama yang mudah diingat, dapat ditemukan dan penggunaan biasa Anda harus menemukan diri Anda mengingat detail yang paling penting dan yang Anda gunakan setiap hari.
sumber
Einstein berkata "jangan pernah menghafal apa yang bisa kamu cari [dalam buku]", dan aku sepenuhnya setuju.
Gunakan ingatan Anda untuk hal-hal abstrak (teknik dan prinsip pengembangan) bukan fakta yang dapat Anda temukan saat Anda membutuhkannya.
sumber
Memalukan untuk mengakui - Saya telah menggunakan C selama hampir 30 tahun sekarang, tetapi tidak pernah ingat bagaimana cara mendeklarasikan pointer fungsi - Saya selalu harus keluar K&R untuk memeriksa sintaksisnya.
Yang lebih memalukan, saya harus berpikir keras tentang cara kerja typedef - apakah itu:
atau
Ini adalah titik buta pribadi saya. Saya tidak akan khawatir jika Anda memiliki yang serupa.
sumber
Komputer pandai mengingat sesuatu dengan tepat. Komputer juga pandai menemukan hal-hal yang sebelumnya mereka ingat.
Jadi keterampilan utamanya adalah menggunakan komputer sebagai perpanjangan memori Anda. Menulis kode bersih, dokumen, belajar menggunakan alat pencarian secara efektif, mengatur lingkungan pengembangan Anda sehingga mudah menemukan sesuatu, dll.
Efek samping yang bagus adalah Anda juga akan memudahkan orang lain membaca kode Anda.
sumber
Memori itu penting
Memori yang kuat memang salah satu talenta teratas yang bisa dimiliki pengembang; sebenarnya siapa saja bisa memilikinya. Ini benar-benar hal yang istimewa dan saya iri dan mengagumi mereka yang diberkati. Ini pasti dapat membantu seseorang menjadi pengembang yang lebih kuat, pengacara, mekanik, atau (memasukkan pekerjaan pilihan di sini).
Berapa yang harus diminta?
Tapi saya tidak percaya itu adalah persyaratan yang adil untuk meminta menghafal semua hal. Saya percaya bahwa Anda akan mulai melakukan hal-hal ke memori sebagai bagian alami dari melakukan sesuatu. Inilah sebabnya mengapa membaca buku tentang bahasa dan menggunakannya dalam lingkungan produksi bukanlah hal yang sama. Ketika Anda bekerja setiap hari dengan sesuatu (beberapa orang akan menyebutnya "latihan"), Anda akan mulai membuat beberapa hal menjadi kebiasaan.
Seperti poster-poster lainnya, saya percaya menghafal bagian-bagian penting dari aplikasi memang membantu. Namun, saya tidak yakin berinvestasi dalam menghafal semuanya sepadan dengan investasi ketika Anda dapat memanfaatkan fitur seperti intellisense, yang semakin umum dalam alat modern.
Bagaimana Anda bisa meningkat?
Saya bukan ahli memori, tetapi beberapa percaya bahwa Anda memang dapat meningkatkan daya ingat melalui latihan mental seperti permainan otak (teka-teki silang, sudoku, teka-teki, dll.). Teorinya adalah bahwa otak Anda seperti otot dan jika Anda menggunakannya dengan cara yang berbeda dan melatihnya maka Anda dapat memperkuatnya.
Akan menarik untuk melihat studi tentang bagaimana hal-hal seperti melakukan permainan otak, pemrograman, dan kegiatan interaktif akan mempengaruhi otak dari waktu ke waktu. Bisakah hal-hal seperti itu membantu melawan timbulnya kehilangan ingatan yang disebabkan oleh usia atau demensia?
sumber
Di mana saya berasal, ada pepatah lama yang berbunyi seperti ini dalam bahasa Inggris: "Orang bodoh menghafal, orang pintar menulis". Pada dasarnya, tidak peduli seberapa baik ingatan Anda , Anda akan lupa . Anda hanya manusia. Dan ini, sebagai akibatnya, membuat mengandalkan ingatan manusia ... yah, tidak bisa diandalkan. Bahkan jika Anda berpikir Anda mengingat nama-nama tabel itu, dapatkah Anda 100% yakin? Anda hanya perlu beberapa detik untuk mencari nama tabel, tetapi Anda bisa membutuhkan berjam-jam, atau bahkan berhari-hari, untuk melacak bug yang disebabkan oleh kesalahan mengeja.
Sebagai kesimpulan, tidak, ini merupakan persyaratan konyol, terutama pada proyek-proyek besar, yang dapat memiliki ribuan tabel dan kelas.
sumber
Jika itu adalah sesuatu yang sedang Anda kerjakan dan itu adalah tugas jangka panjang, maka ya, Anda harus bekerja menuju pembelajaran dan dapat mengingat berbagai nama tabel dan kolom, kelas, variabel, dan metode. Ini adalah sesuatu yang akan datang seiring waktu saat Anda bekerja dengan mereka. Anda tidak akan mempelajari semuanya dalam semalam, tetapi Anda harus berusaha untuk mengetahui sebanyak mungkin tentang sistem yang sedang Anda kerjakan. Juga, dalam sistem yang besar, tidak mungkin Anda dapat mengingat semuanya, tetapi tidak ada alasan untuk tidak belajar dan mengingat sebanyak yang Anda bisa.
Harus mencari segalanya setiap saat hanya merupakan hit bagi produktivitas - jika Anda mengerjakan tugas dan harus berhenti dan mencari hal-hal setiap beberapa menit, itu adalah pemusatan konsentrasi. Gunakan alat yang tepat untuk membantu Anda, dan pelajari / hafalkan apa yang Anda bisa. Ini akan sangat meningkatkan produktivitas Anda.
sumber
Apakah ada gunanya menghafal nama kelas yang tepat? Saya kira tidak.
Apakah ada gunanya mengetahui istilah apa yang digunakan proyek Anda dalam nama kelas, sehingga Anda dapat mencarinya dengan lebih cepat? Pastinya.
sumber
Saya tidak setuju bahwa Anda harus menghafal nama tabel, tetapi harus mudah ditebak. Agar mudah ditebak, konsistenlah. Dengan cara ini, Anda tidak akan bertanya pada diri sendiri "Hmm .. apakah tabel foo jamak atau tunggal? Apakah ID kunci utama atau RID atau FooRID?"
sumber
Saya tidak tahu bagaimana Anda bisa query database kapan saja sama sekali tanpa mengenal nama tabel utama dan nama kolom kritis (tapi tentu saja tidak semuanya). Saya tahu orang-orang yang tahu hal-hal ini tanpa harus mencari tahu setiap kali menjadi lebih berharga bagi organisasi dan menjadi "pergi ke" orang ketika orang lain terjebak.
Saya menemukan bahwa seringkali ketika orang tidak mulai mempelajari hal ini, mereka membuat kesalahan dalam pertanyaan tanpa menyadarinya. Kesalahan Saya sering melihat langsung dalam ulasan kode karena saya mengerti struktur basis data kami dan bagaimana tabel-tabel itu saling berhubungan satu sama lain dan apa aturan bisnis yang penting tanpa harus mencarinya.
Secara pribadi saya menemukan bahwa orang-orang yang tidak repot-repot mempelajari struktur sering tinggal di tingkat pemula dalam menanyakan database tertentu. Mereka juga cenderung tidak selamat dari PHK. Saya pikir bos Anda mencoba melakukan Anda untuk membuat Anda membayar lebih banyak perhatian.
sumber
Lebih dari memori yang kuat, salah satu yang banyak membantu adalah desain berbasis domain dan mengikuti konvensi mudah seperti nama tabel dan nama kelas agar sama. Jika pemilik bisnis Anda berbicara kepada Anda tentang persyaratan, istilah khusus domain yang digunakan olehnya harus ada dalam kode. Dalam hal ini kita tidak harus mengingat pemetaan antara istilah bisnis dan nama dalam kode. Kebiasaan ini membutuhkan waktu untuk dipahami tetapi sangat berguna karena juga mengurangi kesalahan terjemahan antara pemilik bisnis dan pengembang.
Bersamaan dengan ini jika durasi proyek sangat lama, merasa nyaman dengan basis kode selama periode waktu tanpa sadar akan membantu memori.
sumber
domain driven design
?