Devon Burriss
2.1K posts

Devon Burriss
@DevonBurriss
An avid Domain-Driven Design practitioner and a closet functional-programmer, I spend my free time writing F# code and planning how to sneak it into production.
The Netherlands Katılım Mayıs 2011
201 Takip Edilen291 Takipçiler

@VaughnVernon @starkovv @ericevans0 @metayoda @ExploreDDD Interestingly, in ep 8 of Software Engineering Radio, @ericevans0 talks about why it’s more than just patterns. If I recall correctly, the interviewer also focused on the patterns initially.
English

Taken alone, the "pattern language" misses the point of #DDDesign. It is factually a pattern language, @metayoda asserted a few days ago when we spoke at @ExploreDDD. But the breadth of especially the strategic modeling patterns is greater than the sum of the parts. That's what I spent the first three chapters explaining and exemplifying.
English

@mhmd_hmdy @fibonaccital Ironically, class.
Theoretically, not too much. Practically, it’s a different language family that promotes a different paradigm. Importantly, this pushes you to think in a different way.
You are always free to think in a different way, but sometimes you need a push.
English

@fibonaccital What can it offer over C# and VB .NET?
English
Devon Burriss retweetledi

@demiurgently Grokking Simplicity is an awesome practical read for better organization of code.
English

@ahmedsohail @ReelRotation27 This sounds very similar to what triggered it for me too. Another confounding factor for people raised in mostly secular homes is they don’t actually take faith seriously. They don’t understand it’s not just ceremony or philosophy. It’s your whole being. Your soul(imagined).
English

@mattbarcomb @refactorfiend Ha. I’ll add it to the list of articles I may one day write.
Yesterday I was discussing the merits of Continuous Delivery. The person was skeptical. Turned out their background was on trading platforms. That helped me appreciate his skepticism.
English

@sergey_tihon @moergo_keeb I built this one, a Corne Sweep and am waiting on a Dygma Defy. I’m interested how you find the well.

English

Thank you for all your replies! I decided to go with @moergo_keeb Glove80s with Red Pro low force (35gf) switches #glove80 moergo.com/collections/gl…
Sergey Tihon has gone to BlueSky@sergey_tihon
Do I know people who use Kinesis Advantage360 Pro? Tell me why I should not buy it. #kinesis #Advantage360
English

@7sharp9_ @keshet_ohad I’m wondering if this was directed at fsharp or ocaml. Both works I guess.
English

@alexbunardzic @Zhuinden Scrum. Typically they mean scrum by the book.
English

@Zhuinden They typically think that agile is twice as much in half the time.
English

@prosonf @milan_milanovic I think that is a good intuition. Unit is vague (I dislike using it) but this focus on tiny tests is what has given testing and TDD, at least in part, a bad rep. 10 years ago I would agree with this list. Now maybe 6.5/10 with some caveats.
English

@milan_milanovic Very interesting. Do you have any more specific view on what to treat as a unit?
For me the best is unit of behaviour, but usually in most of the companies I've worked in it was more like every public method in a class.
English

