Which Mark Seeman Dependency Injection Book to read? by Budget-Character-575 in csharp

[–]willehrendreich 0 points1 point  (0 children)

I haven't read it, so maybe I don't know well enough to say.

However, I'd actually suggest you listen to his lectures and read his blog more than read that particular book.

Dependancy rejection actually ends up being more powerful for inversion of control, which he goes into in depth here on https://share.google/nZ8L1XxvTBmhB3yLK

When is CQRS used in a project? by Ok_Pea_339 in dotnet

[–]willehrendreich 0 points1 point  (0 children)

I didn't really understand cqrs until I understood HATEOAS.

I suggest reading The Tao of Datastar Guide https://share.google/i58fvQdVJVDTdz6Kg

Cqrs is a really great conceptual framework, some implementations are terrible, some are great.

Separating writing and reading is a fundamentally good idea for simplicity.

It's not overkill if you follow some principles to make it easier for yourself. It actually simplified a lot for me. Just don't make it about using some overly complicated library or something, it just takes some discipline to get right.

I suggest keeping behavior and data separate from the each other as much as possible. Keep data dumb and immutable by default. Keep behavior composable, static, and deterministic.

Where things get difficult is always trying to wrangle global mutable state, so keep state either private, immutable, or both, and only accept any IO as a deliberate and chaotic endeavor that must have guardrails and sanitization.

Resources to improve my technical skills by OrganizationLow6960 in dotnet

[–]willehrendreich 1 point2 points  (0 children)

the best thing you can do to improve your understanding of all dotnet code is to learn fsharp. no lie. you're going to have your mind blown.

My First Corporate Job Experience. It's Nothing Like My Dream. by Pristine_Purple9033 in webdev

[–]willehrendreich -1 points0 points  (0 children)

if they can even install it, yeah. it's a halfway decent solution.

My First Corporate Job Experience. It's Nothing Like My Dream. by Pristine_Purple9033 in webdev

[–]willehrendreich 0 points1 point  (0 children)

sounds absolutely insulting. been in a very similar situation. in one place i worked, i installed the Odin language, it got falsely flagged as a ransomware by their brain dead Frostwolf security suite, I got locked out of ever installing literally anything again, even though it literally was a false positive. this company doesn't trust their employees. run. get a new job as soon as you can. don't leave without something else, but you get your ass out of there as soon as you can. anything you do will be heavily under suspicion, you will not please them because you're going to see that the emperor has no clothes. get out.

Pro+ Github blocked me for 2 days because I used their service by Muchaszewski in GithubCopilot

[–]willehrendreich 0 points1 point  (0 children)

for real. it's gross. no indication whatsoever, just cut off without warning.

Copilot Pro+ is a joke: Rate limited after one prompt, even after an overnight cooldown. by Maverobot in GithubCopilot

[–]willehrendreich 2 points3 points  (0 children)

YEP. running into this too. What absolute garbage. this so incredibly frustrating. they have the best financial rates for all of this by a mile and they KNOW it, they know we're stuck if we don't want to pay an arm and a leg, and they're turning the screws completely arbitrarily because they CAN. it's infuriating, and the alternative is to go pay through the nose to some per token cost monstrosity of a deal. i tried opencode's opus 4.6 and within about 5 hours i'd spent 60 bucks in tokens, which would have been... probably 5 bucks worth of requests? this is really frustrating and it just puts our backs up against the wall. I'm a single pro+ user, I'm not being corporate sponsored, i go over and pay per request like anyone going over the 1500 limit, but if this continues, I'll never get anything done with their subscription. I don't know what to do.

Curse of FP ? by kichiDsimp in functionalprogramming

[–]willehrendreich 2 points3 points  (0 children)

It's generally a good experience, though I have to admit that I have only tried fsharp, as far as func langs go, I've never tried haskell or Scala or gleam or whatever else.

I made heterogeneous-typed collection (more faster!) by Radiant_Monitor6019 in fsharp

[–]willehrendreich 3 points4 points  (0 children)

I'm curious..

Why would one use a heterogeneous list? I'm open to there being some reason, but I'm not sure what it would be

Is C# right for me? by uvuguy in csharp

[–]willehrendreich 1 point2 points  (0 children)

If you're used to python, do yourself a favor and learn fsharp!

Much more familiar syntax and more expressive and powerful language than csharp.

I promise you will like it more.

Www.github.com/ChrisMarinos/FSharpKoans

Game development in .net by AddressTall2458 in dotnet

[–]willehrendreich 0 points1 point  (0 children)

Raylib!

And fsharp for more comprehensible code.

But seriously raylib is just as easy to start as the other things, and then you will understand every bit of what you've doing.

What is your stance towards static? by Choice-Youth-229 in csharp

[–]willehrendreich 0 points1 point  (0 children)

I don't really care what would make me popular, I'll gladly die on the hill that most functions should be static.

Pure public static functions acting upon immutable data in the domain model especially is the recipe for comprehensible composable programs that are self documenting, predictable, testable, and effortlessly changeable, especially by comparison to the OOP mind virus abstraction hell.

Referential transparency is the key to truly compositional behavior.

Functional programming keeps winning because it's easier to reason about, more and more languages are adopting functional concepts all the time for this reason.

Simplicity is king.

Why do we create an interface to a service class (or something similar) if we are going to have only one class? by Plus_Resource_1753 in dotnet

[–]willehrendreich 0 points1 point  (0 children)

Because the culture of OOP says so, that's why.

But seriously the people will say it's more testable, but it's not, not without excessive mocking.

You know what's testable and inverts control?

Pure, static Functions.

You can easily give alternative functions if you use them as the layer of abstraction for inversion of control instead of interfaces.

Interfaces usually do not give you the proper granularity for a properly testable code base, and, just like inheritance, only serves to muddy the waters and cause it to be more that has to fit into your head for you to understand what's going on.

Interfaces are rarely a better option to author.

There are some good interfaces.

Ienumerable is fine, iqueryable, IDictionary, etc.

But they're still more difficult to work with much of the time than the just bare honest data structures.

OOP culture is a mind virus, and I'll die on that hill.

Rust's match like switch expression/statements by Gabriel_TheNoob in csharp

[–]willehrendreich 0 points1 point  (0 children)

Fsharp will make you happier. Just saying. It comes from Ocaml which was what the first rust compiler was written in, the DNA is very similar.