Right? So I liked writing the book.
Its kind of fair cop isnt it. Just in the time, weve been talking, theres been a thousand new JavaScript libraries created then destroyed. Because it all revolves around communication and empathy, right. But, you know, were a lot more complex that - well, Id like to think that were a lot more complex than that.
Im not saying SOLID is wrong.
I blog at pmichaels.net. So every time you change a line of code, by definition, youre changing the behaviour of the system.
Like, thats the kind of thing I mean, right? Excellent. And dont forget to spread the word, leave a rating or review on your podcatcher of choice - head over to dotnetcore.show/review for ways to do that - reach out via out contact page, and to come back next time for more .NET goodness. And Ill talk to you in your language, or well just sort it out, right? Because I often find that its the its speaking in metaphors and acronyms and things like that, that just, thats where the requirements get muddy.
Oh goodness, why did I write it this way?
Im a big fan of things like architectural decision records for that reason. Right? Yeah.
If you would like to help to fix this transcription, please see this GitHub repository. It's in a squeeze container with a sponge-type applicator on top (kinda like shoe polish). Its like, you know, its not like, Im gonna, Im gonna say its not like maths, and Im sure theres somebody who understands maths better than I do, will correct me on this.
Ive done that way too many times. And accounting is an event sourcing systen: you write down, this is what I sold, on a piece of paper, and then you might keep a balance, but you write down each individual transaction. Its been great catching up with you. And thats me greatly reducing BDD down to like, the smallest thing, right?
So what youre saying is working from home is not always the best solution. So you know, if you want to go down one of these routes, and then make sure you know what the price you pay in is. You can build the most secure system possible. Because it represents all of the changes that were made to the system since day zero, you can actually, like you can like an accountant can write, they can look back through their log of what has changed. Yeah. Its not you know, nobody cares if youre gonna dont make it; and half the time people do not win because of just like the funniest thing. I got three bottles of the stuff on the clearance aisle for $1 a bottle. The container says it's by 'Green Sneakers, Inc.' in Flenmington, New Jersey.
|advertise, Visit our platinum partners:
But yeah, so when I suppose the last couple of places that Ive worked at has made me think quite a lot about architecture. I've made lots of envelopes and have always used tombow mono adhesive - no problems with it holding. At some point, theres, theres about one of them things that are bottleneck. I have no idea where I got it from, most likely one of my local scrapbook stores. Because it might be that theres three or four different ways of doing something and they might be equally valid. If you would like to help to fix this transcription, please see this GitHub repository. Lets talk about this new book, right? But I did say that last time, so maybe it wont be. Because then youll find out that the problem isnt the problem is something else. Quite :-D My score is 6/7. I need to I need to re-read some Terry Pratchett actually. Yes, what Ive done is basically add a list of potential sort of avenues that that you could go down. Ive already done File New Project, right? Walk me through the physical activity of you writing your to do list or youre writing a report or whatever, walk me through that. So yeah, if youre just changing it for the sake of it then certainly, if youre ripping out a framework and putting another framework in, and at the end of it, the functionality is going to be exactly the same, because its a newer framework, or whatever it is, or then, yeah, youve got to ask yourself, why are you doing that? And so build me that spreadsheet or walk me through a physical like you said it right? So you might decide that actually, what I need is not sort of horizontally scaled system, what I actually need is some way to stop my existing system from crashing.
Whats the problem. So yeah, lets talk - you see, you mentioned earlier on, you got this new book out. And, I mean, you have to do the vanilla ice, but theres a problem and youve got to go solve it, right?
Since the time the system started. They go, okay, and now hes paying for it, you know, where are you getting these, these millions and billions of pounds or whatever? Along the way we covered ubiquitous language, living documentation, and keeping a log of the rationale behind why you made the decisions that you did when building your applications and how this can help other devs when they have the wtf moment while reading your code. But yeah the advantage you get is sort of scalability, the obvious disadvantage that you get there is complexity. Either of them.
And one of the interesting ones was a sort of travel app, if you like. So I kind of stick to the couple of languages that Im familiar with. And you can link to it. Was what it was. Its just that the sort of landscape that youre in is changed. Im just like, you have to have some kind of tolerance, right? Because if you dont know what the requirements are, then you dont know whether youve satisfied them, right?
And at some point, I think its worth backing off and going, oh hang on. And that all goes down to that wonderful skill that we definitely, definitely do all have right of requirements gathering. And thats even before you start architecting, the actual house, right? And rather than running a wire out the door, around the corner, and back into the other room, he drills a hole through the wall that passes the wire through; not realising that that wall is there to protect any radiation getting out of that room. And Im like, where does that get us? And I suppose its starting to sound like Im talking down on these architectures and saying theyre not necessary and they are necessary, but theyre not always necessary for everything. Not back of the envelope style conversation. Because I had decided I was going to use like security.
And I think thats thats the difference right? And the only way they spotted it was they saw the mouse moving across the screen. And then the one after that, This Is Really The Last One, Honest, and then youve got the beginnings of a trilogy, right? So yeah, I mean, thats basically the idea to sort of just play it through. So would this work in this situation? I thought, you know, I want to get this in. 2013-2022 MH Sub I, LLC dba Internet Brands. But what other so, is the book just event sourcing? So I thought Ill try and write someone architecture. I like it, you see that seems like its a non trivial, like you say, theres a non trivial problem to solve, right? And then back again and got the original, almost the original sound file out. Because you need to know who did what and when, and how it changed the system, right? Yep. So, you know, if a server side rendered, ASP NET MVC app works, use that. And they can say, ah, right, I can see where Ive made the mistake. Yeah, brilliant not a problem. You don't have to take on the world, just get on its good side. Dont be messing about with React unless you need React for a reason. It's a great product! Thanks for having me again. So I sort of investigate ways that you can, you can get around that. Well, you know, normally wed use something like SQL with an SQL style database, maybe SQL Server, maybe Maria dB, maybe Postgres or whatever. But then you shoehorn them into a solution that then takes three months longer than it should do.
Why did they consider doing this? I mean, maybe it might be a plastic one. A good glue stick should work just as well. Well, like I said, Paul, thank you ever so much. So I think weve been trying for a while to get people to do. They wont go near you unless youve got an actual architect; got a technical diagram; weve got all everything written out to spec, weve got a budget, weve got all that stuff. news|
And in some cases, you pay quite high price.
And a couple of times, obviously, intentionally, I kinda go down to a dead end, to sort of discuss a piece of technology. Do I get a gold watch or something? Cool. And without that technical drawing, I very much doubt that there are many construction companies will come anywhere near you. And when that the worst thing about what youve just said is when you look at our code, and you think oh, and then you do a git log and you think, oh is me. You know all the words and arrange them in a pleasing manner. But yeah, slip of the keyboard that says journalism stuff.
So Henry Ford said, if you would have asked my customers what they want, theyd have told me they wanted faster horses.. But like, how long will it take for me to build this system? But if you went back, like, I dont know, 30 or 40 years and suggested that to one of the guys programming away in sort of, you know, C, or assembler, or COBOL, or whatever it was at the time, and his database and his hard drive thats got like three meg[a bytes], and thats like the most that money can buy. Its so much more than that. Thanks. And so you can write an event source system, and you can store every event has ever happened to our system since its inception. And if that works, do that. Because, you know, when you do that, you end up with a whole new set of problems.
It was me. Ive been on like, five or six times. If this episode was interesting or useful to you, please consider supporting the show with one of the above options. I can't wait to use it! So yeah, I see what you mean about the sort of ubiquitous language. And specifically with I mean, I liked writing that first book, but one of the things I didnt like was the fact that it was when when youre writing about software that doesnt exist yet.
Well, thanks for being on the show. If if not as a job title. So what would the problem that I think youre trying to solve with, when you sort of implement something like that is to try to make something horizontally scalable. So yeah, its a its interesting. Yeah. Yeah, I mean, I think I think Ive said it last time, but I think this is probably the last technical book that Ill write. And this is the only way that really makes sense, given the constraints we have right now. And I feel like thats the important bit the, right now, bit. And like I said, all I did was watch. Well, not if the keys to the kingdom are at a machine in the office, and the only way of stopping people breaking in is watching it. So yeah, I mean, again, its a fascinating architectural sort of mechanism. Is it is it .NET? Yeah, I do like the gaining that breadth of knowledge of different systems gives you the idea, the experience to actually go, this is not right for us. Yeah, for sure. Yeah, essentially. Or, you know, maybe I just need to slow people down. forums|
So you know, youre geting there. Its interesting to run an interesting to watch. Awesome. And then if like me, youve got a memory like a sort of goldfish, then by the time it comes to somebody saying, okay, why did you do this? then even that question that needs to be asked, because its kind of self documented. But they were quite patient with me.
So yeah, I mean, my personal experience, I think all the listeners should check it out, because it is tonnes of fun. But if were speaking the same ubiquitous language, youre speaking the language of the business. Various things, CDs, DVDs, phones, whatever youve got. Or are there other things going on in there? And then translate into code is, yeah quite a interesting task. If you forget your fob or your PIN number, thats horribly inconvenient, right? I call it code churn; its risky. And not over engineering things is a bit of an art, I suppose. Just to try and do the requirements gathering bit, you know, what, what exactly as it were trying to do? The reason that I did this, and not the other thing was this. And then you just date it, and save it in your project.
I dont know. I need to go fix it. Yeah, I suppose the same could be said about, you know, using ASP .NET, or using Django in Python, or using whatever go uses, right? And indeed for them to get the book?
Terry Pratchett wrote in one of his - I think its a book called slip of the keyboard, which is a collection of some of his sort of newspaper articles from before he was an author, when he was a journalist.
For for the folks whove maybe not heard your previous episode, or are new to you and the experience that is Paul, I was wondering, would you mind giving us a really quick sort of overview, maybe an elevator pitch about, you know, the kind of work you do and all that kind of stuff? Because you tomorrow are going to be different to you today. A lot of that stuff was it takes a while to get your head around it. Hello everyone and welcome to THE .NET Core Podcast. The same with sort of microservices and so on, which are another one that are quite popular a minute, if you if you need a micro service architecture, then youre going to be feeling the pain, and youll know that you need it to solve our pain.
But sometimes thats not the right thing. Yes. Event sourcing is a manual, you know, we started as a manual system, and then accounting predates IT by thousands of years. Something went wrong. And they solve very important problems. And it is, like you said, its, its getting people to exercise those creative muscles to just like, solve a silly problem in a silly way or whatever. So lets talk a little bit about like, the stuff in the book then. Youre not just leaving comments for other people who work on the code, youre leaving comments, or youre leaving documentation for yourself, right? Yeah. Because these days, it is not easy to write something that SQL injection vulnerable because you basically fight in the software from every, every level. As are you, recently. What I really like about event sourcing, right, is the idea that you can literally rewind through time, right? At the end of the day, that is what we, you know, we solve the problem, but we need to know what the problem is to solve. If you sort of go through and say, well, how would I do this manually? Okay. And its, yeah, its a fascinating, fascinating place to be. But so when in America there was an I dont think it was a nuclear power plant. Right up until you hire John, the electrician, who needs to run a wire from this room into the next room. But you know, you might not be a guarantee that and so youve got to come up with a strategy of well, how do you deal with that? And so that, that conversation changes, but its the same. contact us|
I might my cehck that out by Terry Pratchett. I have tried it and it works great. Yoiure like author extraordinaire, over here, lets talk, lets talk about this. about
Give me this thing out of it. Im too old.
I have seen it at Archivers if you have one of them near you. And, you know, you may say the system is going to eventually catch up and sort of be be consistent across. But whether we are or not, we still have to deal with other people, right? But yeah, it was. Thanks for the updates! Because youre not like, you can, you can go back.
The item you've selected was not added to your cart. Because it can be prohibitively expensive in other ways. And best of luck with this new book. I guess it is, right? Yeah, and I suppose the thing is, it doesnt unlike, you know, obviously, I found this out because the room that Im starting at them, and it was, was an extension, so we have to get a technical architect. And again, Im not Im not making fun of those folks are the people who build those systems. This is right for us, right? One can never start too early on Christmas for sure! But sometimes, like you say, the best solution is, heres a piece of paper, heres a pen, or have you tried a spreadsheet? or, you know, lets just store all the data as a JSON blob in the database. Which will solve the problem faster? And I feel like too much work can be spent on engineering, the most elegant possible solution using all of the principles - that people take to be laws, but principles. I feel like thats a skill that like devs, and BAs, and clients and everyone needs to have: what do I actually need? And unless you, you know, like some absolute, god of programming, and even then, in front of probably mostly then, youre gonna make a mistake, youre going to not see something, youre going to not realise something. 's spring mini. And then the next person who comes along can see that youve sort of written down, you know, Ive explicitly thought about my decision to use Entity Framework over dapper, or Ive explicitly thought about the fact that Im using C# over Python, or you know, whatever decisions you make while youre writing your project, then you just basically write them down and keep them with your code so that people can sort of see that.
Because then youve got to explain to your boss, you got to let me in. And we all like sitting in our little cubicles, put the hoodie up to block out the world, put the soundproof headphones on and just sit there and just hack away. And then you just fix that one thing. And at the time, it was like, I think .NET Core 3.1 didnt exist at the time I was writing it. And for things like I mean, you know, just going back to event sourcing. But dont necessarily think its ridiculous when youre dealing with a software engineer.
And 80s. So if youve got your sort of CRUD app that youve just described, thats probably fine. And by that, I mean, you pay 3000 pounds to go to a conference, you furiously make loads of notes on things like CQRS, and domain driven design.
Because like Im being super vague, Im saying, like Im saying um, Im saying kind of, Im saying that a lot, right. So when you go to like a sort of what youd call an event driven architecture I suppose or microservice, however you want to sort of phrase it. It goes, user interface; service; database; interface. So thats pretty much me in about five sentences. Be sure to check out the show notes for a bunch of links to some of the stuff that we covered, and full transcription of the interview.
And, yeah, so its written in that. So if you take something like event sourcing to the concept of you store everything that happens to a system since its inception.
But and, you know, in some cases it can be so you dont have to obviously with with these things, you dont have to take everything, you dont have to sort of read the various, you know, books by the people who sort of suggest these things and then take everything that you say. And thats where that story exists. And yeah, so some of the worlds greatest security has always been beaten by some of the almost like the most low low level of not even a hack. View cart for details. That was my interview with Paul Michaels.
Spending weeks - or rather, maybe - spending days building interfaces to interfaces, to interfaces on the off chance that you swap something out, or using new to glue your system together because you need to get out the door today? And then we can talk spreadsheet together about you know, the charts that you want and the data you need to take in. But I think thats what DDD really solves. Like, my personal opinion, is DDD and ubiquitous language is a wonderful thing. I mean, Im very much a case of solve the immediate problem. Okay, so weve talked about distributed transactions. I think thats whats so important about like requirements gathering, I like the idea that, you said that for each section, or each chapter of the book, theres a problem. After we had finished recording, he passed along a discount code for his book. But yeah.
Join the party at Splitcoaststampers today! So I come up with these ideas that I think well come up with a thing to get people to do X. And at some point, somethings going to break. Because, you know, theres that stereotype of, were all nerds, and we all hate people.
It was amazing. I didn't realize it did post correctly on Friday doh!
Just so you kno, 20 minutes of mouse click in and youve got your box-box-cylinder. Michael's must have stopped stocking it because that's where I got mine. Thanks for having me. If you just come up with something thats just a laugh or a joke or whatever, everyone just laughs and jokes. So it doesnt matter how good a programmer you are, youre going to make a mistake at some point. Paul has recently published a new book on the subject called Software Architecture by Example: Using C# and .NET which covers CQRS, event sourcing, distributed systems, and distributed transactions, to name just a few. Because like event driven is like, I want a thing; go get me a thing, and Ill happily wait to hear that you got thing, right. Previous Issues, home|
In the same way, as you know, you would have worked with some pretty talented then solutions architects in sort of recent years, and, you know, sort of the way that they would analyse and that, suppose that that job title gives you a bit of space, I suppose. Like, all of them. Copyright 1995-2022 eBay Inc. All Rights Reserved. Because if youre the average software engineer, and somebody says, okay, heres a system, build a system, what youre essentially doing is youre architecting the system as your going. And I suppose its a bit different if you if you sort of messing about any bedroom, as opposed to, you know, actually going and getting paid for doing some of these things. Once youve satisfied all of those criteria, what youre saying is, you can now sort of, essentially run your business or do your thing, based on the system that youve got. And I think those are the two hardest things to get right in development. Yeah, we have. And they said when hell freezes over, and then they go back together that the hell freezes over tour. Otherwise, you get to spend your life pulling was left of your hair out going, why is it that it just doesnt work?. So, I mean, well, so first of all, whats the technology in the book? Weve talked about event sourcing. Get the Weekly Inkling newsletter
I may have just been spending 50 minutes moving all the way up to that pun, I do apologise. So pitched it to Apress, and they said, Yeah, were up for that. And then and then sort of started the journey. No, of course.
So dont read about football rarely, but you know, if like Manchester United are playing like Yeovil town, or something, they have various types of handicaps. Because like, exactly like you said, if youre building a house, you dont just start laying bricks and just let the chips fall where they may. Im not saying dont program to interfaces, but sometimes, you know, its like. I will see you again real soon.
Two minutes, okay, right, good. Its brilliant. Yeah. So, I mean, Ive covered a few other basically, its a kind of, its a list of problems, you know, we just we just talked about the to do problem, which is a well known and well solved problem - everybody needs to do and everybodys written one. And the solution that I came up with, I ended up using Service Bus as a transaction coordinator. And so if you get two numbers, and you need to add them together - and Im sure this isnt true, when you get a bit more advanced maths, but you know, Im going to say anyway. Yeah, a lot of that. It just just surprised me a little bit. And I suppose the thing about that is, if youve got a set of requirements, and these are the things that you need, in order to run your business, or whatever it is, Thats what you would call your sort of minimum viable product. Strong glue safe for kids to use? Basically, its a problem that for every chapter, so Ive made up a problem for every chapter. So if your problem is, I need a way of listing the tasks that Ive gotta complete in a day. And the the quickest and simplest answer to that is, heres an A4 sheet of paper and a pen. Then that cost you like I dont know, three or four quid and youre good to go. I am your host, Jamie GaProgMan Taylor. Ive often said that the customer, client user, whoever doesnt know what they want to the given what they dont want. And at what point does that become infeasible to kind of continue to do it manually? So you know, if youve got to do app, you know here is an a4 sheet of paper? Yep. So then I can understand why its written this way. And I like this idea of having this sort of living documentation with your app, where you saying, look, Ive thought about doing this way, Ive thought about doing it that way. If you can say its being considered and somebody wrote or I decided not to do it because of this reason. And we, you might have heard of the company, they sort of, in the whats known as the recommerce space. Yeah.
And how much investment does that represent?
So first thing Id like to say, Paul is thank you ever so much for being on the show again, because this is second appearance. But that might be in 10 years time. So maybe you can - I think Cloudflare did like a way like a waiting room now. Thats, I think thats a, an interesting method, a good a good process to follow to sort of go through and sort of think, you know, maybe thinking through in your head, or maybe actually sort of talk to a customer about what what would you do if you had to solve this problem manually. But it was pretty cool to write the proof of concept.
Right? One of the teams took like a sound file, converted it to a bunch of numbers, then converted those numbers into Japanese. So youve got to write software that sells widgets, at mini hack you havent gotta do that.
Yeah. Do not sell my personal information. So I like that idea. Obviously, a builder will not turn up unless youve got plans, and so on and so forth. Thats not true in software. You need to think, how long is it legitimately going to take me to build this? "Nobody made a greater mistake than he who did nothing because he could only do a little."
We had a guy that was judging it was been on the board or something that the OWASP board and he sort of one of the team produced a SQL injection attack, because we said, you know, write something thats vulnerable, and he was like our kudos for, for actually doing that. At the end of it. Right?
Or are these just, youve thought of these problems, and they could be solved with these different architectures? What would it take?
And I also write a blog when Im not doing that. I suppose the one of the things that I suppose its, its worth mentioning is the sort of concept of a minimum viable product and what that means. I've been playing with my SU envelope template and was wondering if anyone else can give me some tips. I think there is going to be envelope glue in Stampin' Up! Youll have to do app which talks to a message queue, which has a dead letter queue, and an active and an un-active queue and, like a sharded database. If its a software system, if its a building, if its whatever, right. Youre a fellow who cares about free time in person then? Thats not event driven is it? Yep.
The Waffling Taylors - a fortnightly discussion podcast about video games. I'm @purpleponyart on Twitter and @calzephyr77 on Insta. And, you know, have you ever seen theres a Java repo, and its brilliant. We pride ourselves on being great hosts, but guests have limited access to some of our incredible artwork, our lively forums and other super cool features of the site! I like it. You can only get the discount code by heading to the show notes for this episode and scrolling to the bottom of the transcription. The above is a machine transcription, as such there may be subtle errors.
I am in Maryland. So when I said if a write something else, and Im going to do a, Im going to do like a topic that doesnt have a time and date associated with it. Youll just have oh, I made that decision yesterday.
Yeah, and finding that problem is quite often hard because you get this system where you, you ask somebody what is it the problem that youve got, and they start, that you know, typically youll get a effectively a solution so I suppose its that sort of the same thing is when you go to the doctor and it like, whats wrong with you? I dont know whats wrong with me thats why Im here., My hurts when I do this. Well, dont do that, then., But yeah, but its kind of human nature. Yeah, thats probably the best way of getting in touch with me. But then, like, what do you do when it changes? Its enterprise HelloWorld. Like, maybe not for an e-commerce website, perhaps or maybe not for it to do, right, storing every single event that happens in it to do probably not the greatest idea. This is almost like a scale of importance, right? I think it might have been a water treatment plant or something. I forget which story it is, but its one of them and its really good. Like are there other architectures in the book? So they always come up with something thats different, but in most cases, better than I kind of anticipated, because its just the weird and wonderful things. Because last time you were on the show, you had a new book. And thats a non trivial task, right? But maybe e-commerce is great for this. Fun stuff! Yeah, I think there was some very strange, very strange things. And you store normalised data - thats data is partitioned across tables - you know, and it has keys everywhere. So if you can replicate the service and the database that people are using, then you can obviously increase the number of people using it.
- Do Ear Candles Help Clogged Ears
- Electrical Timer Switch Outdoor
- Reusable Wrinkle Patches
- Williamsburg Hotel Loft Suite
- Cricut Maker 3 Cutting Tools
- Alo Yoga Accolade Sweatpants
- Rice Grain Name Necklace
- Turn Up Trousers Women's
- Beautybio The Complete Glo Microneedling Set
- Golden State Warriors Pencil Case
- Supplies Needed To Start A Sticker Business
- Mens Burton Gore-tex Reserve Bib Pant
- Franconia Inn Snowshoeing
- Stanley Shop Vac Accessories 1 7/8
- Shindaiwa T20 Ignition Coil
- Barbie Mermaid Party Decorations
- All White Gauntlet Motorcycle Gloves
この記事へのコメントはありません。