SlideShare a Scribd company logo
1 of 23
Public
CLEAN CODE
(TEMİZKOD)
Public
• Bu eğitimin sonunda siz yazılımcı arkadaşlarımızın;
• Daha rahat okunabilir ve kolay güncellenebilir
• Daha az hataya açık
• Daha güzel
• Daha TEMİZ
• Kod yazma alışkanlığı edinmesi amaçlanmaktadır.
Amaç
Public
• Temiz Kod Nedir?
• Neden Temiz Kod Yazmalıyız?
• Temiz Kod Nasıl Yazılır?
• İsimlendirme Kuralları
• Canlı Kodlama
Temiz Kod
Public
Temiz Kod Nedir?
Public
• Temiz kod, okunabilen ve kodu geliştiren yazılımcının
dışında geliştirilebilen koddur.
• Birim ve kabul testleri vardır.
• Anlamlı isimlendirmelere sahiptir.
• Tek bir çözüm yolu sunmaktır.
• En az bağımlılığa sahip, temiz ve net API tanımlarına
sahiptir.
Temiz Kod Nedir?
Public
• Bir kodu okurken ne yaptığını anlamıyor iseniz?
• Geliştirdiğiniz bir kod sizi yavaşlatıyor ise?
• Kod üzerinde yaptığınız her değişiklik, kodun başka
yerlerini bozuyor ise?
• Bir kod değişikliği yapmak için onlarca modül kodu
güncelliyor iseniz?
Temiz Kod Nedir?
Public
• Kod geliştirdiğimiz projenin zamanında bitmesi
• Okunabilir kod, her zaman daha rahat güncellenebilir.
• Temiz kod daha az hataya açıktır.
• Temiz kodun başka koda etkisi azdır.
• Temiz kod tek bir problemi çözmeye odaklıdır.
Neden TemizKod Yazmalıyız?
Public
• İsimlendirme Kuralları
• Metotlar
• Yorumlar
• Kod Formatlama
• Nesne ve Veri Yapıları
• Hata Ayıklama
• Birim Testleri
• Sınıflar
Temiz Kod Nasıl Yazılır?
Public
Eğer bir değişken ismi, kendisini açıklamak için bir
yorum gerektiriyor ise, o isim doğru bir isim
değildir.
int d; // elapsed time in days
Public
İsimlendirme Kuralları
Public
• Açıklayıcı ve Net Değişken İsimleri
• Okunabilir Değişken İsimleri
• Arandığında Bulunabilen Değişken İsimleri
• Anlamlı Ayrıştırma Yapılan Değişken İsimleri
• Kodlama, Ön Ek ve Son Eke Sahip Olmayan Değişken
İsimleri
• Sınıf ve Metot İsimleri
İsimlendirme Kuralları
Public
Açıklayıcı ve Net Değişken İsimleri
• Bu mu?
int d; // elapsed time in days
• Yoksa bunlar mı?
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;
Public
Okunabilir Değişken İsimleri
• Bu mu?
class DtaRcrd102 {
private Date genymdhms;
private Date modymdhms;
private final String pszqint = "102";
};
• Yoksa bunlar mı?
class Customer {
private Date generationTimestamp;
private Date modificationTimestamp;
private final String recordId = "102";
};
Public
Arandığında Bulunabilen Değişken İsimleri
• Bu kod mu?
for (int j=0; j<34; j++) {
s += (t[j]*4)/5;
}
• Yoksa bu kod mu?
int realDaysPerIdealDay = 4;
const int WORK_DAYS_PER_WEEK = 5;
int sum = 0;
for (int j=0; j < NUMBER_OF_TASKS; j++) {
int realTaskDays = taskEstimate[j] * realDaysPerIdealDay;
int realTaskWeeks = (realdays / WORK_DAYS_PER_WEEK);
sum += realTaskWeeks;
}
Public
Anlamlı Ayrıştırılabilen Değişken İsimleri
• Aynı kodun içinde tanımlı isimler ayrıştırılabilmelidir.
XYZControllerForEfficientHandlingOfStrings
XYZControllerForEfficientStorageOfStrings
• Yazılımcılar isimlendirmelerinizi anlamlandırmaya
çalışmamalıdır (u -> url)
• Bir değişken ismi
– Problem alanı
– Çözüm alanından seçilmelidir
Public
Kodlanmayan Değişken İsimleri
• Bir değişken ismi içerisinde ‘değişken’ geçmemelidir.
nameVariable
• Bir ‘isim’ tutan değişken ‘String’ ile tanımlanmamalıdır.
nameString
• Bir ‘sınıf’ ismi içinde ‘nesne’ ismini almamalıdır.
CustomerObject
Public
Ön ve Son Eke Sahip Olmayan Değişken İsimleri
• Sınıf ve metotlar ön ve son eklere ihtiyaç
duymayacak kadar ufak olmalıdır.
public class Part {
private String m_dsc; // The textual description
void setName(String name) {
m_dsc = name;
}
}
---------------------------------------------------------------------
public class Part {
String description;
void setDescription(String description) {
this.description = description;
}
}
Public
Sınıf ve Metot İsimleri
• Bir sınıf ismi ‘fiil’ olmamalıdır.
• Bir sınıf ismi ‘isim’ veya ‘isim cümlesi’ olmalıdır.
Customer, WikiPage, Account
• Bir metot ismi ‘fiil’ veya ‘fiil cümlesi’ olmalıdır.
postPayment, deletePage, save.
• Erişimciler (getters) ve Mutasyoncular (setters)
– Değişken tipine göre başına ‘get’ ve ‘set’ koyularak
isimlendirilmelidir.
getName, setName
Public
Unutmayalım ki, temeli sağlam olmayan bir bina,
en ufak sallantıda hem o binada oturanlara, hem
de o binaya daha sonradan taşınan kişilere zarar
verir.
Public
Neler Öğrendik?
• Temiz Kod Nedir?
• Neden Temiz Kod Yazmalıyız?
• Temiz Kod Nasıl Yazılır?
• İsimlendirme Kuralları
Public
Public
TEŞEKKÜRLER
Public

