When you need more advanced stuff then GUIs tend to become more of a sticking point I find
What’s stopping you just opening the terminal in those rare cases? For 99% of my daily needs I’m good with a good GUI
When you need more advanced stuff then GUIs tend to become more of a sticking point I find
What’s stopping you just opening the terminal in those rare cases? For 99% of my daily needs I’m good with a good GUI
Git Fork is absolutely amazing. It has a good (unlimited) free trial but it is well worth the one time purchase too.
I wonder what kind of support for development do you get? Honestly I’ve only had obstacles when I switched, for example the docker installation was much more complicated on linux than on windows+wsl. Even installing python was problematic because apparently ‘upgrading it yourself can brick the system’, at least if an older version comes with the OS?
And lastly it’s the simple thing that pretty much all tools work on windows natively but on linux you have to find workarounds, which is definitely a problem when it comes to productivity.
So what are the benefits, what does linux have that windows doesn’t in this context?
Well mocking a repository is pretty much the same process as mocking the dbcontext too, right? If that’s the only purpose then I can see why they would seem unnecessary
Additional question - I said at first that the “Service” should be doing the mandatory checks like uniqueness validation or whether the fields are filled in properly with good values, but is even that a good approach?
Instead of implementing this in every service that might create a new Movie (and it could be from different sources - import from file, different APIs, background worker, etc), wouldn’t it make more sense to add these checks to the repository itself so they always gets called?
Alternatively, do we have to handle a constraint violation in every service or could we just have the repository return a result with failure if it happens?
In short, once I start thinking in this way I start to wonder why even have a separation between repository and service.
Saying I learned it is a stretch, we still dont use it at my workplace and I just read some random guides and tried it on my personal projects. I also wouldn’t know about using it in frontend, I mostly just use it to make it easier to test my backend (c#) methods during development without having to struggle with setting up reproduction steps and go through the entire frontend every time.
Good point, that sounds nicer than just encoding the name for sure, thanks
A bit late to this thread but what helped me a lot was when I started doing TDD. By testing my code against tests before its fully done or even implemented in the main app codebase (so to speak), I could break down individual tasks in it more easily and see how its interior parts work. It seemed easier to separate it into SRP areas since they’d have to stick to the unit test for that responsibility. Do keep in mind you can take it too far and overengineer it in this way but it was a good kick in the butt to get me to think in a different way.
By automating it you mean something a store procedure that returns the ID and increments the count at the same time or is there a more sophisticated way of doing it?
In the context of this small app im writing category is unique by name already so I can just use that if I wanted to go the string route, but agreed - yours is probably the standard way, youtube/reddit do it like that after all.
I’m still wondering about the technical implementation of it - where would you generate the string? Manually in backend before each save, probably using a locking mechanism to prevent accidentally creating 2 identical IDs at the same time? I’d have to do a db hit to make sure it doesn’t exist already every time, right? Maybe I just try to insert and see if it crashes due to the uniqueness index? Maybe I use a store procedure in the database to get a unique ID? Do I just hash the timestamp or sth like that?
Whether I generate a number or a string, feels like I always open it up to many issues.
This is something I’ve been considering too, since the name is in this case unique per user I can just use it for everything in frontend rather than the ID. It’s not always a good solution though so I was wondering how would I solve it with IDs alone
Deletions would work the same way as with a regular autoincrementing ID, it just always goes up. All it matters is that it doesn’t expose how many other IDs are in the DB
I have a join table between Category and other entities that can be categorized in this way, but I dont think I need one between User and Category? Different users can’t share the same category so it’s a 1-n relationship, not n-n.
Even if I did though I still have the same issue since I have to figure out how to autoincrement it, only now in the join table rather than the Category table.
You can kinda see this in things like modding communities or anything piracy related too. Users just want easy solutions even if it’s at the expense of creators, and creators are doing it more and more for money rather than any personal drive or satisfaction. I can’t believe we’ve reached a point where even mods are being locked behind paywalls, need to be commissioned or sometimes have entire teams funded by patreon to work on them, it’s just another business nowadays.
The most common usecase is generating data models based on the database, mostly using t4 files so far. We have a non-standard way of defining some parts of it so the default MS tools don’t quite cut it (like ef dbcontext scaffold). I’ve been looking into roslyn but it seems like it might be more trouble than its worth, but default t4 doesn’t even have a proper editor and syntax highlighting so its a low bar atm.
How will manually retyping
git pull
orcheckout
30+ times a day, or using the terminal log instead of a nice GUI with VSCode integration, teach me to solve other complicated issues? I just don’t really see the benefit of struggling for most of the time for something that might or might not happen later