DartLang

Dart Programlama Dilinde Etkili Kodlama İçin İpuçları

art’ı daha etkin bir şekilde kullanmanın temel prensipleri arasında tutarlılık, özlük, ve anlaşılabilirlik bulunmaktadır. Bu prensipleri göz önünde bulundurarak, aşağıda Dart dilinde örneklerle bu ilkelere nasıl uygun kod yazılacağını anlatacağım.

1. Tutarlılık: Dart’ta değişken isimlendirmesi ve kod bloklarının yapısı gibi unsurlarda tutarlılık sağlamak, kodunuzun anlaşılabilirliğini artırır. Örneğin, bir sınıf içindeki özel bir değişkeni ifade ederken “_privateVariable” yerine “privateVariable” gibi bir isimlendirme tercih edilmelidir. Aynı zamanda, kod bloklarını açık bir biçimde düzenlemek de önemlidir.

2. Özlük ve Anlaşılabilirlik: Dart dilinde kısa ve açık ifadelerle niyetinizi ifade etmek önemlidir. Unutmayın, kodunuzun okunabilir olması, sadece sizinle değil, aynı zamanda başkalarıyla da iletişim kurabilmeniz açısından önemlidir.

Dart dilini etkin bir şekilde kullanmak, bu temel prensipleri gözeterek kod yazmakla başlar. Tutarlılık, özlük ve anlaşılabilirlik prensiplerine uygun olarak kod yazmak, hem kendi geliştirme sürecinizi iyileştirir hem de projenizde çalışan diğer geliştiricilerle daha iyi bir iletişim sağlar.

Türleri UpperCamelCase ile İsimlendirin

Sınıflar, enum tipleri, typedef’ler ve tip parametreleri, her kelimenin ilk harfini büyük harf yapmalıdır (ilk kelime dahil), ve ayırıcı kullanmamalıdır.

Bu örnekte görüldüğü gibi, Dart dilindeki sınıflar, enum tipleri, typedef’ler ve tip parametreleri isimlendirilirken UpperCamelCase kullanılmalıdır. Bu kural, kodunuzun tutarlı ve okunabilir olmasına katkı sağlar. Örneğin, SliderMenu ve HttpRequest gibi isimler, bu kurala uygun olarak adlandırılmalıdır. Aynı zamanda, Predicate tipini tanımlayan typedef kullanımı da bu kurala uygun bir örnektir. Bu, kodunuzu daha anlaşılır ve standart hale getirerek geliştirme sürecinizi iyileştirir.

Uzantıları UpperCamelCase ile İsimlendirin

Uzantılar da, tıpkı tipler gibi, her kelimenin ilk harfini büyük yapmalıdır (ilk kelime dahil), ve ayırıcı kullanmamalıdır.

Yukarıdaki örneklerde görüldüğü gibi, Dart dilindeki uzantılar da UpperCamelCase kullanılarak isimlendirilmelidir. Bu kural, uzantıların ve tip tanımlarının benzer bir şekilde adlandırılmasını sağlayarak kodunuzun tutarlılığını artırır. MyFancyList ve SmartIterable gibi örnekler, bu kurala uygun olarak isimlendirilmiştir. Bu uygulama, kodunuzu anlaşılır kılar ve projenizdeki diğer geliştiricilerle daha iyi bir iletişim kurmanıza yardımcı olur.

Paketleri, Dizinleri ve Kaynak Dosyalarını lowercase_with_underscores İle İsimlendirin

Bazı dosya sistemleri büyük-küçük harfe duyarsız olduğundan, birçok proje dosya adlarının tamamının küçük harf olmasını gerektirebilir. Ayırmak için bir karakter kullanmak, isimlerin bu biçimde hala okunabilir olmasını sağlar. Alt çizgileri ayırıcı olarak kullanmak, ismin hala geçerli bir Dart tanımlayıcısı olmasını sağlar; bu, dil daha sonra sembolik ithalatları desteklerse faydalı olabilir.

İçe Aktarma Öneki İsimlendirmesini lowercase_with_underscores İle Yapın

Yukarıdaki örnekte görüldüğü gibi, Dart dilindeki içe aktarma önekleri lowercase_with_underscores biçiminde isimlendirilmelidir. Bu kural, içe aktarma öneklerini okunabilir ve tutarlı bir biçimde adlandırarak projenizin anlaşılırlığını artırır. Örneğin, math, angular_components, ve js gibi içe aktarma önekleri bu kurala uygun olarak isimlendirilmiştir. Bu uygulama, kodunuzu daha düzenli ve bakımı daha kolay hale getirir.

