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

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

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

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 DERS 03. Görsel Programlama - Ders03/ 1

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

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

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

Üst Düzey Programlama

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

İç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.

BİL-141 Bilgisayar Programlama I (Java)

HSancak Nesne Tabanlı Programlama I Ders Notları

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

C# Metotlar ve Metot Tanımlama

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

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

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

Sunum İçeriği. Programlamaya Giriş

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

Nesne Yönelimli Programlama

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

Android Ders Notları

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

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:

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

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

Ders 8: Metotlar. barisgokce.com

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

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

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

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

NESNEYE YÖNELİK PROGRAMLAMA

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

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

Programlama Dillerinde Kullanılan Veri Tipleri

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

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

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

Algoritma ve Programlama: Karar Yapıları ve Döngüler

MOBIL UYGULAMA GELIŞTIRME

Spring Framework Eğitimi

Client Server Database

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Java da Program Denetimi ve Operatörler

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

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

Programlama Dili Prensipleri. Lab Notları 4

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

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Nesne Yönelimli Programlama

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

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

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

Bölüm 10: PHP ile Veritabanı Uygulamaları

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Veri Yapıları ve Algoritmalar dönem

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

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

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

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

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

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

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

Algoritmalar ve Programlama. Algoritma

YZM 2105 Nesneye Yönelik Programlama

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Klavyeden Basit Giriş/Çıkış İşlemleri

Nesneye Dayalı Programlama Laboratuvarı

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

GRAFİK TASARIM. ACTION SCRIPT 3.0 Ders1 YARD. DOÇ. DR. MEHTAP YALÇINKAYA

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

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Baleybelen Müfredatı

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

Görsel Programlama 1

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

Karşılaştırma İşlemleri ve Koşullu İfadeler

1 - Button Kontrolu Nasıl Yapılır?

YZM 2105 Nesneye Yönelik Programlama

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

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

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

Nesneye Dayalı Programlama

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

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

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


Ruby. Prof.Dr.Timur Karaçay Başkent Üniversitesi

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

Transkript:

1 JAVATURK JAVA KOD İSİMLENDİRME VE ŞEKİL STANDARDI JavaTürk Java Kod İsimlendirme ve Şekil Standardı Sürüm 0.2 Akin Kaldiroglu akin@javaturk.org 1 Serbestçe kullanılabilinir. www.javaturk.org

2 JAVATURK JAVA KOD İSİMLENDİRME VE ŞEKİL STANDARDI İçindekiler Giriş... 3 1. Genel kurallar... 3 2. En temel şekil kuralları... 3 3. Genel isimlendirme kuralları... 5 4. Paket isimlendirme kuralları... 6 5. Tip isimlendirme kuralları... 6 6. Değişken isimlendirme kuralları... 7 7. Metot isimlendirme kuralları... 9 Kaynaklar... 10 Değişiklik Geçmişi Tarih Açıklama Yapan 24 Mart 2014 İlk oluşturma. A. Kaldiroglu 23 Temmuz 2014 Bazı ekler ve değişiklikler. A. Kaldiroglu 2 Serbestçe kullanılabilinir. www.javaturk.org

JAVATURK JAVA KOD İSİMLENDİRME VE ŞEKİL STANDARDI 3 JavaTürk Java Kod İsimlendirme ve Şekil Standardı Giriş Bu dokümanda, Java kodunda kullanılacak isimlendirme ve şekil (format) standartları sıralanmıştır. Bu doküman serbestçe kullanılabilir ve en güncel haline www.javaturk.org adresinden erişilebilir. 1. Genel kurallar 1. Daima isimlendirme ve şekil standartlarına uy. Ne kendinin ne de bir başkasının isimleri ve formatı anlamak içın enerji harcamasına sebep olma. 2. Daima (standarda uyarak) umulan şekilde kodunu yaz, şasırtma. Standardın dışına çıkman gerektiğinde bunu açıkla. 3. Programındaki her şey önce anlaşılır sonra küçük-kısa olsun. Ama küçüklük-kısalık için anlaşılırlığı feda etme. 4. Hiç bir projeye bu stadartları kullanmadan baslama, başlatma. Yanlış yapılan şeylerin ileride düzeltilmesi çok zordur. 2. En temel şekil kuralları 1. Daima paragraf kullan. Kod yazarken parmakların sıklıkla format tuşlarında olsun. Ne sen ne de bir başkasının formatsız koda bakmasına izin verme. 2. Her satırda sadece bir cümle (statement) yaz. Serbestçe kullanılabilinir. www.javaturk.org 3

