X++ İsimlendirme Kuralları Nelerdir?
0

Bu yazıda Dynamics 365 Finance and Operations geliştirmelerinde kullanılan yazılım dili olan X++‘ın nesne isimlendirme standartlarından bahsedeceğim. İsimlendirme bir uygulamanın kod kalitesini gösteren en temel konulardan biridir. Doğru bir isimlendirme standardı olmayan bir uygulamanın sorunlu bir yapıya dönüşmesi çok daha muhtemeldir.

Genel kurallar şöyle sıralayabilirim.

  • Tüm isimler ABD İngilizcesi olmalıdır. Bunun sebebi genel bir standart oluşması ve projeye destek verecek mühendislerin daha kolay anlayabilmesidir.
  • Mantıksal ve açıklayıcı adlar kullanılmalıdır. Nesnenin adıyla yaptığı iş uyumlu olmalıdır. Mesela günlük aktiviteleri tutan bir tablo için: DmrActivityListTable
  • İsimlerde 40 karakterlik bir sınırı vardır.
  • Uygulama Nesne Ağacındaki (AOT) ve X++ kodundaki adlar, ABD İngilizcesi kullanılarak adlandırılır ve kullanıcı ara yüzündün de gösterilen etiketlerle uyumlu olmalıdır.
  • İsimlendirmede yazım hatası olmamalıdır. Ayrıca yapılan işe uygun jargonlar kullanılmalıdır.
  • İlişkili değişken ve nesne isimleri tüm uygulama boyunca aynı olmalıdır.
  • AOT içindeki nesneler tekil isime sahip olmalıdır.
  • Kullanıcı ara yüzünde görünen tüm metinler bir etiket kullanılarak tanımlanmalıdır.
  • Yeni nesneler için bir ön ek tanımlanmalı ve tüm nesnelerde kullanılmalıdır. Genelde 2 veya 3 karakterlik bir ön ek tespit edilir. Ben firmamda Dmr kullanıyorum.
  • Tablo, EDT, Enum veya Sınıf ile aynı ada sahip olamaz.
  • CamelCase kullanılır. Örnek vermek gerekirse: Tablo: LedgerJournalTrans. Değişken: amountCurTotal. EDT: CustAcount
  • Alt çizgi (_) sadece türetilmiş nesnelerde, metoda parametre olarak gelen değişkenlerde kullanılır ve lokalizasyon eklerinde kullanılır.
  • Bir etiketin ilk harfi büyük olmalı ve diğer tüm harfler küçük olmalıdır.

Mümkün olduğunca nesne adları üç temel bileşenden hiyerarşik olarak oluşturulmalıdır:

{İş alanı adı} + {İş alanı açıklaması} + {sınıf için gerçekleştirilen eylem, tablo için içerik}

Örnekler:

  • CustInvoicePrintout
  • PriceDiscAdmCopy
  • PriceDiscAdmDelete
  • PriceDiscAdmSearch
  • PriceDiscAdmName
  • LedgerJournalTable
  • LedgerJournalTrans

Kısaltmalardan mümkün olduğunca kaçınmak gerekiyor. Eğer kısaltma kullanacaksanız tüm sistemde aynı kısaltmayı kullanmalısınız. Sistemde bulunan bazı kısaltmalar şunlardır:

  • Customer -> Cust
  • Payment -> Paym
  • Bill of material -> BOM
  • Number -> Num
  • Warehouse Management System -> WMS

Değişken isimlendirmede kısaltma veya ön ek kullanılmamalıdır. Değişkenin kullanım amacına uygun isimlendirme yapılmalıdır.

Doğru örnekler:

  • CustTable         custTableUpdate;
  • CustInvoiceJour    custInvoiceJour;
  • CustAcount        custAcountInvoice;
  • Amount        totalTaxAmount;

Hata örnekler:

  • CustTable         ct;
  • CustInvoiceJour    ciJour;
  • CustAcount        customer;
  • Amount        amount1;

Extension için ayrı bir makale bile yazılabilir. Hala netleşmeyen konular olmakla birlikte temel olarak şu makaleyi takip edebilirsiniz. Burada önemli olan tüm geliştiricilerin aynı standardı kullanması. Aksi durumda kod tekrarı ve gereksiz zaman kaybı oluşabilir.

Bu yazıda isimlendirme standartlarından bahsettim. Birçok kural aslında genel yazılım kuralı farklılaşanlar ürünün getirdiği standartlar, bunlar doğrudur diğer kullanımlar hatalıdır diye bir durum yok aslında. Herkesin farklı bir yoğurt yiyişi olabilir ama Dynamics 365 bir ürün ve standartları var, kendi standartlarınızı buraya uygulamamalısınız. Sonuçta burası bir uygulama ve biz ona eklemeler yapıyoruz. Dolayısıyla standartlarına uymak zorundayız. Bu konu gerçekten çok önemli doğru isimlendirme olmayan bir kodda eklem yapmak hata ayıklamak gerçekten çok can sıkıcı oluyor.

Selamlar.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar:
www.mshowto.org

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Nameing, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apss, Power Virtual Agents, Dynamics 365 nedir, Dynamics 365 ERP, Dynamics 365 CRM

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

2005 yılında Kocaeli Üniversitesi Bilgisayar Mühendisliğinden mezun oldum. Okulda ve ilk iş tecrübelerimde farklı yazılım dilleri kullandım. 2007 yılında Akşam gazetesinde işe başladım ve Microsoft Dynamics 365 (eski adıyla Axapta) ile orda tanıştım. Hiç duymadığım bir dil olan X++ kullanılıyordu. Kısa sürede adapta oldum ve kariyerimi bu alanda şekillendirdim. Bir kaç iş değişikliğinde sonra kendi firmamı kurdum. Şu anda DMR de yönetici ortak ve Çözüm mimarı olarak çalışmaktayım. 2010 yılında MCT oldum. Birçok faklı ortamda eğitimler verdim. Bloğum ve Youtube kanalımda tecrübelerimi paylaşmaktayım.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir