Yazılım Kodlama ve İ simlendirme Standartları v1.0



Benzer belgeler
Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

Sunum İçeriği. Programlamaya Giriş

BİL-141 Bilgisayar Programlama I (Java)

Java da Program Denetimi ve Operatörler

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

1 PROGRAMLAMAYA GİRİŞ

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Programlama Dili Prensipleri. Lab Notları 4

Nesne Yönelimli Programlama

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Görsel Programlama 1

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

1 JAVASCRIPT NEDİR? 1

JavaTürk. Java Kod İsimlendirme ve Şekil Standardı

HSancak Nesne Tabanlı Programlama I Ders Notları

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

Ders 8 Konu Özeti ve Problemler

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Operator Aşırı Yükleme (Operator OverLoading)

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

BİL-142 Bilgisayar Programlama II

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

MOBIL UYGULAMA GELIŞTIRME

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Ders 8: Metotlar. barisgokce.com

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

11- FONKSİYONLAR (FUNCTIONS)

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Nesneye Dayalı Programlama

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21


Programlama Dilleri 3

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

HSancak Nesne Tabanlı Programlama I Ders Notları

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Şablon Türler (Generics)

Akış Konrol Mekanizmaları

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

Java da İşleçler, Ders #3 (4 Kasım 2009)

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

VERİ TABANI İŞLEMLERİ (NESNE TABANLI PROGRAMLAMA TEKNİĞİ İLE)

BİL132 Bilgisayar Programlama II

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

Java Kodunuzun Nesne-Merkezli Olmadığının 10 İşareti

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

BTEP243 Ders 3. class Yazım Kuralı:

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

HSancak Nesne Tabanlı Programlama I Ders Notları

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