4 JAVATURK JAVA KOD İSİMLENDİRME VE ŞEKİL STANDARDI 3. Uzun satırları bir kaç satıra yay ki yatay scrolla ihtiyaç kalmasın. 4. Mekanı rahat kullan: Mümkün olan her yerde boşluk,, ve boş satır kullanarak okunurluğu arttır. 5. Ifadelerin öğeleri arasında muhakkak boşluk bırak. Böyle yapma: rs = a+b*((c/a)*b); Böyle yap: rs = a + b * ((c / a)* b); 6. Blokları mümkünse { } ile değilse boş bir satır ile ayır. Blok kullanmak için sadece if-while-for gibi yapıları bekleme. 7. Zeka yarışına girme, = dahil en az 3 operatörlü ifadeleri anlamak operatörlerin öncelik ve ilişkilendirme bilgisine bağlı olmasın, parantez kullan. Böyle yapma: float rs = a + ++b * c/a * b; a += b += c; Böyle de yapma: rs = a + (++b)* ((c / a)* b); Böyle yap: b++; rs = a + b * ((c / a)* b); b += c; a += b; 8. Zincirleme üye erişimi ile birleşik ifade yazma, her ifadede bir üyeye eriş. Böyle yapma: customer.getcompany().getaddress().getstreet(); 4 Serbestçe kullanılabilinir. www.javaturk.org

JAVATURK JAVA KOD İSİMLENDİRME VE ŞEKİL STANDARDI 5 Böyle yap: Company company = customer.getcompany(); Address address = company.getaddress(); Street street = address. getstreet(); Bu şekildeki zincirleme erişimin rahatlıkla kullanılabilecği tek yer web katmanındaki View yapıları (JSP, JSF vb.) olabilir. BU yapılarda EL yardımıyla zincirleme erişim kolaylık sağlamaktadır. 3. Genel isimlendirme kuralları 9. Daima İngilizce isimler kullan ve kesinlikle yanlış yazma, emin değilsen sözlüğe bak. 10. Daima anlamlı isimler kullan; uzun olsun, anlamsız olmasın. addedvaluetaxrate, getdefaultaccountinterestrate() 11. Okumayı zorlaştıran (özellikle sesli harfleri atarak elde edilen) kısaltmalardan kaçın. qry yerine query, cstmr yerine customer kullan. 12. Tanıdık isimler kullan. Aynı şeyler için her yerde aynı ismi kullan. 13. İsim verirken herhangi bir kodlama kullanma. Örneğin Hungarian notasyonunu uygulayarak aşağıdaki gibi isimler verme: m_name, d_interest, l_increase Bu durumun tek istisnası arayüz isimlerindeki I olabilir. 14. Kısaltmalarda büyük harflerle yazma. Böyle yapma: httpsession, TCPIPConnection, getxmlnode(), gethttpmethod() Böyle yap: Serbestçe kullanılabilinir. www.javaturk.org 5

6 JAVATURK JAVA KOD İSİMLENDİRME VE ŞEKİL STANDARDI httpsession, TcpIpConnection, getxmlnode(), gethttpmethod() 15. Tutarlı ol. Aynı ismi sadece küçük-büyük harf ayrımıyla ya da hem kısa hem uzun şekliyle defalarca kullanma. sqlquery, sqlqry ya da session, ssn 16. İsimlendirmede daima Camel Case yaklaşımını kullan, alt çizgiden _, uzak dur. Camel Case in iki türü vardır, her ismin baş harfinin büyük olduğu Upper Came Case (UCC) ile sadece ilk kelimenin ilk harfinin küçük, sonrasının UCC olarak devam ettiği Lower Camel Case (LCC). StudentInformation is UCC getallstudents() is LCC studentaddress is LCC 4. Paket isimlendirme kuralları 17. Paket isimlerine internet alan adınızı tersinden yazarak başla. tr.com.selsoft, org.javaturk 18. Paketlerini küçük harfle yaz ve tek ve tekil isimler ver. tr.com.selsoft.atm.domains org.javaturk.designpattern.customers 19. Paket isimlerin, paket içeriği hakkında bilgi versin. tr.com.selsoft.atm.domain, org.javaturk.atm.view.bean 5. Tip isimlendirme kuralları 20. Sınıf, arayüz, enumeration gibi tiplerin adlandırırken isim kullan ve UCC yaz. 6 Serbestçe kullanılabilinir. www.javaturk.org

