Turkhackteam.net/org - Turkish Hacking & Security Platform...  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform... >
Turkhackteam Under Ground
> TurkHackteaM Ar-Ge Tim > Ar-Ge Eğitim Kampı

Ar-Ge Eğitim Kampı Ar-Ge Eğitim Kampı dersler,Döküman ve Çalışma Alanı

Temiz Kod Yazmak

Ar-Ge Eğitim Kampı

Yeni Konu aç Cevapla
 
Seçenekler
Alt 19-09-2015   #1
  • Offline
  • Yarbay
  • Genel Bilgiler
Üyelik tarihi
Aug 2014
Nereden
System.Net
Mesajlar
Konular


  
Thumbs up Temiz Kod Yazmak



Mimar Aslan’ın düzenlediği Bilişim Sohbetleri’ni bilenleriniz vardır.
Bilişim alnında uzman kişilerle her hafta sohbet yapılır, farklı konular ele alınır, bizlerde bilgileniriz.

Akın Kaldıroğlu ile yapılan Clean Code (Temiz Kod) sohbetini dinledim.
Sohbette Mimar Aslanın şu sözü dikkatimi çekti : "Hayatımda sadace bir kez en baştan kod yazdım."

Bu ne demek oluyor?
Bizler yarın öbürgün iş hayatına girdiğimizde bize sıfırdan al şu programı yaz demeyecekler.
Yazılmış bir kodu düzenlicez, geliştircez vs.

Peki burda karşımıza çıkacak en büyük sorun nedir? Kodu anlamakta zorlanmak.
Bende çok kez bu duruma düştüm, kodu düzenlemek için aldığımda en baştan incelemek zorunda kalıyorum, burda ne yapmış, bu ne demek vs. kodu düzenlemeyi bırak, konu anlamak uzun bir zaman alıyor.

Durum aynen bu..


Peki bunun sebebi nedir? Temiz kod yazamamak.
Evet istenilen kodu bir şekilde yazabiliriz, öyle böyle o kod çalışır ama yazdığımız kodu başkası okuduğunda "bu ne la?" diyorsa o kod temiz yazılmış, açıklayıcı bir kod değildir. İş hayatında bize bir kod verildiğinde o kodu yazan kişinin adını anmıyorsak o kod güzel yazılmıştır.


Anlaşılır, temiz kodu nasıl yazarız?

Klasör yapısı

Misal web programlama yapıyorsak öncelikle klasör yapılarını planlamak gerekir. Hem html sayfamız, hem css/js dosyalarımız, hemde resimler vb aynı klasör içindeyse bırakın kodu, klasörde bile bir şey arayıp bulmak çok zor olacaktır.

Bunun için öncelikle klasör yapımızı oluşturmamız gerekir. Misal..



Yorum satırları

Yorum satırları sanırım kod yazarken en iyi dostumuz, kod okurkende en iyi yardımızdır.
Bir fonksiyon tanımladık kodları yazdık program çalıştı. Peki 2 ay sonra o kodu okuduğumuzda veya başkası incelediğinde "bu fonksiyon ne yapıyor ya?" dememek için yorum satırlarını sürekli olarak kullanmalıyız. Fonksiyonun başına //bu fonksiyonun görevi şudur, geriye bunu döndürür vs yorumlar bırakmamız gerekir.

Değişken isimlendirmeleri

Kod yazarken sürekli değişkenler kullanıyoruz. İlk başladığım zamanlarda zaman kaybetmemek için int a,b,c,i,j; diye tanımlardım. Kod çalışsın, işimi görsünde yeter gibisinden. Fakat aradan 1 hafa geçse ve kodu açsam a diye tanımladığım değişkenin işi ne, ne yapıyor, ne bu gibi sorularla bug’da kalmamak için değişkenleri hangi amaç için oluşturduğumuzu anlaşır biçimde tanımlamak gerekiyor.

int a,b,c;
int sayi1, sayi2, toplam;


gibi..

Yazım standartları

Herkesin belli başkı yazım standartları vardır, bunlar kod yazdıkça kendiliğinden oluşur ve bu şekilde yazmaya devam ederiz.
Mesela ben C#’ta form application çalışırken araçlarıma textBoxAd, txtBoxYas, comboboxOkul gibi isimler veririm. Form’larıma frmAnaForm, frmAdminPaneli, frmSqlInjection gibi isimler veririm, ki ne oldukları belli olsun, kod yazarken bana zaman kazandırsın diye.

textbox yazdığım gibi karşıma textboxad, textboxyas vb tüm textbox’lar sıralanacak. Ve kodu okuyan kişi textbox1.text’i gördüğünde bu hangi textbox acaba diye dönüp form’a bakmamasını sağlayacak.

