Java Günlüğüm
Yazılım, Java, BT, azıcık felsefe, biraz mizah...
  • Udemy Eğitimleri
  • Temiz Kod
  • Tasarım Kalıpları
  • Hakkımda
  • Arşiv
RSS
20 Nisan 2015

“Java EE Programlama” Eğitimi

Akin Eğitim ve Seminer

“Java EE Programlama” eğitimi bu akşam saat 20:00’da başlıyor. Eğitimin bu akşamki ilk dersine katılım ücretsizdir, katılmak isteyenler buradan kayıt olabilirler.

“Java EE Programlama” eğitimi, Java EE’nin geniş uygulama ve teknoloji yelpazesindeki ana yaklaşım ve teknolojilerin bir özeti olacaktır. Haftada 3 saat, online olarak yapılacak eğitim toplamda 30 saat sürecektir. Eğitim Pazartesi akşamları yapılacak şekilde başlamasına rağmen katılımcıların önerileriyle başka bir zamana da kaydırılabilir.

Java SE’yi bilen ve kurumsal uygulamalarda Java’nın kullanımını öğrenmek isteyenlerin katılabileceği eğitim ile ilgili geniş bilgiye eğitimin sayfasından ulaşabilirsiniz.

Eğitimde ele alınacak konular ve süre ve hafta detayları ise şöyledir:

Online Java EE Programlama Eğitimi Planı

Konu Açıklama Süre (Saat) Hafta
Int. To Enterprise Computing and Java EE Different types of enterprise applications, concept of tiered enterprise architectures and Java EE. 2 1
Web Technologies Web application development with Java EE’s web technologies.
Servlets and JavaServer Pages (JPSs) Servlet and JSP life cycle, request and response objects, threading and session management filters, listeners, CDI and MVC. 6 1, 2, 3
JavaServer Faces (JSF) JSF life cycle, managed beans, CDI, events and listeners, components and AJAX. 6 3, 4, 5
Enterprise Java Beans (EJBs) EJBs, CDI and their patterns, concept of application server.
Stateless and Statefull Session Beans Life cycles of EJBs 4 5, 6
Singletons Locking in singletons. 1 7
Java Messaging Service (JMS) Message-Oriented Middleware via JMS, queues and topics.
JMS API, servers and clients 2 7
Message-driven Bean (MDB)  EJB as client of JMS. 1 8
Java Persistence API (JPA) Entity life cycle, EntityManager, queries, and transactions.
Mapping and entity life cycle 3 8, 9
Querying 2 9
Transaction Management Declarative transaction management in EJBs and manual transaction management. 2 10
Web Services  Using EJBs as web services. 1 10
Toplam   30  

Bu eğitimi alanlar, eğitimin workshopına da devam ederek Java EE’ye ciddi bir giriş yapmış olurlar.

Bekleriz efen’im 🙂

Toplam görüntülenme sayısı: 1579

3 Bunu beğendim 🙂
Tweet
Follow me
Tweet to @kaldiroglu
14 Nisan 2015

Öğrenme Sürecinde Programlamadan Yazılım Geliştirmeye Geçişte Workshop Çalışmasının Önemi

Akin Eğitim ve Seminer, Java, Yazılım Mühendisliği

Eğitim hayatımda bana sıkça sorulan birisi de bir programlama dilini öğrenmekten proje geliştirmeye nasıl geçileceği konusudur. Çok sık duyarsınız “Java’yı biliyorum ama bir proje nasıl yapılır, neresinden başlanır, nasıl ilerlenir bilmiyorum” şeklindeki konuşmaları. Doğrudur, bu durum herkesin kariyerinin başında yaşadığı cinsten sıkıntılardandır. Bu yazıda bu sıkıntının nasıl aşılabileceğini ele almak istiyorum.

