Programlama Standartları



Benzer belgeler
Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

İrsaliye Modülü Dizayn Dökümanı. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 16 Eylül 04

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

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

Sipariş Modülü Dizayn. Dökümanı. Turquaz Muhasebe. Versiyon 0.1. Hüseyin Ergün. 9 Eylül 04

Android Ders Notları

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.

Fatura Modülü Dizayn Dökümanı. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün 13 EYLÜL 2004

Algoritmalar ve Programlama. Algoritma

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.

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:

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

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

NB Macro Kullanımı Hakkında Genel Bilgiler

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

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.

Programlama Dillerinde Kullanılan Veri Tipleri

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

Sunum İçeriği. Programlamaya Giriş

Oracle da kullanılan veri tipleri:

HSancak Nesne Tabanlı Programlama I Ders Notları

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

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Öğr. Gör. Serkan AKSU 1

Compiere Açık kodlu ERP + CRM yazılımı. Hüseyin Ergün Önsel Armağan Serkan Demir

ALGORİTMA VE PROGRAMLAMA II

Erişim Makina. IFS Admin Kullanım Klavuzu. Umut Aytaç Mutlu

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

VERİ TABANI YÖNETİM SİSTEMLERİ I

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Genel Muhasebe Modülü. Dizayn Dökümanı. Turquaz Muhasebe. Versiyon 0.3. Önsel Armağan. 21 Eylül 04

Nesne Tabanlı Programlama

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

ACCESS DERS Tablolarda Düzenleme

Oracle Database 11g: Introduction to SQL

VERİ TABANI YÖNETİM SİSTEMLERİ

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

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

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

Microsoft Office Access Ders İçeriği 25 Saat. Access Temel 10 saat

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

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

Üst Düzey Programlama

Bankalar Modülü Dizayn. Dökümanı. Turquaz Muhasebe. Versiyon 0.2. Önsel Armağan. 16 Eylül 04

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

Programcılık...? Dahilik mi? Büyü mü?

1 Organizasyon Tanımlama

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

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

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

10.DERS Yazılım Gerçekleştirme

PROGRAMLAMAYA GİRİŞ DERS 2

FEN BİLİMLERİ ENSTİTÜSÜ TEZ YAZIM KILAVUZU

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

Nesne Yönelimli Programlama

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

ALGORİTMA VE PROGRAMLAMA I

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

ALGORİTMA VE PROGRAMLAMA I

Java String İşlemleri

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

VERİTABANI Veritabanı Yönetimi

C# ile NJ Simulatöre Bağlanmak

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

VERİ TABANI I. Yrd.Doç.Dr. İlker ÜNAL. Teknik Bilimler Meslek Yüksekokulu

NOT: VERİTABANINDAKİ TABLOLARI OLUŞTURMAYI DA UNUTMAYACAĞIZ.

Nesneye Yönelik Programlama (OOP) 7.Hafta

Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek.

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

Client Server Database

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Program Kurulum. Turquaz Muhasebe. İçindekiler

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;

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

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

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

C# Metotlar ve Metot Tanımlama

BİL-142 Bilgisayar Programlama II

KISITLAMALAR (CONSTRAINT)

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

MVC. Görüldüğü üzere 2 adet cs. Dosyası oluşturdum. Birincisi çok satır kodu (20-25) içeren büyük işlerin yapılacağı class. İsmi buyuk_isler.

2. Oracle Data Miner İle Örnek Bir Veri Madenciliği Çalışması

Lyx Nedir? Belge Hazırlama Bir Örnek Ekler L Y X. Esin Çavlan. 5 Mart 2012

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

MVP ve Mediator ile Loose Coupled, Modüler UI Geliştirme

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Transkript:

Turquaz Muhasebe, Yazılım Gereksinim dokümanı Sayfa i Programlama Standartları Dökümanı Turquaz Muhasebe Versiyon 0.2 Hüseyin Ergün 1 Eylül 2004