Ve okunabilirlik açısından mesela toplama işlemi yapan bir fonksiyonun adını yazarken ilk harf küçük ardından gelecek olan kelimelerin baş harflerini büyük yazmakta fayda var. Hatta fonksiyonların başına _ koymakta o fonksiyonları çağırırken adı neydi ya demekten bizi kurtarır.
_ yazdığımız gibi önümüze projede ki tüm fonksiyonlar sıralanacaktır.

Örnek bir fonksiyon tanımlaması
_ToplamaIslemi(int sayi1,sayi2){
toplam = sayi1 + sayi2;
return toplam;
}


Her fonksiyonun bir amacı olmalıdır. Bir fonksiyonla ben her işimi halledebilirim mantığı yanlıştır. Halledemez misin? Zorlarsan hallolur, ama bir hata çıktığında acaba nerde diye aramak zorunda kalırsın. Kodu okuyan kişi ne yapmış la bu diye anlamak zorunda kalır.



Kod içerisinde bazı şeyleri sürekli tekrarlıyorsak bunları bir fonksiyon ile halletmeye çalışmalıyız. Hem satır tasarrufu yapmış oluruz, hemde zaman kazanırız.

Kodu yazan her yazılımcı, aslında bir başka programcının yazdığı kodun okuyucusudur. Bir gün yazdığınız kod mutlaka başkalarının eline ulaşacak ve o kodlar okunacak, anlaşılmaya çalışılacak.

Sıkça görmüşsünüzdür Nasıl Bulmak İstiyorsanız Öyle Bırakın diye, tıpkı o misal..
    


__________________

.
Ne kadar yükselirsen, uçmayı bilmeyenlere o kadar küçük görünürsün.


Refırs ®
Offline
 
Alıntı ile Cevapla
Alt 19-09-2015   #2
  • Offline
  • Tamamen Forumdan Uzaklaştırıldı
  • Genel Bilgiler
Üyelik tarihi
Jan 2015
Nereden
Tanrı Dağı
Mesajlar
Konular


  


İyi bir makale ancak (vb.net için konuşuyorum) programlamaya ilk başladığım zaman benim için karmaşık olan kodu bile biraz İngilizce ve mantık ile basit bir şekilde düzenledim. İngilizce çok önemli
    
Offline
 
Alıntı ile Cevapla
Alt 19-09-2015   #3
  • Offline
  • Yarbay
  • Genel Bilgiler
Üyelik tarihi
Aug 2014
Nereden
System.Net
Mesajlar
Konular


  


Alıntı:
Wep´isimli üyeden Alıntı Mesajı göster
İyi bir makale ancak (vb.net için konuşuyorum) programlamaya ilk başladığım zaman benim için karmaşık olan kodu bile biraz İngilizce ve mantık ile basit bir şekilde düzenledim. İngilizce çok önemli
Aynen öyle, zaten yabancı sektörlerin iyi işler başarmalarından birisi de bu. Kodlar zaten ingilizce, e biraz da mantık
    


__________________

.
Ne kadar yükselirsen, uçmayı bilmeyenlere o kadar küçük görünürsün.


Refırs ®
Offline
 
Alıntı ile Cevapla
Alt 19-09-2015   #4
  • Offline
  • Asteğmen
  • Genel Bilgiler
Üyelik tarihi
Aug 2015
Yaş
21
Mesajlar
Konular


  


Teşekkürler güzel makale olmuş
    


__________________

VENİ VİDİ VİCİ
Offline
 
Alıntı ile Cevapla
Alt 19-09-2015   #5
  • Offline
  • Teğmen
  • Genel Bilgiler
Üyelik tarihi
Jun 2015
Nereden
Ankara
Mesajlar
Konular


  


Çok yararlı.Güzel makale
    


__________________

Neşet Ertaş
"Sakın ola ha İnsanoğlu, incitme canı incitme. Her can bir kalp Hakka bağlı, incitme canı incitme. Sevgi, Saygı,Hoşgörü"

Offline
 
Alıntı ile Cevapla
Alt 19-09-2015   #6
  • Offline
  • Üsteğmen
  • Genel Bilgiler
Üyelik tarihi
Jul 2015
Mesajlar
Konular


  


Çok güzel bir anlatım teşşekür ederiz
    


__________________

-<Okuyan dağa çıkmaz, dağa çıkan adam olmaz!>-

-<......Kısacası teröristten bir paçavra olmaz......>-

Offline
 
Alıntı ile Cevapla
Alt 20-09-2015   #7
  • Offline
  • Yarbay
  • Genel Bilgiler
Üyelik tarihi
Feb 2012
Mesajlar
Konular


  


