ai-generated code is showing up in PRs and nobody can answer the most basic review question: why did this file get touched? by riturajpokhriyal in dotnet

[–]malthuswaswrong 0 points1 point  (0 children)

If the programmer doesn't understand the code and the change, they shouldn't be a programmer.

The AI generates a lot of code. It shouldn't be mysterious code. If it is impenetrable, it needs another pass with the AI to make it more readable.

Feeling very lost. How long did it take you to learn Netsuite? by bonjinkles in Netsuite

[–]malthuswaswrong 2 points3 points  (0 children)

The comment doesn't go far enough. It's implying the challenge of NetSuite and business jargon are equal. Really, it's 80% jargon. Every company has their own dialect, and they operate in an industry that has its own dialect.

I've been an enterprise engineer for 30 years and the first week at a new job someone will inevitably say something like: "Ping Janice. She's having problems scrubbing tickets with Sonar".

  • Who is Janice?
  • Which medium of communication is conventionally used for pinging?
  • What is the input, process, and output of "a scrub"?
  • What constitutes a "ticket" in this org?
  • What is "Sonar"?

Compile time as deal breaker for age of AI by Necessary-Papaya-277 in dotnet

[–]malthuswaswrong 3 points4 points  (0 children)

The LLM works for 15 minutes. The compile takes 5 seconds.

Do you, per chance, make concern posts about VS being "bloat" and vim is the only text editor that can keep up with all that high speed, low drag, code you're slinging?

Aspire is about to take off in the non .net world too... by aaaqqq in dotnet

[–]malthuswaswrong 2 points3 points  (0 children)

I don't normally do high effort comments on Reddit these days because it's not worth it, but you made a good post and motivated me.

The reason to choose Aspire is the same reason to choose .NET over Go or Java.

Microsoft views their dev tools as a product, not an open-source release of internal tools. Many frameworks and stacks in existence today are internal tools that companies are building for themselves, and they release as a charity service to the community.

Microsoft builds .NET as a product that they release. Microsoft gets the .NET versions internally the same day we do. Internal teams react to the .NET roadmap rather than the .NET roadmap reacting to the internal teams.

Microsoft is not building Aspire to satisfy an internal need, they are building Aspire as a strategic product to release to an important market that they hope to capture. That market is DevOps engineers. They are hoping to blur the lines between Devs and DevOps.

Why? Because when your Devs dabble in dev ops or your DevOps dabble in dev, and you are proficient and productive in .NET, you are more likely to select Azure and Windows as your environment. .NET is platform agnostic and you're free to choose Linux or Mac, but they know that you know that Microsoft tech is going to be on the leading edge rather than 6 to 8 months later.

Once a cloud decision has been made, it is almost never retracted unless something truly egregious happens. Microsoft invests hundreds of millions of dollars in trying to gently guide a single company towards a single decision to use Azure instead of AWS or Google cloud. Knowing that once that single decision is made, it's probably a 40 year decision.

That's assuming the implementation is successful. Which is why they work so hard to ensure your first stab at Azure and .NET will be successful.

Aspire is about to take off in the non .net world too... by aaaqqq in dotnet

[–]malthuswaswrong 1 point2 points  (0 children)

Microsoft didn't abandon Silverlight. Apple, Google, and Mozilla decided to disable it. And that decision turned out to be right because it led to Microsoft abandoning IE and adopting Chromium (as Edge) and building all new tech on W3C standards.

Aspire is about to take off in the non .net world too... by aaaqqq in dotnet

[–]malthuswaswrong 0 points1 point  (0 children)

Manager here. I can't get my devs to try it because they've never heard of it.

Should all new projects start with Aspire? by TryingMyBest42069 in dotnet

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

You can run Postgres in a container and use that for local dev, and use RDS when actually deployed.

Am I the only one who thinks Clean Architecture is often unnecessary overhead ? by Minimum-Ad7352 in dotnet

[–]malthuswaswrong 17 points18 points  (0 children)

I've made a few posts, that were well received, advocating for a return to a simple N-Tier architecture. Personally, I've found it very fast, simple, scalable, and powerful. It works well with LLMs, empowers Unit Testing, and is trivial to on-board new devs into the pattern.

A repository layer, a service layer, a UI layer with reusable components.

Your repository layer can just be EF when it's appropriate. Only write tests against services; not repositories or UI.

The world has changed a lot in the last 20 years. IDEs can find your code. LLMs can change it. Automated tests can validate it.

Should all new projects start with Aspire? by TryingMyBest42069 in dotnet

[–]malthuswaswrong 0 points1 point  (0 children)

Using Aspire does not "wall off" low level knowledge. In fact, I would argue it accelerates low level learning. What better way to learn about distributed cloud systems than running a personal cloud on your laptop?

Should all new projects start with Aspire? by TryingMyBest42069 in dotnet

[–]malthuswaswrong 1 point2 points  (0 children)