Programlama, bir programlama dili yoluyla bilgisayara bir iş yaptırmaktır. Programlama dili ise bir araçtır, bilgisayara iş yaptırmanın en temel yoludur. Programlama dilleri dışında da bilgisayara iş yaptırmanın yolları vardır ama bir uygulama kadar geniş ve detaylı iş yaptırmaktan bahsediyorsak, hele işin içinde kullanıcılarla iletişim varsa, programlama dilleri dışında pek alternatifimiz yok gibi. Fakat bir programlama dili öğrenmek, temelde onun anahtar kelimelerini, kullanışlarını ve söz dizimini öğrenmek demektir. Her ne kadar programlama dilini öğrenmek ile onu kullanarak problem çözmek içe içe geçmiş süreçler olarak görünüyorsa da işin başında daha çok programlama dilinin kendisi ile uğraşılırken ilerleyen zamanlarda, özellikle dilin temellerinde belli bir noktaya gelince, problem çözme tarafı daha ağır basmaya başlar. Örneğin üniversitede, algoritmalar, veri yapıları, ağlar, derleyiciler (compilers) vb. ders ya da konularla bir programlama dilinin bir problemi çözmek için nasıl kullanılacağını öğreniriz. Örneğin pi sayısını hesaplamanın farklı yöntemleriyle if-while-for vb. pek çok kontrol yapısını, bir sayıya kadar olan tüm asal sayıları bulmada kullanılan Sieve of Eratosthenes algoritması ile dizileri kullanırız ve nihayetinde hem dile olan hakimiyetimizi geliştiririz hem de dil ile problem çözme yöntemlerini öğreniriz. Sonrasında ise compilers, ağlar ya da bilgisayar grafiği gibi derslerde muhtemelen daha büyük programlama hatta proje ödevleri yaparız. Tüm bu pratikler bizim hem programlama gücümüze katkıda bulunur hem de ağlar, veri tabanı, bilgisayar grafiği vb. temel bilgisayar ve yazılım yapılarıyla ilgili bilgi ve tecrübeye sahip olmamızı sağlar.

Peki tüm bu konularda son derece iyi olmak bir proje geliştirmek yeterli midir? Tabi ki değildir. Çünkü yazılım, programlamadan daha fazla şeyi ifade eder ve ancak proje ile yazılım geliştirilir. Genelde yazılım projelerini, programlamadan ibaret olarak görme eğilimdeyiz, hatta yazılım sistemlerini “program” olarak adlandırıldığına da sıklıkla şahit oluyorum. Yazılımın, programın daha büyüğü olarak görecek şekilde bir basitleştirme mümkün olsa bile, gerçekte böyle bir algıya sahip olmak bizi yazılımla ilgili çok ciddi yanlışlara götürür. Aynen gerçek bir uçağın geliştirilmesini, model uçak yapımının sadece daha büyük hali olarak görmekteki gibi. Zaten bu yazının başında bahsettiğim sıkıntı tam da budur: Programlamayı bilmemize rağmen proje yapmakta zorlanmamız. Sistemlerin büyümesinin getirdiği karmaşıklık çoğu zaman doğrusal değil de doğrusal olmayan şekilde artar ve bu durum zaten başlı başına bir sorundur.

Proje yazılıma özel bir kavram değildir elbet ve yazılım projelerinin de diğer disiplinlerdeki projeler gibi belirlenmesi gereken bazı tarafları vardır. Peki öğrenme sürecinde dile ciddi bir hakimiyet sağlama safhasını geçtik ve geldik kendi kendimize bazı projeler yapmaya. Neler yapmamız gerekli?  (Bu yazıda daha çok kişilerin öğrenme sürecinde, kendi kendilerine yaptıkları projeleri göz önüne alacağımdan, bu gereklilikleri çok ciddi ve formal bir çerçevede düşünmeyeceğim.)

Öncelikle bir yazılım projesinin, iyi ya da kötü ihtiyaçları belirlenmiş ve sınırları çizilmiş olmalıdır. Dolayısıyla programlamadan yazılım geliştirmeye geçerken ele alacağınız projeninizin belli bir detayda çerçevesi olmalıdır. İhtiyaçları belirlenmeden girişilecek bir projenin bitmesi pek de mümkün olmayacaktır, bundan dolayı da yapılan geliştirme “proje” olmaktan çıkacaktır. Eğer ihtiyaçları belirlemede, projenizin çerçevesini çizmede zorlanıyorsanız, en basit ve gerekli olanlara odaklanın ve detayını çıkarmakta zorlandığınız kısımları ileriki sürümlere atın ve bir an önce ilk sürümünüzü çıkarmanızı sağlayacak kısımlara öncelik verin derim.

