Secara singkat tentang penamaan di JS

Halo, Habr! Saya memutuskan untuk menyentuh topik tentang penamaan entitas dalam Javascript. Di tempat kerja, saya banyak berinteraksi dengan pekerja magang dan telah melihat cukup banyak. Jadi saya pikir akan menyenangkan untuk mengumpulkan dalam satu catatan kecil aturan entitas penamaan yang diadopsi hari ini di komunitas JavaScript. Mungkin saya tidak mengumpulkan semuanya, jadi saya akan berterima kasih jika Anda melengkapi saya di komentar.

Penamaan entitas


Penamaan sangat penting dalam pengembangan perangkat lunak. Seperti yang kita ketahui, kode ini ditulis terutama untuk orang yang akan membacanya (untuk programmer). Penamaan yang buruk dapat secara signifikan meningkatkan biaya tenaga kerja untuk mengembangkan atau mendukung proyek karena waktu ekstra yang dihabiskan untuk membaca kode dengan penamaan yang buruk, interpretasi "apa yang ada dalam kode" sulit.

Ada berbagai bentuk sintaksis nama, ada banyak di antaranya, ada yang tidak lagi digunakan. Berikut ini adalah yang paling umum di js:

  • Notasi Unta (CamelCase): MyClass
  • Snake_case: my_const
  • Notasi barbekyu (kebab-case): my-data

Saat memilih kasing, penting untuk mempertimbangkan standar yang diterima saat ini. Dalam js hari ini snake_case dan kebab-case tidak diterima, tetapi mereka dapat ditemukan misalnya dalam Python atau Ruby .

Pengidentifikasi huruf tunggal


Lembaga sering menggunakan pengidentifikasi huruf tunggal dalam kode. Saya melihat gaya pengkodean ini di setengah dari orang-orang yang datang setelah sekolah menengah. Ini adalah praktik yang sangat kejam. Nama harus dengan jelas menggambarkan esensi. Saat ini, menggunakan pengidentifikasi satu huruf adalah pertanda buruk. Pengecualian bisa berupa penghitung dan indeks, mis. situasi di mana satu huruf lebih dari cukup untuk menyampaikan esensi esensi.

Translit dalam namanya


Ini juga sangat populer di kalangan siswa untuk menggunakan transliterasi. Tentu saja, ini juga pertanda rasa tidak enak dan kode buruk. Seharusnya tidak ada transliterasi dalam penamaan, karena Bahasa yang umum dalam pemrograman adalah bahasa Inggris. Saat mengembangkan kode, kita harus menggunakan bahasa internasional yang diketahui oleh para profesional di negara mana pun. Transliterasi Rusia tidak berlaku untuk itu.

Variabel dan Kelas Penamaan


Variabel dinamai dalam lower camelCase:

const maxCount = 10;

Kelas dinamai dalam CamelCase:

class EnumerableCollection {
//some code
}

Tindakan


Sangat penting untuk menggunakan kata kerja untuk tindakan penamaan (misalnya, fungsi). Anda harus memilih kata kerja seperti itu. yang sesuai dengan jenis tindakan.
Contohnya:

const checkNumberIsEven = (number) => (number % 2 === 0);

checkNumberIsEvenApakah nama yang bagus? segera jelas bahwa fungsi memeriksa nomor untuk paritas.

Juga nama yang bagus isEven - jika fungsi ini ada di /helpers/number.js, maka nama pendek seperti itu pun sudah lebih dari cukup, karena direktori itu sendiri memberi tahu kita bahwa itu berisi fungsi untuk bekerja dengan angka. (Tetapi bahkan di sini Anda dapat menggunakan opsi pertama, karena file yang menggunakan fungsi ini dapat memiliki cukup banyak kode, dan panggilan dapat berada di suatu tempat di tengah.)

Fungsi jauh dari selalu tindakan , penting juga untuk memahami ini.
Contohnya,

const arifmeticalProgression = (start, depth, maxLength = 10) => {
  const progression = [start];
  const iter = (acc) => {
    if (acc.length >= maxLength) {
      return acc;
    }
    const newIndex = acc.length;
    const newItem = start + newIndex * depth;
    const newProgresion = [].concat(acc, newItem);
    return iter(newProgresion);
  };
  return iter(progression);
};

Fungsi ini menghasilkan perkembangan aritmatika, tetapi itu bukan tindakan, karena mengingat sifat deklaratifnya, definisi perkembangan aritmatika dipertimbangkan. Penting untuk dapat membedakan momen ini. Ini juga termasuk fungsi yang mendefinisikan konstanta.

const defaultCollection = () => ([]);

Predikat


Di atas kami membahas fungsinya

const checkNumberIsEven = (number) => (number % 2 === 0);

Jenis fungsi ini disebut predikat. Predikat adalah pernyataan tentang sesuatu. Fungsi yang disebut menjalankan pemeriksaan "esensi adalah sesuatu." Predikat pemrograman selalu mengembalikan nilai boolean.

Sebagai aturan, predikat disebut melalui bentuk tunggal orang ketiga dari kata kerja bantu Bahasa Inggris untuk menjadi , yaitu adalah .

const isEven = (number) => (number % 2 === 0);

Beberapa predikat menentukan kemunculan (kehadiran) elemen yang diinginkan (properti atau metode atau item'a) dalam entitas. Predikat seperti itu. biasanya dimulai dengan bahasa Inggris kata kerja memiliki (3 orang bentuk tunggal untuk memiliki ). Misalnya, formulir aman Object.prototype.hasOwnPropertymungkin terlihat seperti ini:

const hasProp = (obj, key) => (Object.prototype.hasOwnProperty.call(obj, key));

Jika suatu entitas adalah jumlah sesuatu, maka Anda harus menggunakan kata count dalam nama.

All Articles