Turquaz Muhasebe, Yazılım Gereksinim dokümanı Sayfa ii A. İÇİNDEKİLER A. İÇİNDEKİLER...II B. GEÇMİŞ DEĞİŞİKLİKLER...III 1. GİRİŞ...4 2. İSİMLENDİRME...4 2.1 PAKET İSİMLERİ...4 2.2 CLASS İSİMLERİ...5 2.3 SINIF METODU (FONKSİYON) İSİMLERİ...5 2.4 CONSTRUCTORLAR...6 2.5 DEĞİŞKENLER VE ARABİRİM OBJELERİ...6 2.6 PARAMETRE İSİMLERİ...7 2.7 DÖNGÜ DEĞİŞKENLERİ...8 2.8 EXCEPTİON OBJELERİ...8 2.9 SABİT DEĞERLER...8 2.10 VERİTABANI VE TABLO İSİMLERİ...8 2.10.1 Tablo İsimleri...9 2.10.2 Kolon (Entity) İsimleri...9 3. KOD ORGANİZASYONU...10 3.1 CLASS INHERİT EDERKEN...10 3.2 DEĞİŞKENLERİ TANIMLARKEN...11 3.3 BAŞLIK...11 4. DÖKÜMAN VE AÇIKLAMA...12

Turquaz Muhasebe, Yazılım Gereksinim dokümanı Sayfa iii B. GEÇMİŞ DEĞİŞİKLİKLER İsim Tarih Değişiklik Nedeni Versiyon Hüseyin Ergün 1 Eylül 2004 Yazımdan doğan yanlış anlaşılmaların düzeltilmesi. Veritabanı standartlarının eklenmesi. Hüseyin Ergün 23 Eyl. 04 Değişken ve arabirim objelerine yeni 0.2 0.3 isimler eklendi. Standartları tamamlandı.

1. Giriş Bu dökümanda, Turquaz Muhasebe projesinin programlama standartları belirtilmiştir. Projelerde harcanan vaktin çoğu programı yazmak için değil düzenlemek ve devamlılığını sağlamak için harcanır. Yazdığınız kodun başkaları tarafından kolay anlaşılır olması projenin devamlılığı açısından önemli. Bugün yazdığınız bir kod yıllar sonra başkaları tarafından kullanılıp devam ettiriliyor olabilir. Kodunuzun temiz ve anlaşılır olması için özen göstermelisiniz. 2. İsimlendirme Java kodu yazarken uyulması gereken standartlar aşağıda belirtilmiştir. 2.1 Paket İsimleri a. Bütün paket isimleri küçük harfle yazılır. b. Programa eklenen her bir modül için ayrı paket ismi verilecektir. c. Paket isimleri com.turquaz ile başlar. d. Paketlerin standart dili İngilizce dir. Proje kodlarının tüm dünyada kullanılması ve yurtdışında anlaşılır olması için İngilizce seçilmiştir. e. Her bir paketin içinde 3 ayrı paket bulunacaktır. Sırasıyla bunlar ui, bl, dal. ui (User Interface) kullanıcı arabirimi anlamına gelir. Tüm arabirim parçacıkları bu katmanda yer alacaktır. bl (Business Logic) İş Mantığı katmanıdır. Programdaki hesaplama, algoritma ve kullanıcı tanımlı arabirim özellikleri bu katmanda oluşturulur. Veritabanı ile görsel arabirim arasında köprü oluşturur. dal (Data Access Layer) veritabanı erişim katmanıdır. Veritabanı için gerekli sorgular bu Copyright 2004. Bu dokümanı GNU/GPL lisansı altında kullanabilir ve/veya dağıtabilirsiniz.

katmandaki fonksiyonların içinde oluşturulur. Bağlantı bilgileri ise com.turquaz.engine.dal paketinden çağrılır. 2.2 Class İsimleri a. Sınıf isimleri büyük harfle başlar. b. Sınıf isimlerinin içindeki bütün kelimeler büyük harfle başlar. c. Sınıf isimlerinde resmi dil İngilizce dir. Proje kodlarının tüm dünyada kullanılması ve yurtdışında anlaşılması için İngilizce seçilmiştir. d. Sınıf isimlerinin uzun olmamasına (15 harften az) özen gösterilmelidir. e. Class isimlerinin başında modül paket isminin ilk harfleri büyük harfle başlayıp küçük harfle devam ederek yazılır. Ardından büyük harflerle alt paketin isimleri yazılır. Inventory paketi için Örnek bir sınıf ismi InvDALTransaction dır. 2.3 Sınıf Metodu (Fonksiyon) İsimleri a. Sınıf metodları tam İngilizce kullanılarak tanımlanmalıdır. b. Metod isimleri küçük harfle başlar, ardından her kelime büyük harfle devam eder. c. Metod ismindeki ilk kelimenin işi temsil etmesine ve yüklem olmasına özen gösterilmeli. Örneğin: openaccount() printmailinglabel() save() delete() 5