Öte taraftan bir yazılım projesinin, ihtiyaçları çerçevesinde belirlenmiş bir mimarisinin de olması gereklidir. Nasıl ihtiyaçlar belirlenmediğinde projede pek çok yaz-boz oluyorsa benzer durum mimari belirlenmediğinde de söz konusudur. Mimari yapılar ise belli bir teorik alt yapıya sahip olarak kurgulanmakla birlikte genelde tecrübe tabanlıdır ve mimari algı, okumaktan daha çok deneme-yanılma ile gelişir. Gerçi mimari bilgi birikimimiz de gittikçe daha formal hale geliyor ve çeşitleniyor; bu yüzden gittikçe daha fazla okumak ve uygulamak önemli hale geliyor. Özellikle kullanılan dil vb. teknolojilerin temel kalıplarının (pattern) ve  mimari best practicelerinin bilinmesi bu anlamda çok önemlidir. Örneğin katmanlı yapılar kullanacaksınız, AOP ile aspectleri ayıracaksınız ve olabildiğince durumsuz (stateless) yapılar kullanacaksınız şeklidne üst prensiplerden yola çıkarak detaylara inebilirsiniz. Dolayısıyla projenizin mimari konularına da çala kalem dalmayın, biraz düşünün, okuyun, araştırma yapın ve ihtiyaçlarınızın sizi ne tür bir mimariye doğru ittirdiğini anlamaya çalışın, aksi taktirde projenin büyüklüğüne bağlı olmak üzere sıkıntılı sonuçlarla karşılaşabilirsiniz. Bu tür durumlar aslen öğrenmenizin bir parçasıdır ve doğrudan vakit kaybı olarak da görülmemelidir ama atış yaparken de olabildiğince destekli atmak gereklidir. Aşırı yaz-boz hem kaliteyi düşürür hem de motivasyonu.

Projelerinizde fonksiyonel tasarıma da önem verin. Sınıflar, arayüzler, “is-a” ve “has-a” ilişkileri, hem statik hem de dinamik görüntülerin neler olduklarına, sorumluluk tabanlı yaklaşımla karar verin. Bu gibi çalışmalar için UML kullanabilirseniz çok şık olur ama kullanamıyorsanız çok da takılmayın, bulgularınızı kendinize has bir şekilde, beyaz bir kağıda da olsa ifade edin. Bu sırada yani kavramsal olarak düşünürken nesneler arasındaki ilişkileri tasarım kalıplarıyla nasıl daha rahat hale getirebileceğinizi, nesnelerin nasıl daha sağlıklı olabileceğini de düşünün. Bu tür düşünmeler yazılım üzerine soyut düşünme kapasitenizi arttırarak size çok şey kazandıracaktır.

Sonrasında girişeceğiniz kodlamada birim testlerini yazmak, temiz (clean) bir şekilde kod yazmaya çalışmak ve API dokümantasyonuna önem vermek muhtemelen kodunuzu çok daha kaliteli ve anlaşılır kılacaktır. Ayrıca projenizde üçüncü el bileşen ve frameworkleri kullanmak, projenizi çok daha sağlıklı hale getirebileceğini de unutmayın. Bu anlamda tekerleği yeniden keşfetmeyip, enerjinizi koddaki orijinal taraflara saklayın.

Nihayetinde çok ilgi çekici olmasa da bir miktar test malzemesi oluşturmak, temel süreçleri test edebilmek için bir miktar çalışma yapmak ve örnek veri oluşturmak, projenizin sağlıklı bir şekilde nihayete ermesi açısından önemlidir.