More Related Content

What's hot

Проектування Інтернет речей (IoT)
Проектування Інтернет речей (IoT)Проектування Інтернет речей (IoT)
Проектування Інтернет речей (IoT)Oleh
 
9 розвиток космонавтики в Україні
9 розвиток космонавтики в Україні9 розвиток космонавтики в Україні
9 розвиток космонавтики в УкраїніRomanPankiv3
 
юрій кондратюк
юрій кондратюкюрій кондратюк
юрій кондратюкRadaTerra
 
Nastanak interneta - Mijat Pavličić - Dragan Ilić
Nastanak interneta - Mijat Pavličić - Dragan IlićNastanak interneta - Mijat Pavličić - Dragan Ilić
Nastanak interneta - Mijat Pavličić - Dragan IlićNašaŠkola.Net
 
Інформатика 7 клас
Інформатика 7 клас Інформатика 7 клас
Інформатика 7 клас PRESLAVA1972
 
Chandrayaan 3.pptx
Chandrayaan 3.pptxChandrayaan 3.pptx
Chandrayaan 3.pptxAsif Iqbal
 
Репродуктивне здоров'я підлітків
Репродуктивне здоров'я підлітківРепродуктивне здоров'я підлітків
Репродуктивне здоров'я підлітківAlla Kolosai
 
Україна - космічна держава. Фізика. Проєкт 9 клас
Україна - космічна держава. Фізика. Проєкт 9 класУкраїна - космічна держава. Фізика. Проєкт 9 клас
Україна - космічна держава. Фізика. Проєкт 9 класCupCakeDoo
 
Урок 42. Алгоритми з повтореннями для опрацювання величин. Цикл з лічильником
 Урок 42. Алгоритми з повтореннями  для опрацювання величин.  Цикл з лічильником Урок 42. Алгоритми з повтореннями  для опрацювання величин.  Цикл з лічильником
Урок 42. Алгоритми з повтореннями для опрацювання величин. Цикл з лічильникомВасиль Тереховський
 
Презентація 10 клас Урок 5.pptx
Презентація 10 клас Урок 5.pptxПрезентація 10 клас Урок 5.pptx
Презентація 10 клас Урок 5.pptxDanMan40
 
