Download the App!
show episodes
 
Artwork

1
Being The Worst

Kerry Street and Rinat Abdullin

Unsubscribe
Unsubscribe
Monthly
 
Audio apprenticeships for the aspiring software craftsman. Currently exploring DDD, Event Sourcing, CQRS, distributed systems, cross-platform, cross-cloud, & cross-language software delivery.
  continue reading
 
Loading …
show series
 
Kerry and Rinat babble about a buffet of programming languages and some of their strengths and weaknesses. It soon becomes clear that Rinat has a crush on clojure, but still walks us through several of the programming languages he has explored the last couple of years. (109 minutes) Subscribe via RSS | Subscribe for free in iTunes Episode Reference…
  continue reading
 
Kerry and Rinat start a new development project from scratch. They discuss the plan, with caveats, then talk through the approach to getting started. (34 minutes) Subscribe via RSS | Subscribe for free in iTunes Episode References: Microsoft Azure Service Fabric documentation Feedback and Finding Us @beingtheworst on Twitter, on GitHub, and http://…
  continue reading
 
Kerry and Rinat discuss Rinat's recent blog post that covers all the things that he thinks he did wrong with his open-source Lokad.CQRS framework. Kerry asks for clarification on some of the topics in the post, and tries to get Rinat to see the good things that came from his, "big mistake", of a framework. (33 minutes) Subscribe via RSS | Subscribe…
  continue reading
 
Kerry and Rinat return. The guys catch-up on some of the development that Rinat’s been doing while they were away and set their recording timer to 30 minutes. They discuss that their sample GTD domain, from past episodes, is being implemented with Facebook Flux and React.JS as they set the stage for future episodes. (31 minutes) Subscribe via RSS |…
  continue reading
 
Kerry and Rinat welcome guest Glenn Block to discuss hypermedia Web APIs, and the new book he co-authored on the subject. They get into some of the differences between systems that are designed to take advantage of the constraints of the REST architecture style, with those that are not. What is hypermedia? Should you always adhere to REST constrain…
  continue reading
 
Kerry and Rinat discuss some of the learning that Rinat and the HappyPancake team did to evaluate their language and tool options for their new project. Rinat makes some observations about his long history with C#, and the benefits of looking at other languages and approaches. In Episode 38, they may even discover new ways that C# can do some thing…
  continue reading
 
In this episode Kerry and Rinat discuss some of the benefits of decomposing your software into even smaller components. Some may refer to this technique as “micro services” or “system-of-systems”. They end their conversation with a look at how this approach was applied to the Lokad codebase to result in a more evolvable design. (57 minutes) Subscri…
  continue reading
 
This episode is the third of a three part series on client-side development. Kerry and Rinat discuss their initial experiment with applying the MvvmCross framework to the GTD sample’s cross-platform mobile application. They review why they selected this approach, the initial code in the solution, and plans to revise their Core Domain and Published …
  continue reading
 
This episode is the second of a three part series on client-side development. Kerry and Rinat discuss the changes that were made to the sample’s WinForms client to make it easier to add new features. They review the three main contexts in their GTD sample, the benefits of passing around immutable state, and dig into graphical user interface archite…
  continue reading
 
Kerry and Rinat return from their summer break to discuss their initial explorations into client-side development. This episode, and the two episodes after it, cover a two month period in which Rinat and Kerry went off to write some new client code for their Getting Things Done(tm) sample project. They start this three-part spike with a simple WinF…
  continue reading
 
Kerry and Rinat answer listener questions about code syntax, differences between event sourcing and relational storage, and concrete examples of Domain-Driven Design (DDD) concepts. Along the way, your questions lead them to questioning themselves and to consider an alternate approach. (54 minutes) Subscribe via RSS | Subscribe for free in iTunes E…
  continue reading
 
Kerry and Rinat choose the event storage to use for their project. They’re using Windows Azure, so should they stick with Lokad CQRS event storage, or switch to Event Store from Event Store LLP? They discuss some of the pros and cons of their options, review some scaling approaches, and guess at what a transition may look like. (62 minutes) Subscri…
  continue reading
 
Rinat returns home from his trip to the United States which was filled with milestones, memories, and marriage. The guys briefly catch-up on some of the insights that were gained from looking over the fence at the Java ecosystem, and how it has made more progress than .NET in specific areas. They wrap-up with an intro to the DDD Summit, and how the…
  continue reading
 
Kerry and Rinat introduce the Actor in the Actor Model of Computation. They wonder if the Actor’s embodiment of communication (via messaging) may simplify the way that they reason about and implement their solutions. They discuss this potential use of the Actor Model in the context of their current usage of Domain-Driven Design (DDD), Application S…
  continue reading
 
