Best Architecture Desktop

0 views
Skip to first unread message

Dardo Hameed

unread,
Aug 5, 2024, 7:12:57 AM8/5/24
to mentrehardgrav
Corsairis well-known to gamers and creative workers like graphic designers and architects. This computer equipment company makes high-quality items like this gaming desktop with the most delinquent Nvidia graphics and DDR5 memory.

Thanks to its innovative design, the Corsair desktop is a space-saving mini-PC without skimping on power. Its compact form factor conceals its powerhouse 12th generation i9 processor, the newest edition from Intel, allowing it to breeze through virtually any job efficiently.

Combine it with the sophisticated Nvidia Geforce RTX graphics that were made for things like 3D modeling, animation, and gaming. The inclusion of Corsair Vengeance DDR5 memory, which offers unparalleled speed, allows you to multitask with comfort and streamlines your artistic productivity. Despite its robust makeup, the machine runs without peeping or generating any noticeable disturbance.


When it comes to computers and related products, few companies are as well-known as Dell. Its XPS series features high-performance computers that are easy to maintain and upgrade. The sleek design of the Dell XPS desktop ensures that cool air flows over its parts without being sucked back in, making it stand out from the crowd. This aids in maintaining manageable temperatures, which in turn guarantees consistent excellent performance.


In contrast to the other desktop computers for architects on our list, the Dell XPS desktop features a spacious chassis with a tool-free removable panel. The Intel i7 12700k processor includes integrated Intel UHD graphics and is more than up to the challenge of demanding CPU rendering and modeling workloads. The GPU rendering is handled by an Nvidia Geforce GTX 3060 graphics card, making it ideal for architectural and design software use.


A minimum of 16 GB of RAM is recommended for an architect's laptop to ensure the smooth operation of many programs and large files. This can be reduced to 8GB, but not below that, for architecture students, who typically have far lighter loads than professionals.


Architects and engineers may use AMD's complete range of computing power with RyzenTM ThreadripperTM PRO processors. AMD ThreadripperTM PRO processors can help you speed through even the most time-consuming projects thanks to their up to 64 cores for multithreaded operations and high-frequency cores for single-threaded applications.


The core architecture of AMD CPUs is better appropriate for multitasking than it is for demanding gaming. However, AMD chips are typically more adaptable than their Intel counterparts regarding CPU overclocking.


Before Intel released the i9, the i7 was the most powerful processor. It was built to handle the most demanding applications. Its multitasking capabilities and high memory capacity are perfect for executing architectural software.


Although it lacks a discrete graphics processing unit (GPU), this Intel i5-powered machine can run almost every type of architecture software currently available. For the same money, though, you can obtain a 32GB RAM system with a 1TB SSD.


Can a desktop application based on a monolithic architecture be converted to a microservices architecture? I can only find articles on web applications using microservices architecture. Does that mean desktop applications cannot use this architecture?


In general, technically there is nothing that can stop you from using microservice architecture for any kind of applications, however when you go this path (like any other architecture actually) check what are benefits of microservices architecture and whether it makes sense at all in your application.


It certainly could be, since Windows has services, Linux has daemons and so on, and you can arrange things such that different services talk to one another via an internal network or some other mechanism depending on what is appropriate. However it's another question whether or not it is appropriate/a good idea to do so. Microservices are typically likely to make a lot more sense as an architecture for a web application. There typically is a cost with microservices in the form of looser coupling between components. Strict typing within an application will ensure messages between parts of the application are correctly formed. That is harder to ensure with services that may be compiled separately from one another and communicate via a more indirect mechanism.


In the Clean Architecture the Presentation layer and the Domain Model layer are separated by the Application layer. I understand how this make sense for stateless applications, like a Web base MVC application or a "record based" desktop application where most operations are CRUD. Also, my understanding is that the Presentation layer should not directly use the domain object, but should have it's own ViewModel that are mapped to/from models from the application layer. Is this assumption correct?


The application I plan to develop will allow the user to input chess games one move at a time. It seems to me that the rules for chess should be in the Domain Model layer. If this is the case, how does the Presentation layer validate each user input (to verify each moves legality)? Does it need to go through the Application Layer every time or does it makes more sense to let the Presentation Layer somehow manipulate the Domain objects directly to build the model according to the user input and then send it to the Application layer when it's time to save it to the database?


I tried to find resources online that would talk about this, but it seems all example/course/tutorial I found talk about a web application or at least a stateless application of the CRUD type where the business rules are applied once before saving the data or after loading them. In my application the chess rules needs to be applied every time the user edit the ViewModel to give an immediate feedback.


I am using Clean Architecture for a rich desktop application since about a year now and it works well for GUI-heavy, event-based applications. It's not a good fit for a "real-time" game like a jump'n'run, but a chess game will work just fine.


"Enterprise wide business rules". In your case, that means encapsulating the rules of the game. Having the age old game of chess here instead of an actual business gives you an advantage - once you wrote this layer, the only way it will ever need a change is if you found a bug here.


Think of use cases as application user actions. In this layer, you define these user actions, the input they take, the output they give back and the interfaces they use in order to achieve their goal. Such a use case will not really do any work itself. It's more like a step-by-step description of what happens.


This layer is purely an adapter from some external thing to your code (= the inner 3 layers). It consists almost completely of wrappers. This part needs to be so thin/simple that it doesn't need to know about the other 3 layers. It doesn't know about your models, it only works with strings, ints, events, etc.


(You called this the "Presentation layer", but that's a bit misleading. On one hand because a DB, some hardware device, internet access etc are also all external things that get their wrappers in this layer. On the other hand because all the "view logic" - like turning a model into strings for the GUI - happens in the previous layer.)


The number one thing that separates them is cycles. ViewModel architecture is comfortable creating cycles in it's design. Clean (or Onion, or Hex) Architecture is not. ViewModel uses a binder to resolve the problems this can cause. Clean expects you to follow the Dependency Inversion Principle, make external layers swap-able plugins, and for you to do your binding yourself.


Here I mind the conflation much less because as Uncle Bob has admitted Clean Architecture explicitly lifts many of it's ideas and structure from Onion Architecture (which does the same from Hex / Ports and Adapters). It's all much the same idea with different buzz words that drive you to different blogs & books.


... how does the Presentation layer validate each user input (to verify each moves legality)? Does it need to go through the Application Layer every time or does it makes more sense to let the Presentation Layer somehow manipulate the Domain objects directly to build the model according to the user input and then send it to the Application layer when it's time to save it to the database?


Validation often seems like it should happen in one place but this rarely works well. The reason is what's valid for one object isn't valid for another. Each object is meant to be an expert on its own thing. You could force it to happen in one place that must consider the whole application but consider this: The board knows how big it is. It doesn't know we're using it to play chess. Should the board assume chess will keep it safe or should the board say loudly "I'm only an 8 by 8 board. I don't know where to put this crazy 9,9 move you just made". Design the board like that and you can use its code to play checkers, tic tac toe, and go without teaching the board anything about those games.

3a8082e126
Reply all
Reply to author
Forward
0 new messages