5. Bölüm Alt Sınıflar (Nested Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

BOĞAZİÇİ ÜNİVERSİTESİ UNVAN DEĞİŞİKLİĞİ SINAVI PROGRAMCI

BMH-303 Nesneye Yönelik Programlama

10/17/2007 Nesneye Yonelik Programlama 3.1

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

public class SalesLineItem // Java { private int quantity; private ProductSpecification description; public Money getsubtotal() {...

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Nesneye Yönelik Programlama (OOP) 7.Hafta

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

Android Ders Notları

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

7. HAFTA. Erişim Belirleyiciler

Burak Kıymaz JAVA FX

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Nesne Yönelimli Programlama

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

NESNEYE YÖNELİK PROGRAMLAMA

İÇİNDEKİLER VII İÇİNDEKİLER

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

C#.NET ile PROGRAMLAMAYA GİRİŞ

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

Transkript:

Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3. Genel Altın Kurallar... 2 4. Java Altın Kuralları... 5 5. Format... 5 Pascal İsimlendirme Standardı... 5 Camel İsimlendirme Standardı... 6 Genel İsimlendirme Formatı... 6 1

Yazılım Kodlama ve İsimlendirme Standartları 1. Genel Altın Kurallar YKS101: Nesne yönelimli programlama yaklaşımına uygun bir şekilde kodlama yapılmalıdır. (Class, Objects, Polymorphism, Inheritance, Encapsulation, Interface) YKS102: Kesinlikle GoTo kullanılmamalıdır. GoTo kullanılması gereken yerlerde, yerine göre if, break, continue, exit, return vs. kullanılmalıdır. YKS103: Yazılan kodlarda herhangi bir hataya sebep olmaması için warning kesinlikle bırakılmamalıdır. YKS104: Değişkenlerin (local veya sınıf) tanımlandığı yerlerde ilk değerleri mutlaka atılmalıdır. private int fmusteritoplambakiye= 0; boolean isdistactive = false; YKS105: String birleştirme (concatenation) += işlemlerinde 2-3 den fazla string birleştiriliyorsa StringBuilder kullanarak, Append(), AppendFormat() ve ToString() metodlarıyla bu işlemler gerçekleştirilebilir. StringBuilder sb = new StringBuilder(); sb.append("deneme"); String belgewarningmsg = sb.tostring(); YKS106: İf kontrolünde boolean br değişken kontrol edilecek ise fazladan mantıksal kontrole sokulmamalıdır. Yanlış kullanım if((issuccess == True) && (isopen == False)) Doğru Kullanım if((issuccess) && (!isopen)) YKS107: İf kontrollerinde else if blokları çok tekrarlanacak ise, bunun yerine switch-case kullanılmalıdır. YKS108: If, switch-case kontrollerinde sayıları ve string değerleri direk kullanılmalıdır. Gerekiyorsa enum veya constant- public static readonly property ile tanımlanarak ya da konfigurasyon dosyalarından okunarak kullanılmalıdır. YKS109: Sınıf içerisinde mutlaka regionlar kullanılmalıdır. Regionlar sırasıyla PRIVATE, PROTECTED, PUBLIC şeklinde olmalıdır. Gerekiyorsa bu regionlar içerisinde alt region açılabilir, yalnız regionlar maksimum 2 seviye olmalıdır. Region başlamadan önce ve başladıktan sonra, region bitmeden önce ve bittikten sonra birer satır boşluk bırakılmalıdır. 2

#region Private #region Fields (Seviye 2) #region Protected #region Public YKS110: Metodların, sınıf değişkenlerinin ve propertylerin erişim belirteçleri (access modifiers-public/protected/private) kullanım amacına göre doğru seçilmelidir. Private olması gereken bir şey public veya protected yapılmamalıdır. Ve bu kod parçaları doğru regionlar içerisine konulmalıdır. YKS111: Bir sınıfın, sınıf içerisinden instance değişken, metod veya property erişimlerinde mutlaka this/me anahtar kelimesi kullanarak erişim sağlanmalıdır. public LoginUser(Nullable<int> kod) : base() this.kod = kod; } YKS112: Tamamlanmamış, açığı olan, bug oluşturabilecek veya refactoring gerektirebilecek kod bloklarına mutlaka TODO yazılmalıdır. private void AddOrUpdateCounterCache(int threadid, int counterval)... cip.slidingexpiration = new TimeSpan(0, 30, 0); // TODO - 30 mins. by default. May be parameterized from app.config. } YKS113: Her fonksiyona başlamadan önce ve fonksiyonu bitirdikten sonra aralarında birer satır boşluk bırakılmalıdır. 3

YKS114: Bir metod 30-35 satırı geçmeyecek şekilde yazılmalıdır. Geçeceği durumlarda ayrı metodlara bölünmelidir. YKS115: Bir metod sadece kalıtım ile özelleştirilmiş sınıfta implemente edilmesi gerekiyorsa, bu base sınıfta if ile tip kontrolü yapılarak yazılmamalı, özelleştirilmiş sınıfta override metodlar ile yazılmalıdır. Yanlış Kullanım: YKS116: Bir sınıf içerisindeki fonksiyonda o sınıfın instance metod, değişken veya propertylerine erişmeden işlem yapılıyorsa o fonksiyonu static olarak tanımlanmalıdır. YKS117: Web projesinde static bir değişken tanımlanmamalıdır. Çünkü bu değişken uygulama seviyesinde aynı anda n process tarafından ulaşılabilen bir değişken olacaktır. Böyle bir ihtiyaç olduğunda yazılan kod mutlaka thread-safe olmalıdır. YKS118: Metodlar kendilerini açıklayıcı değil ise.net in summary özelliği kullanılarak, metot ve parametre açıklamaları yazılmalıdır. Summary yazılan metodlar kullanıldığı yerde açıklamaları ile birlikte hint olarak gözükürler. Ör: C# için http://msdn.microsoft.com/en-us/library/tkxs89c5(v=vs.71).aspx /// <summary> /// belgelerin ihtiyaç duyduğu ürün bilgilerini döndürür /// </summary> /// <param name="code">ürün takip kodu</param> /// <param name="isdepocikis">depocikis mı yapılıyor</param> /// <returns>urunbirimbilgi contractı döndürür</returns> public UrunBirimBilgi GetUrunBilgi(int code, bool isdepocikis) ------------- YKS119: Try-catch kullanımı gereken fonksiyonlar, catch ya da finally de bir işlem yapılacak olan metodlardır. Bunun dışında bir işlem yapılmayacaksa gereksiz trycatch kullanılmamalıdır. Eğer catch scope unda işlemlerden sonra geriye aynı exception fırlatılacak ise throw ex şeklinde değil throw şeklinde fırlatılmalıdır. Ör: Yanlış kullanım (1. Örnek) catch (Exception ex) 4

ErrorLog.Write(ex); throw ex; } Doğru kullanım(2. Örnek) catch (Exception ex) ErrorLog.Write(ex); throw; } Yukardaki 1. örnekte throw ex satırında program, yeni bir stack trace oluşturur ve yeni stack trace i döner. 2. Örnekte throw ise aynı stack trace i korur ve aynı exceptionı bir üst katmana fırlatır. YKS120: Döngü kullanımlarında while, foreach yapıları tercih edilmelidir. YKS121: Public field tanımlamak yerine, private veya protected field tanımlanarak propertyler ile erişim sağlanmalıdır. 2. Java Altın Kuralları Genel altın kurallara artı olarak aşağıdaki Java Android'e özgü kurallar geçerlidir. YKS301: User interface olarak yaratılan XML layout dosyaları anı klasör altında olma zorunluluğundan dolayı, ekran ismi+ uzantısı olarak tanımlanması gerekmektedir. Bu şekilde erişimleri kolay olacaktır. YKS302: Tüm dosyalar check-in yapılmadan önce ctrl+shif+f kombinasyonu ile formatlanmalı ve o şekilde check-in yapılmalıdır. YKS303: Business fonksiyonlar mümkün olduğunca C++ dosyalarında bulunmalıdır. 3. Format Bu bölümde temel olarak iki isimlendirme standardı olan Pascal ve Camel isimlendirme standartlarını kullanacağız. Pascal İsimlendirme Standardı Kelimelerin ilk harflerinin büyük diğer harflerin küçük yazılmasıdır. Örnek: MusteriEkSahaKodu.. 5

Camel İsimlendirme Standardı İlk kelimenin bütün harflerinin, diğer kelimelerin ilk harflerinin büyük diğer harflerin küçük yazılmasıdır. Örnek: musterieksahakodu Genel İsimlendirme Formatı Identifier Type İsimlendirme Stili Example(s) Kısaltmalar Büyük Harf ID, REF Namespaces Pascal AppDomain, System.IO Classes & Structs Pascal AppView Constants & Enums Pascal TextStyles Interfaces(*) I+Pascal IEditableObject Enum values Pascal TextStyles.BoldText Property Pascal BackColor Variables, and Attributes Methods Pascal (public) f+pascal (private, protected) (**) Pascal (public, private, protected) Camel (parameters) WindowSize fwindowwidth, fwindowheight Local Variables Camel recordcount ToString() SetFilter(string filtervalue) 6