Kerry and Rinat dig into the Lokad CQRS project that laid the code foundation for their current projects. This open source sample provides a working slice of a production system’s registration and user management subdomains that were implemented with Aggregates and Event Sourcing. While they get into the details of its multi-Aggregate implementatio…
  continue reading
 
Kerry and Rinat review some of the lessons learned from the deployment of Lokad.CQRS. Then, they discuss Rinat’s blog post about those experiences, and some of his ideas for future improvement. This results in a sneak peek of the new event centric hosting infrastructure that will be used in their GTD sample project. Download (mp3): Episode 27 – Evo…
  continue reading
 
In this episode, there is a lot of new code to dig into. Kerry and Rinat cover the newly added features, discuss how the console relates to future UIs and assists with ongoing maintenance, dabble in Event message design, and get into the CQS pattern that was used to implement some of the Entity classes. They wrap-up with how the current message-bas…
  continue reading
 
Kerry and Rinat discuss changes to the ubiquitous language, the characteristics of lists and projects, and lessons learned from using a similar productivity system. In between, they probably talk too much about some variable names and system implementation details. Download (mp3): Episode 25 – These Aren’t The Projects You’re Looking For – (62 minu…
  continue reading
 
Kerry and Rinat dive into the GTD® code and discuss ways to choose words in the ubiquitous language. The new interactive shell allows them to use and shape the domain model as it evolves. In addition, an Event store is introduced to persist messages to disk, and they discuss ways to replay and view these state changes in the console. Download (mp3)…
  continue reading
 
Kerry and Rinat revisit and correct some DDD terminology they used based on new learning and listener feedback. After they readdress Domain, Domain Model, Subdomains, Bounded Contexts, Published Language, Shared Kernel, and Anti-Corruption Layer, they try to relate these terms to real examples and code. Download (mp3): Episode 23 – Spaghetti-Free T…
  continue reading
 
Kerry and Rinat discuss the problem space, Bounded Contexts within it, Subdomains, and the Core Domain of “Getting Things Done”(TM). After the DDD discussion, they dive into the initial approach to structuring the code, exploring the Published Language, and making sense of information flows. Download (mp3): Episode 22 – Biohazard Blah Blah – (42 mi…
  continue reading
 
Kerry and Rinat start the discussion with a Context Map that has several Bounded Contexts. They use their conversation to refine the Context Map and carve out the initial key words of the Core Domain’s Ubiquitous Language. Download (mp3): Episode 21 – Linguistic Cartographers – (65 minutes) Subscribe via RSS | Subscribe for free in iTunes Episode R…
  continue reading
 
Kerry and Rinat discuss approaches you can use to start the domain modeling process in various situations. This helps them determine the first step to take to start designing their new domain. Download (mp3): Episode 20 – Staring At A Blank Page – (39 minutes) Subscribe via RSS | Subscribe for free in iTunes Episode References: Getting Things Done …
  continue reading
 
Kerry and Rinat introduce the topics to be covered and the general direction for the next set of episodes. They discuss the new domain to be implemented, as they officially launch the next expedition. Download (mp3): Episode 19 – The Hermit: An Unexpected Journeyman – (34 minutes) Subscribe via RSS | Subscribe for free in iTunes Homework: Get famil…
  continue reading
 
Kerry and Rinat dig into some of the development tools and practices used at Lokad. They specifically discuss Distributed Version Control Systems (DVCS) with a focus on Git’s familiar design and our usage of it. Direct Podcast Download Link: Episode 18 – Git Army Knife – (65 minutes) Subscribe via RSS | Subscribe for free in iTunes Homework: Create…
  continue reading
 
Kerry and Rinat wrap-up the Car Factory sample domain with an introduction to View Projections. The Event messages that we generate represent the state of our Aggregates. Projection classes can also listen for these Event messages and generate Views to provide query results to client applications. Direct Podcast Download Link: Episode 17 – View Pro…
  continue reading
 
A listener’s questions lead Kerry and Rinat into the details of Value Objects. They review several examples of Value Objects and cover some pros and cons of their usage. This very important concept is commonly used to represent the nouns in the sentences of our ubiquitous language. Direct Podcast Download Link: Episode 16 – Adding Value – (36 minut…
  continue reading
 
Kerry and Rinat discuss new ways to reuse and benefit from our modeling efforts. This includes using our messages to test any serializer, auto-generating diagrams of our current design, and giving our domain its own command prompt. Direct Download link: Episode 15 – The Bits That Keep On Giving – (39 minutes) Subscribe via RSS | Subscribe for free …
  continue reading
 
Kerry and Rinat continue discussing the Car Factory sample domain from Episode 12. Then, they cover its Domain.Test project and the updated specifications and testing approach within. Direct Download link: Episode 14 – Back In The U.S.S. caR Factory Tests – (30 minutes) Subscribe via RSS | Subscribe for free in iTunes Episode References: Episode 14…
  continue reading
 
A homework question takes the conversation to unplanned places. Kerry and Rinat start with clarifying Application and Domain Services, but end up discussing many things. From system design, tactical options like CQRS (Command Query Responsibility Segregation) and SOA (Service-Oriented Architecture), to an attempt to influence a presidential electio…
  continue reading
 
Kerry and Rinat introduce Application Services that host our Aggregates, the Domain Services that they use, and a code-generating DSL tool to help along the way. Direct Download link: Episode 12 – Now Serving DSL – (60 minutes) Subscribe via RSS | Subscribe for free in iTunes Episode References: Episode 12 code sample on GitHub Lokad-codedsl utilit…
  continue reading
 
Kerry and Rinat discuss the code updates that were made to correct the car factory sample. After that, they introduce the concepts of Value Objects and Strategic Modeling. Direct Download link: Episode 11 – Specs of the Living Dead – (57 minutes) Subscribe via RSS | Subscribe for free in iTunes Episode References: Episode 11 code sample on GitHub Z…
  continue reading
 
Kerry and Rinat discuss when they will wrap up the car factory domain from previous episodes and then introduce the “Don’t Break The Chain” domain. That domain and sample project will be used for the next set of episodes and code samples. Direct Download link: Episode 10 – Don’t Break The Chain – (28 minutes) Subscribe via RSS | Subscribe for free …
  continue reading
 
Kerry and Rinat welcome their first guest, Gregory Young. You may know Greg from his blog, training, or CQRS fame but in this episode we discuss software design, distributed systems, and the new open source Event Store product that Greg recently released. Direct Download link: Episode 9 – Greg Young Has A Major Event In Store – (60 minutes) Subscri…
  continue reading
 
Rinat covers some of his previous obsessions with certain tools and technologies [like composite UIs, Object-Relational Mappers (ORMs), and Inversion of Control (IoC) Containers] and reminds us that even the approach we have been learning is also, JUST A TOOL. The focus of your design should be on the essence of the domain that you are capturing an…
  continue reading
 
Kerry reflects on his homework experiences with Rinat. Then, they discuss ways to refactor the code to accurately capture the car factory’s requirements. A hint of how this ongoing refactoring will evolve us towards a more production-worthy implementation is also mentioned. Direct Download link: Episode 7 – Re-Factory – (44 minutes) Subscribe via R…
  continue reading
 
Kerry and Rinat discuss community questions about naming messages, aggregate state, and event implementation. Direct Download link: Episode 6 – Community Code and Questions 1 – (27 minutes) Subscribe via RSS | Subscribe for free in iTunes Sample Source Code and Documentation: Being The Worst code samples on GitHub (E006 folder) Kerry’s Homework cod…
  continue reading
 
Kerry and Rinat introduce the concept of aggregates and their importance to the design of distributed systems. Then, they describe another way to express the story of an aggregate, through the use of specifications and the testing of use cases. Direct Download link: Episode 5 – Aggregating Stories – (69 minutes) Subscribe via RSS | Subscribe for fr…
  continue reading
 
Event Sourcing Basics (a day in the car factory). Kerry and Rinat review questions about designing command and event messages and then introduce the new topic of Event Sourcing. We model one day at the Factory using event sourcing, domain language and concepts discussed in earlier episodes. Direct Download link: Episode 4 – Event Sourcing Basics – …
  continue reading
 
Kerry and Rinat discuss the importance of the spoken words we use and how they impact the messages we create in code. From there, they introduce two critical message types: commands and events. Direct Download link: Episode 3 – Commanding Your Words – (43 minutes) Subscribe via RSS | Subscribe for free in iTunes Here’s the factory plan, referenced …
  continue reading
 
Kerry and Rinat start with the foundational topics of messages and messaging. What is a message? Why do we use them? How do you create them in code? Their conversation references our sample code that is available on GitHub.com. Direct Download link: Episode 2 – Messaging Basics – (32 minutes) Subscribe via RSS | Subscribe for free in iTunes Referen…
  continue reading
 
Audio apprenticeships for the aspiring software craftsman. Kerry and Rinat introduce the show and describe the plan for the road ahead. They are still figuring out how to produce and host a podcast so feel free to cut them a little slack on any episode quality issues. Direct Download link: Episode 1 – The Worst Welcome – (37 minutes) iTunes: Subscr…
  continue reading
 
Loading …

Quick Reference Guide