Saya pikir menggunakan nama kode cukup luas. Perusahaan kami juga menggunakannya.
Tapi perhatian utama saya adalah nama-nama ini biasanya tidak didokumentasikan di mana pun. Dan maknanya disebarkan dari mulut ke mulut. Dan namanya tidak ada hubungannya dengan fungsi alat atau entitas yang dinamai.
Saya melihat pola bahwa mesin uji internal dinamai berdasarkan rasi bintang, server yang menghadap publik dinamai dewa-dewa Yunani. Dan proyek diberi nama berdasarkan tempat atau nama bintang film atau nama karakter yang dipilih secara acak. Tetapi tidak ada informasi yang tersedia secara langsung dari nama apakah mesin itu Windows atau Linux; Server 32 atau 64 bit. Atau apa proyeknya.
Saya hanya punya firasat buruk ketika saya melihat pesan komit dari VCS bahwa seseorang baru saja bercabang proyek "Gandalf" atau proyek "Callanish" atau proyek apa pun. Hanya untuk alasan yang sama, Anda biasanya tidak memberi nama fungsi dan variabel Anda seperti itu.
Saya mengusulkan agar kita harus menggunakan nama yang lebih deskriptif, setidaknya untuk entitas baru, tetapi saya menghadapi oposisi yang sangat kuat. Rupanya semua orang di organisasi kecuali saya suka menyebutkan hal-hal seperti itu.
Jadi mengapa kita menggunakan nama kode non-deskriptif?
Jangan salah paham. Saya tidak memiliki masalah dalam menentukan versi dan tonggak program, atau memiliki nama produk yang bagus untuk alasan pemasaran. Tapi semua tempat lain saya lebih suka melihat nama deskriptif.
EDIT:
Untuk memberi Anda beberapa konteks: Gandalf adalah proyek yang port kode 64 bit. Callanish adalah port yang ke Android ... Saya lebih suka memanggil 64bit cabang sebelumnya dan Androidporting kedua. Mungkin sufiks yang melekat padanya menunjukkan versi target yang kami rencanakan untuk dikirimkan. Jadi semua orang akan tahu dengan nama apa itu.
Server yang dimaksud adalah gambar mesin virtual yang kami uji pada produk ... Saya tidak tahu mesin fisik yang sebenarnya berjalan. Jadi memanggil mereka windowsxp_32, windows7_64, debian_32 atau solaris_64 benar-benar baik-baik saja.
sumber
Jawaban:
Kami tidak mereferensikan orang dengan karakteristik mereka karena dibutuhkan sepanjang hari untuk membuat daftar mereka dengan cukup detail agar tidak ambigu dan karakteristik dapat berubah. Bagaimana jika mereka potong rambut? Sebaliknya, kami memberi mereka nama. Juga, orang lebih baik dalam mengingat kata-kata daripada aliran simbol acak.
Penafian: Ini akan berisi beberapa pendapat dan dongeng anekdotal karena pertanyaan itu.
Di tempat saya bekerja beberapa tahun yang lalu, semua server kami diberi nama setelah bulan dan bagian tubuh. "Rhea", "Miranda", "paru-paru", "ginjal" dll.
Tinggi, memutuskan, seperti Anda, bahwa ini semua agak konyol dan kita harus mengubahnya menjadi lebih "deskriptif" nama-nama seperti "arc-sql-w-4" atau "lon-web-lin-2". Ini disambut dengan banyak pertentangan. Tapi itu berhasil. Kami mengganti nama semuanya.
Jadi apa yang salah?
Sebelumnya, kita akan tahu dari atas kepala kita mesin mana yang merupakan basis data utama dan yang merupakan budak karena kita dapat mengingat "hati" yang dikendalikan "kepala" atau bahwa "Tarvos" adalah server aplikasi untuk X. Apa pun. Sekarang kami harus mengingat tumpukan simbol yang sebagian, tetapi tidak sepenuhnya menggambarkan mesin yang kami cari. Kami harus tahu melalui beberapa tabel pencarian di kepala kami bahwa "lon-web-lin-1" adalah server aplikasi untuk produk A dan "lon-web-lin-2" untuk produk B.
Ini mirip dengan alasan Anda harus menggunakan kata sandi seperti FartDownTrousersForALivingDoYou? bukannya 43gH5 # € 1. Orang pandai mengingat kata-kata, bukan tumpukan sampah acak. Kata-kata adalah simbol yang merujuk pada sesuatu.
Masalah lain (yang mungkin lebih praktis) adalah Anda mengikat DNS dan nama server Anda ke fungsinya. Yang berarti Anda tidak dapat mengubah fungsi tanpa mengubah nama. Bagi kami ini termasuk lokasi fisik dan sistem operasi juga. Yang merupakan rasa sakit luar biasa di pantat.
Juga, dan ini adalah poin terakhir. Nama jauh lebih menyenangkan.
Bagaimana dengan nama proyek?
Nah, alih-alih "Proyek Gandalf" apa yang Anda usulkan? "Project prototype function X dan lihat apakah kita dapat mengubahnya menjadi produk"? Bagaimana jika lingkup proyek berubah, lalu kita ganti nama proyek? Sekali lagi, nama adalah simbol steno yang merujuk pada berbagai hal.
sumber
db3.todoapp
lebih informatif jika server hanya menanganitodoapp
. Jika pemasaran memutuskan untuk memanggil aplikasi "Organizer Pro" dan Anda memiliki 8 aplikasi lain di server, mengelola nama menjadi sangat rumit.Memberi nama benda berdasarkan sifat mereka adalah ide yang pada dasarnya buruk. Alasannya adalah bahwa properti , menurut definisi, fenomena yang dapat berubah, sedangkan identitas sesuatu tetap sama bahkan jika properti diubah.
Seseorang memutuskan bahwa server file harus dimigrasikan ke Linux? Jika namanya "Apollo", itu tidak masalah. Jika nama tersebut dirujuk "windows", maka itu akan menjadi menyesatkan, atau harus diubah di mana-mana dengan biaya atau risiko besar. Anda memperkenalkan format output baru? Demi cinta Tuhan, jangan menyebutnya 'newFormat'! Ini akan akhirnya akan digantikan lagi, dan format bahkan lebih baru akan memerlukan sebuah nama yang lebih deskriptif untuk membedakannya. Sebut saja '3', sehingga nanti Anda dapat meningkatkannya ke '4', atau 'emas' sehingga Anda dapat meningkatkan ke 'platinum'.
(Alasan tambahan adalah bahwa nama-nama yang terdiri dari nugget informasi tidak berguna. Tidak ada yang mau bekerja pada komputer bernama "PC-Marketing-Windows7-143" - mereka akan menggunakan "Apollo" atau bahkan "Bacchus" di atas itu setiap hari. Tapi poin utamanya adalah pembagian identitas / properti.)
sumber
Hermes
maka ya, itu lebih dikenali daripadafunctionWithTenLinesOfCode
. Secara pribadi, saya akan menyebutnya begituprint
.print_left_aligned_to_CRT_monitor()
Cathy()
. catatan: Saya pribadi melihat kode produksi dengan nama-nama fungsi dan variabel yang mengutip lirik Guns & Roses dan saya bersalah menulis kode produksi dengan nama-nama variabel dan fungsi yang merujuk pada Buffy.Ada 3 alasan, dalam pengalaman saya:
Ketika Anda harus menyebutkan banyak hal serupa, akan sulit untuk menemukan nama deskriptif yang unik untuk semuanya. Orang perlu cara unik singkat untuk merujuknya, dan kami lebih baik dalam menggunakan nama daripada menggunakan angka (kecuali jumlahnya sangat pendek). Ketika Anda memberi nama, itu cenderung untuk mengambil kepribadian dalam pikiran Anda, sehingga Anda akan ingat bahwa server Gandalf adalah orang dengan konektor daya serpih lebih baik daripada SERWIN15AB23. Ini juga lebih kecil kemungkinannya Anda akan mengacaukan keduanya dengan salah ketik.
Proses penamaan bisa menyenangkan. Beberapa perusahaan melakukannya dengan suara. Orang lain senang datang dengan nama-nama unik. Tanyakan saja pada orangtua mana saja.
Untuk proyek eksternal, biasanya pemasaranlah yang menentukan apa namanya, dan biasanya mereka melakukannya tepat sebelum dikirimkan. Kapan Microsoft memutuskan untuk memanggil OS terbaru "Windows 10"? Saya ragu itu selalu disebut itu. Proyek ini mungkin dalam pengembangan untuk waktu yang lama sebelum itu, dan dalam beberapa kasus Anda ingin mengaburkannya sehingga orang-orang di luar perusahaan tidak tahu apa yang Anda bicarakan.
sumber
Penamaan deskriptif sulit ™, jauh lebih mudah jika Anda sudah memiliki tema yang secara otomatis dilengkapi dengan daftar kata yang dapat Anda gunakan.
Bila Anda memiliki beberapa objek yang sama penamaan mereka
foo1.6
,foo1.2
, dll cepat mendapat membingungkan / rentan terhadap kesalahan. Misalnya ketika Anda perlu menjalankan tesVirgo
Anda maka Anda akan segera melihat kesalahan jika Anda kebetulan berada di sanaCancer
.Itu juga membuat pertemuan yang menghibur ketika konvensi penamaan diluncurkan dan keputusan dibuat untuk mendasarkan nama ruang konferensi setelah genre musik dan Anda menamai kafetaria
Salsa
.sumber
Descriptive naming is hard™, it's much easier if you already have a theme which automatically comes with a list of words you can use.
Sangat benar. Tetapi hanya karena lebih mudah, tidak berarti itu baik dalam jangka panjang. Apa yang Anda katakan tidak berbeda dengan tidak melakukan desain API yang tepat, karena jauh lebih mudah untuk hanya menghasilkan fungsionalitas.Ini mungkin terkait dengan konteks tinggi atau budaya konteks rendah . Setiap perusahaan, organisasi, atau tim memiliki budaya sendiri. Budaya konteks tinggi atau rendah berarti seberapa banyak informasi yang disukai budaya terkait secara eksplisit, dan seberapa banyak orang diharapkan untuk mengambil dari konteks.
Memberi nama semua layanan dengan nama dari referensi budaya memang memberikan fleksibilitas, tetapi juga tidak memiliki kesederhanaan. Harus ada dari mulut ke mulut atau "pengetahuan suku" yang melengkapi nama - yaitu konteks layanan. Saya telah melihat situasi di mana misalnya ada server "fizzbuzz", atau layanan "marcopolo" yang tidak ada yang tahu apa yang mereka lakukan, tetapi mereka mendapatkan lalu lintas, jadi mereka harus melakukan sesuatu.
Saya orang konteks rendah, jadi saya cenderung memilih nama yang sederhana dan eksplisit yang memberikan konteks tentang tujuan server atau layanan. Saya juga menulis "kode self-documenting" di mana saya berhati-hati tentang penamaan dalam kode saya agar lebih mudah dibaca.
Tapi saya saat ini bekerja di toko konteks tinggi di mana semua layanan dinamai Transfomer. Mendesah. Setidaknya mereka menggunakan nama secara konsisten.
Jadi sepertinya lebih seperti nilai budaya, tetapi praktik teknis akan beradaptasi dengan preferensi budaya.
Konteks tinggi juga bisa lebih lucu, dan ada beberapa nilai di dalamnya.
sumber
Salah satu alasan untuk nama kode adalah kebingungan. Jika Anda membuat nama proyek menjadi tidak berarti, maka Anda dapat membicarakannya di depan umum tanpa ada orang lain yang memahami apa yang Anda diskusikan.
Demikian pula, jika Anda memberikan server Anda nama yang tidak berarti, maka tidak ada seorang pun kecuali pengguna yang berwenang yang akan tahu apa yang ada di dalamnya.
sumber
Pertanyaan penting adalah: apa itu deskriptif? Jawaban lain telah melakukan pekerjaan yang luar biasa menggambarkan apa yang tidak deskriptif.
Mari kita tegaskan bahwa deskripsi berasal dari memanggil sesuatu dengan peran mereka, tujuan mereka . Dengan apa yang mereka lakukan . Misalnya, cukup jelas, apa yang dilakukan "pemotong". Sekarang bisa berupa kapak, laser atau pisau. Tidak masalah. Dan laser juga bisa menjadi "penunjuk" kapak juga bisa menjadi "dekorator" dan pisau juga bisa menjadi "penusuk".
Jadi, seperti yang telah ditunjukkan orang lain, hubungan antara sifat-sifat sesuatu dan tugas yang dijalankannya relatif longgar. Oleh karena itu OS yang menjadi bagian dari nama server tidak deskriptif , itu mengganggu tujuan sebenarnya.
Kecuali jika pekerjaan Anda adalah bagaimana komponen
DoesX
mencapai X, itu bukan urusan Anda. Jika itu adalah pekerjaan Anda, maka Anda langsung dihadapkan dengan itu.Seperti yang ditunjukkan oleh rachet freak, terkadang sulit untuk menemukan nama deskriptif. Tetapi lebih sering daripada tidak, itu adalah tanda tidak mengerti apa yang dilakukan, yang harus Anda sebutkan. Sebelum memiliki pemahaman itu, Anda mungkin tidak perlu khawatir tentang bagaimana hal itu melakukan apa yang tidak Anda ketahui;)
sumber
http-blog-db-failover
untuk mesin yang meng-host database failover dari situs web hosting blog; pindah dari Linux ke Windows atau dari MongoDB ke CouchDB tidak akan mempengaruhi nama, begitu juga keputusan pemasaran. )Alasan pertama adalah bahwa itu bisa pendek dan mudah diingat. Jika Anda memikirkan berapa kali Anda akan mengatakan atau menulis nama proyek, Anda menghemat banyak waktu jika ada nama singkat yang diketahui dan dipahami semua orang.
Alasan kedua adalah bahwa hal itu membangun persahabatan. Jika tim dapat memilih nama, itu dapat memilih satu yang mereka sukai. Ini halus, tetapi ini meningkatkan moral tim ketika Anda mengerjakan proyek bernama Viper atau Gimley atau Boba atau Bugatti alih-alih proyek bernama 'Pembaruan Akuntansi Q3'. Saya punya teman yang bekerja dalam tim dengan sekelompok penggemar mobil. Ritual kickoff proyek favorit mereka adalah memilih mobil mana yang akan mereka gunakan sebagai nama kode proyek.
sumber
Saya selalu berpikir ini adalah sesuatu yang dilakukan terutama karena itu menghibur orang. Orang-orang dikondisikan oleh media untuk melampirkan nilai untuk menyelinap dalam gelap vs beroperasi dalam terang hari. Pada usia 5 kita memiliki "Agen Khusus Oso"; pada usia 15 itu James Bond. Kerahasiaan memberikan kesan penting bagi aktivitas orang yang biasanya duniawi (misalnya pemrograman komputer).
Terkait, seseorang membuat logo untuk "Longhorn" kembali ketika itu adalah nama kode Microsoft ( http://en.wikipedia.org/wiki/File:Windows_Longhorn_logo.svg ). Mengapa seseorang membuat logo untuk nama kode yang tidak dimaksudkan untuk menjadi bagian dari upaya pemasaran? Sekali lagi, orang melakukan hal semacam ini karena itu menghibur mereka. Bermain-main di Photoshop lebih mudah / lebih menyenangkan daripada benar-benar melakukan pekerjaan nyata.
sumber
mungkin ada sistem yang Anda tidak tahu.
Satu perusahaan tempat saya bekerja menggunakan nama pemenang hadiah Nobel untuk semua server mereka. Hadiah Nobel yang berbeda menunjukkan berbagai kategori server.
Server pengujian mungkin dinamai berdasarkan pemenang matematika, server basis data setelah pemenang literatur, server mail setelah pemenang obat, dll.
Untuk seseorang yang tidak terbiasa dengan konvensi penamaan, nama-nama itu tampak acak (terutama karena kebanyakan orang tidak tahu semua itu) ratusan pemenang hadiah Nobel selama beberapa dekade).
Saya telah menggunakan sistem yang sama di rumah, menamai komputer dengan jet tempur, server demi pembom, dan volume disk setelah gunung berapi.
Hal yang sama dapat dilakukan dengan perangkat lunak, nama versi produksi setelah pohon, versi beta setelah bunga, dll.
sumber