Hadi DDD hakkında konuşalım (Let's talk about DDD) - Petter Holmström çevirisi + Video

 Yazının orjinaline buradan ulaşabilirsiniz.


Tüm yazılım sistemleri umarım gerçek bir dünya problemini çözmek için tasarlanmıştır. Bunu yapabilmek için, yazılımın birlikte çalışabileceği problemin bir soyutlamasına - bir modele - ihtiyacı vardır. Bu modeli bulmak her zaman kolay değildir, özellikle de gerçek dünya sorunu karmaşıksa.


Etki Alanına Dayalı Tasarım (DDD), modeli bulmamıza yardımcı olabilecek bir yazılım tasarım sürecidir. Modelimizi keşfetmek ve tasarlamak ve onu çalışma koduna dönüştürmek için gerekli araçları ve yapı taşlarını verir.


DDD sürecinin en önemli çıktıları, problem alanının ortak anlayışı ve onu tanımlayacak bir dildir. Çözmekte olduğunuz problemin kavramlarını ve süreçlerini tanımlayamıyorsanız, herkes - hem müşteriler hem de geliştiriciler - onları anlayın, o zaman modelinizde bir şey eksik ve bunun ne olduğunu bulmanız gerekiyor. Bu anlayışı ve bu dili tam olarak nasıl belgelediğiniz, projeniz için çalıştığı sürece daha az önemlidir. Benim kişisel favorim UML diyagramları ve bir wiki kullanmak, ancak başka alternatifler de var.


DDD web seminerinde, alan modelleme sürecinin pratikte nasıl görünebileceğini gösteriyoruz. Bir tasarımcı ve bir etki alanı uzmanının (müşteri), etki alanı modelini bir iPad'de UML'de belgelerken belirli bir iş sorununu tartıştığı bir senaryoyu yeniden canlandırıyoruz. Buradaki anahtar, teknik malzemeyi, çoğu durumda yazılım geliştirme hakkında fazla bir şey bilmeyen müşteri de dahil olmak üzere, dahil olan herkesin modeli anlayabileceği bir seviyede tutmaktır.


Ayrıca sürece biraz UX tasarımı da ekledik, çünkü bunun bizi sorun alanına farklı bir açıdan bakmaya ve aksi takdirde gözden kaçıracağımız şeyleri keşfetmeye zorladığını (web seminerinde de göstermeye çalıştığımız) keşfettik. Sonuç, etki alanı modelinin, UX tasarımının ve etki alanı uzmanıyla yapılan tartışmanın birbirini etkilediği bir geri bildirim döngüsüdür ve biz onu kodda gerçekten çözecek kadar bilgi sahibi olana kadar yavaş yavaş sorunu anlamamızı sağlar.



DDD ayrıca yazılımı tasarlamak ve uygulamak için kalıplar içerir. Varlıklar, değer nesneleri, kümeler, depolar ve hizmetler gibi kavramları duymuş olabilirsiniz. Bunları bu web seminerinde ele almıyoruz, ancak örnek kodu yazarken bunları kullanmaya çalıştım.


Son olarak, DDD'den kazanç elde edebilmek için her şeyi yapmanıza gerek yoktur. Tam DDD, ustalaşmak için pratik gerektirir ve ben hala kendimi bu konuda yeni başlayan biri olarak görüyorum. Buna rağmen birçok projede DDD ilkeleri bize yardımcı oldu. Örneğin, ciddi veri tutarlılığı sorunları yaşadığımız kötüleşen bir proje vardı. Veriler kopyalandı veya hiç kaydedilmedi ve görünüşte rastgele bir şekilde iyimser kilitleme hataları oluştu. Varlıkları, değer nesnelerini, kümeleri ve depoları kullanmak için kodumuzu yeniden yapılandırarak projeyi tekrar rayına oturtmayı başardık. Bununla, DDD'ye aşina olmanızı ve projeniz için yararlı olabileceğini düşündüğünüz parçaları seçmenizi teşvik etmek istiyorum.


DDD hakkında daha fazla bilgi edinmek istiyorsanız şu kaynaklara bir göz atın:


Her şeyi başlatan kitap: Eric Evans'ın Domain Driven Design. Projelerinizde gerçekten DDD kullanmaya başlamak istiyorsanız bu kitap kitaplığınızda olmalı.

DDD kitabının tamamını okumak için zamanınız yoksa veya şu anda bir şeye ihtiyacınız varsa, DDD'nin temellerinin bu kaynaktan okuyabilirsiniz:



Okumayı izlemeyi ve dinlemeyi tercih ediyorsanız, YouTube'daki bu konuşmalara göz atabilirsiniz (elbette web seminerimize ek olarak):






Spring Boot Açık Kaynaklı Proje Geliştirimi - Hüseyin Babal - Video- Türkçe

 Hüseyin Babal Youtube kanalında açık kaynak Youcontribute projesini geliştiriyor.







Acik kaynakli proje gelistiyorum - Bolum 1

""Youcontribute" adinda acik kaynakli bir proje gelistiriyorum. Bu videoda, Biraz Spring Boot kutuphanesinden bahsedip sonra da canli olarak projenin iskeleting yarattim. -- Watch live at "

 


Acik kaynakli proje gelistiyorum - Bolum 2


"Bu videoda Spring Boot ile yazmaya basladigim acik kaynakli bir projenin, Unit ve Integration testlerini yazdim."

 


Acik kaynakli proje gelistiyorum - Bolum 3

"Bu videoda, projeye test yazmaya devam ettim ama bu sefer wiremock kullanarak github client kismini test ettim"


 

Acik kaynakli proje gelistiyorum - Bolum 4

"YouContribute adli acik kaynakli gelistirdigim projenin bu bolumunde, Domain modellerini hazirladim."


 

Acik kaynakli proje gelistiyorum - Bolum 5

"YouContribute projesinin bu bolumunde uygulamanin UI tarafini yazmaya basladim. UI icin Angular kullandim "


 

Acik kaynakli proje gelistiyorum - Bolum 6

"YouContribute projesinde UI yazmaya devam ettim. Bu sefer de, repository ve issuelari goruntulemek icin ekranlar yazdim"

Acik kaynakli proje gelistiyorum - Bolum 7


"Bu bolumde OneSignal entegrasyonunu yapip kullaniciya rasgele secilen issue icin bildirim gonderdim"


Acik kaynakli proje gelistiyorum - Bolum 8

"Bu bolumde issue challenge onerilerini kabul etme ya da reddetme kisimlarini yazdim "


Acik kaynakli proje gelistiyorum - Bolum 9

"YouContribute projesinin bu bolumunde kabul edilen challenge issue nun Github'da takip edilmesi kismini yazdim."

Acik kaynakli proje gelistiyorum - Bolum 10


"Bu yayinda, YouContribute projesini containerization dunyasina hazirladim. Docker imajinin yaratilmasi, minikube uzerinde deployment yaratilmasi"

Acik kaynakli proje gelistiyorum - Bolum 11

"YouContribute Github Login ekledim"

Acik kaynakli proje gelistiyorum - Bolum 12

"K8s autoscaling ekledim"

 

Acik kaynakli proje gelistiyorum - Bolum 13


"YouContribute projesine Cronjob ekliyorum "



Grokking The Java Developer Interview: More Than 200 Questions To Crack The Java, Spring, SpringBoot & Hibernate Kitabı - İngilizce

 


Java Developer'lar için hazırlanmış, Java, Spring, Hibernate, Maven, Database gibi başlıklarda oluşturulan soru cevapları içeren kitap, soruları açıklamalı bir şekilde cevaplıyor. Java Developer interview'ler için gayet katkı sağlayıcı kitap, ayrıca merak ettiğiniz, ekisik kaldığınız konuları da tamamlamanızı sağlıyor. Kitaba buradan ulaşabilirisiniz.


"Kitap hakkında



Grokking Java Geliştirici Röportajı, bir Java, Spring & Hibernate görüşmesini kırmanıza yardımcı olur.

Kitapta Java, Spring, SpringBoot ve Hibernate profili için bir görüşme sırasında sıkça sorulan 200'den fazla soru var. Multi-threading, Collection framework, Singleton Pattern, SpringBoot Annotations ve çok daha fazlası gibi önemli konulardan bazıları ayrıntılı olarak ele alınmaktadır. Bu konuların çoğu, kavramı hızlı bir şekilde kavramanıza yardımcı olacak kod örnekleri ile açıklanmıştır.


Okuyucu Hakkında


Bu kitap programcılar, mühendisler veya Java Web Geliştiricisi Mülakatına hazırlanan herkes içindir. Java/Spring konusunda önceden biraz deneyiminiz varsa, bu kitap kavramları tazelemenize yardımcı olacaktır.


Bu kitap kimler için DEĞİLDİR?

Java veya Spring hakkında derinlemesine bir çalışma arıyorsanız bu kitap size göre değil. Bu kitabın amacı, bu sektördeki devam eden araştırmaları veya zorlukları tartışmak veya bir ders kitabının yerini almak değildir.


Bunun sizin için doğru kitap olup olmadığına karar vermeye çalışıyorsanız, İçindekiler bölümüne bir göz atın, bu kitapta tartışılan 202 görüşme sorusunun tamamı var.


yazar hakkında


Jatin Arora, Bilgisayar Bilimleri mezunudur. Java ve SpringBoot konusunda uzmanlığa sahiptir. Envanter yönetimi, DevOps, bulut ve finans alanı gibi farklı alanlarda çeşitli ilginç projeler üzerinde çalıştı."


"About the Book


Grokking The Java Developer Interview helps you to crack a Java, Spring & Hibernate interview.
The book has more than 200 questions that are frequently asked during an interview for Java, Spring, SpringBoot & Hibernate profile. Some of the important topics like Multi-threading, Collection framework, Singleton Pattern, SpringBoot Annotations and many more are covered in detail. Most of these topics are explained with code examples that will help you to quickly grasp the concept.

About the Reader

This book is for programmers, engineers or anyone who is preparing for a Java Web Developer Interview. If you have some prior experience in Java/Spring then this book will help you to brush-up on the concepts.

Who is this book NOT for?
This book is not for you if you are looking for an in-depth study of Java or Spring. The objective of this book is not to discuss the ongoing research or challenges in this industry or serve as a substitute for a course book.

If you are trying to decide whether this is the right book for you, then take a look at the Table of Contents section, it has all 202 interview questions that are discussed in this book.

About the Author

Jatin Arora is a Computer Science graduate. He holds an expertise in Java & SpringBoot. He has worked on a variety of interesting projects across different domains like Inventory management, DevOps, cloud & financial domain."

Codefiction - Event Storming Workshop - Video - Türkçe (Bonus : Event Storming Workshop @Bucharest Software Craftsmanship Community (İngilizce))


Event Storming Workshop - Bölüm 1 - Temel kavramlar ve event kavramına genel bakış


 "Bu bölümde Barış, Fırat ve Deniz olarak Onur'u yakaladık ve bize Event Storming anlatmasına ikna ettik. Temel event storming kavramlarını konuştuk ve DDD, mikroservis konularıyla olan ilişkisini tartıştık. Sonrasında bir gerçek dünya örneğinden yola çıkarak event storming workshop'ına başladık. Keyifli izlemeler!

Katılımcılar Onur Aykaç Fırat Özbolat Barış Özaydın 

Deniz İrgin"




Event Storming Workshop - Bölüm 2 - Command, Koşullar ve Akışlar
"Birinci bölümde genel olarak event storming'in temellerinden ve event kavramından bahsetmiştik. Bu bölümde event'leri tetikleyen command'lara, constraint/validation'lara ve external systems gibi konulara da girerek gerçek hayat örneğimizi tamamlamış olduk. Keyifli izlemeler!
Katılımcılar Onur Aykaç Fırat Özbolat Barış Özaydın 
Deniz İrgin"




Bonus:

Event Storming Workshop @Bucharest Software Craftsmanship Community@Bucharest Software Craftsmanship Community

"Event Storming is a collaborative analysis practice that brings together domain experts and developers for a common understanding of the needs to be realized. Conducted in the form of a workshop, its purpose is to quickly discover what is happening in the software domain. Compared to other methods, it is extremely light and intentionally does not require any computer support. The result is expressed in sticky notes on a wall.

As we will be in Remote, Victor & Alexandre will simulate a small event storming session on Miro, so you will have a first approach on this awesome practice created by Alberto Brandolini. ~~~ About the Speakers: Alexandre Cuva, with more than 20 years of international experience, is an Agile Technical Coach, Consultant and Independent Trainer. He has extensive experience in IT, as a developer, architect, and agile coach, in the finance, government, insurance and watchmaker sectors. With almost 4 years of agile leadership in outsourcing, where he was co-founder and CEO of SmartDev LLC, an Agile IT company in Vietnam with about 100 employees without line management using the ROWE practice (Result Office Working Environment). He was also Technical Director at Smartlink SA, a Swiss finance company in mobile payments, where he applied the principles of Lean / Agile Management with Software Craftsmanship teams in Vietnam and India. In addition to coaching, Alexandre Cuva gives training and presentations on Modern Software, Agile, kanban, team dynamics, remote collaboration, happiness, agile leadership, management 3.0, agile transition, agility on large-scale practices. Alexandre Cuva is passionate about technological evolution, Java, C #, Python, Elixir, and JavaScript development techniques, XP and Scrum practices. Accustomed to speaking around the world (XPDay, SoftShake, Agile Tour, ScrumBeer, ...), Alexandre is co-founder of several communities: as Geneva ScrumBeers, Software Crafts Community Romandie, Da Nang (VN) Agile development community and member of the Agile Vietnam committee. LinkedIn : https://www.linkedin.com/in/cuvaalex/ Twitter : https://twitter.com/Cuvaalex  
Victor is a Java Champion and an Independent Trainer delivering intense webinars for dozens of companies worldwide since 2014. His passion is Simple Design, Refactoring, and Unit Testing, about which he regularly talks at top conferences, but also to this community. On victorrentea.ro you can find his blog, best talks, training curriculum, live masterclasses, and social channels."



CAP Teoremi - IBM - Türkçe (Bonus Dr. Sadi Evren Şeker)

 IBM internet siteside CAP teoremi detaylı bir şekilde anblatılmış. İlgili yazıya buradan ulaşabilirsiniz.


"Bu kılavuzda, CAP teoremini ve bu teoremin dağıtılmış uygulamalar tasarlanmasıyla ve bir NoSQL ya da ilişkisel veri deposu seçimiyle olan ilgisini ele alıyoruz." - IBM





Bonus: CAP Toerisi ve Büyük Veri




Spring Micoreservices - Folks Dev - Türkçe - Video

 



Yazılımda Microservice Mimarisi ve Kullanılan Teknolojiler

"Bu yayınımızda, adından sıkça bahsedilen yazılım dünyasının son dönemlerde en çok uygulanmak istenen Microservice Mimarisini ve bu mimari çerçevesinde kullanılan teknolojileri, Microservice terminolojisini ve Microservice avantaj ve dezavantajlarını konuşuyoruz."


[TechThursday] - Microservice #2 - Spring Cloud Eureka Server/Client, Feign Client

"Bu yayınımızda, Microservice yayın serimizin devamı olarak Spring Boot framework ve Spring Cloud Eureka Server ve Spring Cloud Client kullanarak, iki microservice'in Service Discovery Server'a Register olmalarını ve Feing Client kullanarak RestAPI üzerinden birbirlerine istekte bulunmalarını ve Feing Client FallBack senaryoları ve yöntemlerini anlatıyoruz. "


[TechThursday] - Microservice #3 - Spring Boot Feign Client Error Handling & Fault Tolerance

"Bu yayınımızda, Microservice yayın serimizin devamı olarak Spring Boot framework ve Spring Cloud Eureka Server ve Spring Cloud Client kullanarak, iki microservice'in Service Discovery Server'a Register olmalarını ve Feing Client kullanarak RestAPI üzerinden birbirlerine istekte bulunmalarını ve Feing Client FallBack senaryoları ve yöntemlerini anlatmıştık önceki bölümde. Bu bölümde ise Spring Feign Client ile Error Handling ve Resilience4j ile Faul Tolerance konularını anlatıyoruz"



[TechThursday] Microservice #4 - API Gateway, Spring Actuator, Distributed Log Trace, Zipkin

"Herkese merhaba,
Bu yayınımızda, Microservice yayın serimizin devamı olarak Spring Boot ve Spring Framework ile Spring API Gateway ve Spring Cloud Actuator kullanarak bir API Gateway geliştirmesi yapıp, Microservice konusunun en önemli konularından biri olan Distributed Log Trace geliştirmelerini Zipkin Server ve Zipkin Client entegrasyonu konularını anlatıyoruz"

[TechThursday] Microservice #5 - Spring Cloud Config ile Centralized Configuration

"Bu yayınımızda, Microservice yayın serimizin devamı olarak Spring Boot ve Spring Framework ile Spring Cloud Config kullanarak Microservisler arasında Git tabanlı bir Centralized Configuration nasıl kurulanacağını anlatıyoruz."





Data Structures & Algorithms - Java - Scott Barrett - Udemy - İngilizce

 Görsellerle zenginleştirlmiş, hazırlanışı eğitmenin yaklaşık bir sene almış, Scott Barrett'in sade anlaşılır anlatımıyla Data Structures & Algorithms - Java eğitimine buradan ulaşabilirsiniz.





Mastery of Data Structures and Algorithms

Confidently answer technical interview questions

Time and Space Complexity of Data Structures and Algorithms

Strengthen your skills as a developer


Hi!  I'm Scott, and I am exited to be part of the process that takes you to the next level technically. 


I started the journey of my tech career over 25 years ago and it is definitely worth the time and effort.  In that time I have worked at large Fortune 500 companies such as Hewlett-Packard, Cisco, and Chevron;  as well as several smaller firms.


As an instructor I take a different approach when I create a course.  After each line of code, an animation of the data structure or algorithm is updated to show exactly what that line of code did.


This visual approach allows students to learn more material in less time and have higher retention of the material.


I invite you to watch a few of my course intro videos you will see the difference this approach will make for you. 


I am looking forward to working with you on your coding journey. 

Software Architecture (SOLID) & Design Patterns in Java - Udemy - İnglizce - Holczer Balazs - Udemy

 Holczer Balzacs'ın SOLID ve Design Patternlerı kısa ve yeterince açıklayıcı şekilde, Java kodlarıyla anlattığı kursa buradan ulaşabilirsiniz.




Software Architecture (SOLID) & Design Patterns in Java





understand SOLID principles
understand the core of design patterns
undertand object oriented design
understand the single responsibility principle
understand the open / closed principle
understand the Liskov substitution principle
understand the interface segregation principle
understand the dependency inversion principle
understand creational design patterns (singleton pattern, factory pattern, builder pattern and prototype pattern)
understand behavioral design patterns (strategy pattern, command pattern, visitor pattern and template pattern)
understand structural design patterns (adapter pattern, facade pattern and decorator pattern)

Clean Code ve Effective Java Dersleri - Udemy - Furkan Sönmez - Türkçe

 Clean Code ve Effective Java kitaplarını işleyen Furkan Sönmez konuya hakim ve bol örneklerle konunun anlaşılmasını kolaylaştıryor.






İleri/Orta Seviye Java Dersleri - (Effective Java)

Kursa buradan ulaşabilirsiniz.

Sürekli güncellenen ileri orta seviye effective java eğitimiyle bilginizi ve java mülakat performansınızı katlayın!
Java teknik mülakat geçme garantisi :)Design Pattern ezberi yapmadan sorunları patterne dökebilme yeteneği.Temiz, doğru, esnek ve bakımı kolay uygulamalar tasarlayabilme yeteneği.İş arkadaşlarınızın okurken zorlanmayacağı ve insanların kolay adapte olabileceği tasarımlar yapmak.Ezbere değil farkında olarak kod yazma yetisi.Effective Java kitabının en ince detayına kadar tüm içeriği.


