TopDev
Sort by
1 results
HIGHLIGHT COMPANY

COMPANY INFORMATION

job-imageVINCENT HOLDINGS CO., LTDIn a rapidly evolving digital landscape, the right software can be a game-changer
Thành phố Hồ Chí Minh 10-24

RELATED POSTS

Marketplace Illustration
Design Thinking là gì? Đổi mới và Sáng tạo trong thời đại mới

Design Thinking là gì? Việc áp dụng Design Thinking không chỉ giúp bạn tạo ra những sản phẩm và dịch vụ tốt hơn mà còn phát triển kỹ năng mềm quan trọng như làm việc nhóm, thuyết trình và tư duy sáng tạo. Cùng tìm hiểu chi tiết trong bài viết dưới đây. Xu Hướng Công Nghệ Hiện Nay Trong thời đại số hóa, các xu hướng công nghệ mới đang định hình lại cách chúng ta sống và làm việc. Dưới đây là những xu hướng nổi bật: 1. Trí Tuệ Nhân Tạo (AI) AI đã phát triển từ năm 1956, đóng vai trò quan trọng trong tự động hóa, phân tích dữ liệu và cải thiện trải nghiệm khách hàng. 2. Web3 Web3 phi tập trung hóa và bảo mật thông tin người dùng thông qua blockchain, ứng dụng trong tài chính phi tập trung (DeFi) và NFTs. 3. An Ninh Mạng (Cyber Security) An ninh mạng đảm bảo hệ thống được bảo vệ trước cá [...]

Marketplace Illustration
Triển khai Saga Pattern trong microservices với NodeJS và Choreography-Based Saga

Bài viết được sự cho phép của tác giả Duy Phan Mình sẽ sử dụng lại ví dụ Booking Service Online trong phần trước đó Ở đây mình sẽ tạo ra các isolated service, đồng thời thiết kế để chúng giao tiếp với nhau thông qua một Message Queue. Ở đây mình chọn RabbitMQ làm Message Queue. 1. Triển khai BookingService // booking-service.ts import express from 'express' import amqp from 'amqplib' const app = express() const PORT = 3001 app.use(express.json()) let channel: amqp.Channel const paymentQueue = 'payment_queue' app.post('/booking', async (req, res) => { const { userId, eventId, numberOfSeats } = req.body // Pre-step 1: Validate booking request // Pre-step 2: Save booking request to application database const booking = { userId, eventId, numberOfSeats, bookingReservedSuccessfully: true, } /** * Step 1: Send Booking Request to PaymentService */ if (booking.bookingReservedSuccessfully) { await sendMessageToQueue(paymentQueue, { booking }) } res.json({ message: 'Booking request sent successfully' }) }) async function connectQueue(queue: string) { const connection = await amqp.connect('amqp://localhost') channel = await connection.createChannel() await channel.assertQueue(queue) } async function sendMessageToQueue(queue: string, message: unknown) { await channel.sendToQueue(queue, Buffer.from(JSON.stringify(message))) } app.listen(PORT, async () => { console.log(`BookingService is running on http://localhost:${PORT}`) await connectQueue(paymentQueue) }) BookingService xử lý các yêu cầu HTTP POST để tạo booking mới. BookingService cố gắng đặt trước một chỗ và nếu thành công, nó sẽ gửi mộ [...]

Marketplace Illustration
Repository Design Pattern và ứng dụng của nó trong Laravel

Bài viết được sự cho phép của tác giả Duy Phan Có khá nhiều bạn đã yêu cầu mình một bài viết về Repository Design Pattern. Vậy mục đích của nó là gì? Nó có thực sự cần thiết cho ứng dụng của bạn hay không? Những điểm mạnh, điểm yếu của nó là gì? Chúng ta cùng đi sâu tìm hiểu qua bài viết này nhé. Repository Design Pattern là gì? Đây là một mẫu thiết kế nâng cao mà các bạn mới tiếp xúc lập trình có lẽ cũng không để ý về nó lắm. Đối với các bạn đã có kinh nghiệm thực tập hay làm việc ở các công ti - chắc hẳn cũng đã được nghe các mentor của mình nói về nó. Repository Design Pattern (mình sẽ tạm viết tắt nó thành RD) là một trong những mẫu thiết kế được sử dụng nhiều nhất trong hầu hết các ngôn ngữ lập trình, các framework... như .NET, Java, PHP..., trải dài [...]

Marketplace Illustration
Graphic Designer là gì? Những điều cần biết về Graphic Designer