Diğer Tanımlayıcıları lowerCamelCase İle İsimlendirin

Yukarıdaki örnekte görüldüğü gibi, Dart dilindeki sınıf üyeleri, üst düzey tanımlamalar, değişkenler, parametreler ve isimli parametreler lowerCamelCase biçiminde isimlendirilmelidir. Bu kural, tanımlayıcıları okunabilir ve tutarlı bir biçimde adlandırarak kodunuzun anlaşılırlığını artırır. Örneğin, count, httpRequest ve align gibi tanımlayıcılar bu kurala uygun olarak isimlendirilmiştir. Bu uygulama, projenizdeki tüm tanımlayıcıları tutarlı bir biçimde adlandırmanıza yardımcı olur ve kodunuzun bakımını kolaylaştırır.


Sabit İsimler İçin lowerCamelCase Kullanın

Yukarıdaki örnekte görüldüğü gibi, Dart dilindeki sabit değişkenler, enum değerleri dahil olmak üzere lowerCamelCase biçiminde isimlendirilmelidir. Bu kural, sabit isimlerini diğer tanımlayıcılardan ayırt etmek ve tutarlı bir biçimde adlandırmak için kullanılır. Örneğin, pi, defaultTimeout ve urlScheme gibi sabit değişkenler bu kurala uygun olarak isimlendirilmiştir. Bu uygulama, sabitlerinizi diğer değişkenlerden kolayca ayırt etmenize yardımcı olur ve kodunuzun anlaşılırlığını artırır.

İki Harften Uzun Akronim ve Kısaltmaları Kelimeler Gibi Büyük Harfle Başlatın

Büyük harfle başlayan akronimlerin okunması zor olabilir ve yan yana gelen birden fazla akronim, belirsiz isimlere yol açabilir. Örneğin, HTTPSFTP ile başlayan bir ismin HTTPS FTP’yi mi yoksa HTTP SFTP’yi mi ifade ettiğini anlamak mümkün değildir.

Bu durumu önlemek için, akronimler ve kısaltmalar, düzenli kelimeler gibi büyük harfle başlatılmalıdır.

İstisna: Giriş/Çıkış (IO) gibi iki harfli akronimler tamamen büyük harfle yazılırken; Tanımlama (ID) gibi iki harfli kısaltmalar hala düzenli kelimeler gibi büyük harfle yazılır.

Kullanılmayan Geri Çağrı Parametreleri İçin _ ve __ Gibi Karakterleri Kullanın

Bazen bir geri çağrı fonksiyonunun tür imzası bir parametre gerektirir, ancak geri çağrı uygulaması bu parametreyi kullanmaz. Bu durumda, kullanılmayan parametreye _ ismi vermek idiyomatiktir. Fonksiyonun birden fazla kullanılmayan parametresi varsa, isim çakışmalarını önlemek için ek alt çizgiler kullanılabilir: __, ___, vb.

Bu kılavuz, yalnızca hem anonim hem de yerel olan fonksiyonlar için geçerlidir. Bu fonksiyonlar genellikle, kullanılmayan parametrenin temsil ettiği şeyin ne olduğunun açık olduğu bir bağlamda hemen kullanılır. Bununla karşılaştırıldığında, üst düzey fonksiyonlar ve metod bildirimleri bu bağlama sahip olmadığından, parametrelerinin her birinin ne işe yaradığının açık olduğu bir isimlendirme kullanmalıdır, hatta kullanılmasa bile.

Tanımlanmamış Özel Olmayan İsimler İçin Önde Gelen Altbilgi Kullanmayın

Dart, bir tanımlayıcıda önde gelen altbilgi kullanarak üyeleri ve üst düzey bildirimleri özel olarak işaretlemek için bir altbilgi kullanır. Bu, kullanıcıları önde gelen bir altbilginin bu tür tanımlayıcılarla ilişkilendirildiği bir işaret olarak görmelerine neden olur. ” _ ” karakterini görünce “özel” düşüncesini akıllarına getirirler.

Ancak, yerel değişkenler, parametreler, yerel fonksiyonlar veya kütüphane öneki için “özel” bir kavram yoktur. Bu tür bir isimlendirme, okuyucuya karışık bir sinyal gönderir. Bu durumu önlemek için, bu tür isimlerde önde gelen altbilgi kullanmayın.

Ön Ek Harfleri Kullanmayın