India on Gaganyaan 2022 by Selbin Babu
India on Gaganyaan 2022 by Selbin BabuIndia on Gaganyaan 2022 by Selbin Babu
India on Gaganyaan 2022 by Selbin Babuselbinbabu1
 
Paradigma PMII Pada Era Transisi Globalisasi
Paradigma PMII Pada Era Transisi GlobalisasiParadigma PMII Pada Era Transisi Globalisasi
Paradigma PMII Pada Era Transisi GlobalisasiPMII
 

What's hot (20)

Проектування Інтернет речей (IoT)
Проектування Інтернет речей (IoT)Проектування Інтернет речей (IoT)
Проектування Інтернет речей (IoT)
 
08 функції листка
08 функції листка08 функції листка
08 функції листка
 
9 розвиток космонавтики в Україні
9 розвиток космонавтики в Україні9 розвиток космонавтики в Україні
9 розвиток космонавтики в Україні
 
юрій кондратюк
юрій кондратюкюрій кондратюк
юрій кондратюк
 
ISRO
ISROISRO
ISRO
 
Nastanak interneta - Mijat Pavličić - Dragan Ilić
Nastanak interneta - Mijat Pavličić - Dragan IlićNastanak interneta - Mijat Pavličić - Dragan Ilić
Nastanak interneta - Mijat Pavličić - Dragan Ilić
 
Інформатика 7 клас
Інформатика 7 клас Інформатика 7 клас
Інформатика 7 клас
 
Chandrayaan 3.pptx
Chandrayaan 3.pptxChandrayaan 3.pptx
Chandrayaan 3.pptx
 
Репродуктивне здоров'я підлітків
Репродуктивне здоров'я підлітківРепродуктивне здоров'я підлітків
Репродуктивне здоров'я підлітків
 
Super računari
Super računariSuper računari
Super računari
 
Україна - космічна держава. Фізика. Проєкт 9 клас
Україна - космічна держава. Фізика. Проєкт 9 класУкраїна - космічна держава. Фізика. Проєкт 9 клас
Україна - космічна держава. Фізика. Проєкт 9 клас
 
Урок 42. Алгоритми з повтореннями для опрацювання величин. Цикл з лічильником
 Урок 42. Алгоритми з повтореннями  для опрацювання величин.  Цикл з лічильником Урок 42. Алгоритми з повтореннями  для опрацювання величин.  Цикл з лічильником
Урок 42. Алгоритми з повтореннями для опрацювання величин. Цикл з лічильником
 
Chandrayan-3.pptx
Chandrayan-3.pptxChandrayan-3.pptx
Chandrayan-3.pptx
 
презентація "Дія магнітного поля на провідник зі струмом. Електродвигуни"
презентація "Дія магнітного поля на провідник зі струмом. Електродвигуни"презентація "Дія магнітного поля на провідник зі струмом. Електродвигуни"
презентація "Дія магнітного поля на провідник зі струмом. Електродвигуни"
 
Презентація 10 клас Урок 5.pptx
Презентація 10 клас Урок 5.pptxПрезентація 10 клас Урок 5.pptx
Презентація 10 клас Урок 5.pptx
 
India on Gaganyaan 2022 by Selbin Babu
India on Gaganyaan 2022 by Selbin BabuIndia on Gaganyaan 2022 by Selbin Babu
India on Gaganyaan 2022 by Selbin Babu
 
Paradigma PMII Pada Era Transisi Globalisasi
Paradigma PMII Pada Era Transisi GlobalisasiParadigma PMII Pada Era Transisi Globalisasi
Paradigma PMII Pada Era Transisi Globalisasi
 
Rockets
RocketsRockets
Rockets
 
Chandrayaan 3.pptx
Chandrayaan 3.pptxChandrayaan 3.pptx
Chandrayaan 3.pptx
 
2
22
2
 

Similar to Temiz Kod

Go Programlama Dili - Seminer
Go Programlama Dili - SeminerGo Programlama Dili - Seminer
Go Programlama Dili - SeminerCihan Özhan
 