Trong thời đại 4.0 ngày nay, vai trò của người thiết kế đồ họa (Graphic Designer) ngày càng trở nên quan trọng và được đánh giá cao. Vậy, bạn có biết Graphic Designer là gì và công việc của họ là như thế nào không? Trong bài viết này, hãy cùng TopDev khám phá nhiều khía cạnh về Graphic Designer, từ công việc hàng ngày, kỹ năng cần có, cơ hội nghề nghiệp và các câu hỏi thường gặp xoay quanh công việc này. Graphic Designer là gì?  Graphic designer là người chuyên thiết kế và tạo ra các sản phẩm có liên quan đến hình ảnh, đồ họa và thiết kế mỹ thuật. Họ sử dụng sự sáng tạo và kỹ năng kỹ thuật để tạo ra các sản phẩm như bảng quảng cáo, hình ảnh, logo, bìa sách và nhiều sản phẩm khác. Công việc của Graphic Designer là gì? Thông thường trên các JD (mô tả công việc) khi tuyển dụng, các công việ [...]

Marketplace Illustration
Designer là gì? Cẩm nang từ A-Z cho người mới bắt đầu

Bạn đã từng say mê trước những logo ấn tượng, những trang web đẹp mắt hay những bộ trang phục lộng lẫy? Đây chính là tác phẩm của những Designer chuyên nghiệp. Tuy nhiên bạn vẫn chưa hình dung rõ nghề Designer là gì? Trong bài viết này, chúng ta sẽ khám phá sâu hơn về bản chất của nghề Designer, từ định nghĩa cơ bản cho đến những khía cạnh phức tạp hơn như mức lương hay cơ hội nghề nghiệp. Bắt đầu thôi nào! Designer là gì? Designer là những người chuyên về việc thiết kế và sáng tạo ra các sản phẩm, dịch vụ, hoặc trải nghiệm với mục đích mang lại giá trị thẩm mỹ, chức năng và trải nghiệm tốt cho người sử dụng. Một cách cụ thể hơn, Designer là những người sử dụng kiến thức, kỹ năng và sự sáng tạo của mình để: Xác định và giải quyết vấn đề thông qua thiết [...]

Marketplace Illustration
System Design là gì? Tìm hiểu quy trình System Design và các khái niệm liên quan

System Design là một kỹ năng cần thiết đối với các kỹ sư phần mềm đang tham gia hay muốn xây dựng các ứng dụng phức tạp; nó đòi hỏi khả năng tư duy sáng tạo và có hệ thống về cách giải quyết vấn đề cũng như việc áp dụng kiến thức kỹ thuật để thực hiện các giải pháp một cách hiệu quả. Bài viết hôm nay chúng ta cùng nhau điểm qua top 10 khái niệm System Design mà mọi lập trình viên nên biết để có thể tự tin hơn khi tham gia vào các dự án lớn trong tương lai nhé. System Design là gì? System Design (thiết kế hệ thống) là quá trình xác định kiến trúc (architecture), thành phần (component), module và giao diện (interfaces) của một hệ thống để đáp ứng các yêu cầu cụ thể, cũng như xác định các công nghệ và công cụ sẽ được sử dụng để triển khai hệ thống. Các bước trong quá trình System Design Xác định [...]

Marketplace Illustration
UI UX là gì? Công việc của một UX/UI designer

UI UX là gì? - UX UI Design là một ngành khá hot và có tiềm năng rất lớn trong thời đại công nghệ số ngày nay. Vậy bạn có từng tự hỏi rằng công việc của một UX/UI designer là như thế nào? Một  UX UI Designer thì phải có những tính cách hay tố chất như thế nào? Người làm UX UI Design sẽ phối hợp với những chức năng khác như thế nào? Bài viết này sẽ giải đáp những câu hỏi đó. UX UI là gì? UX (User Experience) và UI (User Interface) là hai khái niệm quan trọng trong lĩnh vực thiết kế và phát triển ứng dụng, trang web và các sản phẩm số. UX là gì? UX (User Experience - Trải nghiệm người dùng): Đây là khái niệm liên quan đến cách mà người dùng tương tác với sản phẩm của bạn và cảm nhận về trải nghiệm đó. Mục tiêu chính của UX design là đảm bảo người dùng có [...]

Marketplace Illustration
Circuit Breaker Pattern - Bộ ngắt mạch trong các cuộc gọi phân tán

