Fl4m3Ph03n1x

Fl4m3Ph03n1x

Feedback for "DDD Chapter 5: Implementing Simple Business Logic - Part 1"

Background

I have recently released a video about the Transaction Script, and I use Elixir for the code samples and to get the point across:

I would like to get some feedback and opinions on how to improve it and if there was anything extra you think I could add in order to make it more appealing to both the Elixir community and general public.

Next chapter will be about Active Record, so if you also have something you think is relevant to it, I would be happy yo give it a read and see if/how it fits with the general concept.

Most Liked

Fl4m3Ph03n1x

Fl4m3Ph03n1x

TBH 20+ minutes on transaction script is a lot to ask - but also I’m probably not a target audience

The target audience is:

  • anyone who wants to learn about DDD
  • anyone who is actively reading the book
  • anyone who may be interested in reading the book but is unsure if the topics covered are relevant
  • anyone how has already read the book, and is now distilling what they learn into “short summaries” because they are getting old and they know that one day they will forget everything, so they pour hours of their lives trying to summarize everything they learned so one day they have an easier way of “remembering”, while still holding hope that someone else in the outer space will find this useful and learn a thing or two.

As you can probably guess, I fit in the last group :stuck_out_tongue:

This is the core of transaction script. It is not Elixir specific. If you were to apply it, this is how you would do it. The book itself uses another language, but the approach is similar. It is true I could have used C# or Java or JavaScript for this, the code would be similar, because the focus is the pattern, not the tool used. This said, I still find value in exposing others to Elixir, and I do think Elixir with its ecosystem can be a good tool to explain such concepts.

I focused on explaining what a transaction is because unless you completely understand it, you wont get the examples. In the video I mention you can use Transaction Script in ECL applications, but I take it from your feedback that perhaps some code would help?
I understand the feedback is that even though I “told you where to use it” I did not “show you”. Right?

In the final section I mention a complex application that is then refactored using 4 different patterns (Transaction Script being one of them). On the top of my head I cant remember what the original structure of the application from the University was, but the message I try to convey is: “If you use this on systems with complex logic, you will make it worst!

I use the K&C metrics to make this point clear, and I double down on the conclusion, where I re-iterate where to use the pattern and where not to use it.

Transaction Script is good in some cases, not all cases !

I am not sure how I could have made the points clearer.

Correct. In the section where to use it, I even mention that you can use it as an ECL. Transaction Script is mainly for system with little to no business logic. What would you like to see in this case?

There is no way to say this nicely, my human voice is bad. As in, most people I have ever talked to genuinely dislike my voice, and it is usually an uphill battle. Not only that, using my human voice would make it easy to identify who I really am, and where I live this brings a host of other issues.

I use AI to generate the voice. I tried looking for voice-actors, but I cannot pay them enough to read my long scripts.

Overall, the process I follow is simple:

  1. I study the book
  2. I complement said study with papers and blogs
  3. I write a script, usually 10k-15k words long
  4. I create a presentation using slides as an “idea” of that the video and the flow will look like (lecture style)
  5. I use and AI to read the script, line by line
  6. I spend countless hours editing the whole thing in a video editor

I honestly also fear that the “ai genreated” feeling pushes people away. I do not know how to fight it, since I see no other option than to use an AI voice.

Thank you for the feedback. I really appreciate it. I don’t have it clear on what actions I can take to improve the quality though. If I could do 1 thing differently, what would you suggest I do?

Fl4m3Ph03n1x

Fl4m3Ph03n1x

I took to heart the advice I got from the community, and uploaded a new version of the video. Sorry for the delay!
Now I can finally start working on part 2, active record !

Where Next?

Popular in Discussions Top

andre1sk
A big advantage to Elixir is all the distributed goodness but for many applications running on multiple nodes having integrated Etcd, Zoo...
New
blackode
Elixir Upgrading is so Simple in Ubuntu and It worked for me Ubuntu 16.04 git clone https://github.com/elixir-lang/elixir.git cd elixir...
New
MarioFlach
Hello, I want to share a project I’ve been working on for a while: https://github.com/almightycouch/gitgud Background Some time ago I ...
New
mmport80
I have put far too much effort into Dialyzer over the last year or so - and basically - I doubt it’s worth the effort. It’s not as easy ...
New
lorenzo
Hey everone! I created a prototype for my app using Nodejs for the api. But the framework I chose wasnt great (in general theresnt any g...
New
crispinb
On reading dhh’s latest The One Person Framework it strikes me that Phoenix with LiveView is already pretty much this. However, never hav...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 39297 209
New
rms.mrcs
A couple of days ago I was discussing with a friend about different approaches to write microservices. He said that if he was going to w...
New
RudManusachi
What configs will make sense to put to runtime.exs? – A bit of how I configure apps: I have generic configs in config/config.exs, dev...
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New

Other popular topics Top

chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 43622 214
New
Lily
In templates/appointment/index.html.eex: <%= for appointment <- @appointments do %> <tr> <td><%= appoi...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
klo
Got a question about when to concat vs. prepending items to list then reversing to achieve appending. So i know lists boil down to [1 | ...
New

We're in Beta

About us Mission Statement