Тёмный
No video :(

Lesson 167 - Architecture vs Design 

Mark Richards
Подписаться 36 тыс.
Просмотров 8 тыс.
50% 1

Опубликовано:

 

5 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 28   
@privatesocialhandle
@privatesocialhandle Год назад
I bought your book. Great stuff. The most important single line that I was looking the answer for was "bread vs depth" of knowledge as the balance between an architect vs a developer. And as an aspiring architect who's not a developer. That told me how much of development do I need (breadth) to be an effective architect. Thanks!
@markrichards5014
@markrichards5014 Год назад
Glad you found it useful!
@mailatmanish
@mailatmanish 2 месяца назад
In my point of view, Architecture is an abstract and platform independent blueprint of system, on other hand design is platform dependent version of architecture. For example, Client-Server is an architecture which can be designed in multiple way based on requirement and platforms (AWS, GCP, On-premises Linux server etc.). So, Architecture and design(High level) are complementary to each other but not substituting each other. We can only check design is complementing architecture or not. Further Design can be segregated in two types based on scope: High Level Design and Low-level Design. Implementing Strategy Design Pattern is part of low-level design, it has nothing to do with architecture, The rationale of using Strategy Design Pattern is How to achieve reference architecture based on best practices (It can be archived without using Strategy Design Pattern).
@brianbahati1553
@brianbahati1553 Год назад
Thanks Richard for this great explanation, l can borrow more from this criteria to evaluate decisions that require approval by the Architecture Review Board or just an approval within the teams hence saving time on the decision making process. And also customise the criteria to fit a value stream.
@bogdankapusta6336
@bogdankapusta6336 3 месяца назад
Thank you for clear explanation
@user-tv2zu8ob1z
@user-tv2zu8ob1z Год назад
Mr.Richards, thank you for your time. Highly valuable information
@markrichards5014
@markrichards5014 6 месяцев назад
You're welcome!
@alexandrubalmus8773
@alexandrubalmus8773 10 месяцев назад
Thanks for the video! I have a question though: if the practice of Domain-Drive Design is used, would you say that is more part of Architecture (as you've described it), or as part of Design? Some people (not you) might find this question silly because DDD has "Design" in it, therefore the categorization should be obvious. However you've mentioned the notion of Bounded Context with regards to Microservices, so if Bounded Contexts are determined using DDD, would that not mean that Design (in the sense of DDD, not of the lower-level Design Patterns) actually influences Architecture? DDD is also split into "Strategic" and "Tactical", which further deepens the question.
@markrichards5014
@markrichards5014 10 месяцев назад
I think there's an element of BOTH in DDD. We can leverage DDD in architecture to identify domains, subdomains, and components, which helps us design a better logical architecture.
@ren.oooooo
@ren.oooooo Год назад
Hmm the trend nowadays is people using the term “system design” during interviews (such as design Instagram or design Twitter), but it involves making architectural choices. Good video 👌
@markrichards5014
@markrichards5014 Год назад
Here's a good way to think about it: "Design for me a 10 story office building". Would you like an architect to do that or a construction worker? We tend to use the words "design" and "architect" interchangeably, but maybe we shouldn't....
@cybernetic100
@cybernetic100 Год назад
@@markrichards5014 we tend to use this beaten horse analogy to talk about software design, but maybe we shouldn't. Building architecture is not in the same league as software architecture for lots of reasons (some other time 🙂). For me ultimately its all design, only the levels and impact differ. It also depends on what kind of architect you're talking about: software, enterprise, solutions, infra, data, ad infinitum. To use your analogy, if a construction agency (aka developers) is sufficiently experienced and well known they might also generate design ideas that a good architect will incorporate into the overall deliverable. Vice versa, sometimes architects have a good handle on construction techniques and materials knowledge (aka design patterns and code optimisation techniques) and they can influence the lower level design of the overall deliverable. By equating a developer to a "construction worker" you are saying a developer has no business thinking/working architecturally, so best leave it to "The Architect". This does nothing more than continue to enlarge the divide between the two roles and after a while it becomes a self-fulfilling prophecy i.e. "developers don't think architecturally", how would they if we keep ostracizing them like that? This is why these kinds of analogies must stop and we should see software design as its own thing.
@f0ssig
@f0ssig 10 месяцев назад
I as a developer am making these decisions regardless of what the ivory tower says. join me on the battlefield or stay out of my business
@nir8924
@nir8924 Год назад
Many thanks for this video Mark! May I suggest a subject for upcoming videos? When to use pub-sub / event streams vs. queues in EDA? what are the effects on resilience and integrity of the system and what are the solutions to the downsides of each?
@markrichards5014
@markrichards5014 Год назад
Thanks for the suggestion - I will add it to my list!
@nir8924
@nir8924 Год назад
@@markrichards5014 Hi, I think I need to elaborate a bit about the issue I'm talking about. I'm asking about this because I watched ALL your videos (many thanks!) but I never saw any reference to the following issue: Let us assume that service A needs to send a message to multiple micro-services, B being one of them. It is critical that service B will get the message for a certain process to complete. In many of the videos I hear you talking about broadcasting such messages. I'm assuming that there are generally three ways to send messages but I can't see how any one of them fits the purpose: 1. using queues: forces service A to "know" about service B, which ruins the whole point of broadcasting. 2. using pub-sub/fan-out: if service B is temporarily down, it will never get the message. 3. using streams: service B must somehow preserve the "last point" in the stream that it has processed in case it goes down. then it must return to that point when it's up again. this gets event more challenging if service B has multiple running instances. So .. what am I missing ? Or is it something that's missing in the videos ? Many thanks, Nir.
@markrichards5014
@markrichards5014 Год назад
@@nir8924 With asynchronous pub/sub processing you can guarantee that Service B will at least receive the event (even if it is temporarily down) by making it a durable subscriber. This is the same with P2P as well (making the message persisted on the queue). So I'm wondering, in your scenario, is it the situation where Service A needs to know that Service B has received the event? Also, check out Lesson 81 on the Workflow Event Pattern for error processing in this scenario for Service B.
@nir8924
@nir8924 Год назад
​@@markrichards5014 wow I didn't expect a "private consulting" here, I thought I'll just help the channel :) I don't have a case in hand now, it's a theoretical question. I'm talking about a situation when we don't want A to know about B (for decoupling purposes). The problem with pub/sub (event a durable one) is that it forces B to keep record of each handled message in order to prevent duplicate processing (imagine a payment that will take place multiple times). I'll go watch lesson 81 again, to see if I'm missing something, and maybe I just don't know enough pub-sub systems to know that a single-delivery is a thing. I do *think* though, that it's not an obvious thing that can simply be ignored. HUGE thanks for this correspondence! Nir.
@MarusykRoman
@MarusykRoman Год назад
why the last one is B but not C? what if structural is A, strategic is B, high effort is C and tradeoffs is D?
@mehdi-vl5nn
@mehdi-vl5nn 6 месяцев назад
Is Clean Architecture a Design Pattern?
@markrichards5014
@markrichards5014 6 месяцев назад
I think of it as more of a technique...
@HemalVarambhia
@HemalVarambhia Год назад
Perhaps a good architect may want to enable more design and less architecture. One feels this enhances agility, a quality attribute you talk about a lot.
@HemalVarambhia
@HemalVarambhia Год назад
On this, I had a thought: the published JSON schema for a domain event relied upon by clients feels architectural. If I wanted to rename a key, say, it is high effort for client and server. Then I use Kent Beck's Parallel Change, meaning a reduced effort, moving closer, even slightly, towards design. I can expand (c.f. your Building Evolutionary Architectures book) to support two names and then contract once clients migrate.
@studiousguy8138
@studiousguy8138 11 месяцев назад
It's called HLD vs LLD (both design lol)
@markrichards5014
@markrichards5014 11 месяцев назад
Or how about "Let's DESIGN an ARCHITECTURE" 🙂
@JonathanCrossland
@JonathanCrossland Год назад
highly subjective stuff.
@drissallaki
@drissallaki Год назад
I respect your opinion. But do you have a better alternative to distinguish between architecture and design?
@markrichards5014
@markrichards5014 Год назад
Indeed - that's why it exists along a spectrum. The best we can do is say it's either MORE about architecture or MORE about design, and go from there.
Далее
Lesson 166 - Space Based Architecture
9:56
Просмотров 6 тыс.
Lesson 137 - Rest vs. Messaging
12:40
Просмотров 10 тыс.
Почему-то хочется плакать
00:17
Просмотров 500 тыс.
ЭТО мне КУПИЛИ ПОДПИСЧИКИ 📦
22:33
What Software Architects Do That Programmers DON'T
12:51
Lesson 155 - Infinity Architecture AntiPattern
9:59
Просмотров 4,7 тыс.
Enterprise Architecture Vs. Solution Architecture
20:30
Lesson154 - Is an ESB Still Relevant Today?
11:03
Просмотров 4,6 тыс.
Software Architecture Tips I WISH I Knew Sooner
18:04
Software Architecture: The Hard Parts - Neal Ford
57:05
What does larger scale software development look like?
24:15