Macar notasyonu ve benzeri düzenler, derleyicinin kodunuzu anlamanıza çok fazla yardımcı olmadığı BCPL döneminde ortaya çıkmıştır. Dart, deklarasyonlarınızın türü, kapsamı, değiştirilebilirlik ve diğer özellikleri hakkında size bilgi verebilen bir dil olduğu için, bu özellikleri tanımlayıcı isimlerine kodlamak için bir neden bulunmamaktadır.

Örnek olarak:

Yukarıdaki örnekte görüldüğü gibi, Dart dilinde deklarasyonların türünü belirtmek için önek harfleri kullanmak gereksizdir. Dart zaten deklarasyonların özelliklerini anlama yeteneğine sahip olduğu için, defaultTimeout gibi açık ve anlaşılır bir isim kullanmak daha uygundur.

Kütüphaneleri Açıkça İsimlendirmeyin

Kütüphane yönergesine bir isim eklemek teknik olarak mümkündür, ancak bu eski bir özelliktir ve önerilmez.

Dart, her kütüphane için yol ve dosya adına dayalı benzersiz bir etiket oluşturur. Kütüphanelere isim eklemek, bu oluşturulan URI’yi geçersiz kılar. URI olmadan, araçların ilgili ana kütüphane dosyasını bulması daha zor olabilir.

Yukarıdaki örnekte görüldüğü gibi, Dart dilinde kütüphanelere isim eklemek teknik bir özelliktir ve eski bir uygulamadır. Bu kullanım, oluşturulan URI’yi geçersiz kılabilir ve araçların ana kütüphane dosyasını bulmasını zorlaştırabilir. Bu nedenle, kütüphaneleri açıkça isimlendirmekten kaçınılmalıdır.

Sıralama

Dosyanızın ön kısmını düzenli tutmak için, direktiflerin görünmesi gereken önceden belirlenmiş bir sıralama düzenine sahibiz. Her “bölüm” arasında bir boş satır olmalıdır.

dart: İçe Aktarmalarını Diğer İçe Aktarmalardan Önce Yerleştirin

package: İçe Aktarmalarını Relatif İçe Aktarmalardan Önce Yerleştirin

Import İçe Aktarmalardan ve package: İçe Aktarmalarından Sonra Belirtin

Yukarıdaki örneklerde görüldüğü gibi, Dart dilindeki direktifleri belirli bir sıraya göre düzenlemek, kodunuzu daha düzenli ve anlaşılır hale getirir. Bu sıralama kurallarına uymak, projelerde tutarlı bir yapı oluşturmanıza yardımcı olur.

Tüm Akış Kontrol İfadeleri İçin Ayraç Kullanın

Bu, sarkık else sorununu önler.

İstisna: Eğer bir else bloğu olmayan bir if ifadesine sahipseniz ve tüm if ifadesi tek bir satıra sığarsa, süslü parantezleri isteğe bağlı olarak atlayabilirsiniz:

Ancak, gövde bir sonraki satıra geçiyorsa, süslü parantezleri kullanın:

Yukarıdaki örnekte görüldüğü gibi, Dart dilindeki tüm akış kontrol ifadeleri için süslü parantez kullanmak, kodunuzu daha tutarlı ve okunabilir hale getirir. Bu kurala uymak, özellikle karışık else durumlarını önlemek için önemlidir.

Cümle Gibi Yorumları Biçimlendirin

Oluşturulan belgelerde yer almasını istemediğiniz yorumlar için aşağıdaki ipuçları geçerlidir.

İlk kelimeye büyük harf kullanın, özel bir durum belirleyen bir tanımlayıcı değilse. Nokta (veya “!” veya “?”, sanırım) ile bitirin. Bu, tüm yorumlar için geçerlidir: doküman yorumları, satır içi açıklamalar, hatta TODO’lar. Cümle parçacığı olsa bile bu kural geçerlidir.

Belgeler İçin Blok Yorumları Kullanmayın

Yukarıdaki örnekte görüldüğü gibi, dokümantasyon için blok yorumları kullanmak yerine satır içi yorumlar kullanılmalıdır. Bu, kodunuzun daha temiz ve anlaşılır olmasına yardımcı olur.

Üyeleri ve Türleri Belgelemek İçin /// Doc Yorumları Kullanın

dart doc tarafından bulunup belge oluşturabilmesi için düzenli bir yorum yerine bir doc yorumu kullanmak önemlidir.

Yukarıdaki örnekte görüldüğü gibi, üyeleri ve türleri belgelemek için /// doc yorumlarını kullanmak, kodunuzu daha belirgin ve anlaşılır kılar. Bu aynı zamanda dart doc aracının bu yorumları bulup belge oluşturabilmesini sağlar.

Özel API’lar İçin Doc Yorumları Yazın