Alıntı:
Raphers´isimli üyeden Alıntı Mesajı göster

Ve okunabilirlik açısından mesela toplama işlemi yapan bir fonksiyonun adını yazarken ilk harf küçük ardından gelecek olan kelimelerin baş harflerini büyük yazmakta fayda var. Hatta fonksiyonların başına _ koymakta o fonksiyonları çağırırken adı neydi ya demekten bizi kurtarır.
_ yazdığımız gibi önümüze projede ki tüm fonksiyonlar sıralanacaktır.

Örnek bir fonksiyon tanımlaması
_ToplamaIslemi(int sayi1,sayi2){
toplam = sayi1 + sayi2;
return toplam;
}
Burda bir yanlışlık var. C# kodlayan birisi fonksiyon isimlerini küçük harfle başlayamaz veya _ ile başlayamaz. C# ın kendi standartları vardır, c# class ve fonksiyon yapılarına bakılırsa, fonksiyon isimlerinin ilk harfi daima büyük başlar ve _ şeklinde ön ek getirilmez. Javada durum farklıdır, küçük harfle başlanabilir.

C# kodlanıyorsa ilerde başkasının eline geçen kod anlaşılması açısından , c# ın kendi kodlama standartlarına uyulmalıdır.

Bahsedilen ön ek interface yapılarında getirilir, o da gene _ şeklinde değil büyük ı "I" harfi ile...

Yeni başlayacak ve kendini geliştiren arkadaşlara küçük bir ek not olsun buda..
    


__________________

Computer Engineer.

Developer.
Offline
 
Alıntı ile Cevapla
Alt 20-09-2015   #8
  • Offline
  • Yarbay
  • Genel Bilgiler
Üyelik tarihi
Feb 2012
Mesajlar
Konular


  


Ayrıca yazılım notasyonlarına merakı olan arkadaşlar için şunları araştırmaların tavsiye ederim : hungarian notation, camel notation, java code notation.
    


__________________

Computer Engineer.

Developer.
Offline
 
Alıntı ile Cevapla
Alt 20-09-2015   #9
  • Offline
  • Forumdan Uzaklaştırıldı
  • Genel Bilgiler
Üyelik tarihi
Dec 2014
Nereden
root@kali:~#
Mesajlar
Konular


  


Alıntı:
ihan3t´isimli üyeden Alıntı Mesajı göster
Ayrıca yazılım notasyonlarına merakı olan arkadaşlar için şunları araştırmaların tavsiye ederim : hungarian notation, camel notation, java code notation.
Abi konu zaten Raphers abimize ait değil, Hayallerini Kodla: Temiz Kod Nasıl Yazılır? Bu siteden almis
    
Offline
 
Alıntı ile Cevapla
Alt 20-09-2015   #10
  • Offline
  • Yarbay
  • Genel Bilgiler
Üyelik tarihi
Feb 2012
Mesajlar
Konular


  


Alıntı:
LakhoPss´isimli üyeden Alıntı Mesajı göster
Abi konu zaten Raphers abimize ait değil, Hayallerini Kodla: Temiz Kod Nasıl Yazılır? Bu siteden almis
"Alıntı" yazmadığı için özgün konu zannetmiştim. Demek ki değilmiş.

Her neyse hiç değilse benim yazdıklarım doğrultusunda doğru bilgileri arkadaşlar edinmiş olur.

Konu sahibi konusunu düzenleyip yazdıklarımı alıntılayabilir konusuna, böylelikle konuyu okuyan yeni arkadaşlar yanlış bilgiler edinmezler.
    


__________________

Computer Engineer.

Developer.
Offline
 
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks Kapalı
Pingbacks Kapalı
Refbacks Kapalı


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından açılmaktadır.
Bu konular yönetimimiz tarafından takip edilsede gözden kaçabilen telif hakkı olan veya mahkeme kararı çıkmış konular sitemizde bulunabilir. Bu tür konuları bize turkhackteamiletisim [at] gmail.com adresine mail atarak bildirdiğiniz takdirde en kısa sürede konular hakkında gerekli işlemler yapılacaktır.
Please Report Abuse, DMCA, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim [at] gmail.com


Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz, bu sitelerin güvenlik açıklarını site sahibine bildirmek için çaba sarfeder.
Turkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Turkhackteam sorumlu değildir. Sitelerinize Turkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.




Powered by vBulletin® Copyright ©2000 - 2017

TSK Mehmetçik Vakfı

Türk Polis Teşkilatını Güçlendirme Vakfı



Google Links
Film izle

wau

Search Engine Friendly URLs by vBSEO 3.6.0 ©2011, Crawlability, Inc.