Görüldüğü gibi yukarıdaki proje geliştirme sürecinde, programlama kadar analiz, tasarım ve dokümantasyon gibi çalışmalar da vardır. Dahası programlamanın dışındaki bu çalışmaların sağlıklı yapılması, ciddi bir eğitim ve yazılım mühendisliği nosyonu gerektirmektedir. Aksi taktirde usandırıcı bir git-gel girdabına girmek işten bile değildir. Fakat öte taraftan tam programlamada ilerleyelim derken ap-ayrı bir yazılım mühendisliği duvarına toslamak gibi bir durum söz konusu. Bu noktada öğrenme sürecinde programlamadan proje geliştirmeye geçişin ancak bir yol gösterici sayesinde yapılabileceğini söyleyebiliriz. Yani ciddi teknoloji ve metodoloji bilgi ve tecrübesine sahip bir öncünün yol göstermesi, gerekirse kısıtlaması ve yönlendirmesiyle, kontrollü bir şekilde bu süreci işletmek, sanırım geçişi kansız ve çok daha verimli hale getirecektir.

Ben bu amaçla eğitim faaliyetlerimde müşterilerime, eğitimde verilen malzemenin, yukarıda kısaca açıkladığım gibi, ayrıca bir workshop ile proje geliştirme çalışması olarak da uygulanmasını salık veriyorum. Ancak bu şekilde eğitimde verilenin gerçekten öğrenilmesi mümkün olabilir. Workshopu yapmak için temel bilgiye sahip olmak gereklidir. Ama verilen bilginin sağlıklı bir yazılım geliştirme bağlamında anlam bulması için de ders içi ufak örneklerden öteye geçen workshopa ihtiyaç vardır. Benzerlik kurarsak, workshopsız bir eğitim ile doğrudan gerçek projeye girmenin, tahta üzerinde taktiği alıp maça çıkmaya benzediğini söyleyebiliriz. Bu yüzden workshoplarla bir miktar pişmeyen developerların, gerçek projeyi haklı olarak öğrenme amaçlı olarak kullanmaları çok sık görülen bir durumdur. Her projede öğrenme söz konusudur ama sahip olduğu teorik bilgiyi hiç kullanma imkanı bulamamış kişilerin doğrudan projeye atılmaları, projeyi çoğunlukla çöplüğe çevirmektedir. Halbuki aslolan, gerekirse workshopı çöplüğe çevirmek ama bu sayede anlamayı pekiştirmek ve gerçek uygulama ortamına hazırlanmaktır.

Bu noktada yazılımcı olarak çalışan arkadaşlara tavsiyem, eğitim alırken muhakkak workshop da talep edin. Bence kaç günlük ya da saatlik eğitim alıyorsanız aynı miktar workshopa ihtiyaç vardır.

Bu noktada benzer yaklaşımı, JavaTürk bünyesinde açmış olduğum eğitimlerde de kullanacağım ve gördüğünüz, aldığınız eğitimlerin workshoplarını da sanal ortamda açacağım. Bu şekilde isteyen eğitimden sonra workshopa devam edebilecek, eğitim ihtiyacı olmadığını ama uygulama ihtiyacı olduğunu düşünen de doğrudan workshopa dahil olabilecektir. Workshoplarla ilgili olarak eğitim sayfasını takip etmenizi öneririm.

Toplam görüntülenme sayısı: 1205

7 Bunu beğendim 🙂
Tweet
Follow me
Tweet to @kaldiroglu
10 Nisan 2015

Webinar: Java EE Nedir? Kurumsal Java Uygulamaları Nasıl Geliştirilir? – II

Akin Eğitim ve Seminer

Sevgili JavaTürk takipçileri ve yazılım-severler 🙂

Dün akşam “Java EE Nedir? Kurumsal Java Uygulamaları Nasıl Geliştirilir?” isimli webinarımızı gerçekleştirdik. Webinarın viedo kaydına aşağıdan ulaşabilirsiniz.

 

[embedyt]https://youtu.be/BvF7cSqo2es[/embedyt]

 

Webinara 100’e yakın kişi katıldı ve o kadar çok soru soruldu ki yetişmekte zorlandım. Faydalı olmuştur diye ümit ediyorum.

Keyifli izlemeler.

Toplam görüntülenme sayısı: 699

10 Bunu beğendim 🙂
Tweet
Follow me
Tweet to @kaldiroglu
09 Nisan 2015

Kod Dokümantasyonu – II: İç Dokümantasyon

Akin Yazılım Mühendisliği

