

NGÂN HÀNG THƯƠNG MẠI CỔ PHẦN SÀI GÒN TÀI LỘC (SACOMBANK)Đồng hành cùng phát triển
ILA VietnamEducation for Life
Bài viết được sự cho phép của tác giả Nguyễn Hoàng Phú Thịnh Hế lôôôô anh em, Bài viết này mình sẽ hệ thống lại rõ hơn công việc của BA theo trình tự thời gian làm dự án. Từ đó anh em sẽ có cái nhìn rõ ràng hơn về công việc của BA. Quy trình làm dự án Đầu tiên sẽ là quy trình tổng quan như sau. [caption id="attachment_65803" align="aligncenter" width="676"] Quy trình làm dự án[/caption] Như anh em thấy quy trình làm phần mềm nó gồm 6 bước: Analysis: phân tích xem mình sẽ làm những gì Design: mình sẽ thiết kế phần mềm như thế nào Develop: mình sẽ code ra sao Test: phần mềm được đem đi test Deploy: phần mềm được đưa vào sử dụng Maintain: giai đoạn bảo trì, hỗ trợ khách hàng sử dụng phần mềm. Quy trình dự án về cơ bản gồm 6 bước trên, nhưng thực tế nó sẽ linh hoạt theo từng phương pháp quản lý dự án (project [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Hoàng Phú Thịnh Hế lôôô anh em, bài này mình sẽ đi tiếp quy trình làm dự án phần mềm và công việc của BA trong đó. Ở phần trước mình đã note lại giai đoạn đầu tiên là Analysis, gồm 6 bước nhỏ: Project Definition >> Elicitation >> Analysis >> Documentation >> Verification >> Management. [caption id="attachment_65800" align="aligncenter" width="1696"] Recall lại 6 bước nhỏ trong giai đoạn Analysis ở bài trước[/caption] Hi vọng anh em sẽ không cảm thấy khó hiểu khi đọc đến đây. Sau bước Analysis này chúng ta đã có tài liệu mô tả yêu cầu, tức là đã biết được khách hàng cần gì. Giờ BA và team dự án sẽ đi vào giai đoạn thiết kế hệ thống sao cho đáp ứng những yêu cầu này nhé anh em 😎 2. Design Ở bước này, tùy level, trách nhiệm, và loại dự án, mà BA sẽ tham gia vào ít hoặc nhiều. Thực tế xảy ra là: hiếm khi BA ghi nhận các được yêu [...]
Read more →
Các giải thuật sắp xếp kinh điển như Bubble Sort, Insertion Sort, Selection Sort hay Quick Sort hẳn không còn xa lạ gì đối với các lập trình viên. Tuy nhiên thực tế trong nhiều bài toán, việc cải tiến các giải thuật trên để áp dụng cho chương trình một cách phù hợp với từng đặc thù dữ liệu tạo ra các giải thuật mới thú vị, Shell Sort là một ví dụ như vậy. Bài viết hôm nay chúng ta cùng nhau tìm hiểu về giải thuật Shell Sort và cách triển khai bằng ngôn ngữ lập trình Python nhé. Giải thuật Shell Sort Shell Sort là một giải thuật sắp xếp được cải tiến từ giải thuật sắp xếp chèn (Insertion Sort), mang lại hiệu quả sắp xếp tốt hơn trong nhiều trường hợp của bài toán thực tế. Ý tưởng chính của thuật toán này là việc khi sử dụng Insertion Sort trong nhiều trườ [...]
Read more →
Ô kieee xin chàoooo anh em. Đây là tập 2 của chuỗi bài note: Những kỹ năng cần có của người làm Business Analyst 😎 Nếu chưa đọc tập 1 thì click ngay đừng ngại. Review nội dung trước đó cho anh em đỡ quên: TỔNG QUAN 1. ANALYTICAL THINKING 1.1. Conceptual & Visual Thinking 1.2. Creative & Innovative 1.3. Problem Solving … 1.4. Decision Making Mình từng gặp một trường rất trớ trêu: dự án đã đóng rồi, hợp đồng thì cũng đã thanh lý, nhưng mình cứ bị kẹt vô thế nửa nạc nửa mỡ. Số là dự án đã qua 3 tháng bảo hành và đã đóng hoàn toàn dựa trên hợp đồng. Nhưng khách hàng thì cứ ỡm ờ. Lúc thì nói muốn ký gói bảo hành một năm, lúc thì không thấy đá động phản hồi gì hết. Mà oải cái là anh chàng Contact Point bên khách hàng cứ lâu lâu nhắn mình, nhờ support cái này, cái kia. Về lý, team mình không việc gì phải tiếp tục support. Nếu muốn support, khách hàng phải ký hợp đồ [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Hoàng Phú Thịnh Thời gian qua có nhiều anh em hỏi mình về ngành MIS. Và đặc biệt là câu hỏi: sau này ra trường, làm BA thì cần có những kỹ năng – kiến thức chuyên ngành như thế nào??? … Do đó, như lời giới thiệu ở trên, chuỗi bài này mình sẽ note về chủ đề: những kỹ năng cần có của một người làm công việc Business Analyst. Là một bài khá fundamental, nhưng cũng là dịp để bản thân mình dòm lại: thật sự BA cần có những kỹ năng nào, và liệu mình đã có đủ hết những kỹ năng đó hay chưa. Bắt đầu thôi nào! Tổng quan một chút Trong bất kỳ ngành nghề nào, chúng ta đều cần tới: Kiến thức và kỹ năng cần có của ngành nghề, công việc đó. Business Analyst cũng vậy, sẽ có: Nhóm các Kiến thức chuyên môn – Knowledge Areas (có thể [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam GitHub không chỉ là nơi để chia sẻ mã nguồn mà còn là một kho tàng tài nguyên quý giá cho lập trình viên muốn nâng cao kỹ năng của mình. Từ các dự án mã nguồn mở cho đến tài liệu học tập chuyên sâu, GitHub cung cấp một nền tảng tuyệt vời để bạn cải thiện khả năng lập trình và tiếp cận những kiến thức mới. Trong bài viết này, chúng ta sẽ khám phá một số repositories nổi bật mà bạn có thể tham khảo để phát triển kỹ năng lập trình. 1. FreeCodeCamp FreeCodeCamp là một nền tảng học lập trình nổi tiếng, và repository của nó là một trong những nguồn tài liệu học tập phong phú nhất trên GitHub. Với hơn 40,000 giờ học miễn phí và hàng loạt bài tập thực hành từ cơ bản đến nâng cao, FreeCodeCamp giúp [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam Trong thế giới ngày nay của phát triển web, việc lựa chọn mô hình rendering là một quyết định quan trọng đối với nhà phát triển. Bốn khái niệm quan trọng này bao gồm Client-Side Rendering (CSR), Server-Side Rendering (SSR), Static Site Generation (SSG), và Incremental Static Regeneration (ISR). Mỗi khái niệm đều mang lại những ưu và nhược điểm riêng, và việc hiểu rõ về chúng giúp đưa ra quyết định đúng đắn trong quá trình phát triển ứng dụng web. I. Các mô hình rendering 1. Client-Side Rendering (CSR) Client-Side Rendering là một mô hình phát triển web mà trong đó đoạn code HTML được render trực tiếp trên trình duyệt của người dùng bằng JavaScript. Phương pháp này tăng cường tương tác và giảm tải cho máy chủ, vì máy chủ chủ yếu phục vụ dữ liệu gốc. Trong đó, trình duyệt web sẽ ban đầu tải một tệp HTML trống. Sau đó, JavaScript và các [...]
Read more →
Trong kỷ nguyên số hóa, bản đồ không chỉ đơn thuần là công cụ chỉ đường mà còn là một phần quan trọng trong việc phát triển các sản phẩm công nghệ. Nền tảng bản đồ cung cấp nhiều chức năng quan trọng như dẫn đường, tìm kiếm địa điểm, và tạo ra trải nghiệm người dùng tốt hơn. Bài viết này sẽ thảo luận về việc sử dụng nền tảng bản đồ, các thành phần chính của nó, và cách tiết kiệm chi phí khi sử dụng dịch vụ bản đồ. Tại sao sử dụng bản đồ? Chức năng điều hướng và dẫn đường: Bản đồ giúp người dùng tìm đường và di chuyển từ điểm A đến điểm B một cách hiệu quả. Tìm kiếm địa điểm và danh lam thắng cảnh: Người dùng có thể tìm kiếm các địa điểm quan trọng như nhà hàng, khách sạn, và các danh lam thắng cảnh. Giao diện người dù [...]
Read more →
Trong bối cảnh thế giới ngày càng chú trọng đến sự bền vững và giảm thiểu tác động môi trường, các yếu tố chất lượng của kiến trúc phần mềm cũng đang dần thay đổi để thích ứng với yêu cầu này. Bài viết này sẽ trình bày chi tiết về tính bền vững như một yếu tố chất lượng mới trong kiến trúc phần mềm và những bước cần thiết để đạt được điều này. Các thuộc tính chất lượng Các yêu cầu không chức năng (non-functional requirements) là các tiêu chí quan trọng để đánh giá mức độ hoàn thiện của một hệ thống phần mềm. Chúng bao gồm hơn 80 thuộc tính đáng chú ý như tính sẵn sàng, độ tin cậy, khả năng mở rộng, bảo mật và bảo trì. Dưới đây là một số bộ thuộc tính chất lượng chính: Bảo mật (Security): Bảo mật thông tin, tính toàn [...]
Read more →
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ộ [...]
Read more →
Bài viết được sự cho phép của tác giả Duy Phan Thông tin được định nghĩa dưới dạng dữ liệu, kiến thức về thông tin, và trí tuệ về tri thức. Data, trong ngữ cảnh nhất định, sẽ trở thành Information. Information với context cụ thể sẽ trở thành Knowledge. Knowledge với những hiểu biết được đưa ra, sẽ trở thành Wisdom. Kim tự tháp dữ liệu là một khái niệm hình dung hệ thống phân cấp Dữ liệu - Thông tin - Tri thức - Trí tuệ. Information là một tập hợp các Data được xử lý từ nhiều nguồn khác nhau. Data được tổng hợp liên tục và không hữu ích cho đến khi nó đã được xử lý và được trình bày ở dạng có thể sử dụng được. Data bao gồm các dữ liệu thô hoặc các quan sát. Khi dữ liệu được sắp xếp, thông tin có thể được đưa ra. Các câu hỏi tại sao, ai, cái gì, ở đâu và bằng cách nào cho phép chúng ta sử dụng dữ liệu [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam II. Câu hỏi phỏng vấn về Lập trình hướng đối tượng (OOP) (Phần 2) 20. Các kiểu constructor trong C++? Các constructor có các phân loại phổ biến như sau: Default Constructor: Hàm khởi tạo mặc định không nhận bất kỳ tham số nào. class ABC { int x; ABC() { x = 0; } }; Parameterized constructor: hàm khởi tạo này nhận về một hay nhiều tham số. class ABC { int x; ABC(int y) { x = y; } }; Copy constructor: là một hàm thành viên khởi tạo một đối tượng bằng cách sử dụng một đối tượng khác của cùng một lớp. class ABC { int x; ABC(int y) { x = y; } // Copy constructor ABC(ABC abc) { x = abc.x; } }; 21. Copy Constructor là gì? Copy Constructor hay hàm khởi tạo sao chép, có mục đích là sao chép một đối tượng sang một đối tượng khác. Điều đó có nghĩa là một phương thức khởi tạo sao chép sẽ sao chép một đối tượng và các giá trị củ [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam I. Lập trình hướng đối tượng là gì? OOP (Object-Oriented Programming) là một mô hình lập trình để giải quyết vấn đề xoay quanh khái niệm "Đối tượng". Đối tượng có thể được xem như là các thể hiện của thực thế ở thế giới thực như là lớp, chúng chứa một số đặc điểm và hành vi được chỉ định trong lớp mẫu. Ở các ngôn ngữ đơn giản, một lớp có thể là một bản mẫu, dựa trên nó để tạo ra các đối tượng. Thế nên Đối tượng có thể được xem như là một thể hiện của một lớp và thỉnh thoảng nó có thể được gọi là "thực thể". Các thuật ngữ đặc trưng ám chỉ đối tượng đó là gì, và hành vi chỉ đối tượng đó như thế nào. Ví dụ, ta tạo mô hình OOP với một chiếc xe: Lớp: mẫu xe cụ thể như Audi A4, BMW I8, Maruti Suzuki Vitara Brezza,... Đối tượng: Bất kỳ chiếc xe cụ [...]
Read more →
Bạn mới dấn thân vào con đường lập trình web và bối rối vì quá nhiều thuật ngữ như .NET, .NET core, .NET framework. Vậy sự khác biệt giữa chúng là gì? Nên chọn cái nào tốt nhất để học phát triển web? Trong bài viết này của TopDev, chúng ta sẽ tập trung đi sâu tìm hiểu về .NET core là gì và lịch sử hình thành của nó, đồng thời giúp bạn giải đáp thắc mắc ở đầu bài. [caption id="attachment_62869" align="aligncenter" width="1100"] .NET core là gì? Lịch sử hình thành và phát triển của .NET core[/caption] Tổng quan về .NET Core .NET Core là gì? .NET Core là phiên bản cải tiến của .NET Framework, là một nền tảng phát triển đa năng, mã nguồn mở, miễn phí được duy trì bởi Microsoft. Nó là một framework đa nền tảng chạy trên các hệ điều hành Windows, macOS và Linux. .NET Core có thể được sử dụng để xây dựng các loại ứng dụng khác nhau [...]
Read more →
Trong thời đại công nghệ hiện nay, việc phát triển các ứng dụng web động và dịch vụ web là một nhu cầu thiết yếu của các doanh nghiệp và lập trình viên. ASP.NET, một framework mã nguồn mở được phát triển bởi Microsoft, đã nhanh chóng trở thành công cụ không thể thiếu cho việc này. Được thiết kế để đơn giản hóa quá trình phát triển ứng dụng web, ASP.NET cung cấp nhiều tính năng mạnh mẽ và linh hoạt, giúp lập trình viên dễ dàng tạo ra các ứng dụng chất lượng cao, bảo mật và hiệu quả. Cùng TopDev tìm hiểu ASP.NET là gì? và các lợi ích tuyệt vời của ASP.NET ngay trong bài viết dưới đây! [caption id="attachment_62863" align="alignnone" width="1101"] ASP.NET là gì? Phân tích thành phần và phương thức hoạt động chi tiết[/caption] ASP.NET là gì? ASP.NET là một framework mã nguồn mở phía server được phát triển bởi Microsoft, nhằm mụ [...]
Read more →