2 ms·
My own ( c# ). It's not opensource yet, monetizing it first. Full DDD, it was a refactor during COVID-19 for my ecommerce. It powers https://belgianbrewed.com
by NicoJuicy 3y ago
My own ( c# ). It's not opensource yet, monetizing it first.
Full DDD, it was a refactor during COVID-19 for my ecommerce.
It powers https://belgianbrewed.com https://belgianbrewed.com
Copy paste from: https://news.ycombinator.com/item?id=35257225 https://news.ycombinator.com/item?id=35257225
> But I believe the project is much cleaner and frankly better to understand than all other projects i've encountered for this size. I'm using DDD, so DDD knowledge is a requirement to navigate this in a breeze :) :
- https://snipboard.io/D03VWg.jpg https://snipboard.io/D03VWg.jpg - General overview of the architecture. Small fyi: Connectors => Autogenerated nugets to call the api's
- https://snipboard.io/9M24hB.jpg https://snipboard.io/9M24hB.jpg - Sample of Modules + Presentation layer
- https://snipboard.io/ybp6EH.jpg https://snipboard.io/ybp6EH.jpg - Example of Specifications related to catalog ( = products )
- https://snipboard.io/lE9vcK.jpg https://snipboard.io/lE9vcK.jpg - How specifications are translated to the infrastructure ( here I'm using EF, so I'm using Expressions a lot), but plain old SQL is also supported. A query is basically a list of AND/OR Specifications where a hierarchy is possible. This would translate to "(QUERY 1 ) AND ((QUERY 2) AND (QUERY 3))" in the Infrastructure layer.
- https://snipboard.io/7rVBpk.jpg https://snipboard.io/7rVBpk.jpg - . In general, i have 2 List methods ( one for Paged queries and one not for Paged queries)
Additional fyi: Is V2, so has some legacy code. Uses my own STS. Has 2 gateways ( the ShopGateway that is used to develop new sites and the BackendGateway for the Backend). Enduser frontend is in MVC for SEO purpose, Customer backend is in Angular ( SPA). The basket is a NoSql implementation on top of SQL server.
The enduser frontend supports a hierarchy of themes ( so it's insanely flexible to create variations of pages for other clients).
There are more projects involved outside of this solution, eg. nuget repo's usable accross solutions (JWT, Specifications, ...) and "plugins" for a standalone project that is installed for end-users for syncing local data. So it's +101 projects :)
Edit: my specification implementation has been open-sourced here: https://github.com/NicoJuicy/Specification-Pattern-CSharp https://github.com/NicoJuicy/Specification-Pattern-CSharp
Someone was curious to see it.
- mometsi 3y ago"I just finished reading the greatest script I've ever read in my life." - "Oh, really? Who wrote it?" "I did."
- jeremycarter 3y ago"What's the name of it?" ..."Lessons in humility"
- pizzapill 3y agoLook at that subtle off-white coloring. The tasteful thickness of it. Oh, my God. It even has a watermark. Now lets see Paul Allen's screenshots of the directory structure of his codebase.
- NicoJuicy 3y agoAmerican psycho, lol. Ok, i get it. Just a shame that while i gave a pretty clear technical description on the "why i think so". Nobody of the downvoters actually cared to give a actual technical counter argument or even did a test with a technical question... Instead just a reply with a partial movie script... Ugh.