Bir önceki yazıda kod dokümantasyonu ele aldık ve bu konunun iki alt başlığı olduğunu söyleyip kodun APIsinin dokümante edilmesinin ne anlama geldiğinden ve gerekliliğinden bahsettik. Dolayısıyla kod dokümantasyonundan bahsettiğimizde doğrudan kodun içine yazılan ve genellikle “iç dokümantasyon” (internal documentation) olarak adlandırılan ve Java vb. dillerde çoğunlukla “//” ile “comment” haline getirilen açıklama ifadelerini anlamamalıyız. API dokümantasyonu, kodu anlaşılır kılmak için yapılacak en önemli açıklamadır.

Öte taraftan, iç dokümantasyona geldiğimizde bunun API dokümantasyonu kısmından daha karmaşık olduğunu söyleyebiliriz. Sık sık duyuyorum, “hocam koda ne kadar dokümantasyon yazmalıyız?” şeklinde sorular. Hoş, bunu soranlar belli ki henüz öğrenci olan arkadaşlar ve kariyerlerinde hiç kod dokümantasyonu yazmama ihtimalinin yüksek olduğunu bilmiyorlar tabi 🙁

Açıkçası koda iç dokümantasyon yani açıklama (comment) yazmak, prensip olarak iyidir. İnsanların niyet olarak kodlarını anlaşılır kılmak için “dokümantasyon yapayım” diye düşünmeleri son derece güzel bir şeydir. Lakin kodu anlaşılır kılmanın, dokümantasyon yazmaktan daha önce gelen bir yolu vardır: kodu anlaşılır yazmak. Kodu karmaşık yazıp, özensiz, çala-kalem yazıp, sonra dokümantasyon ile anlaşılır kılmak, kötü kodu açıklamalar yoluyla tamir etmeye çalışmaktır. Bir inşaat ustası olarak duvarı üflesen yıkılacak şekilde kötü örüp sonra çok iyi bir sıva ile bütün bu durumu kapatmak gibi. (Biliyorum iyi bir örnek olmadı, sıvasız duvar olmaz ama dokümantasyonsuz kod olur 🙂  ) Ya da kendini ifade etmekte devamlı zorluk yaşayan, dili düzgün kullanamayan birisinin, düşüncelerini anlatmak için devamlı açıklamalar yapmasına benzer bu durum, konuştuka anlaşılmaz hale gelir. Bu yüzden aslolan dokümantasyon yazmak değildir, aslolan anlaşılır kod yazmaktır öyle ki açıklamaya gerek kalmasın. Buna “self-descriptive” ya da “self-documenting” kod da denir.

Eski kitaplarda örneğin 70lerin ve 80lerin kitaplarında kod ile dokümantasyonu arasındaki oranın 1/2 olmasından bahsedilirdi. Bir satır koda iki satır dokümantasyon! Bu açıkçası o zamanki ortamların ve dillerin yapısıyla, sahip olunan kültürden kaynaklanan bir durumdu. Örneğin bellek problemi çok kısa isimler vermeye zorluyordu yazılımcıları. Ama artık öyle değil, Allah’ın mekanı geniş, istediğiniz kadar uzun isimler yazabilirisiniz yeter ki anlamlı olsun.

Eğer kodunuzun yazdığınız haliyle anlaşılmasının zor olduğunu düşünüyorsanız, lütfen ona dokümantasyon yazmayın. Dokümantasyonu kodunu yazdığınız işin tabiatından kaynaklanan, örneğin karmaşık bir algoritmada olduğu gibi, anlama zorlukları için yazın. Ya da beklenenin dışında bir durum söz konusudur onu belirtin. “Ama hocam yaptığımız iş karmaşık ve kodu uzun tutuyor” diyorsanız, karmaşıklığı ile ilgili “bu durum olabilecek en basit hal midir? Daha da basitleştirilemez mi?”, uzun tutması için de “bir kez daha düşünün” bu kadar uzun olmalı mı? “Uzun olan işi atomik alt parçalara böldünüz mü?” diye sorarım. Dolayısıyla eğer kodunuzun yazdığınız haliyle anlaşılmasının zor olduğunu düşünüyorsanız, onu refactor edin, elden geçirin ya da tekrar yazın. İsimlerinizi kontrol edin, satırlarınızı atomik, tek bir işi yapacak hale getirin, zincirleme kod çağrılarını (a.f().g().u() gibi) açın, bol yerel değişken kullanın, metotlarınızın içinde atomik olan kısımları “{}” ile bloklayın ki o kısmı yalıtın ve nihayetinde kodunuzu bölüp parçalayın. Daha önce yazmıştım, kod eklenerek değil çıkartılarak büyür. Kodu anlaşılır kılmanın en temel iki yolu, iyi isimlendirme ve kısa kod yazmadır. Bunlara dikkat ederseniz, muhtemelen yazmak zorunda kalacağınız açıklamalar çok azalacaktır.