Clean Code
Clean CodeClean Code
Clean Codeierhalim
 
Yazılım ve-yazılımcı-nedir- net-ve-net-platformu
Yazılım ve-yazılımcı-nedir- net-ve-net-platformuYazılım ve-yazılımcı-nedir- net-ve-net-platformu
Yazılım ve-yazılımcı-nedir- net-ve-net-platformuAhmet S.
 
Clean Code & Refactoring
Clean Code & RefactoringClean Code & Refactoring
Clean Code & Refactoringnedirtv
 
Developer Tools
Developer ToolsDeveloper Tools
Developer ToolsBurak Erol
 
Programlama cevaplari
Programlama cevaplariProgramlama cevaplari
Programlama cevaplarisersld96
 
Test Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim TestlerTest Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim Testlerserhatlevent910
 
Vhdl cevaplari
Vhdl cevaplariVhdl cevaplari
Vhdl cevaplarisersld80
 
Algoritma - akış diyagramları - sözde kod
Algoritma - akış diyagramları - sözde kodAlgoritma - akış diyagramları - sözde kod
Algoritma - akış diyagramları - sözde kodMetehanUar1
 
PHPUnit ve Laravel
PHPUnit ve LaravelPHPUnit ve Laravel
PHPUnit ve LaravelOsman Yuksel
 
LibreOffice Geliştirmeye Hızlı Başlangıç
LibreOffice Geliştirmeye Hızlı BaşlangıçLibreOffice Geliştirmeye Hızlı Başlangıç
LibreOffice Geliştirmeye Hızlı BaşlangıçMuhammet Kara
 
Üniversite adayları için bilgisayar mühendisliği
Üniversite adayları için bilgisayar mühendisliğiÜniversite adayları için bilgisayar mühendisliği
Üniversite adayları için bilgisayar mühendisliğialinizam99
 
Mühendislik problemlerinin bilgisayar ortamında sayısal analiz yöntemleriyle...
Mühendislik problemlerinin  bilgisayar ortamında sayısal analiz yöntemleriyle...Mühendislik problemlerinin  bilgisayar ortamında sayısal analiz yöntemleriyle...
Mühendislik problemlerinin bilgisayar ortamında sayısal analiz yöntemleriyle...Abdurrahman Tunç
 

Similar to Temiz Kod (20)

Sunum tdd
Sunum tddSunum tdd
Sunum tdd
 
PhpSpec ve TDD
PhpSpec ve TDDPhpSpec ve TDD
PhpSpec ve TDD
 
Go Programlama Dili - Seminer
Go Programlama Dili - SeminerGo Programlama Dili - Seminer
Go Programlama Dili - Seminer
 
Clean Code
Clean CodeClean Code
Clean Code
 
Yazılım ve-yazılımcı-nedir- net-ve-net-platformu
Yazılım ve-yazılımcı-nedir- net-ve-net-platformuYazılım ve-yazılımcı-nedir- net-ve-net-platformu
Yazılım ve-yazılımcı-nedir- net-ve-net-platformu
 
C#4.0
C#4.0C#4.0
C#4.0
 
Clean Code & Refactoring
Clean Code & RefactoringClean Code & Refactoring
Clean Code & Refactoring
 
Clean code & refactoring
Clean code & refactoringClean code & refactoring
Clean code & refactoring
 
Developer Tools
Developer ToolsDeveloper Tools
Developer Tools
 
Programlama cevaplari
Programlama cevaplariProgramlama cevaplari
Programlama cevaplari
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Test Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim TestlerTest Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim Testler
 
Unit testing
Unit testingUnit testing
Unit testing
 
Vhdl cevaplari
Vhdl cevaplariVhdl cevaplari
Vhdl cevaplari
 
Algoritma - akış diyagramları - sözde kod
Algoritma - akış diyagramları - sözde kodAlgoritma - akış diyagramları - sözde kod
Algoritma - akış diyagramları - sözde kod
 
PHPUnit ve Laravel
PHPUnit ve LaravelPHPUnit ve Laravel
PHPUnit ve Laravel
 
LibreOffice Geliştirmeye Hızlı Başlangıç
LibreOffice Geliştirmeye Hızlı BaşlangıçLibreOffice Geliştirmeye Hızlı Başlangıç
LibreOffice Geliştirmeye Hızlı Başlangıç
 
Üniversite adayları için bilgisayar mühendisliği
Üniversite adayları için bilgisayar mühendisliğiÜniversite adayları için bilgisayar mühendisliği
Üniversite adayları için bilgisayar mühendisliği
 
Atlassian Clover
Atlassian CloverAtlassian Clover
Atlassian Clover
 
Mühendislik problemlerinin bilgisayar ortamında sayısal analiz yöntemleriyle...
Mühendislik problemlerinin  bilgisayar ortamında sayısal analiz yöntemleriyle...Mühendislik problemlerinin  bilgisayar ortamında sayısal analiz yöntemleriyle...
Mühendislik problemlerinin bilgisayar ortamında sayısal analiz yöntemleriyle...
 

More from ASIMYILDIZ

Ott Streaming Protocols and DRM
Ott Streaming Protocols and DRMOtt Streaming Protocols and DRM
Ott Streaming Protocols and DRMASIMYILDIZ
 
Javascript on Server-Side
Javascript on Server-SideJavascript on Server-Side
Javascript on Server-SideASIMYILDIZ
 
Software Design Principles (SOLID)
Software Design Principles (SOLID)Software Design Principles (SOLID)
Software Design Principles (SOLID)ASIMYILDIZ
 
Major Programming Paradigms
Major Programming ParadigmsMajor Programming Paradigms
Major Programming ParadigmsASIMYILDIZ
 

More from ASIMYILDIZ (6)

Ott Streaming Protocols and DRM
Ott Streaming Protocols and DRMOtt Streaming Protocols and DRM
Ott Streaming Protocols and DRM
 
Javascript on Server-Side
Javascript on Server-SideJavascript on Server-Side
Javascript on Server-Side
 
Software Design Principles (SOLID)
Software Design Principles (SOLID)Software Design Principles (SOLID)
Software Design Principles (SOLID)
 
Redux Thunk
Redux ThunkRedux Thunk
Redux Thunk
 
React Native
React NativeReact Native
React Native
 
Major Programming Paradigms
Major Programming ParadigmsMajor Programming Paradigms
Major Programming Paradigms
 