Doc yorumları sadece kütüphanenizin genel API’sini kullananlar için değil, aynı zamanda kütüphanenizin diğer kısımlarından çağrılan özel üyeleri anlamak için de faydalı olabilir.

DO: Doc Yorumlarına Tek Cümlelik Özetle Başlayın

Yukarıdaki örnekte görüldüğü gibi, doc yorumlarına tek bir cümlelik bir özetle başlamak, okuyucunun kendini oryante etmesi ve devam edip etmemeye ya da sorunlarının çözümünü başka bir yere bakmaya karar vermesi için yeterli bağlamı sağlar. Bu aynı zamanda dart doc gibi araçların bu yorumları bulup kısa özetler oluşturmasına yardımcı olur.

Bir Doc Yorumunun İlk Cümlesini Kendi Paragrafına Ayırın

İlk cümleden sonra bir boş satır ekleyerek onu kendi paragrafına bölebilirsiniz. Eğer kullanışlıysa açıklamanın bir cümleden fazlasını kullanın.

Bu, belgelemenin özetini içeren sıkı bir ilk cümle yazmanıza yardımcı olur. Ayrıca, dart doc gibi araçlar, sınıf ve üyelerin listeleri gibi yerlerde ilk paragrafı kısa bir özet olarak kullanır.

Yukarıdaki örnekte görüldüğü gibi, doc yorumlarının ilk cümlesini kendi paragrafına ayırmak, kodunuzu daha düzenli ve okunabilir hale getirir. Bu aynı zamanda belgeleme araçlarının daha etkili bir şekilde özet oluşturmasına yardımcı olur.

Fonksiyon veya Metod Yorumlarına Üçüncü Tekil Şahıs Fiilleri İle Başlamayı Tercih Edin

Belgeleme yorumu, kodun ne yaptığına odaklanmalıdır.

Boolean Olmayan Bir Değişken veya Özellik Yorumuna İsim Tamlaması İle Başlamayı Tercih Edin

Belgeleme yorumu, özelliğin ne olduğuna odaklanmalıdır. Bu, hesaplama veya başka bir iş yapabilen getter’lar için bile geçerlidir. Çağıranın ilgilendiği şey, bu işin kendisi değil, işin sonucudur.

Boolean Değişken veya Özellik Yorumuna “Whether” İle Başlayan İsim veya Gerund İfadeyi Tercih Edin

Belgeleme yorumu, bu değişkenin temsil ettiği durumları açıklamalıdır. Bu, hesaplama veya başka bir iş yapabilen getter’lar için bile geçerlidir. Çağıranın ilgilendiği şey, bu işin kendisi değil, işin sonucudur.

Yukarıdaki örneklerde görüldüğü gibi, Dart dilindeki belgeleme yorumlarını daha açık ve anlaşılır hale getirmek için belirli bir dil kullanmak önemlidir. Bu kılavuzlara uyarak, kodunuzu daha anlaşılır ve bakımı daha kolay hale getirebilirsiniz.

Terimleri Tutarsızlıkla Kullanmayın

Kodunuzu okunabilir ve bakımı yapılabilir hale getirmenin önemli bir parçası, terimleri tutarlı bir şekilde kullanmaktır. Kodunuz boyunca aynı şey için aynı adı kullanın. Kullanıcıların muhtemelen bildiği bir önceden örnek zaten varsa, o önceden örneği takip edin.

Kısaltmalardan Kaçının

Eğer kısaltma, kısaltılmamış terimden daha yaygın değilse, kısaltma kullanmaktan kaçının. Eğer kısaltma kullanıyorsanız, doğru bir şekilde büyük harf kullanın.

Yukarıdaki örnekte görüldüğü gibi, kısaltmalar yerine kelimelerin tamamını kullanmak, kodunuzu daha anlaşılır ve okunabilir hale getirir. Eğer bir kısaltma yaygın kullanılan bir terimden daha bilinmiyorsa veya daha az anlaşılıyorsa, tam terimi kullanmak daha iyidir.

Açıklayıcı İsimi En Sona Koyun

Son kelime, şeyin ne olduğunu en iyi açıklayan kelime olmalıdır. Şeyi daha fazla açıklamak için sıfatlar gibi diğer kelimelerle öne ekleyebilirsiniz.

Yukarıdaki örnekte görüldüğü gibi, Dart dilinde, bir şeyin ne olduğunu en iyi açıklayan kelimenin en sonda olması önemlidir. Bu, kodunuzu daha anlaşılır ve açıklamalı hale getirir.

Kodun Bir Cümle Gibi Okunmasını Sağlayın