Bu konuda Brian W. Kernighan ve  P. J. Plaugher’ın “Don’t comment bad code—rewrite it.” yani “Kötü kodu açıklama – tekrar yaz.” şeklindeki sözlerini hatırlamak gerekir.

Uncle Bob’a atfedilen “Her açıklama bir özürdür.” sözü bakın şöyle bir cümlede geçiyor:

“A comment is an apology for not choosing a more clear name, or a more reasonable set of parameters, or for the failure to use explanatory variables and explanatory functions. Apologies for making the code unmaintainable, apologies for not using well-known algorithms, apologies for writing ‘clever’ code, apologies for not having a good version control system, apologies for not having finished the job of writing the code, or for leaving vulnerabilities or flaws in the code, apologies for hand-optimizing C code in ugly ways…”

Yani

“Her açıklama, daha açık bir isim ya da daha makul bir parametre seti seçilmediği ya da daha açıklayıcı değişkenler ve fonksiyonlar kullanılmadığı için bir özürdür. Kodu bakım yapılamaz kıldığı için özür, iyi bilinen algoritmalar kullanmadığı için özür, “zekice” kod yazdığı için özür, iyi bir versiyon yönetim sistemi kullanmadığı için özür, kod yazma işini bitirmediği için özür ya da kodda sıkıntılı veya hatalı kısımlar için özür, elle ve çirkin şekilde yapılmış optimize C kodu için özür… “

Peki hiç mi iç dokümantasyon yapılmamalı? Tabi ki hayır. Ben her halükarda API dokümantasyonunun yapılması gerektiğini düşünüyorum. Metot istendiği kadar basit olsun, bir cümleyle de olsa API açıklaması konmalı ki örneğin JavaDoc ile API dokümantasyonu ürettiğimizde her şey eksiksiz olsun.

Öte taraftan gerek API gerek ise kod içi dokümantasyonun kaçınılmaz olduğu durumlardan birisi ise devralınmış koddur. Devralınmış ve kötü ve karmaşık yazılmış koda değişiklik yaparken anladığınızı koda gerek API gerek ise içerideki satırlar düzeyinde açıklama olarak yazmanız o kodu gittikçe çok daha anlaşılır hale getirecek, takımdaki bilgi birikimini paylaşarak hızlandıracaktır. Ben, dışarıda geliştirildikten sonra içerideki geliştirme takımının önüne konan koda, devralan takımdaki yazılımcıların, dokundukları her noktaya anladıklarını kaydetmemelerini de anlamış değilim. Böyle hallerde herkes her yeri kendisince tekrar tekrar anlamaya çalışıyor demektir.

Uzun lafın kısası, açıklamaya yazma, açık kod yaz, kendini açıkça ifade eden kod yaz. Bu anlamda koduna bol bol açıklama yazandan ziyade, temiz ve açık kod yazan taktir edilir.

Koda yazılacak API ya da iç dokümantasyon için Robert Martin ya da Uncle Bob’ın “Clean Code“, P. Goodliffe’nin “Code Craft” ve Steve McConnell’in “Code Complete” kitaplarının ilgili kısımlarını okumanızı tavsiye ederim.

Açıklama gerektirmeyen, açık ve seçik kod yazmak ve devralmak ümidiyle 🙂

Toplam görüntülenme sayısı: 1174

