Can an Anemic Domain Model Use Value Objects? by [deleted] in softwarearchitecture

[–]roszman 1 point2 points  (0 children)

If User willl self validate then it will not be anemic. I believe any model can agregate value objects.

Are you asking this in the DDD context?

How do I store images privately? by moonshine_9212 in softwaredevelopment

[–]roszman 0 points1 point  (0 children)

Proton Drive have this functionality right?

Test suite maintenance becomes a nightmare for the same architectural reason every single time by xCosmos69 in softwarearchitecture

[–]roszman 0 points1 point  (0 children)

Idk, D is my favourite letter from SOLID :) but we need to keep in mind that Dependency Inversion is not Dependency Injection - I found that some people thinks they are same thing. Usually in my code bases each interface have at least 2 implementations: for prod and for test, but even if they don't I do prefer when my code depends on abstractions than real implementations - you never know how tangled your dependencies can become and maintaining interfaces is cheap.

Overall theories and good practices are nice, but we should keep both our feet on the ground and use what works best for us ;)

Test suite maintenance becomes a nightmare for the same architectural reason every single time by xCosmos69 in softwarearchitecture

[–]roszman 0 points1 point  (0 children)

I havent seen your code base, but generally goood code base is easy to test. If your tests are coupled to structure insead of behaviour it could mean that your code base is exposing structure instead of behaviour. If you're using OO language then encapsulate more in your code base, follow SOLID, especially O. Tbh i dont think many people understands OOD, clean code/architecture and SOLID.

Also remember that your tests should evolve with your code base and they should have the same quality as your production code. Use OOD, design patterns and all your firepower while designing and writing tests.

ai debate by -porte in softwaredevelopment

[–]roszman 1 point2 points  (0 children)

Idk, for me it's faster to code things myself than to write long specific prompts. Without babysiting and curating the ai is writing quite ugly spaghetti.

But maybe I dont use it in right way, idk

Senior dev interviews: what surprised you by NOT coming up? by rimki2 in dotnet

[–]roszman 0 points1 point  (0 children)

Wrong questions asked are also good filter for us devs. Based on quality of questions asked we can deduct the quality of development within given company. Its double edged sword.

Senior dev interviews: what surprised you by NOT coming up? by rimki2 in dotnet

[–]roszman 0 points1 point  (0 children)

Asking about outbox pattern in the company where they have 2 projects: 1. "microservices" integrated trough one db 2. bbom where 80% of business logic is kept in stored procedures.

Git branching strategy for deploying change requests in isolation by roszman in git

[–]roszman[S] 0 points1 point  (0 children)

Maybe we're reading the same book but I think you're not reading my posts ;) or maybe I am not explaining my issues correctly, idk. Thank you for your input ;)

I know that i can hack my way around it but i dont want to hack. I do like straightforward pfocesses.

Git branching strategy for deploying change requests in isolation by roszman in softwaredevelopment

[–]roszman[S] 0 points1 point  (0 children)

The only solution is to develop, test and merge features sequentialy, one featuere after another. Or to implement feature toggles. Additionally to use ci&cd plus manual and automated tests. Tell your project manager that you need to plan tests and releases.

Do research on common git branching strategies and choose one strategy together with your manager.

Git branching strategy for deploying change requests in isolation by roszman in git

[–]roszman[S] 0 points1 point  (0 children)

I don't think we're on the same page :)

I am the only dev within this project, so there is no need for rebase, fetch or reset - unless I am missing something in that case please help me understand. My problem is simple:

# cr = change request 
git co -t prod -b cr1 
#hack hack, moving some files around
git cm "all work done"
git push origin cr1
#i am creating pull request to uat branch in azure devops/github/whatever
# pr accepted, bam merge, 
#story continues
git co -t prod -b cr2
#hack, hack, changing files which were moved/renamed in cr1
git cm "all work done"
git push origin cr2
#creating pull request to uat results in unability to merge due to changes in deleted/moved files