𝗨𝗻𝗶𝘁 𝗧𝗲𝘀𝘁𝗶𝗻𝗴 𝗕𝗲𝘀𝘁 𝗣𝗿𝗮𝗰𝘁𝗶𝗰𝗲𝘀
Unit tests are software testing where individual units or components of a software application are tested. Unit testing aims to validate that each software unit performs as designed. Unit tests ensure code quality, and ease of maintenance, facilitates refactoring, and increase development speed.
When we talk about best practices, here is a list of that one should follow:
𝟭. 𝗪𝗿𝗶𝘁𝗲 𝗮 𝗻𝗲𝘄 𝘁𝗲𝘀𝘁 𝗳𝗼𝗿 𝗲𝘃𝗲𝗿𝘆 𝗱𝗲𝗳𝗲𝗰𝘁: When you encounter a defect, write a test that exposes the defect. This is also known as regression testing.
𝟮. 𝗞𝗲𝗲𝗽 𝘁𝗲𝘀𝘁𝘀 𝘀𝗺𝗮𝗹𝗹 𝗮𝗻𝗱 𝗳𝗼𝗰𝘂𝘀𝗲𝗱: A unit test should be limited to an individual function or method. This makes it easier to identify and fix problems when the test fails.
𝟯. 𝗜𝘀𝗼𝗹𝗮𝘁𝗲 𝘆𝗼𝘂𝗿 𝘁𝗲𝘀𝘁𝘀: Make sure each test is independent of all the others. This allows you to run each test individually and in any order.
𝟰. 𝗢𝗿𝗴𝗮𝗻𝗶𝘇𝗲 𝘆𝗼𝘂𝗿 𝘁𝗲𝘀𝘁𝘀 𝗯𝘆 𝘁𝗲𝘀𝘁 𝘁𝘆𝗽𝗲: You can organize your tests by the type of object they are testing or the type of test they are. This makes it easier to find and run related tests.
𝟱. 𝗧𝗲𝘀𝘁 𝗼𝗻𝗲 𝗰𝗼𝗱𝗲 𝗽𝗮𝘁𝗵 𝗮𝘁 𝗮 𝘁𝗶𝗺𝗲: Each test should verify one specific code path through a method. This makes it easier to understand what is being tested and why a test might fail.
𝟲. 𝗔𝘃𝗼𝗶𝗱 𝗹𝗼𝗴𝗶𝗰 𝗶𝗻 𝘁𝗲𝘀𝘁𝘀: When you put logic into your tests, you risk introducing bugs into your tests. Keep your tests simple.
𝟳. 𝗔𝘃𝗼𝗶𝗱 𝘀𝘁𝗮𝘁𝗶𝗰 𝗺𝗲𝘁𝗵𝗼𝗱𝘀 𝗶𝗻 𝘆𝗼𝘂𝗿 𝗰𝗹𝗮𝘀𝘀𝗲𝘀 𝘂𝗻𝗱𝗲𝗿 𝘁𝗲𝘀𝘁: Static methods can't be overridden in subclasses, which makes them difficult to test. Avoid using static methods in the classes you are testing.
𝟴. 𝗔𝘃𝗼𝗶𝗱 𝘁𝗲𝘀𝘁𝗶𝗻𝗴 𝗶𝗺𝗽𝗹𝗲𝗺𝗲𝗻𝘁𝗮𝘁𝗶𝗼𝗻 𝗱𝗲𝘁𝗮𝗶𝗹𝘀: Your tests should focus on the behavior of your code, not its implementation. If you test implementation details, your tests can break even if the behavior of your code remains the same.
𝟵. 𝗪𝗿𝗶𝘁𝗲 𝘁𝗲𝘀𝘁𝘀 𝗳𝗼𝗿 𝗺𝗲𝘁𝗵𝗼𝗱𝘀 𝘁𝗵𝗮𝘁 𝗵𝗮𝘃𝗲 𝘁𝗵𝗲 𝗺𝗼𝘀𝘁 𝗶𝗺𝗽𝗮𝗰𝘁 𝗳𝗶𝗿𝘀𝘁: Focus your testing efforts on the methods that impact your application most. This typically includes methods containing complex logic or interacting with external resources.
𝟭𝟬. 𝗨𝘀𝗲 𝘁𝗵𝗲 𝗔𝗔𝗔 𝗽𝗮𝘁𝘁𝗲𝗿𝗻: Arrange, Act, Assert is a typical pattern for writing unit tests. The Arrange section of a unit test method initializes objects and sets the data value passed to the method under test. The Act section invokes the method under test with the arranged parameters. The Assert section verifies that the action of the method under test behaves as expected.
_______
If you like my posts, please follow me, @milan_milanovic, and hit the 🔔 on my profile to get a notification for all my new posts.
Grow with me 🚀!
#technology #softwareengineering #programming #techworldwithmilan #testing

English

@MartinDotNet I must admit. I have seen people commenting on how this should be the case. I have not seen anyone in public or private announcing that they have left the cult.
I often find myself saying “your tests should know about behavior or your code, not the structure”
English

@refactorfiend Amen. I don’t care about quality gates. I care about quality trends. If your software is not getting better week after week, it is decaying (even if you are not making changes).
English

@dustinmoris Unless companies change with the new situation, productivity can still go down, depending on the company culture. Most people want to be productive though. Moving to async workflows allows people space to focus, and organize life for what works for them.
English

@dustinmoris I was talking to people about this this week. The thing is, meeting rooms can act as a constraint (no Self respecting Nederlander is staying after 5 for a meeting). No room, no meeting. Now people can just book a call without the constraints of a room. It can be worse.
English

@dustinmoris My default now is upgrade only to X.1 or whatever is out 6 months after an LTS release. The rest is just yak shaving
English

@tottinge @alexbunardzic Thank you! I was sliding into depression reading the comments. I suppose it’s Twitter, shouldn’t surprise me.
English