İsimlendirme konusunda şüpheniz varsa, API’nizi kullanan bir kod yazın ve bunu bir cümle gibi okumaya çalışın.

Yukarıdaki örnekte görüldüğü gibi, Dart dilinde kodunuzu bir cümle gibi okunabilir hale getirmek, kodunuzu daha anlaşılır ve okunabilir kılar. Bu, kodunuzu başkalarının daha kolay anlamasına yardımcı olabilir ve dilin doğal akışına daha uygun bir isimlendirme sağlayabilir.

Boolean Olmayan Bir Özellik veya Değişken İçin İsim Tamlamasını Tercih Edin

Okuyucunun odak noktası, özelliğin ne olduğudur. Eğer kullanıcı bir özelliğin nasıl belirlendiği konusunda daha çok ilgileniyorsa, muhtemelen bu bir yöntem olmalı ve ismi bir fiil tamlaması olmalıdır.

Yukarıdaki örnekte görüldüğü gibi, Dart dilinde boolean olmayan bir özellik veya değişken için isim tamlaması kullanmak, kodunuzu daha açıklayıcı ve anlaşılır hale getirir. Bu, kullanıcıların odaklanması gerekenin ne olduğunu netleştirir ve kodunuzu daha okunabilir hale getirir.

Adlandırılmış Boolean Parametre İçin Fiilin Atlanması

Bu kuralı rafine eder. Boolean olan adlandırılmış parametreler için, fiil olmadan ismin kullanılması genellikle aynı kadar açıklayıcıdır ve çağrı yerinde kod daha iyi okunur.

Boolean Özelliği veya Değişkeni İçin “Olumlu” İsmi Tercih Edin

Çoğu boolean ismi, kavramsal olarak “olumlu” ve “olumsuz” formlara sahiptir, ilk olan genellikle temel kavram gibi hisseder ve ikincisi bunun tersidir – “açık” ve “kapalı”, “etkin” ve “devre dışı” vb. Genellikle ikinci isim, kelimesel olarak öncekini tersine çeviren bir öneki vardır: “görünür” ve “görünmez”, “bağlı” ve “bağlı değil”, “sıfır” ve “sıfır değil”.

Eğer true‘nin temsil ettiği iki durumdan birini seçme – ve bu durum özelliğin adlandırıldığı durum – gerekiyorsa, olumlu veya daha temel olanı tercih edin. Boolean üyeler genellikle mantıksal ifadeler içinde iç içe geçer, bu ifadeler içinde negasyon operatörleri dahil. Özelliğiniz kendisi bir negasyon gibi okunuyorsa, okuyucunun zihinsel olarak çift negasyon yapmasını ve kodun ne anlama geldiğini anlamasını daha zor hale getirir.

Bazı özellikler için olumlu bir form açıkça belirgin değildir. Disk’e yazılan bir belge “kaydedilmiş” veya “değiştirilmemiş” midir? Söz konusu özelliklerde, kullanıcıların genellikle olumsuz formu kullanmaları zorunludur. Olumsuz ifade, kullanıcıların özelliği her yerde ! ile geçmesini zorlamak yerine, o özelliği kullanmak için daha iyi olabilir.

Yan Etkisi Olan Bir Fonksiyon veya Metod İçin İsimlendirilmiş Fiil Tamlamasını Tercih Edin

Çağrılabilir üyeler, çağrıyı yapana bir sonuç döndürebilir ve diğer işleri veya yan etkileri gerçekleştirebilir. Dart gibi emir kipinde olan bir dilde, üyeler genellikle yan etkileri için çağrılır: bir nesnenin iç durumunu değiştirebilir, bazı çıktı üretebilir veya dış dünya ile iletişim kurabilir.

Bu tür üyeler, üyenin gerçekleştirdiği işi açıklayan bir emir kipi fiil tamlaması kullanılarak adlandırılmalıdır.

Bu şekilde, bir çağrı, bu işi yapmak için bir komut gibi okunur.

Yukarıdaki örneklerde, Dart dilinde etkili

kullanım için temel adlandırma ilkeleri, fonksiyon ve metotların adlandırılması, boolean özelliklerin isimlendirilmesi ve dökümantasyon konularında bazı temel prensipler özetlenmiştir. Ancak, tamamlayıcı bilgiler, örnekler ve ayrıntılar için Dart Etkili Dart bağlantısına başvurmanızı öneririm. Bu kaynak, Dart dilinde etkili kod yazımı için kapsamlı bir kılavuz sunmaktadır.

Yorum Yap

Yorum yapmak için tıklayın