JAVATURK JAVA KOD İSİMLENDİRME VE ŞEKİL STANDARDI 7 Account, CheckingAccountService, StudentInformation 21. Arayüzleri adlandırırken daima isim ya da sıfat kullan ve UCC yaz. Payable, ActionListener 22. Bir konuyla ilgili özellikleri, sabiteleri ya da metotları bir araya getiren tiplere çoğul isim ver. AtmProperties, StringUtils, ATMProperties 23. Enum tiplere tekil isimler ver. Day, Month, Size 6. Değişken isimlendirme kuralları 24. Değişken adlandırmalarında isim kullan ve daima LCC yaz. count, firstname, taxrate, ordernumber 25. Torbalar için çoğul isimler kullan. Collection<Student> students Map<Integer, Player> players 26. Boolean değişkenler için uygunsa edilgen fiil (ya da sıfat-fiil) kullan öyle ki başına is getirildiğinde anlamlı bir soru olsun. Boolean değişken isimlerinde is ya da are kullanma. married, tankfilled, seatbooked, tasksfinished Eğer boolean değişken sahip olma durumunu gösteriyorsa ismin sonuna Installed gibi bir son ek getirilebilir. gastanksensorinstalled, radioinstalled Serbestçe kullanılabilinir. www.javaturk.org 7

8 JAVATURK JAVA KOD İSİMLENDİRME VE ŞEKİL STANDARDI 27. Özellikler (properties) için daima JavaBean (bean) gösterimini kullan. Bean gösteriminde tüm değişkenler private (kalıtım durumunda protected ) tanımlanır ve bunlara LCC olarak yazılmış set/get metotları ile ulaşılır: private String name; public String getname() { return name; } public void setname(string name) { this.name = name; } Boolean değişkenler için getter olarak is ön ekli metot kullanılır: private boolean deceased = false; public boolean isdeceased() { return deceased; } public void setdeceased(boolean deceased) { this.deceased = deceased; } 28. Metotlardaki yerel değişkenler için nesne değişkenleriyle aynı isimleri kullan ve nesne değişkenlerinie this ile ulaş. 29. Kurucu ya da set metotlarına nesne değişkeni ile aynı isimde parametre geç, nesne değişkenine this ile ulaş. Bkz. #27 30. Kısaltılmış ya da bir-iki harflık isimleri sadece sık kullanılan yerel değişkenler için kullan. Döngü indexleri için i, j String s ya da String str 8 Serbestçe kullanılabilinir. www.javaturk.org

JAVATURK JAVA KOD İSİMLENDİRME VE ŞEKİL STANDARDI 9 stream için in ve out, exception için e ya da ex 31. CamelCase yaklaşımının tek istisnası olarak sabitelerde (public, static ve final) araları alt çizgi _ ile ayrılmış büyük harfli kelimeler kullan. Başka hiç bir isimde _ kullanma. public static final double ADDED_VALUE_TAX = 0.18; public static final String USERNAME = app ; 7. Metot isimlendirme kuralları 32. Get/set metotlarını JavaBean gösterimiyle yaz. Bkz. #27 33. Metot isimlerinde daima emir kipi kullan ve LCC yaz. calculatetax(), findownerofaccount() Serbestçe kullanılabilinir. www.javaturk.org 9

1 0 JAVATURK JAVA KOD İSİMLENDİRME VE ŞEKİL STANDARDI Kaynaklar Java Code Conventions September 12, 1997 (Oracle Java Code Conventions http://www.oracle.com/technetwork/java/codeconv-138413.html) http://www.ambysoft.com/downloads/javacodingstandards.pdf http://www.ambysoft.com/downloads/javacodingstandardssummary.pdf Google Style of Java http://google-styleguide.googlecode.com/svn/trunk/javaguide.html Al Vermeulen et al., The Elements of Java Style, CU Press, 2007 http://collaboratory.emsl.pnl.gov/docs/collab/sam/codestandards.html http://www.ambysoft.com/downloads/javacodingstandards.pdf http://www.ambysoft.com/downloads/javacodingstandardssummary.pdf http://www.javacodegeeks.com/2012/10/java-coding-conventionsconsidered-harmful.html http://www.iwombat.com/standards/javastyleguide.html Unmaintainable Code http://mindprod.com/jgloss/unmain.html 1 0 Serbestçe kullanılabilinir. www.javaturk.org