Bu sayede metodların yaptığı iş sadece ismine bakarak anlaşılabilir. Geliştirici tarafından yazması biraz daha uzun sürse de, anlaşılırlığı çok arttıracaktır. d. Metodların sonuç döndürenleri Getters diye adlandırılır. Getters larda geri dönen sonuç boolean (0/1) değilse başına get eklenir, öteki türlü is ile başlar. Örneğin getfirstname() getaccountnumber() getlosteh() ispersistent() isatend() e. Metodların değerleri değiştirmek içinse Setters diye adlandırılır. Değiştirilen verinin tipinden bağımsız olarak bütün değiştirme metodlarının başına gelmelidir. Örneğin setfirstname(string aname) setaccountnumber(int anaccountnumber) setreasonablegoals(vector newgoals) setpersistent(boolean ispersistent) setatend(boolean isatend) 2.4 Constructorlar Constructorlar obje ilk yaratıldığında yapılacak işleri belirleyen fonksiyonlardır. Bunların ismi Class ismiyle aynı olmalıdır. Sun firması tarafından belirlenen Java standardı olduğundan başka türlü çalışmaz. 2.5 Değişkenler ve arabirim objeleri a. Değişken isimlerinde açıklayıcı İngilizce kelimeler kullanılmalıdır. b. Değişken isimleri, veri yapısını belirtecek şekilde başlamalıdır. Kullanılacak değerler aşağıda belirtilmiştir. c. Başlıklar küçük harfle yazılır. Ardından gelen açıklayıcı İngilizce kelimelerin her biri büyük harfle başlar. Örneğin btnsave 6

intinvamount Veri Yapısı Sayı Kelime Label Boolean Array Textbox Decimal Textbox Numeric Textbox Düğme Byte Double Float Long Int Tab Folder Tab Item Table Big Decimal Decimal Tree Tree Item Composite Combo Box List Menu Item Menu Date Sash Form Toolbar Tool Item Cool Bar Cool Item Başlık int str lbl bool ary txt txtdec txtnum btn byt dbl flt lng tabfld tab table bigd dec tree tim comp combo list mit menu date sash toolbar tool coolbar cool 2.6 Parametre İsimleri Parametreleri kullanırken, Değişken ve Arabirim objeleri ile aynı metodun kullanılması gerekir. Diğerlerinden farklı olarak parametre olduklarını belirtmek ve yerel değişkenlerden ayırmak için başlarına a veya an gelmelidir. 7

2.7 Döngü Değişkenleri Genel olarak i, j, k gibi değişkenler yerine loopcounter veya counter1, counter2 gibi değişkenler kullanmak daha akıllıcadır. En büyük avantajı arama yaparken yanlış sonuçlarla boğuşmamıza gerek kalmaz. Fakat bu kısım kullanıcının tercihine bırakılmıştır. 2.8 Exception Objeleri Java programlama dilinde exceptionlar sıkça geçtiği ve döngünün dışında kullanılmadığı için e harfini vermek yeterlidir. 2.9 Sabit Değerler Java programlama dilinde static final olarak tanımlanan ve tüm programda değeri değişmeyen sabit değerlerdir. Açıklayıcı İngilizce kelimeler kullanarak büyük harfle yazılmalıdır. Kelimelerin arasına alt çizgi ( _ ) konulmalıdır. Örneğin MINIMUM_BALANCE MAX_VALUE DEFAULT_START_DATE Bu tarz kullanımın en büyük avantajı değişkenleri sabit değerlerden ayırabiliriz. Genel olarak sabit değerler tanımlamak yerine Getter fonksiyonları kullanarak bu değerleri ayrı bir class tan almak işlerimizi daha kolaylaştırır. 2.10 Veritabanı ve Tablo İsimleri Proje veritabanında tablo ve kolon (entity) isimlendirmesinde uyulması gereken standartlar belirtilmiştir. 8