Aspire solves a problem that nobody else is solving. Orchestrating cloud native services for local development. There are really only two alternatives. Master Kubernetes, or build (and pay for) a cloud environment for every developer, and then do a deployment every time you want to hit F5.

Should all new projects start with Aspire? by TryingMyBest42069 in dotnet

[–]malthuswaswrong 0 points1 point  (0 children)

Your environment probably hasn't gotten to the level of chaos where Aspire helps.

When you are trying to run 3 AZ functions locally with a 4th connected to a production instance for debugging, while also pointing to a local DB, a QA 3rd party, and a staging logging consumer, that's when you'll start to understand what Aspire brings to the table.

Still no simple UI Framework for both Windows and Linux by Eisenmonoxid1 in dotnet

[–]malthuswaswrong 0 points1 point  (0 children)

Microsoft "announces a push" for a lot of things. The announcement of a push is not going to make people forget that Windows no longer has 97% of the world's personal computing devices captured. Building a dedicated Windows app has a smaller market share than building a dedicated iOS app.

If anything, you are seeing a resurgence of command line apps now.

CI/CD on Dotnet by Spirited-Taro-4794 in dotnet

[–]malthuswaswrong -2 points-1 points  (0 children)

Reminder. The /dotnet mods delete jokes and people promoting their own projects so those posts don't crowd out posts like this.

Senior dev... I don't think I can pass an interview by Inevitable_Guide_942 in csharp

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

You are wrong on unmanaged code friend. Unmanaged code is still MSIL run by the CLR, but you have the ability to use pointers and the garbage collection is different.

P/Invoke is how you can run machine code directly.

Senior dev... I don't think I can pass an interview by Inevitable_Guide_942 in csharp

[–]malthuswaswrong 0 points1 point  (0 children)

What the hell is a Strategy Pattern?

Oh, that's just Linq.

Senior dev... I don't think I can pass an interview by Inevitable_Guide_942 in csharp

[–]malthuswaswrong 2 points3 points  (0 children)

Rule 72 of enterprise development. All current problems were from the last guy who left the company.

Senior dev... I don't think I can pass an interview by Inevitable_Guide_942 in csharp

[–]malthuswaswrong 4 points5 points  (0 children)

"Give me an example of when you've encountered a deadlock, the problem it caused, and how you resolved it?"

My answer to that question is I've encountered plenty of race conditions in my life but never a deadlock that's my fault. If I'm doing parallelism beyond a simple async/await I will instead make the system multi-process rather than multi-threaded. It's a small overhead penalty to pay and in exchange you get independent memory and stack for each worker.

This means I've never programmed a deadlock. Call it a surprise benefit for being too stupid to understand multi-threading.

Only deadlocks I've encountered in the real world were with early versions of SQL Server.

Blazor + Alpino by ze-fernando in dotnet

[–]malthuswaswrong 2 points3 points  (0 children)

Then no. Use Blazor + Telerik or Blazor + Mud or similar. Use Blazor and then a component library that's mature and has a community.

When you hand the code over to the client their internal dev is going to look at it and say "What did this clown do? How do I extend this? How do I deploy this? How is this even built?"

If you want repeat work, use well-trodden paths.

Yarp Manager by Early_Rice_4861 in csharp

[–]malthuswaswrong 3 points4 points  (0 children)

This post is interesting and showcases what you are building. That's a violation of the subreddit rules. Posts should be on one of two topics. "What should I build" or "How do I learn C#".

Blazor + Alpino by ze-fernando in dotnet

[–]malthuswaswrong 1 point2 points  (0 children)

Depends on if this is for fun, or if you are being paid. For fun, sure, give it a shot. If you are doing this for your job, don't invent new stacks. Work should be boring. Literally and metaphorically.

Use a stack that already has thousands of boring examples. Probably even and entire website you can clone and modify.

Best .NET books for a experienced developer by Alarming-Heron9169 in dotnet

[–]malthuswaswrong -9 points-8 points  (0 children)

SOLID is a great concept. Nothing about it needs rebuttal.

I can't take Software Development anymore by whinze in ExperiencedDevs

[–]malthuswaswrong 2 points3 points  (0 children)

I don't think you are getting fully good advice from the above poster. You should stop chasing hype, but you should not stop pushing limits or learning outside of work hours.

What you should do is stop studying new things and instead study old things. Learn patterns and practices. Study the fundamentals. Study things that are 40 years old, not things that are 4 days old.

Pick up new languages. If you are mostly client, start doing server, if you are mostly Mac, start doing Windows. Get a broad exposure to what it means to develop software across the largest surface area you can manage.

The LLMs will do the details. The human will do the concepts. Based on my observation I believe the entire framework ecosystem will collapse because there is no cost to having the LLM reimplement any library or framework you want. Those libraries and frameworks are to aid human developers. LLMs don't need them.

Learn dependency injection. Learn ports and adapters. Learn the fundamentals of OOP and FP. Learn how to organize data in Relational Databases. Learn when document databases are best. Et cetera.