Bài viết được sự cho phép của tác giả Tống Xuân Hoài Vấn đề Pattern hay tên gọi đầy đủ Design Pattern là một mẫu thiết kế hoặc một giải pháp chung để giải quyết một vấn đề nào đó. Nó được tổng hợp và sử dụng bởi rất nhiều người trong việc giải quyết các vấn đề tương tự nhau. Khi giải quyết một bài toán, các Pattern thường được xem xét hoặc khuyên dùng. Chính vì thế biết được nhiều mẫu thiết kế, bạn càng có thêm nhiều ý tưởng để giải quyết bài toán sao cho phù hợp nhất. Circuit Breaker Pattern là một mẫu thiết kế lấy cảm hứng từ "cầu dao điện". Khi xảy ra hiện tượng đoản mạch hoặc quá tải do quá nhiều thiết bị tiêu thụ điện, cầu dao sẽ tự ngắt để đảm bảo không xảy ra nguy cơ cháy nổ. Tương tự như trong hệ thống phần mềm, nó đóng vai trò như là một "bộ [...]

Marketplace Illustration
SAGA Pattern trong kiến trúc ngân hàng lõi (Core Bank Architecture)

Bài viết đến từ anh Trần Minh Thiện - Giám đốc Kiến trúc Giải pháp Enterprise Architect team @Techcombank 1. Tổng quan  Trong các hệ thống phân tán (distributed systems), các giao dịch thương mại (business transactions) qua nhiều tầng dịch vụ (multiple-layer services) cần thiết có một cơ chế để đảm bảo dữ liệu phải nhất quán xuyên suốt. Vì vậy, khái niệm SAGA đại diện cho một mô hình hoạt động thương mại tổng quát (như khi ta đặt một  chuyến du lịch) gồm nhiều yêu cầu chuyên sâu (low-level requests) mà mỗi yêu cầu này sẽ thực hiện cập nhật dữ liệu trong từng service đơn lẻ. Mỗi yêu cầu cũng  sẽ chứa một yêu cầu khôi phục (compensating request) chỉ được thực hiện khi yêu cầu ban đầu bị lỗi. 2. Ngữ cảnh  Giao dịch (transactions) là thành phần chủ yếu trong mọi ứng dụng doanh nghiệp (enterprise application). Không có giao dịch sẽ không thể duy trì tính nhất [...]

Marketplace Illustration
Data Modeling with DynamoDB: Single table design (Xây dựng mô hình dữ liệu với DynamoDB: Thiết kế bảng đơn lẻ)

Bài viết đến từ anh Vũ Tuấn Nghĩa - Quản lý cao cấp hoạch định dữ liệu Data Engineering team @Techcombank DynamoDB là một dịch vụ cơ sở dữ liệu NoSQL cung cấp hiệu năng nhanh và nhất quán - có khả năng mở rộng và linh hoạt trong cách sử dụng. Khác với cơ sở dữ liệu quan hệ (RDMS), DynamoDB không sử dụng joins và các cấu trúc quan hệ khác để lưu trữ và truy vấn dữ liệu. Thay vào đó, bạn sẽ thiết kế table của mình theo Single design table - 1 table duy nhất phục vụ toàn bộ application hay service, việc này giúp hiệu suất đọc và ghi nhanh hơn ở scale lớn và giảm chi phí cloud. Trong bài viết này, chúng mình sẽ khám phá các lợi ích và thách thức của việc sử dụng Single design table trong DynamoDB, cũng như cách Datalake ở Techcombank sử dụng để đáp ứng và tối ưu như cầu sử dụng. Single table design Trong tài liệu trang chủ AWS có đề cập: You should maintain as few tables as [...]

Marketplace Illustration
Top 5 câu hỏi phỏng vấn Game Designer được hỏi nhiều nhất

Game designer có phải là người thiết kế chính cho game? Vậy những kỹ năng nào cần có cho vị trí này, dưới đây là ví dụ 5 câu hỏi phỏng vấn Game Designer. Tin tui đi bà con ơi, tui là game designer nè, thiết kế gì cũng chuẩn, game nào game nấy làm ra chỉ có chơi ghiền tới chết hông à!. Đùa chút cho vui nhưng mong rằng qua bài viết này, anh em sẽ có các bước chuẩn bị thật tốt cho buổi phỏng vấn. Bắt đầu ngay thôi nào! 1. Những kĩ năng nào là quan trọng nhất của Game Designer Câu hỏi thứ nhất phỏng vấn Game Designer, tập trung vào những kĩ năng mà ứng viên cho rằng nó là quan trọng đối với vị trí mà mình đang ứng tuyển. Việc xác định rõ những kĩ năng cần có hoặc quan trọng đối với bản thân giúp nhà tuyển dụng hiểu được ứng viên đang ở trình độ nào. Những kỹ năng mà ứng [...]

