dam5s created a branch main in dam5s/kotlin-monorepo-example
November 21 '24 @ 00:22
Updated Nov 21
Updated Nov 21
Updated Nov 21
Updated Sep 25
22dfbb7
Merge pull request schultek#290 from schultek/improvement/docs-next
e41de82
add import assists
Arcade cabinet upgrade in progress
This was a few weeks ago at Faction Brewery in Alameda with a great view on San Francisco.
Collective code ownership is extremely important.
You can't keep blaming the previous owners of the code for all the problems you still have after months of work. It is your codebase now, your whole team is responsible for its strengths as well as its weaknesses.
Fix the stuff you see being problematic even if you have not written it. It will only get worse if you don't or if you wait for being given permission.
Somewhere between a quarter and a fifth of your team should be refactoring at all times.
Seriously, not kidding.
Weekend in Arizona!
Behold! My new cooking partner!
More than my upgrade to an M3 MacBook Pro.
I ordered a counter top oven and I’m soooo excited to receive it on Thursday just when I return from a trip to San Francisco!
Learning Godot.
So far it's pretty good. I really appreciated to see that the UI can be scaled to support high DPI displays.
It seems rare these days to find cross-platform applications with this built-in.
Giving VeraCrypt a shot. Let's hope it works well enough on my Linux, MacOS and Windows boxes!
Back at the Barrel Room in San Francisco’s business district. My favorite place when I just want to walk.
Scammers Abusing ExTwitter’s Fake ‘Verification’ Program To Prey On Angry Consumers
Those are fun times!
So I made galettes with flour imported from Brittany that I found on Amazon. Well I’m happy to announce I was finally able to make something that tastes like home!
This allows relative imports for files in the same folder only, requires absolute imports for other cases.
This will detect cycles across folder boundaries, not individual files. So you can have cycles within a folder, but not across the folder boundaries.
A/a -> A/b -> A/a is fine.
A/a -> B/a
B/b -> A/a is not fine.
That is assuming you organize your code by features (vertical slices), not horizontal slices.
Which you should be doing anyway.
Implemented cyclic dependency checks for Dart/Flutter projects -
https://github.com/dam5s/disk_space_usage/blob/main/scripts/check_import_cycles.dart
Integrated into the build for now, hopefully a linter extension later -
https://github.com/dam5s/disk_space_usage/blob/main/Makefile
Websites that wobble horizontally on mobile are sooooo unprofessional, and there is so many of them.
A typical example of cyclic dependencies when using ORMs would be to introduce a bunch of one-to-many dependencies in your User/Account record.
Those dependencies do not exist in your database, you now introduced a cycle and you will have to get rid of it before being able to extract this slice of your application.
A common example: you built an app that became popular.
This could be a backend or a mobile app, the same principles apply.
You now want to build another app and leverage your existing user base.
You want to extract account/user management.
If you have cyclic dependencies in the related code, extracting a backend service/mobile library for this feature set can be extremely tedious.
This has nothing to do with putting controllers in a folder, domain models in another.
Seems a lot of people conflate architecture and splitting an application into horizontal layers (Models, Controllers, Domain, Presentation...).
Architecture is actually more about defining vertical slices of your application.
That is separating features and domain concepts into groups that do not create dependency cycles.
You can have an app with well defined horizontal layers, but when you need to extract a vertical slice of the application it’s a nightmare because of cyclic dependencies.
Code comments
Full Changelog: release/0.6.0...release/0.7.0