Kod ənənəsi - bir proqramlaşdırma dilini istifadə edənlər tərəfindən üzərində həmfikir olunmuş və kodun görünüşcə necə yazılacağını, böyük-kiçik hərf, boşluq, sətir və s. estetik cəhətdən görüntüsünü müəyyən edən qaydalar toplusudur.
Java proqramında olan isimlərdən paket, sinif, enum, interfeys, metod, blok və dəyişənləri adlandırmaq üçün istifadə olunur. Java-da müəyyən adlandırma qaydaları var ki, onlara əməl olunması mütləqdir. Adlandırma kod ənənəsinin bir hissəsidir.
Adlandırma ilə daha yaxından tanış olaq:
Böyük-kiçik hərf həssaslığı (Camel Case):
Java-da böyük və kiçik hərf həssaslığı var. Bir Java proqramında Customer və customer fərqli şeylərdir. Müəyyən yerlərdə adlar böyük hərflə, müəyyən yerlərdə isə kiçik hərflərlə başlamalıdır.
Java-da isimlərdə “Camel Case” qaydasından istifadə edilir. “Camel” - ingiliscədən tərcümədə “dəvə” deməkdir. Dəvənin başı və bədəninin orta hissəsində olan donqarı hündürdə olduğu üçün bu adlandırma qaydasını Camel Case deyə təyin ediblər. Camel Case-in 2 növü var:
- Upper Camel Case: Ad bir sözdən ibarətdirsə, həmin söz böyük hərflə başlayır. Ad bir neçə sözdən ibarətdirsə, adda mövcud olan bütün sözlərin ilk hərfləri böyük hərflərdir, bütün sözlər böyük hərflə başlayır, qalan hərflər kiçik yazılır. Məsələn: Customer yaxud StateBankCustomers
- Lower Camel Case: Ad bir sözdən ibarətdirsə, həmin söz kiçik hərflə başlayır. Yəni adda mövcud olan ilk söz kiçik hərflə başlayır, qalan sözlərin hər biri böyük hərflə başlayır. İlk söz çıxmaq şərtilə qalan hamısı böyük hərflə başlayır (oxunaqlığı yaxşılaşdırmaq üçün). Məsələn: customers yaxud stateBankCustomers
Hər ikisinin xüsusi istifadə yerləri var, onları səhv salmaq olmaz. Bir dəyişəni, metodu, sinfi necə adlandırmışıqsa, ondan növbəti dəfə istifadə edərkən, adını məhz təyin edildiyi şəkildə yazmalıyıq, heç bir hərf yaxud simvol fərqi olmamalıdır. Eyni adın bir yerdə böyük, bir yerdə kiçik hərflə yazılması artıq o iki adın fərqli adlar olduğunu bildirir, belə hallarda xəta almağımız qaçınılmazdır. Ona görə bir şeyi başqa yerdə istifadə edərkən, adının tamamilə eyni olmasına diqqət yetirmək lazımdır.
(Bir sıra mənbələrdə “Lower Camel Case” qaydasına “Camel Case” deyilir, “Upper Camel Case” qaydasına isə “Pascal Case” də deyilir, amma mahiyyət etibarilə eynidir.)
Adlar bu qayda ilə təyin edilir:
- Sinif, interfeys və enum adları Upper Camel Case qaydasına əsasən qoyulur, yəni ad böyük hərflə başlamalı, adda bir neçə söz varsa, hər biri böyük hərflə başlamalıdır: BusinessAccount
- Dəyişən adları Lower Camel Case qaydasına əsasən qoyulur, yəni ad kiçik hərflə başlamalı, adda bir neçə söz varsa, ilk söz kiçik hərflə başlayıb, digər sözlər böyük hərflə başlamalıdır: firstName
- Metod adları da Lower Camel Case qaydasına əsasən qoyulur. Metodun dəyişənlərdən fərqi odur ki, metodların adının yanına () işarəsi qoyulur, bu işarə yoxdursa, deməli, bu, dəyişən adıdır. getCustomerInfo()
Yaxşı kod yazmaq üçün bu qaydaların hər birinə riayət edib, təmiz və anlaşılan kod yazmaq lazımdır.
Digər adlandırma qaydaları:
1. Açar sözlər:
- Açar sözləri (keyword) və ayrılmış (reserved) sözlər adlandırmada istifadə oluna bilməzlər. Onların yalnız öncədən təyin edilmiş funksiyası var, başqa məqsədlərlə istifadə oluna bilməzlər.
2. Adlar (isimlər) sadəcə hərf ilə başlayır. Amma bunun 2 istisnası var:
- Adlar $ € ¥ ₺ £ ₵ kimi valyuta simvolları (currency symbols) ilə başlaya bilər. Bunlar Unicode-un bir parçasıdır.
- Adlar _ altxətt işarəsi ilə başlaya bilərlər.
- $ işarəsi Java tərəfindən avtomatik olaraq yaradılan adların başında istifadə edildiyi üçün ondan istifadə edilməməsi məsləhət görülür.
3. Adlarda rəqəm və simvolların istifadəsi
- Adlar rəqəmlə başlaya bilməzlər, amma adın sonrakı simvollarında rəqəmlərdən istifadə oluna bilər.
- Adlarda boşluq işarəsi də daxil olmaqla, bu işarələrdən “ ‘ . , ; : ! ? / \ - | # & istifadə oluna bilməz, amma _ altxətt işarəsi istifadə oluna bilər.
4. _ altxətt işarəsinin istifadə qaydaları var.
Java 9-dan etibarən ad olaraq yalnız _ altxətt işarəsi istifadə edə bilmərik. Çünki bu, artıq bir açar sözdür. Hansı ki, artıq Java 8-dən sonra bu işarənin təklikdə isim olaraq istifadə edilməsi xəbərdarlığa səbəb olurdu.
- Bu _ altxətt işarəsi Java-da adların, isimlərin içində belə çox tez-tez istifadə edilən bir simvol deyil. Bu, isimlərin içində istifadə edilə bilər, amma Java-nın kod ənənələrində sadəcə sabit dəyərlərdə istifadə edilir. Məsələn, VALUE_ADDED_TAX kimi adlarda bu işarəni görmək olar.
- Amma Java-da _name yaxud first_name kimi istifadə şəkli xəta verməsə də, çox istifadə edilən üsullar deyil.
- _ işarəsi oxumanı asanlaşdırmaq məqsədilə rəqəmlər arasında da yazıla bilər. Məsələn, 100_000_000 yaxud 245_45_4333 şəklində sırf ədədlər arasında yazıla bilər ki, oxunaqlığı artırsın. Amma rəqəm _ işarəsi ilə başlayıb bitməməli, vergüldən əvvəl yaxud sonra bu işarə qoyulmamalıdır. Yəni 81282 yaxud 78874 yaxud 3423_.787 yaxud 8349847.89 yaxud 3734.87 kimi istifadəsi yanlışdır, _ işarəsi boşluqla yaxud vergüllə yanbayan ola bilməz, yalnız tam ədədlər arasında istifadə edilə bilər.
5. Ad qoyma məntiqi
- Hər zaman mənası olan və istifadə edilən dəyişənə yaxud metoda uyğun olan ad qoyulmalıdır. Yəni adına baxanda onun nə iş gördüyü, nəyi ifadə etdiyi anlaşılmalıdır. Java-da adların uzunluğu baxımından bir limit yoxdur. Oxunduqda mənası anlaşılmayan, kodu ilk dəfə görən insanın başa düşməyəcəyi adlar qoymaz doğru sayılmır. Əgər ifadə etdiyi məna uzun söz yaxud söz birləşməsidirsə, onu qısa şəkildə, sözlərin yalnız baş hərfini yazmaq yerinə, bütöv şəkildə yazmaq daha məqsədəuyğundur. Məsələn: “nOT” yerinə, “numberOfTeachers” yazmaq, “prc” yerinə “price” yazmaq daha doğru və daha oxunaqlıdır.
6. Adlandırmada dil yaxud əlifba fərqi
- Java xarakterləri, simvolları Unicode olduğuna görə, başqa-başqa dillərdəki hərflərdən də istifadə edilə bilər. Həmçinin, Azərbaycan dilində olan hərflərdən də adlandırmada istifadə edilə bilər. Amma adların ingiliscə yazılması hər mənada daha uyğundur. Kod yazarkən, istifadə edilən adları mümkün qədər ingilis dilində yazmaq önəmlidir.
Bu adlandırmalar keçərlidir (içində fərqli dillərə aid özəl hərflər olan):
- rəqəm Ədəd müştəri Məlumatı $qiymət سلام סלאם 你好 və s.
Bu adlandırmalar keçərlidir, amma adətən istifadə edilmir:
- sum_$ $$_50 very_expensive_price _m_number
Bu adlandırmalar keçərli deyil:
- 50ler all/students very-cheap true false?