🍓4
Forwarded from FingerCoder | فینگرکدر
#نشست
نشست ۱۸ ام #فینگرکدر
آخرین نشست سال ۱۴۰۱ فینگرکدر
🔹
با ارائه کیانوش عشایریزاده تحت عنوان آشنایی با زبان GO
🟣
رزومه ارائه دهنده :: بیش از یک سال مهندسی نرم
افزار شرکت اسنپ
🔸
آشنایی با زبان گو ، بررسی نقات قوت و ضعف گو ، آشنایی با چالش های توسعه نرم افزار سمت سرور با گو
🟢
🔹زمان : جمعه ۲۶ ام اسفند ماه
🔸مکان : خلدبرین به سمت چهارراه بنفشه ، کوچه ۷ پلاک ۹۳
🆔@fingercoder
جهت ثبت نام اینجا کلیک کنید.
نشست ۱۸ ام #فینگرکدر
آخرین نشست سال ۱۴۰۱ فینگرکدر
🔹
با ارائه کیانوش عشایریزاده تحت عنوان آشنایی با زبان GO
🟣
رزومه ارائه دهنده :: بیش از یک سال مهندسی نرم
افزار شرکت اسنپ
🔸
آشنایی با زبان گو ، بررسی نقات قوت و ضعف گو ، آشنایی با چالش های توسعه نرم افزار سمت سرور با گو
🟢
🔹زمان : جمعه ۲۶ ام اسفند ماه
🔸مکان : خلدبرین به سمت چهارراه بنفشه ، کوچه ۷ پلاک ۹۳
🆔@fingercoder
جهت ثبت نام اینجا کلیک کنید.
👍5🎉1
❎𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗦𝘁𝘆𝗹𝗲𝘀 𝗮𝗻𝗱 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀
𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗱𝗲𝘀𝗶𝗴𝗻 is the process of defining the architecture, components, modules, and interfaces of a software system 𝘁𝗼 𝗺𝗲𝗲𝘁 𝘀𝗽𝗲𝗰𝗶𝗳𝗶𝗲𝗱 𝗿𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀. During the software design phase, we create a high-level view of the system, including its structure, behavior, and interactions with other systems. This involves making decisions about the software's internal structure and organization.
The output of the software design process is a 𝘀𝗲𝘁 𝗼𝗳 𝗱𝗲𝘀𝗶𝗴𝗻 𝗱𝗼𝗰𝘂𝗺𝗲𝗻𝘁𝘀 or diagrams that serve as a blueprint for the software development team to follow. By following the software design plan, developers can ensure that the final product meets the requirements of the stakeholders and is of high quality.
Over time we saw some 𝗰𝗼𝗺𝗺𝗼𝗻 𝘀𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀 emerge. They are reusable solutions to common design problems. They are often used as a starting point for designing software systems and provide a set of best practices for solving specific architectural problems. They enable us to reduce design complexity, increase system maintainability and reduce development time.
We identified some 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗮𝗹 𝘀𝘁𝘆𝗹𝗲𝘀 𝗮𝗻𝗱 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀 by different categories:
𝟭. 𝗕𝘆 𝗖𝗼𝗻𝗻𝗲𝗰𝘁𝗶𝗼𝗻𝘀. A way how to connect services and apps.
🔹 REST (Representational State Transfer)
🔹 BFF (Backend for Frontend)
🔹 RPC (Remote Procedure Call)
🔹 P2P (Peer to Peer)
🔹 SOA (Service-Oriented Architecture)
𝟮. 𝗕𝘆 𝗖𝗼𝗺𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻. Answer how we compose internal structures.
🔹 Microservices
🔹 Monolith
🔹 Microkernel
🔹 Layers
🔹 Plugins
🔹 Components
🔹 Nano services
𝟯. 𝗕𝘆 𝗘𝘃𝗲𝗻𝘁𝘀. We use it to decouple software components in an event-driven manner.
🔹 Publish/Subscribe
🔹 CQRS (Command Query Responsibility Segregation)
🔹 ES (Event Sourcing)
🔹 Reactive
𝟰. 𝗕𝘆 𝗦𝘁𝗿𝗲𝗮𝗺. How data flow through our system.
🔹 Pipe and Filters
🔹 Message Brokers
🔹 Fast Data
𝟱. 𝗕𝘆 𝗗𝗮𝘁𝗮. For data-oriented systems.
🔹 Data Mesh
🔹 Data Warehouse
🔹 Data Fabric
🔹 Data-centric Business Logic
🔹 Data Lake
𝟲. 𝗕𝘆 𝗣𝘂𝗿𝗽𝗼𝘀𝗲
🔹 API Platform
🔹 Integration Hub
🔹 Developer Portal
🔹 Developer Platform
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗱𝗲𝘀𝗶𝗴𝗻 is the process of defining the architecture, components, modules, and interfaces of a software system 𝘁𝗼 𝗺𝗲𝗲𝘁 𝘀𝗽𝗲𝗰𝗶𝗳𝗶𝗲𝗱 𝗿𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀. During the software design phase, we create a high-level view of the system, including its structure, behavior, and interactions with other systems. This involves making decisions about the software's internal structure and organization.
The output of the software design process is a 𝘀𝗲𝘁 𝗼𝗳 𝗱𝗲𝘀𝗶𝗴𝗻 𝗱𝗼𝗰𝘂𝗺𝗲𝗻𝘁𝘀 or diagrams that serve as a blueprint for the software development team to follow. By following the software design plan, developers can ensure that the final product meets the requirements of the stakeholders and is of high quality.
Over time we saw some 𝗰𝗼𝗺𝗺𝗼𝗻 𝘀𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀 emerge. They are reusable solutions to common design problems. They are often used as a starting point for designing software systems and provide a set of best practices for solving specific architectural problems. They enable us to reduce design complexity, increase system maintainability and reduce development time.
We identified some 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗮𝗹 𝘀𝘁𝘆𝗹𝗲𝘀 𝗮𝗻𝗱 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀 by different categories:
𝟭. 𝗕𝘆 𝗖𝗼𝗻𝗻𝗲𝗰𝘁𝗶𝗼𝗻𝘀. A way how to connect services and apps.
🔹 REST (Representational State Transfer)
🔹 BFF (Backend for Frontend)
🔹 RPC (Remote Procedure Call)
🔹 P2P (Peer to Peer)
🔹 SOA (Service-Oriented Architecture)
𝟮. 𝗕𝘆 𝗖𝗼𝗺𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻. Answer how we compose internal structures.
🔹 Microservices
🔹 Monolith
🔹 Microkernel
🔹 Layers
🔹 Plugins
🔹 Components
🔹 Nano services
𝟯. 𝗕𝘆 𝗘𝘃𝗲𝗻𝘁𝘀. We use it to decouple software components in an event-driven manner.
🔹 Publish/Subscribe
🔹 CQRS (Command Query Responsibility Segregation)
🔹 ES (Event Sourcing)
🔹 Reactive
𝟰. 𝗕𝘆 𝗦𝘁𝗿𝗲𝗮𝗺. How data flow through our system.
🔹 Pipe and Filters
🔹 Message Brokers
🔹 Fast Data
𝟱. 𝗕𝘆 𝗗𝗮𝘁𝗮. For data-oriented systems.
🔹 Data Mesh
🔹 Data Warehouse
🔹 Data Fabric
🔹 Data-centric Business Logic
🔹 Data Lake
𝟲. 𝗕𝘆 𝗣𝘂𝗿𝗽𝗼𝘀𝗲
🔹 API Platform
🔹 Integration Hub
🔹 Developer Portal
🔹 Developer Platform
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍7
با استفاده از این دوتا سایت بدون محدودیت و رایگان و بدون نیاز به شماره ایران از chatGPT استفاده کنید.
Chat.theb.ai
Freegpt.one
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Chat.theb.ai
Freegpt.one
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍5❤1🔥1🎉1
How discord store trillions of messages
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇👇👇👇👇
https://t.me/gopher_academy/1608
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇👇👇👇👇
https://t.me/gopher_academy/1608
👍6
How Discord Stores Trillions Of Messages
The diagram below shows the evolution of message storage at Discord:
MongoDB ➡️ Cassandra ➡️ ScyllaDB
In 2015, the first version of Discord was built on top of a single MongoDB replica. Around Nov 2015, MongoDB stored 100 million messages and the RAM couldn’t hold the data and index any longer. The latency became unpredictable. Message storage needs to be moved to another database. Cassandra was chosen.
In 2017, Discord had 12 Cassandra nodes and stored billions of messages.
At the beginning of 2022, it had 177 nodes with trillions of messages. At this point, latency was unpredictable, and maintenance operations became too expensive to run.
There are several reasons for the issue:
- Cassandra uses the LSM tree for the internal data structure. The reads are more expensive than the writes. There can be many concurrent reads on a server with hundreds of users, resulting in hotspots.
- Maintaining clusters, such as compacting SSTables, impacts performance.
- Garbage collection pauses would cause significant latency spikes
ScyllaDB is Cassandra compatible database written in C++. Discord redesigned its architecture to have a monolithic API, a data service written in Rust, and ScyllaDB-based storage.
The p99 read latency in ScyllaDB is 15ms compared to 40-125ms in Cassandra. The p99 write latency is 5ms compared to 5-70ms in Cassandra.
References:
https://www.scylladb[.]com/product/technology/shard-per-core-architecture/
https://discord[.]com/blog/how-discord-stores-trillions-of-messages
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
The diagram below shows the evolution of message storage at Discord:
MongoDB ➡️ Cassandra ➡️ ScyllaDB
In 2015, the first version of Discord was built on top of a single MongoDB replica. Around Nov 2015, MongoDB stored 100 million messages and the RAM couldn’t hold the data and index any longer. The latency became unpredictable. Message storage needs to be moved to another database. Cassandra was chosen.
In 2017, Discord had 12 Cassandra nodes and stored billions of messages.
At the beginning of 2022, it had 177 nodes with trillions of messages. At this point, latency was unpredictable, and maintenance operations became too expensive to run.
There are several reasons for the issue:
- Cassandra uses the LSM tree for the internal data structure. The reads are more expensive than the writes. There can be many concurrent reads on a server with hundreds of users, resulting in hotspots.
- Maintaining clusters, such as compacting SSTables, impacts performance.
- Garbage collection pauses would cause significant latency spikes
ScyllaDB is Cassandra compatible database written in C++. Discord redesigned its architecture to have a monolithic API, a data service written in Rust, and ScyllaDB-based storage.
The p99 read latency in ScyllaDB is 15ms compared to 40-125ms in Cassandra. The p99 write latency is 5ms compared to 5-70ms in Cassandra.
References:
https://www.scylladb[.]com/product/technology/shard-per-core-architecture/
https://discord[.]com/blog/how-discord-stores-trillions-of-messages
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍3❤1
این ریپو که کار بچههای مایکروسافته chatGPT و یه سری مدلهای بصری دیگه رو به هم وصل میکنه و دریافت و فرستادن عکس رو حین چت کردن با chatgpt ممکن میکنه !
https://github.com/microsoft/visual-chatgpt
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
https://github.com/microsoft/visual-chatgpt
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍1🔥1🐳1
How does the browser render a web page?
1. Parse HTML and generate Document Object Model (DOM) tree.
When the browser receives the HTML data from the server, it immediately parses it and converts it into a DOM tree.
2. Parse CSS and generate CSSOM tree.
3. Combine DOM tree and CSSOM tree to construct the Render Tree.
With the DOM and CSSOM, a rendering tree will be created. The render tree maps all DOM structures except invisible elements. In other words, the render tree is a visual representation of the DOM.
4. Layout.
The content in each element of the rendering tree will be calculated to get the geometric information (position, size), which is called layout.
5. Painting.
After the layout is complete, the rendering tree is transformed into the actual content on the screen. This step is called painting. The browser gets the absolute pixels of the content.
6. Display.
Finally, the browser sends the absolute pixels to the GPU and displays them on the page.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
1. Parse HTML and generate Document Object Model (DOM) tree.
When the browser receives the HTML data from the server, it immediately parses it and converts it into a DOM tree.
2. Parse CSS and generate CSSOM tree.
3. Combine DOM tree and CSSOM tree to construct the Render Tree.
With the DOM and CSSOM, a rendering tree will be created. The render tree maps all DOM structures except invisible elements. In other words, the render tree is a visual representation of the DOM.
4. Layout.
The content in each element of the rendering tree will be calculated to get the geometric information (position, size), which is called layout.
5. Painting.
After the layout is complete, the rendering tree is transformed into the actual content on the screen. This step is called painting. The browser gets the absolute pixels of the content.
6. Display.
Finally, the browser sends the absolute pixels to the GPU and displays them on the page.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❤2🐳2👍1
👉 𝟭𝟬 𝗚𝗼𝗹𝗱𝗲𝗻 𝗥𝘂𝗹𝗲𝘀 𝗳𝗼𝗿 𝗦𝗼𝗹𝘃𝗶𝗻𝗴 𝗖𝗼𝗱𝗶𝗻𝗴 𝗤𝘂𝗲𝘀𝘁𝗶𝗼𝗻𝘀 𝗶𝗻 𝗜𝗻𝘁𝗲𝗿𝘃𝗶𝗲𝘄 💯.
📍If we are dealing with top/maximum/minimum/closest ‘K' elements among 'N' elements, we will be using a Heap.
📍If the given input is a sorted array or a list, we will either be using Binary Search or the Two Pointers.
📍If we need to try all combinations (or permutations) of the input, we can either use Backtracking or Breadth First Search.
📍Most of the questions related to Trees or Graphs can be solved either through Breadth First Search or Depth First Search.
📍Every recursive solution can be converted to an iterative solution using a Stack.
📍For a problem involving arrays, if there exists a solution in O(n^2)time and O(1) space, there must exist two other solutions :
1. Using a HashMap or a Set for O(n) time and O(n) space .
2. Using sorting for O(n log n) time and O(1) space.
📍 If a problem is asking for optimization (e.g., maximization or minimization), we will be using Dynamic Programming.
📍If we need to find some common substring among a set of strings, we will be using a HashMap or a Trie.
📍If we need to search/manipulate a bunch of strings, Trie will be the best data structure.
📍If the problem is related to a LinkedList and we can't use extra space, then use the Fast & Slow Pointer approach.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
📍If we are dealing with top/maximum/minimum/closest ‘K' elements among 'N' elements, we will be using a Heap.
📍If the given input is a sorted array or a list, we will either be using Binary Search or the Two Pointers.
📍If we need to try all combinations (or permutations) of the input, we can either use Backtracking or Breadth First Search.
📍Most of the questions related to Trees or Graphs can be solved either through Breadth First Search or Depth First Search.
📍Every recursive solution can be converted to an iterative solution using a Stack.
📍For a problem involving arrays, if there exists a solution in O(n^2)time and O(1) space, there must exist two other solutions :
1. Using a HashMap or a Set for O(n) time and O(n) space .
2. Using sorting for O(n log n) time and O(1) space.
📍 If a problem is asking for optimization (e.g., maximization or minimization), we will be using Dynamic Programming.
📍If we need to find some common substring among a set of strings, we will be using a HashMap or a Trie.
📍If we need to search/manipulate a bunch of strings, Trie will be the best data structure.
📍If the problem is related to a LinkedList and we can't use extra space, then use the Fast & Slow Pointer approach.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❤3👍1
𝗪𝗵𝗮𝘁 𝗶𝘀 𝗖𝗹𝗲𝗮𝗻 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲?
The Clean Architecture philosophy emphasizes the importance of separating concerns in software design and creating code that is 𝗺𝗼𝗱𝘂𝗹𝗮𝗿, 𝘁𝗲𝘀𝘁𝗮𝗯𝗹𝗲, 𝗮𝗻𝗱 𝗺𝗮𝗶𝗻𝘁𝗮𝗶𝗻𝗮𝗯𝗹𝗲. It is developed by software engineer and consultant Robert C. Martin.
At its core, Clean Architecture promotes the idea that software systems should be designed with the primary goal of 𝗯𝗲𝗶𝗻𝗴 𝘂𝗻𝗱𝗲𝗿𝘀𝘁𝗼𝗼𝗱 𝗮𝗻𝗱 𝗺𝗮𝗶𝗻𝘁𝗮𝗶𝗻𝗲𝗱 𝗯𝘆 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿𝘀 over the long term.
To achieve this goal, Clean Architecture proposes a layered architecture with 𝗰𝗹𝗲𝗮𝗿 𝗯𝗼𝘂𝗻𝗱𝗮𝗿𝗶𝗲𝘀 𝗯𝗲𝘁𝘄𝗲𝗲𝗻 𝗱𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝘁 𝗰𝗼𝗺𝗽𝗼𝗻𝗲𝗻𝘁𝘀 𝗼𝗳 𝘁𝗵𝗲 𝘀𝘆𝘀𝘁𝗲𝗺, so we can achieve independence of frameworks, UI, databases, and delivery mechanisms, as well as the possibility to test in isolation.
The Clean Architecture philosophy defines a 𝘀𝗲𝘁 𝗼𝗳 𝗹𝗮𝘆𝗲𝗿𝘀, starting with the most general and abstract layers and moving toward the most concrete and specific layers. These layers include:
🔹 𝗘𝗻𝘁𝗶𝘁𝗶𝗲𝘀: The fundamental objects in the system, which represent the core business logic and data. They encapsulate the most general and high-level rules.
🔹 𝗨𝘀𝗲 𝗰𝗮𝘀𝗲𝘀: The high-level interactions between the system and its users or other external systems, containing application-specific business rules. It is not expected in this layer to affect the entities or external systems.
🔹 𝗜𝗻𝘁𝗲𝗿𝗳𝗮𝗰𝗲𝘀: The mechanisms by which the system communicates with external systems or users. Here we can have an MVC architecture of a GUI.
🔹 𝗖𝗼𝗻𝘁𝗿𝗼𝗹𝗹𝗲𝗿𝘀: The components responsible for managing the flow of data between the other layers of the system.
🔹 𝗣𝗿𝗲𝘀𝗲𝗻𝘁𝗲𝗿𝘀: The components responsible for presenting data to users or other systems.
🔹 𝗜𝗻𝗳𝗿𝗮𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲: The components responsible for interacting with external systems or services, such as databases or APIs.
An 𝗮𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲 with Clean Architecture could look like, this for POS App:
📁 Source
| 📁 Core
| 📁 Application
| 📁 Domain
| 📁 Infrastructure
| 📁 Identity
| 📁 Persistence
| 📁 Shared
| 📁 Api
| 📁 ...
In comparison to 𝗢𝗻𝗶𝗼𝗻 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲, Clean Architecture offers a clearer separation of concerns and a better comprehension of boundaries. They support similar ideals but with various levels, and they are close relatives. Clean architecture makes it crystal clear why each layer is necessary and what each one's roles are, which is why it is often referred to as 𝘀𝗰𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
The Clean Architecture philosophy emphasizes the importance of separating concerns in software design and creating code that is 𝗺𝗼𝗱𝘂𝗹𝗮𝗿, 𝘁𝗲𝘀𝘁𝗮𝗯𝗹𝗲, 𝗮𝗻𝗱 𝗺𝗮𝗶𝗻𝘁𝗮𝗶𝗻𝗮𝗯𝗹𝗲. It is developed by software engineer and consultant Robert C. Martin.
At its core, Clean Architecture promotes the idea that software systems should be designed with the primary goal of 𝗯𝗲𝗶𝗻𝗴 𝘂𝗻𝗱𝗲𝗿𝘀𝘁𝗼𝗼𝗱 𝗮𝗻𝗱 𝗺𝗮𝗶𝗻𝘁𝗮𝗶𝗻𝗲𝗱 𝗯𝘆 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿𝘀 over the long term.
To achieve this goal, Clean Architecture proposes a layered architecture with 𝗰𝗹𝗲𝗮𝗿 𝗯𝗼𝘂𝗻𝗱𝗮𝗿𝗶𝗲𝘀 𝗯𝗲𝘁𝘄𝗲𝗲𝗻 𝗱𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝘁 𝗰𝗼𝗺𝗽𝗼𝗻𝗲𝗻𝘁𝘀 𝗼𝗳 𝘁𝗵𝗲 𝘀𝘆𝘀𝘁𝗲𝗺, so we can achieve independence of frameworks, UI, databases, and delivery mechanisms, as well as the possibility to test in isolation.
The Clean Architecture philosophy defines a 𝘀𝗲𝘁 𝗼𝗳 𝗹𝗮𝘆𝗲𝗿𝘀, starting with the most general and abstract layers and moving toward the most concrete and specific layers. These layers include:
🔹 𝗘𝗻𝘁𝗶𝘁𝗶𝗲𝘀: The fundamental objects in the system, which represent the core business logic and data. They encapsulate the most general and high-level rules.
🔹 𝗨𝘀𝗲 𝗰𝗮𝘀𝗲𝘀: The high-level interactions between the system and its users or other external systems, containing application-specific business rules. It is not expected in this layer to affect the entities or external systems.
🔹 𝗜𝗻𝘁𝗲𝗿𝗳𝗮𝗰𝗲𝘀: The mechanisms by which the system communicates with external systems or users. Here we can have an MVC architecture of a GUI.
🔹 𝗖𝗼𝗻𝘁𝗿𝗼𝗹𝗹𝗲𝗿𝘀: The components responsible for managing the flow of data between the other layers of the system.
🔹 𝗣𝗿𝗲𝘀𝗲𝗻𝘁𝗲𝗿𝘀: The components responsible for presenting data to users or other systems.
🔹 𝗜𝗻𝗳𝗿𝗮𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲: The components responsible for interacting with external systems or services, such as databases or APIs.
An 𝗮𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲 with Clean Architecture could look like, this for POS App:
📁 Source
| 📁 Core
| 📁 Application
| 📁 Domain
| 📁 Infrastructure
| 📁 Identity
| 📁 Persistence
| 📁 Shared
| 📁 Api
| 📁 ...
In comparison to 𝗢𝗻𝗶𝗼𝗻 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲, Clean Architecture offers a clearer separation of concerns and a better comprehension of boundaries. They support similar ideals but with various levels, and they are close relatives. Clean architecture makes it crystal clear why each layer is necessary and what each one's roles are, which is why it is often referred to as 𝘀𝗰𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍2🔥1🎉1🕊1
یه اپ کوچیک و جمع و جور برای ترجمه زبان آدمیزادی به SQL. میشه بهش schema هم داد از رو اون کوئری بسازه :)
https://www.sqltranslate.app
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
https://www.sqltranslate.app
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍4
دوستان تصمیم گرفتم یک روز در هفته داخل گروه تماس گروهی داشته باشیم جدا از مسائل کاری باهم تجربیاتمون رو به اشتراک بزاریم و بیشتر باهم آشنا شیم، به همین منظورم کدام روز و ساعت مناسبه؟ در خصوص نرم افزار برای فضای گفتگو هم نظر بدین؟
Final Results
14%
۵ شنبه ساعت ۹ شب (تلگرام)
35%
۵ شنبه ساعت ۹ شب (میتینگ گوگل)
8%
جمعه ساعت ۹ شب (تلگرام)
35%
جمعه ساعت ۹ شب (میتینگ گوگل)
8%
نظرم را داخل کامنت اعلام میکنم