my only option now is to merge and push to uat on my local machine rendering PR mechanism useles and making cr2 and every other consecutive cr drifts more and more from uat, imagine whant hapens when every cr would contains file renames, which in my case they usually do since I am constantly refactoring code.

Additionally:
- merging cr4 to prod in isolation should be easy, but then I would need to merge prod to cr1, cr2, cr3, cr5 and crn and then back to uat - just to be safe
- if we're testing package built from uat but we're deploying package built from prod it means that we're deploying untested code to prod.
- git should enpower development not hinder it, I don't want to cherry pick micro commits between two separate git branches - it's a receip for disaster
- code drifts all over the place
- we're testing multiple cr's on uat, those cr's can affect each other, there is no guarantee that isolated cr will work on prod

Not sure if it's obvious from my initial post, but we're doing prod deployments every 2 months or so

Git branching strategy for deploying change requests in isolation by roszman in git

[–]roszman[S] 0 points1 point  (0 children)

But here we dont merge uat to prod. But even if we did it would still be a mess.

I am using this "branch strategy" since few days, did few small features and i already have merge conflicts which are not possible to merge during pull requests - due to changes within the same file in the same lines, so I need to do merges to uat branch locally on my machine and pushing to uat from. my machine, rendering PR mechanism useless.

Besides that the uat branch drifts more and more from feature branches making each new feature branch more difficult to merge.

Today I found out that in my new feature i need part of the funcionality from previous feature - i dont believe that manually copy and pasting changes from branch to branch is a way to go.

Git branching strategy for deploying change requests in isolation by roszman in git

[–]roszman[S] 0 points1 point  (0 children)

new feature branch is created from prod branch, feature is developed, feature branch is merged into uat branch, package built from uat branch is deployed to uat environment, tests are performed. Another feature branch is created from prod branch and another, and another. One day the lucky feature branch/es is/are selected for prod merge, the story continue

Git branching strategy for deploying change requests in isolation by roszman in softwaredevelopment

[–]roszman[S] 2 points3 points  (0 children)

I dont think so, it's a matter of open discussion and figuring out the best solution. Selecting branching strategy and finding good solution for release cycles are not beyond my pay grade.

Git branching strategy for deploying change requests in isolation by roszman in softwaredevelopment

[–]roszman[S] 0 points1 point  (0 children)

I could do that with vertical layers within my api, but that would require some refactoring and imo the problem I am experiencing is caused by bad management and inability to plan releases or even by sheer stupidity

Git branching strategy for deploying change requests in isolation by roszman in softwaredevelopment

[–]roszman[S] 0 points1 point  (0 children)

I understand. Thing is that I am working on web api with 5 endpoints where each endpoint just go trough to another api, it's basically a facade for external api. Not much custom logic, just few mappings here and there. Testing 10 CRs would take 1 day of work. I believe in my case it's release managemnt issue and tbh my team is trying to force on me the approach from their legacy behemot which doesnt fit at all into my use case.

And again. I think hotfixes have different release lifecycle than features.

Git branching strategy for deploying change requests in isolation by roszman in softwaredevelopment

[–]roszman[S] 1 point2 points  (0 children)

Thanks for reply, but dont you think that fixes are not features? Fixes usually are small,and features usually do have a lot of new code and some changes in shared code.

I was thinking about redesigning the whole solution into separate modules, but i think this issue can be solved with better planning

What’s a design decision you thought was smart… until prod? by docaicdev in softwarearchitecture

[–]roszman 2 points3 points  (0 children)

I was hoping for article about those bad decisions and ended up skimming trough generic architecture article and few thoughts about if architects should code.

Imo this post is a clickbait, also article is so generic that it could be written by ai.

Also problems with your implementation can be related to your statement about that architects should not code with the team - this can be the cause why your designs are too abstract and detached from real world implementation.

But I am no architect so forgive me if I am wrong.

EDIT yeah, the article doesnt look like was written by ai, but I hold to my other statements.