Marketplace Illustration
Hướng dẫn Java Design Pattern – Decorator

Bài viết được sự cho phép của tác giả Giang Phan Một trong những khía cạnh quan trọng nhất trong quá trình phát triển một ứng dụng mà các lập trình viên phải đối đầu là sự thay đổi. Khi muốn thêm hoặc loại bỏ một tính năng của một đối tượng, điều đầu tiên chúng ta nghĩ đến là thừa kế (extends). Tuy nhiên, thừa kế không khả thi vì nó là static, chúng ta không thể thêm các lớp con mới vào một chương trình khi nó đã được biên dịch và thực thi. Để giải quyết vấn đề này, chúng ta có thể sử dụng Decorator Pattern được giới thiệu trong phần tiếp theo của bài viết này. Decorator Pattern là gì? Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. Decorator pattern là một trong những Pattern thuộc nhóm cấu trúc (Structural Pattern). Nó cho phép người dùng thêm chức năng mới vào đối tượng hiện tại mà khô [...]

Marketplace Illustration
Hướng dẫn Java Design Pattern – Transfer Object

Bài viết được sự cho phép của tác giả Giang Phan Transfer Object Pattern là gì? Transfer Object/ Data Transfer Object Pattern là một dạng Architectural Design Pattern, được sử dụng khi chúng ta muốn truyền dữ liệu qua lại giữa các tầng trong ứng dụng, giữa Client – Server. Data Transfer Object (DTO) còn được gọi là Value Object (VO). Transfer Object đơn giản là một POJO (Plain Old Java Object), chỉ chứa các getter/ setter method và có thể có implement serialize để truyền tải dữ liệu thông qua network. DTO hoàn toàn không chứa behavior/ logic, chỉ được sử dụng để truyền dữ liệu và map dữ liệu từ các Domain Model trước khi truyền tới Client. Trong các ứng dụng đơn giản, các Domain Model thường có thể được sử dụng lại trực tiếp dưới dạng DTO và được truyền trực tiếp đến lớp hiển thị, do đó chỉ có một Data Model thống nhất. Đối với các ứng dụng phức tạp hơn, chúng ta không muốn hiển thị toàn bộ Domain Model cho Client, do đó, việc ánh xạ [...]

Marketplace Illustration
CQRS pattern là gì? Ví dụ dễ hiểu về CQRS Pattern

Quay lại với chuỗi bài về pattern và các pattern trong thiết kế hệ thống, bài viết hôm nay xin phép được trình bày một cách rất chi là cẩn thận, dễ hiểu cho anh em về CQRS pattern. À trước khi bắt đầu thì thông tin thêm cho anh em là pattern này nằm trong danh sách các pattern thường apply vào thiết kế hệ thống. Dành cho anh em nào chưa biết pattern. In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Trong phần mềm, design pattern là một giải pháp chung để giải quyết các vấn đề lặp đi lặp lại trong thiết kế phần mềm. Design pattern không phải là một khuôn mẫu hoàn chỉnh có thể quăng ra thành code luôn. Nó là khuôn mẫu xử lý một vấn đề được sử dụng trong nhiều hoàn cảnh [...]

Marketplace Illustration
SAGA Pattern trong Microservices

Tìm ra bài viết này chắc hẳn anh em đã biết về microservices, concept của micro services chia các service nhỏ để scale và quản lý, nhưng nó lại phát sinh vấn đề về sự nhất quán của dữ liệu giữa các micro services, đó là lý do tui viết bài về SAGA Pattern cho anh em. Anh em yên tâm, nhức đầu sẽ theo cấp độ. Cứ nhức đầu dần thôi à =))) Vậy SAGA pattern là gì? Bằng các nào nó có thể quản lý và đảm bảo được sự nhất quán dữ liệu giữa các micro services? Tất cả sẽ được trình bày rõ trong bài viết này. Microservices concept thì nhiều anh em biết rồi, nhưng SAGA pattern thì ít Bắt đầu thôi anh em. Luôn là định nghĩa. 1. Saga Pattern là gì? The Saga design pattern is a way to manage data consistency across microservices in distributed transaction scenarios. A saga is a sequence of transactions that updates each service and publishes a message or event to trigger the next transaction step. If a step fails, the saga executes compensating transactions that counteract the preceding transactions. Saga design pattern là cách quản lý sự thống [...]