11 Bunu beğendim 🙂
Tweet
Follow me
Tweet to @kaldiroglu
«< 17 18 19 20 21 >»

Günlüğüme Hoşgeldiniz

Bu günlükte, Yazılım Mühendisliği, Bilgi Teknolojileri, Java, kişisel gelişim ve zaman zaman da diğer konulardaki düşüncelerimi sizlerle paylaşacağım. Umarım beğenir ve hoşça vakit geçirirsiniz.

Her türlü düşüncenizi, yorum olsun, beğeni ya da eleştiri olsun, bana iletmenizi rica ediyorum sizden. Ayrıca bana akin@javaturk.org adresinden ya da Twitter'dan ulaşabilirsiniz. Videolarıma da buradan ulaşabilirsiniz.

Teşekkür ederim.

Akın Kaldıroğlu

Rahat Okumak İçin

A Decrease font size. A Reset font size. A Increase font size.

Sosyal Medya

  • Twitter
  • Facebook
  • LinkedIn
  • Youtube

Son Twitlerim

→ Takip Etmek İçin

Abone Olun

Emalinizi girerek yazılardan haberdar olun.
Loading

Son Yazılarım

  • Udemy Eğitimlerim Üzerine
  • (başlıksız)
  • Clean Code / Temiz Kod Eğitimi Udemy’de
  • Java ile Nesne-Merkezli Programlamaya Giriş Eğitimi Udemy’de
  • Selsoft Video Eğitimleri
  • Spring ile Kurumsal Yazılım Geliştirme
  • Corona Günlerinde Design Patterns
  • Corona Günlerinde Java
  • JDK 10 ve “var” Özelliği
  • Onur Özcan
  • Analist ve İş Bilgisi
  • Farklı Dillerin Bakış Açısıyla Nesne-Merkezli Programlama
  • Java Nedir?
  • Bilgi Teknolojilerinde Yetenek Yönetimi – II: Tanımlar ve Eleştiriler – I
  • Alelade Hikayeler – II: Bir Başka Performans Problemi

Popüler Yazılar ve Sayfalar

  • Java’ya Nasıl Başlarım? Java’yı Nasıl Öğrenirim? – I
  • Nasıl Yazılımcı Olalım? – II: Hangi Bölümü Okuyalım?
  • Oracle’ın Java SE Sertifikaları: OCA, OCP ve OCM
  • Java Kurulumu ve İlk Programımız
  • İş Analisti İş Tanımı
  • Java Tutorial ya da Kendi Kendine Java Öğren
  • Nasıl Yazılımcı Olalım? – I: Üniversiteli mi Alaylı mı?
  • Tasarım Kalıpları
  • Java’ya Nasıl Başlarım? Java’yı Nasıl Öğrenirim?
  • UML Nedir?

Yazı Kategorileri

Yazı Takvimi

Haziran 2025
P S Ç P C C P
 1
2345678
9101112131415
16171819202122
23242526272829
30  
« May    

Yazı Arşivi

Blogroll

  • Binnur Kurt'un Günlüğü
  • Ender'in Java Blogu
  • Erdem Seherler
  • Kızımın Günlüğü
  • Kurumsal Java
  • Levent Karagöl
  • Levent'in Java Blogu
  • Mert Can Akkan’s java tips,options, news…
  • Yaşar Safkan
  • Yasin Saygılı
  • Yazı Dünyası

Yazı Etiketleri

analiz Bilmek C Desen design pattern EJB Eğitim Fortran Hibernate Java Java'ya nasil baslarim Java dersleri Java EE Java Persistence API Java SE Java Sertifika Java Öğren Java öğreniyorum Java öğrenmek JPA Kalıp Kurumsal Java nesne nesne-merkezli No Silver Bullet object object-oriented Oracle Java Certifications pattern performans programlama programlama dilleri programlama nedir sertifika singleton tasarım tasarım deseni tasarım desenleri tasarım şablonu yazılım yazılım geliştirme Yazılım Mühendisliği yazılımın doğası yazılımın zorlukları Şablon

↑

© Java Günlüğüm 2025
Powered by WordPress • Themify WordPress Themes
 

Yorumlar Yükleniyor...