2.10.1 Tablo İsimleri a. Tablo isimlendirmesinde dil olarak İngilizce kullanılmalıdır. b. Tüm tablo isimlerinin başına önek (prefix) olarak turq_ gelmelidir. c. Tablo isimlendirmesinde küçük harfler kullanılmalıdır. d. Kelimeler kısaltma yapılmadan ve birbirlerinden alttan çizgiyle ayrılarak yazılmalıdır. Örneğin: turq_inventory_transactions e. Tablolar bir modüle aitse, bağlı bulundukları modülün ismiyle başlamalıdır. turq_inventory_transactions turq_accounting_journal_entries 2.10.1.1 Görüntüleme (View) Tabloları View tabloları veri görüntülemek için kullanılır. Diğer tabloların bilgilerini alarak sanal bir tablo oluşturur. Veri giriş çıkışı olmaz. Bu tabloları diğerlerinden ayırmak için isimlendirmede prefix in ardından _view eklenmelidir. Örneğin turq_view_inventory_amount 2.10.2 Kolon (Entity) İsimleri a. Birincil anahtarın (Primary Key) ismi, prefix olmadan tablonun ismi ardından _id gelerek verilmelidir. Örneğin inventory_transactions_id b. Yabancı anahtarlar (Foreign Key) gösterdiği birincil anahtarın ismini aynen taşır. 9

c. Diğer kolon isimleri küçük harfle, tablonun yaptığı işin ismini içermelidir. Örneğin inventory_transaction tablosu için transaction_type, transaction_definition, transaction_amount d. Her tabloda örneği görülen son değişiklik, kimin tarafından değiştirildiği gibi bilgiler için tablo isminden bağımsız, ortak standart bilgiler kullanılır. Aşağıda listesi verilmiştir. Açıklama Kimin tarafından oluşturulduğu Ne zaman oluşturulduğu Kimin tarafından güncellendiği En son ne zaman güncellendiği Kolon ismi created_by creation_date updated_by last_modified 3. Kod Organizasyonu Kodlandırma esnasında yapılan standartlar aşağıda maddeler halinde belirtilmiştir. 3.1 Class Inherit Ederken Classları import ederken paket içindelerse isimlerini tek tek yazmak yerine o paketin tamamı çağrılmalıdır. Örneğin İmport.java.awt.Color; İmport.java.awt.Button; İmport.java.awt.Container; yerine İmport.java.awt.*; yazılmalıdır. SDK compile ederken sadece gerekli class ları ekleyecektir. Hem hafızada fazla yer kaplamaz hem de yeni Class eklerken veya çıkarırken kolaylık sağlar. Tek tek classlarla uğraşmazsınız. 10

3.2 Değişkenleri Tanımlarken Aynı işi yapan değişkenler bir arada oluşturulmalı ve ardından satır bırakılmalıdır. Bu sayede kod daha okunabilir hale gelecektir. Örneğin anobject.message1(); anobject.message2(); acounter = 1; anoblect.message3(); anobject.message1(); anobject.message2(); anobject.message3(); acounter = 1; Karşılaştırmalarda değişken isimleri solda yer almalıdır. Böylelikle kodlar daha anlaşılır hale gelecek ve olası hataların önüne geçilecektir. Örneğin if(something == 1) {... } if (x = 0) {... } if(1 == something) {... } if (0 = x) {... } 3.3 Başlık Her bir Class ın başına Turquaz ekibi tarafından belirlenmiş aşağıdaki başlık gelmelidir. Ardından Class ın importları, daha sonra da imin tarafından ve ne zaman değiştirildiği yazacaktır. Son ki değişikliklerin otomatik güncellenmesi için gerekli ayarlar geliştiriciler dökümanında belirtilecektir. /***********************************************************************************/ /* TURQUAZ: Higly Modular Accounting/ERP Program */ /* ============================================ */ /* Copyright (c) 2004 by Turquaz Software Development Group */ /* */ /* This program is free software. You can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE */ /* See the GNU General Public License for more details. */ /************************************************************************************/ 11

4. Döküman ve Açıklama Her Class ın üst kısmında değişiklik bilgisinin altında Class için gerekli açıklama gelmelidir. Bu açıklama /** ile başlar ve */ ile biter. Javadoc kullanarak otomatik döküman hazırlandığı için bu standartlara uymak zorunludur. Class hakkında İngilizce kısaca, ne için oluşturulduğu, fonksiyonlarının özellikleri belirtilmelidir. Her bir fonksiyonun başında aynı şekilde /** ile başlayan ve o fonksiyonun ne işe yaradığı, aldığı parametreler ve döndürdüğü değerleri içeren açıklama yazılması gerekli. Açık ve sade bir dille İngilizce yazılmalıdır. 12