Yazar: Özcan Acar
-
Yazılımda Otopilot
Akıllı ev projem çerçevesinde lavabolara sensörlü musluklar taktım. Doğal olarak kısa bir zaman sonra, musluğu açmadan, sadece ellerimi musluğun altına tutatak, el yıkama işlemi beynimde rutinleşti. Evin içinde olduğum sürece bu bir sorun teşkil etmiyor. Lakin iş yerinde iken ellerimi lavaboda yıkamak istediğimde, garip bir durumla karşılaşıyorum ve beynimin bu durumu anlaması saniyeler alıyor. Öylece…
-
Mevcut Bir Uygulama Koduna Nasıl Adapte Olunur?
Mevcut bir yazılım projesine dahil oldunuz ve sizden kısa zamanda koda adapte olmanız ve yeni gereksinimleri implemente etmeniz bekleniyor. Nasıl en kısa zamanda, kendinizi evinizde hissedecek şekilde sisteme adapte olabilirsiniz? Bu ve buna benzer sorular bana ulaşıyor. Bu yazımda bu tür soruların cevabını vermeye çalışacağım. İki tür programcı vardır: Değişikliği arayan Değişikliği istemeyen Değişikliği kabul…
-
Neden Spring, JPA ve Diğer Çatılar ÖğrenilmeMEli
Bu başlığın çok provokasyon yüklü olduğunu biliyorum. Ama zaman ayırıp, yazımın geri kalanını okuyabilirseniz, ne demek istediğimi açıklamaya çalışacağım. Yazılımda bağımlılıkların tersine çevrilmesi (DIP – Dependency Inversion Principle) isminde bir tasarım prensibi var. Burada yer alan yazımda bu tasarım prensibinin ne olduğunu ve nasıl uygulandığını göstermeye çalıştım. DIP kullanılmadığı taktirde kırılgan kod birimleri oluşur. Bunun…
-
Versiyon ve Sürüm Numaraları Nasıl Oluşturulur?
Bir yapılandırma (build) işleminin ardından derlenen kodu ve kodla ilgili diğer dosyaları ihtiva eden bir dosya oluşur. Bu dosyaya yapı (artifakt) ismi verilir. Yapı bünyesinde uygulamanın çalışır şekli yer alır. Java dünyasında yapılar jar, war, ear gibi ZIP kökenli dosyalar içinde yer alır. Microsoft dünyasında yapılar dll, Linux dünyasında rpm, tar ya da gz formatındadır.…
-
Hangi Programlama Dilini Öğrenmeliyim?
Bana şu tarz mailler son zamanlarda çok gelir oldu: “C# biliyorum, kariyerime Java ile devam etmek istiyorum. Sizce iş bulabilir miyim?“, “PHP programcısıyım, Java’ya geçmemi tavsiye eder misiniz?“, “Java öğrenirsem, iş bulma şansım artar mı?“, “Geleceği aydınlık olmayan ActionScript ile yurt dışında mı, yoksa Türkiye’de kalıp Android programcılığı ile mi devam etmeliyim?“… Ben bunları nasıl…
-
Kokan Kod – 1. Bölüm
Söz konusu yemek olduğunda, insanlar kötü kokuları yemeğin formda olmadığının ibaresi olarak algılarlar. Aç kalmadıkça kötü koku saçan bir yemeği kimse yemez. Kötü kok yemeğin hangi durumda olduğunu gösteren bir işarettir. İnsanlar kötü kokan bir yemeğin yenmemesi gerektiğini bilirler. Yazılımda da koku (smell) metaforu yeniden yapılandırılmaya ihtiyaç duyan kodlar için kullanılmaktadır. Kent Beck tarafından ilk…
-
Çalışan Bir Java Uygulamasında Bytekod Nasıl Değiştirilir?
Java uygulamaları bytekoduna derlendikten sonra Java sanal makine (JVM – Java Virtual Machine) bünyesinde koşturulur. Bu yazımda çalışan bir Java uygulamasında mevcut bytekodun nasıl değiştirilebileceğini bir örnek üzerinde göstermek istiyorum. Hangi durumlarda çalışan bir uygulama için bytekod değiştirme işlemi gerekli olabilir? Benim aklıma gelenler: Kaynak dosyaları olmayan yabancı kütüphaneler üzerinde değişiklik yapılmak istendiğinde, Loglama ve…
-
Teknik Borç Nedir ve Nasıl Ödenir?
Her borçlanmanın sonu, bedeli ödenmediği zaman iflastır. Aynı şey yazılım projeleri için de geçerli. Teknik borcu ödenmeyen projelerin başarıyla tamamlanmaları ya da sürdürülebilmeleri mümkün değildir. Bu yazımda projelerde yaşanan teknik borçlanmalardan ve bu borçların nasıl ödenebileceğinden bahsetmek istiyorum. Önce teknik borcun tanımını yaparak başlayayım. Teknik borçlanma uygulamanın kalitesinden ödün vermektir. Geliştirme sürecinde kalitesi düşen uygulamada…
-
Başkalarının Kodu Okunarak Daha İyi Programcı Olunabilir mi?
Son zamanlarda programcılara sıkça verilen bir öğüt var: Bol, bol başkalarının yazdıkları kodları okuyun. Bu sizin daha iyi programcı olmanızı sağlayacaktır. Başkalarının kodunu okumamız söylenir, ama bu okumanın bizi programcı olarak neden ileri götürdüğüne açıklık getirilmez. Benim savım: Başkalarının kodunu okumak bizi daha iyi bir programcı yapmak için yeterli bir aktivite değildir. Ben bir noktadan…
-
Java String Nesnelerinin Hafıza Kullanımı Nasıl Azaltılır?
Bir Java uygulaması için Java sanal makinesi (JVM) tarafından oluşturulan ve yönetilen hafıza alanının (heap) ortalama %25’ini String nesneleri kaplar. Bir heapdump oluşturduğumuzda, String nesneleri ve String nesnelerini oluşturan char[] arraylerin ilk sıralarda olduğunu görebiliriz. Şu şekilde örneğin çalışan bir Java uygulamasının hafıza resmi alınabilir. [sourcecode language=”java”] jmap -dump:live,format=b,file=<filename> <PID> [/sourcecode] Eclipse MAT ile heapdump…