Temiz Kod

  • 3. • Bu eğitimin sonunda siz yazılımcı arkadaşlarımızın; • Daha rahat okunabilir ve kolay güncellenebilir • Daha az hataya açık • Daha güzel • Daha TEMİZ • Kod yazma alışkanlığı edinmesi amaçlanmaktadır. Amaç Public
  • 4. • Temiz Kod Nedir? • Neden Temiz Kod Yazmalıyız? • Temiz Kod Nasıl Yazılır? • İsimlendirme Kuralları • Canlı Kodlama Temiz Kod Public
  • 6. • Temiz kod, okunabilen ve kodu geliştiren yazılımcının dışında geliştirilebilen koddur. • Birim ve kabul testleri vardır. • Anlamlı isimlendirmelere sahiptir. • Tek bir çözüm yolu sunmaktır. • En az bağımlılığa sahip, temiz ve net API tanımlarına sahiptir. Temiz Kod Nedir? Public
  • 7. • Bir kodu okurken ne yaptığını anlamıyor iseniz? • Geliştirdiğiniz bir kod sizi yavaşlatıyor ise? • Kod üzerinde yaptığınız her değişiklik, kodun başka yerlerini bozuyor ise? • Bir kod değişikliği yapmak için onlarca modül kodu güncelliyor iseniz? Temiz Kod Nedir? Public
  • 8. • Kod geliştirdiğimiz projenin zamanında bitmesi • Okunabilir kod, her zaman daha rahat güncellenebilir. • Temiz kod daha az hataya açıktır. • Temiz kodun başka koda etkisi azdır. • Temiz kod tek bir problemi çözmeye odaklıdır. Neden TemizKod Yazmalıyız? Public
  • 9. • İsimlendirme Kuralları • Metotlar • Yorumlar • Kod Formatlama • Nesne ve Veri Yapıları • Hata Ayıklama • Birim Testleri • Sınıflar Temiz Kod Nasıl Yazılır? Public
  • 10. Eğer bir değişken ismi, kendisini açıklamak için bir yorum gerektiriyor ise, o isim doğru bir isim değildir. int d; // elapsed time in days Public
  • 12. • Açıklayıcı ve Net Değişken İsimleri • Okunabilir Değişken İsimleri • Arandığında Bulunabilen Değişken İsimleri • Anlamlı Ayrıştırma Yapılan Değişken İsimleri • Kodlama, Ön Ek ve Son Eke Sahip Olmayan Değişken İsimleri • Sınıf ve Metot İsimleri İsimlendirme Kuralları Public
  • 13. Açıklayıcı ve Net Değişken İsimleri • Bu mu? int d; // elapsed time in days • Yoksa bunlar mı? int elapsedTimeInDays; int daysSinceCreation; int daysSinceModification; int fileAgeInDays; Public
  • 14. Okunabilir Değişken İsimleri • Bu mu? class DtaRcrd102 { private Date genymdhms; private Date modymdhms; private final String pszqint = "102"; }; • Yoksa bunlar mı? class Customer { private Date generationTimestamp; private Date modificationTimestamp; private final String recordId = "102"; }; Public
  • 15. Arandığında Bulunabilen Değişken İsimleri • Bu kod mu? for (int j=0; j<34; j++) { s += (t[j]*4)/5; } • Yoksa bu kod mu? int realDaysPerIdealDay = 4; const int WORK_DAYS_PER_WEEK = 5; int sum = 0; for (int j=0; j < NUMBER_OF_TASKS; j++) { int realTaskDays = taskEstimate[j] * realDaysPerIdealDay; int realTaskWeeks = (realdays / WORK_DAYS_PER_WEEK); sum += realTaskWeeks; } Public
  • 16. Anlamlı Ayrıştırılabilen Değişken İsimleri • Aynı kodun içinde tanımlı isimler ayrıştırılabilmelidir. XYZControllerForEfficientHandlingOfStrings XYZControllerForEfficientStorageOfStrings • Yazılımcılar isimlendirmelerinizi anlamlandırmaya çalışmamalıdır (u -> url) • Bir değişken ismi – Problem alanı – Çözüm alanından seçilmelidir Public
  • 17. Kodlanmayan Değişken İsimleri • Bir değişken ismi içerisinde ‘değişken’ geçmemelidir. nameVariable • Bir ‘isim’ tutan değişken ‘String’ ile tanımlanmamalıdır. nameString • Bir ‘sınıf’ ismi içinde ‘nesne’ ismini almamalıdır. CustomerObject Public
  • 18. Ön ve Son Eke Sahip Olmayan Değişken İsimleri • Sınıf ve metotlar ön ve son eklere ihtiyaç duymayacak kadar ufak olmalıdır. public class Part { private String m_dsc; // The textual description void setName(String name) { m_dsc = name; } } --------------------------------------------------------------------- public class Part { String description; void setDescription(String description) { this.description = description; } } Public
  • 19. Sınıf ve Metot İsimleri • Bir sınıf ismi ‘fiil’ olmamalıdır. • Bir sınıf ismi ‘isim’ veya ‘isim cümlesi’ olmalıdır. Customer, WikiPage, Account • Bir metot ismi ‘fiil’ veya ‘fiil cümlesi’ olmalıdır. postPayment, deletePage, save. • Erişimciler (getters) ve Mutasyoncular (setters) – Değişken tipine göre başına ‘get’ ve ‘set’ koyularak isimlendirilmelidir. getName, setName Public
  • 20. Unutmayalım ki, temeli sağlam olmayan bir bina, en ufak sallantıda hem o binada oturanlara, hem de o binaya daha sonradan taşınan kişilere zarar verir. Public
  • 21. Neler Öğrendik? • Temiz Kod Nedir? • Neden Temiz Kod Yazmalıyız? • Temiz Kod Nasıl Yazılır? • İsimlendirme Kuralları Public

Editor's Notes

  1. Şimdi bu arkadaşın X firmasına yeni başlamış bir yazılımcı olduğunu düşünelim. Sizce bu arkadaş şu anda nasıl bir koda bakıyor olabilir? – Cevap bekle İşte hepimiz yazılımcı olarak bu tarz süreçlerden geçmişizdir. Yeni bir firmada çalışmaya başladığımızda her zaman sıfırdan bir proje yapmak mümkün değildir. Bazen projelerin başlarında, bazen ortalarında, bazen ise en kritik zamanlarında projeye dahil olabiliriz. Peki böyle bir dönemde karşımızda nasıl bir kod görmek isteriz?
  2. İşte bu eğitim ile siz yazılımcı arkadaşlarımıza, Nasıl daha rahat ve kolay güncellenebilir Nasıl daha az hataya açık Nasıl daha güzel Ve en önemlisi nasıl daha temiz Kod yazma alışkanlığı kazandırabiliriz, beraber onu inceleyeceğiz.
  3. Bu eğitim süresinde sırası ile Temiz kod nedir diyerek temiz kodu açıklamaya Temiz kod yazmamızın önemine Temiz kodun nasıl yazıldığına En temelden yani isimlendirme kurallarından başlayarak değineceğiz En sonunda da şu anda üzerinde çalıştığımız bir proje kodunu kullanarak beraber ufak bir canlı kodlama yapacağız.
  4. Temiz kod gerçekten de bu resimde anlatıldığı gibi, bir kodu okurken veya incelerken, ne kadar kısa sürede ne kadar çok «WTF» dediğimizdir.
  5. Eclipse Strategy’nin yaratıcısı Dave Thomas’a göre ise
  6. Bu kod sizce nasıl bir koddur? Kirli İşte temiz kod tüm bu özelliklerin olmadığı yani Kodu okuduğunuz zaman bir önceki kodu yazan yazılımcı arkadaşa küfür etmediğiniz! Kodu okuduğunuzda anladığınız Yazdığınız kodun başka bir kod kesitini bozmadan çalıştığı Gerçekten bir satır kod güncellemesi yapmak istediğinizde sadece bir satırda bu değişikliği yaptığınız Kod temiz koddur.
  7. Evet, yazılım geliştiriciler bir proje üzerinde çalışırken her zaman proje teslim tarihini göz önüne almaktadır. Şirket için de yazılımcı için de en önemlisi bir projenin zamanında yetişmesidir? Belki de en önemli nokta budur? İşte sadece bu noktadan yola çıkarak, gerçekten kod geliştirdiğimiz bir projenin zamanında bitmesini istiyorsak temiz kod yazmalıyız. Neden? – Cevaplar Çünkü : Okunabilir kod her zaman daha rahat güncellenebilmektedir Temiz yazılan bir kod daha az hataya açıktır. Hata yapmak daha zordur. Temiz kod yazarken kullanılacak error handling mekanizmaları kodun daha az hatalı olmasına sebep olacaktır. Kod unit ve acceptance testlerine sahip olacağı için hatalar daha kolay ortaya çıkacaktır. Temiz yazılan kod en az dependency (bağımlılığa sahiptir) Temiz yazılan kod bir tek işi yapmaktadır. O sebeple orada yapılacak hata sadece o kısmı etkileyecektir.
  8. Temiz kod yazmak için geliştirilen yazılımın her parçasında dikkat edilmesi gereken noktalar vardır. Bu eğitimde biz bu noktaların en temelinden, yani isimlendirme kurallarından bahsedeceğiz. Diğer noktaların ise daha sonraki eğitimlerde üzerinden geçiyor olacağız.
  9. Peki bir değişken isminin temiz olduğu nasıl anlaşılabilir?
  10. Bir değişkene isim vermek, yeni doğmuş bir çocuğa isim vermek gibi olmalıdır. Nasıl çocuğunuza çocuk 1, çocuk 2 gibi sallama bir isim vermiyor iseniz, yazdığınız kodu da çocuğunuz gibi düşünebilirsiniz, ona da düzgün bir isim vermelisiniz. İşte bir değişken isminin temiz olması için;
  11. İşte bir değişken isminin temiz olması için;