C-Sharp
[[TOC]]
C Sharp
Kodlamaya başlamadan önce Visaul Studio > Tools Options Menüsünden aşağıdaki seçeneklerin hepsi kaldırılmalıdır. Bu sayede parantez açılışları aynı satırda kapanışları yeni satırda yer alacaktır (Java Style)
Sınıflar
- Her bir kelimenin ilk harfi büyük diğerleri küçük harfle başlamalıdır.
Örnek:ServiceForm
- Her bir sınıf mutlaka erişimci bilgisi içermelidir.
Örnek:public ServiceForm
- Classın ne için kullanıldığı Summary comment ile yazılmalıdır.
Örnek;/// <summary> /// Müşterinin mesleği/işi/uğraşısı /// </summary> public class Occupation { ... }
- Abstrac Classlar mutlaka Base ön ekini almalıdır.
Örnek;public abstract class BaseNotificationProvider{ }
Sınıf İsimlerinde Örnekleri
Konum | Ek | Kullaım Amacı | Örnek |
---|---|---|---|
Prefix | Base |
Abstract sınıfları tanımlamak için kullanılır. | public class BaseApiController {...} |
Suffix | Repoistory veya ApiController tarafında kullanılacak Filtre (Kriter) sınıfları tanımlamak için kullanılır | public class CustomerFilter {...} |
|
Suffix | DB Repository tanımı yapmak için kullanılır | public class CustomerRepository {...} |
|
Suffix | Web API Controller tanımlamak için kullanılır | public class CustomerController {...} |
|
Suffix | Bir domain sınıfının DTO karşılığını isimlendirmek için kullanılır. | public class CustomerDTO {...} |
Özellikler (Properties)
- Her bir kelimenin ilk harfi büyük diğerleri küçük harfle başlamalıdır.
Örnek:string Comment
- Get ve Set metodları özel bir işlem yapılmayacaksa basit yazılmalıdır.
Örnek:string Comment { get; set; }
- Özelliğin erişimcisi mutlaka yazılmalıdır, boş bırakılmamalıdır.
Örnek:public Comment { get; set; }
- Özelliğin ne için kullanıldığı Summary comment ile yazılmalıdır.
Örnek;/// <summary> /// Müşteri ile ilgili açıklama ve not alanı. /// </summary> public string Comment { get; set; }
Değişkenler (Variables)
- Tüm değişkenler kullanım amaçlarıyla ilgili açık bir isme sahip olmalıdır.
- Değişken adlarında olabildiğince kısaltma kullanılmamalıdır.
- Eğer bir liste değişkeniyse mutalaka sonunda çoğul eki olmalıdır.
- Online LinqToSQL sorgularının adı query ile başlar veya tek bir sorgu yazılacaksa sadece query olarak yazılır.
Örnek Kullanımlar.
Örnek | Açıklama |
---|---|
long userId; |
Tek bir Id değeri içeren değişkendir. |
long[] userIds |
Kullanıcı Id’lerinin tutulduğu bir değişkenler dizisidir. |
bool disableNotificationsOnUserAction=true |
Kullanıcı işlemlerinde bildirimlerin iptal edilmesi için kullanılan bir değişkendir. Değişken adı ne amaçla kullanıldığını açıkca ifade ediyor. |
var queryOrderDetail=from x in ... |
Bir LINQ-SQL sorgusu olduğunu ifade ediyor. Diğer bir deyişle doğrudan DB’den veri çekecen bir sorgu olduğunu ifade ediyor. |
List<City> result=null; |
Geriye şehir listesi dönen bir metodun geri dönüş değişkenin adı olarak kulanılır. |
Varsayılan değişken adları
Yaygın İsim | Açıklama | Örnek |
---|---|---|
id | Tek bir id değerini bulunduğu bloklarda kullanılır. | var id = user.Id; |
parentId | Bağlı kayıtların bulunduğu master kaydın Id değeridir. | var parentId = orderDetail.Order.Id; |
entity | Domain model üzerinden yer alan bir sınıfın Instance’ını temsil eder. | var entity = new ServiceForm(); |
dto | Domain model üzerinden yer alan bir sınıfın Instance’ını temsil eder. | var dto=new ServiceFormDTO(); |
query | Linq2Sql sorgusunu atamak için kullanılan varsayılan değişken adıdır. | var query=from x in db.ServiceTypes; |
result | Bir metodun geriye döneceği değeri atmak için kullanılan varsayılan değişken adıdır. | var result=...;return result; |
item | Bir entity veya liste içerisinde yer alan nesneyi ifade eder. | var item=list.FirstOrDefault(); |
Metodlar (Method and Functions)
- Her bir kelimenin ilk harfi büyük diğerleri küçük harfle başlamalıdır.
Örnek:public void SampleMethodName(){...}
- Her metod mutlaka yaptığı ana davranışla ilgili bilgi içermelidir. Bu bilgileri aşağıdaki tablodan öğrenebilirsin.
Konum | Ek | Kullaım Amacı | Örnek |
---|---|---|---|
Prefix | Get |
Geriye bir liste veya entity dönen metodların başına yazılmalıdır | public List<UserGroup> GetUserGroups(); |
Prefix | Set |
Veri setlemek işemleri yürüten metodların başına yazılmalıdır | public void SetValues(Product entity, Product dto) |
Prefix | Load |
Veri kaynakta yer alan verileri farklı bir kaynağa yüklemek için kullanılan metodların başına yazılır. Geriye bir veri dönmesi beklenmez. | public void LoadUserSettings() |
Prefix | Show |
Arayüzde ilgili alanı gizlemek veya göstermek için kullanılan metodların başına yazılır. | public void ShowPaymentOptions() |
Prefix | Try |
Yapılmak istenen işlemin başarılı olup olmayacağı konusunda bir netlik yoksa, yazılan metod adının başına eklenir. | public void TryDeleteOrder(Order entity) |
Middle | Yapılmak istenen işlem bir kritere göre yapılacaksa kriterin adının önüne bu ifade eklenir. | public List<User> GetUsersByUserGroup(UserGroup userGroup) veya public void DeleteOrderByDealer(Dealer dealer) |
|
Suffix | Metodun yaptığı işlem birden fazla kaydı etkiliyor veya geriye bir liste dönüyorsa adına sonuna çoğul eki eklenir. Titles ve Cites gibi | public List<Title> GetTitles() veya public void DeleteEMployees( …)` |
|
Suffix | Eğer bir metod verdiği sonuçları DTO nesneleri olarak veriyorsa ve aynı isimde Entity olarak veren bir method varsa DTO dönen metodun sonuna AsDTO eklenir. | public List<ProgressPaymentDTO> GetProgressPaymentAsDTO() |
|
Suffix | Bir metod geriye döndüğü değer henüz çalıştırılmamış ve Linq sorgusu (online sorgu) ise metod adının sonuna eklenir. | public IQuery<ServiceForm> GetAsQuery() |
|
Prefix | Insert |
Insert işlemi için kullanılan metodların başına eklenir | public void InsertCallWithFile() |
Prefix | Update |
Güncelleme işlemi için kullanılan metodların başına eklenir. | public void UpdateOrderStatus() |
Prefix | Delete |
Silme işlemi için kullanılan metodların başına eklenir. | public void DeleteUserGroupRights() |
Prefix | BulkInsert |
Toplu insert işlemi yapan bir metodsa metod adının başına eklenir. | public void BulkInsertDealers() |
Prefix+Suffix | Save |
Diske dosya yazan bir işlemse metodun başına eklenir | public void SaveUserProfileFile() |
Parametreler (Arguments)
Metodlarda kullanılan parametreler
Interface
- Tüm Interfaceler I harfi ile başlamalıdır.
- Base Interface’ler _I ile başlamalıdır.
Leave a Reply