Clean Code - Temiz Kod Yazma Sanatı

Piyasanın en etkin clean code eğitimi. Kurstan sonra bir daha asla aynı kodu yazmayacaksınız. (Güncel Bonus İçeriklerle)

Kursa buradan ulaşabilirsiniz.

Kaliteli ve okunabilir kod yazma
Metotları ve sınıfları optimum uzunlukta tutma
SOLID prensipleri (Detaylı örneklerle)
Test yazmanın önemi ve mentalitesi
Kod refaktör etme
Temel Yazılım Prensipleri
Kurs dil spesifik değil ama Java Püf noktalarına sıkça değindik :)
Yük Testlerinin Önemi
Mülakat Performansında Gözle Görülür Artış
Kod yazan normal bir bireyden ziyade MÜHENDİS kafasıyla yazılım yapma





Domain Driven Design Kimdir? - Barış Velioğlu - Medium

Barış Velioğlu'nun DDD'yi bir kişilik haline getirip karşılıklı konuştuğu makale DDD'yi anlamamızıa yardımcı oluyor. Yazıya buradan ulaşabilirsiniz.Yazının bir kısmı şu şekilde :

"Söyleşimizin ilk bölümünde Domain Driven Design yani nam-ı diğer DDD ile problem çözerken hangi stratejilerden yararlandığı hakkında konuşuyoruz.

Teknolojinin dili olsa da konuşsa dediğiniz oldu mu hiç? Bugün sizlerle birlikte farklı bir şey deneyeceğiz. Teknolojiye konuşması için gerekli olan meziyetleri vererek onunla karşımda bir insan varmışcasına bir söyleşi yapmayı deneyeceğim. Yani DDD’nin bize biraz kendisinden bahsetmesini isteyeceğiz.

Bu söyleşinin sonunda aşağıdaki soruların hepsine cevap bulmuş olacağız.

  • “Ubiquitous Language” nedir? Neden önemlidir?
  • “Driven Design” kavramı ne ifade eder?
  • DDD için “Domain Expert” neden gereklidir?
  • “Bounded Context” nedir? Contextleri bulabilmek için hangi yöntemlerden yararlanılabilir?
  • Domainler neden 3 ayrı başlık (Core, Generic, Supporting) altında değerlendirilir? Hangisine odaklanmalıyız?"

Rastgele İçerik

DonanımHaber

© tüm hakları saklıdır
made with by templateszoo