• Buradasın

    Temiz Kod ve Yazılım Kalitesi Eğitimi

    youtube.com/watch?v=AXnYosbRnPo

    Yapay zekadan makale özeti

    • Bu video, Ecele Softwavement Turkey topluluğunun Utrecht'te düzenlediği bir etkinlikte gerçekleşen eğitim sunumudur. Sunum, İlkay ve Akin Kaldiroglu tarafından yönetilmekte ve bir konuşmacı tarafından temiz kod kavramı hakkında detaylı bilgiler verilmektedir.
    • Video, temiz kodun tanımı ve önemi üzerine odaklanmakta, temiz kodun dört temel özelliğini (basit, odaklı, doğru, tam) açıklamaktadır. İçerik, basitlik kavramının yazılım mühendisliğindeki önemi, kod yazarken dikkat edilmesi gereken noktalar, isimlendirme prensipleri ve test edilebilir kod yazmanın gerekliliği gibi konuları ele almaktadır.
    • Eğitimde ayrıca, yazılım yöneticilerinin temiz kod yazma konusundaki yetkinlikleri, metod düzenlemesi ve "defensive programming" (savunma odaklı programlama) gibi teknik konular da işlenmektedir. Video, katılımcıların sorularını yanıtlama ve bir anket paylaşımıyla sona ermektedir.
    00:02Ecele Softwavement Türkiye Topluluğu Tanıtımı
    • İlkay adlı konuşmacı, Hollanda'nın Utrecht şehrinden Ecele Softwavement Türkiye topluluğu adına Ecele Code buluşma serisinin ilk etkinliğini düzenlediklerini belirtiyor.
    • Topluluğun vizyonu yazılım geliştirmenin daha iyi yol ve yöntemlerini yaymak.
    • Topluluk iki farklı türde buluşma serisi planlıyor: Ecele Cronics serisi (ekiplerin karşılaştığı kronik problemleri paylaşmak) ve Ecele Code serisi (kaliteli ve temiz kodlama ile ilgili paylaşımlar).
    02:57Temiz Kod Tanımı
    • Konuşmacı, yaklaşık 90'lı yılların başından bu yana yazılımla ilgileniyor ve 1991'den bu yana Türkiye'de bulunuyor.
    • Katılımcılardan temiz kodun ne olduğunu sorgulayarak çeşitli tanımlar alıyor: sürdürülebilir, kolay bakım yapılabilir, okunabilir, tekrara düşmeyen, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren, optimize, her zaman izin veren,
    11:00Temiz Kod Kavramı ve Önemi
    • Temiz kod kavramını ilk ortaya atan kişi, 90'lı yıllardan bu yana klin kod yazı kitabının yazarı ve ANKBA videolarıyla bu konuyu anlatan bir kişidir.
    • Konuşmacı, kendisinin de bu kişinin öğrencilerinden biri olduğunu ve bu kişiden saygılı bir şekilde bahsettiğini belirtiyor.
    • Sorumlu bir geliştiricinin tavırı olarak, zor olan programlama sürecini insanın kendi zaafiyetleri ve kafasındaki engellerle daha da zorlaştırmamak, aksine kolaylaştırmaktır.
    12:41Temiz Kodun Özellikleri
    • Temiz kod, rahat, anlaşılır, kolay değiştirilebilir, odaklı, dolayısıyla kısa ve bağımlılıkları az olan kodlardır.
    • Temiz kod, teknoloji veya sektörle değil, ahlaki bir problemdir; bilgi eksikliği olarak görülebilir ancak cehalet bir özür olamaz.
    • Kaliteli kod yazmak, evdeki muslukçunun işini düzgün yapması veya duvarları boyayan kişinin duvarları iyi boyaması gibi ahlaki bir sorumluluktur.
    15:16Temiz Olmayan Kodun Özellikleri
    • Temiz olmayan kod, karışık, karmakarışık ve teknik borç oluşturur.
    • Bu tür kodlar bakım zorluğuna sahiptir, değişiklik yapmakta zorlanılır ve doğruluğu anlaşılmaz hale gelir.
    • Karmakarışıklık gittikçe artar ve zamanla sistem değişiklik yapamaz hale gelir.
    17:01Temiz Kodun Önemli Özellikleri
    • Temiz kod, kompleksite, bağımlılıklar ve muğlaklık içermez; bunlar karmaşıklığı artıran faktörlerdir.
    • Kötü isimlendirmeler, kodu berbat eden en temel şeylerden biridir çünkü isimlendirme kod yazarken yapılan ilk şeydir.
    • Ahlaki problem, iyi bir iş yapıldığında bile bela gelmesi durumudur; yani iyi kod yazıldığında bile sonradan ortaya çıkan sorunlarla uğraşmak zorunda kalınabilir.
    19:28Temiz Kodun Analitik Yaklaşımı
    • Konuşmacı, temiz kod konusunu daha analitik bir şekilde ele almayı amaçlıyor.
    • Danışmanlık ve eğitimde kötü kod örnekleri görmüş ve bu deneyimlerden etkilenmiş.
    • Kitabın en problemli tarafı fazla sistematik olmaması ve analitik eksikliği olduğu belirtiliyor.
    22:00Temiz Kodun Çerçevesi
    • Temiz kodun dört temel sıfatı vardır: basit olmalı, odaklı olmalı, doğru olmalı ve tam olmalı.
    • Konuşmacı, bu temel kavramları mind map gibi yapılarla alt parçalara ayırmaya çalışmış.
    • Basitlik, anlaşılırlık ve standartlara uygunluk gibi alt kavramlara ayrılmış.
    24:08Temiz Kodun Özellikleri
    • Odaklı olması, tekrarsız olması ve tek hedefi olmalıdır.
    • Tam olması, olabilecek durumları öngörmek ve olmaması gerekenleri engellemektir.
    • Doğru olması, kodun doğru çalışması ve test edilebilir olması gerektirir.
    25:47Temiz Kodun Önemi
    • Temiz kod, standartlar, SOLID prensipleri ve testlerle doğrulanabilir.
    • Savunmacı programlama (defensive programming) ile olmaması gereken durumları engellemek önemlidir.
    • Konuşmacı, Türkiye'de temiz kod kavramının yaygın olmadığından bahsediyor ve bu konuyu daha fazla duyurmak istiyor.
    28:23Basitlik Kavramının Gerçek Anlamı
    • "Basit" kelimesi felsefi anlamda o kadar basit değildir; "basitçe yapıverdim" ifadesi genellikle gelişigüzel veya geçici anlamına gelir.
    • Gerçek basitlik, bir süreç sonunda kazanılabilen bir şeydir; ilk seferde elde edilemez.
    • Bilim felsefesinde teoriler basit olmalıdır; karmaşık ve basit iki teoriden basit olanı tercih edilir.
    31:23Basitliğin Özellikleri
    • Basitlik, takip edilebilirlik, anlaşılabilirlik, makuliyet ve gerçekçilik gibi özelliklerle ilişkilidir.
    • İyi kodlarda tekdüzeliğe doğru gitme, benzer konuların benzer şekilde çözülmesi gibi özellikleri görülür.
    • Farklı yaklaşımlarla çözülen benzer problemler, takip edilebilirlik ve makuliyeti bozar.
    33:41Basitliğin Zorlukları
    • Basitlik o kadar da basit bir şey değildir; muhteşem bir hayat hem basit hem de karmaşık olabilir.
    • Basit bir şey bir seferde yazarak elde edilemez, bu bir süreçtir.
    • Türkiye'de basitlik kültürünün yetersiz olduğu vurgulanmaktadır.
    34:30Basitliğin Önemi
    • Günümüzdeki cep telefonlarının basit ve minimal yapıları, geçmişteki ağırlı ve karmaşık telefonlardan çok farklıdır.
    • Basitlik, minimalite ve küçük olma ile ilişkilidir; güzel olan şey küçük olmalıdır.
    • Yazılımda hiçbir şeyin büyüğü makul değildir, basit yapmak gerekir.
    36:07Basitliğin Gerçekleri
    • Modern yazılım mühendisliğinde, basit görünmesine rağmen arka planda karmaşık bir organizasyon vardır.
    • Basitlik kolay elde edilecek bir şey değildir, arka planda ciddi bir çalışma ve organizasyon gerekir.
    • Yazılım tasarımı iki yolla yapılabilir: biri basit olacak şekilde tasarlanarak hataların açık olması veya açık hata olmayan ancak karmaşık görünen bir yapı.
    38:44Basit Kod Örneği
    • Basit kod tanımlamak zor olsa da, kötü kodu tanımlamak daha kolaydır.
    • Konuşmacı, Türkiye'deki şirketlere gösterdiği kötü bir kod örneğiyle ilgili anılar aktarıyor.
    • Basit ve karmaşık arasındaki farkı anlamak, deneyim ve tecrübeye ihtiyaç duyan bir durumdur.
    41:28Basit Kodun Özellikleri
    • Basit kodda aynı kod parçasının birden fazla yerde tekrarlanmaması gerekir, bu büyük bir günah olarak görülür.
    • Basit kod daha iyi mekanik ve yapı kullanır, dökümantasyon olmasa bile anlaşılır olmalıdır.
    • Her satırda sadece bir iş yapılması gerekir, bu kodun daha anlaşılır olmasını sağlar.
    43:34Kod Yazımında Önemli Prensipler
    • Satır olayı, daha sonraki değişimleri görmek açısından önemlidir.
    • Kod yazarken şiddet kullanmak yerine, işten el çektirmek gerekir.
    • Yorum satırı yazmak çok olursa, kötü kod yazmış olunduğunu gösterir.
    45:08Kodun Kısa ve Basit Olması
    • Dillerdeki polimorfizm ve az if yazılımlar kodun az yazılmasını sağlar.
    • Kod yazarken her şey basit olmalı, ancak bazı yerlerde if kullanmak zorunlu olabilir.
    • Büyük projelerde iç içe 35 tane if görünürse, bu metot karmaşık ve kötü kodudur.
    46:21Soyutlama Seviyesindeki Sorunlar
    • Kodlama sorunlarının temelinde daha temel bir problem vardır.
    • Sorun aslında soyutlama seviyesinde düşünme problemidir.
    • Bir metotta yapılacak şeyi zorlamak yerine, metotlara göre işleri bölmek gerekir.
    47:52İsimlendirme ve Düşünce
    • İsimlendirme basit bir şey değildir, düşünme şeklimizi ele verir.
    • İsimlendirme, düşünmemizi şekillendiren bir faktördür.
    • Önce isimlendiririz sonra düşünürüz, bu nedenle kötü isim kötü düşüncedir.
    49:22İyi İsimlendirme
    • İsimlendiremediğimiz şey yoktur, isimlendirme bilgisi genişlese, daha iyi kod yazabiliriz.
    • Kısaltmalar yerine tam isimler kullanılmalıdır.
    • İyi isimlendirme, kodun anlaşılır olmasını sağlar ve düşünmeyi basitleştirir.
    54:35İsimlendirme ve Teknoloji
    • İsimlendirme sistemlerinde özen göstermek önemlidir, özellikle İngilizce ve Türkçe arasındaki farklara dikkat edilmelidir.
    • Teknoloji üretilemediği sürece yazılım dünyasında İngilizce terimlerin kullanılması kaçınılmazdır.
    56:08Odaklılık Kavramı
    • Odaklı olmak, tekrarsız ve tek hedefli olmak demektir.
    • Odaklılık, ilgili her şeyi kapsayan ve ilgili olmayan hiçbir şeyi dışlayan bir yaklaşım olarak tanımlanabilir.
    • Odaklılık, "single responsibility" gibi kavramlarla ilişkilidir ve bir sorunun çözümü için tek bir yerde halledilmesi gerektiğini vurgular.
    58:35Odaklılık ve Basitlik İlişkisi
    • Odaklılık, basitliğin bir parçasıdır ve basitlikle odaklılık arasında bir ilişki vardır.
    • Odaklı olmak için bölme işlemi gerekir; büyük parçalar küçük parçalara bölünmelidir.
    • Parça sayısı artması (yazılımda) kaliteyi artırır; bir parçayı yönetmek, yüzlerce parçayı yönetmekten daha kolaydır.
    1:00:57Yazılım Prensipleri
    • Yazılım prensipleri konusunda çeşitli gruplar ve manzumeler bulunmaktadır.
    • Konuşmacı, 90'lı yıllarda okuduğu dergilerin C++ kitaplarından ve köşe yazılarından bahsediyor.
    • Konuşmacı, kriko eğitiminde bu prensipleri birlikte çalıştıklarını ve daha yeni ve anlaşılır bir kitap olduğunu belirtiyor.
    1:02:00Yazılım Prensipleri ve Örnekler
    • Yazılım prensipleri arasında "en az bilgi prensibi" bulunmaktadır; bir sınıfın sadece gerekli bilgileri bilmeli, gereksiz bilgilere sahip olmamalıdır.
    • Hızlı çalışmak yerine düşünerek çalışmanın daha iyi sonuçlar verdiğini vurguluyor.
    • Kodun birden fazla yerde tekrar etmemesi gerektiği, kalp (copy-paste) yerine kalp (kopyalama) kullanılmaması gerektiği belirtiliyor.
    1:04:03Metot Boyutu ve Teklifler
    • Bir metodun satır sayısı arttıkça bölünmesi gerekir, ortalama 15-20 satır geçmemelidir.
    • Yazılabilir kod yazmak için kodları ünite haline getirmeye çalışmak gerekir.
    • Bir metodun birden fazla işi yapması yerine, her metodun tek bir işi yapması daha iyi bir yaklaşımdır.
    1:07:12Doğru Kod ve Güvenilirlik
    • Doğru kodlar birim testleri ve entegrasyon testleriyle kontrol edilebilir.
    • Güvenilir yazılım üretmek için olası hataları öngörüp önlem almak önemlidir.
    • Defensive programming (savunma odaklı programlama) yaklaşımı, diğer sürücülerin hatalarını zincirleme hataya çevirmemek gibi bir yaklaşımdır.
    1:09:05Sonuç ve Öneriler
    • Güvenilir yazılım elde etmek için kurumsal ve bireysel farkındalık ve bilgi gereklidir.
    • Türkiye'de karar vericileri etkilemek ve düşünmeye teşvik etmek zor bir görevdir.
    • Konuşmacı, dinleyicilerin kitap okumasını ve bu konuyu daha derinlemesine incelemelerini öneriyor.
    1:09:59Temiz Kod ve Yönetim
    • Temiz kod elde etmek için bol iletişim, paylaşma ve tartışma yönetimi odaklı bir ortam gereklidir.
    • Bir işi doğru yapmak için zaman ve cesaret gereklidir, aksi takdirde kısa sürede yapılan hataları düzeltmek çok daha zor olur.
    • Temiz kod anlayışını kazanmak için en az 10-15 sene kod yazmak gerekir, 3-5 sene kod yazmış birinin bu konuyu anlaması zordur.
    1:12:02Kod Tasarım ve Yönetimi
    • Kod tasarımda işlevsel metodlar (work metodlar) ve yönetsel metodlar vardır; işlevsel metodlar sadece iş yaparken, yönetsel metodlar diğer metodları çağırır.
    • Tasarım gücü ve sistemin karmaşıklığına göre, main metod ile işi yapan metod arasında yüzlerce metod da olabilir.
    • İyi bir tasarım için mimari kurallara uyulmalı, domain servisleri ve application servisleri ayrı tutulmalıdır.
    1:13:44Gelişim ve Kaynaklar
    • Kod yazmayı geliştirmek için bol yazmak ve düşünmek gerekir, "bütün kötülüklerin anası düşünmemektir".
    • Konuyla ilgili 20-25 saatlik bir eğitim sunulmaktadır ve katılımcılara indirim sağlanacaktır.
    • İngilizce bilenler için daha fazla kaynak ve kitap mevcuttur, ayrıca YouTube'da da ilgili videolar bulunmaktadır.
    1:17:06Topluluk ve Son
    • Bir sonraki seride hangi konuların ele alınacağına dair bir anket düzenlenmektedir.
    • Katılımcılar anketi doldurarak tercihlerini belirtebilirler.
    • Konuşmacı, topluluğun davet etmesi ve dinlemesi için teşekkür eder.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor