
Công việc của một lập trình viên là viết ra những dòng code bằng ngôn ngữ lập trình, tuy nhiên bạn có biết làm sao để máy tính của chúng ta có thể hiểu và thực thi những dòng code đó không. Câu trả lời chính là việc sử dụng compiler. Vậy trình biên dịch compiler là gì, công việc cụ thể của một trình biên dịch bao gồm những bước nào. Bài viết hôm nay chúng ta cùng đi trả lời cho những câu hỏi đó nhé. Compiler là gì? Compiler hay trình biên dịch là một chương trình máy tính thực hiện việc chuyển đổi chuỗi các câu lệnh trong một ngôn ngữ lập trình cụ thể (source file) sang thành ngôn ngữ ở bậc thấp hơn mà máy tính có thể hiểu được (machine code). Như chúng ta đều biết, máy tính chỉ có thể hiểu được các chuỗi ký tự 0 và 1 được nhập vào để thực hiệ [...]
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 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 →
Ô 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ả Tống Xuân Hoài Vấn đề Là một lập trình viên Node.js đã bao giờ bạn nghe đến thế mạnh của Node.js là xử lý các tác vụ I/O và không đồng bộ, rằng Node.js không phải là lựa chọn tốt nhất cho các ứng dụng thiên về khả năng khai thác triệt để sức mạnh CPU? Vậy thì tác vụ I/O là gì và tại sao Node.js lại mạnh về I/O? Việc nói Node.js không thực sự tốt với các phép tính lớn là có đúng không. Bài viết ngày hôm nay tôi sẽ dành thời gian nói về vấn đề nêu trên. Tác vụ I/O là gì? I/O (Input/Output) đề cập đến sự tương tác của máy tính hay chương trình máy tính với ổ đĩa (disk) và mạng của hệ thống. Ví dụ các hoạt động I/O bao gồm đọc/ghi dữ liệu từ ổ đĩa, thực hiện các yêu [...]
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ả 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 →
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 →
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam Để giúp bạn chuẩn bị tốt nhất cho các cuộc phỏng vấn liên quan đến Docker, TopDev đã tổng hợp danh sách TOP 35 câu hỏi phỏng vấn Docker và cách trả lời hay nhất. Bỏ túi ngay để có một buổi phỏng vấn thật thành công bạn nhé. 21. Docker volume được lưu ở đâu trong docker? Volume được tạo và quản lý bởi Docker và không thể truy cập bằng thực thể khác docker. Nó được lưu trữ trong hệ thống file host Docker ở /var/lib/docker/volumes/. 22. Lệnh docker info là gì? Lệnh lấy thông tin chi tiết về Docker được cài đặt trên hệ thống host. Thông tin có thể giống như số lượng container hoặc image và chúng đang chạy ở trạng thái nào và các thông số kỹ thuật phần cứng như tổng bộ nhớ được cấp phát, tốc độ của bộ xử lý, phiên bản kernel,... 23. Ý nghĩa của các lệnh up, run và start của docker compose? Sử [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam Để giúp bạn chuẩn bị tốt nhất cho các cuộc phỏng vấn liên quan đến Docker, TopDev đã tổng hợp danh sách TOP 35 câu hỏi phỏng vấn Docker và cách trả lời hay nhất. Bỏ túi ngay để có một buổi phỏng vấn thật thành công bạn nhé. 11. Docker Hub là gì? Là một nền tảng đám mây được cung cấp bởi Docker cho phép lưu trữ công khai image của Docker đồng thời cho phép tìm kiếm và chia sẻ với người khác. Image có thể được đẩy lên Docker Hub bằng câu lệnh docker push. 12. Lệnh để export một docket image như một archive? Cú pháp đó là: docker save -o <exported_name>.tar <container-name> 13. Lệnh để import một Docker image đến một Docker host khác? docker load -i <export_image_name>.tar 14. Có thể xoá container bị tạm dừng khỏi Docker không? Không thể! Container phải bị dừng trạng thái trước khi ta có thể xoá chúng. 15. Lệnh [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam Docker đã trở thành một công cụ không thể thiếu trong việc triển khai và quản lý các ứng dụng container hóa. Với sự phổ biến ngày càng tăng của Docker, việc nắm vững kiến thức và kỹ năng về Docker không chỉ là một lợi thế mà còn là một yêu cầu quan trọng đối với các kỹ sư phần mềm, DevOps và những người làm việc trong lĩnh vực công nghệ thông tin. Để giúp bạn chuẩn bị tốt nhất cho các cuộc phỏng vấn liên quan đến Docker, TopDev đã tổng hợp danh sách TOP 35 câu hỏi phỏng vấn Docker và cách trả lời hay nhất. Bỏ túi ngay để có một buổi phỏng vấn thật thành công bạn nhé. I. Giới thiệu Docker Docker là một nền tảng mã nguồn mở rất phổ biến và mạnh mẽ được sử dụng để xây dựng, triển khai và chạ [...]
Read more →
Trong thế giới phần mềm ngày nay, người dùng luôn mong muốn có được trải nghiệm mượt mà và được đáp ứng nhanh chóng khi sử dụng các ứng dụng. Tuy nhiên, khi lượng truy cập tăng cao, hiệu suất của ứng dụng có thể bị ảnh hưởng nghiêm trọng, dẫn đến độ trễ, lỗi hoặc thậm chí là gây ra những sự cố nghiêm trọng. Đây là lúc mà Load Testing trở nên quan trọng hơn bao giờ hết. Trong bài viết này, hãy cùng TopDev khám phá về Load Testing, từ khái niệm cơ bản đến vai trò của quá trình này trong phát triển mềm. Load Testing là gì? Load Testing là quá trình đo lường hiệu suất của một hệ thống phần mềm bằng cách mô phỏng tải trọng người dùng thực tế. Quá trình này cho phép các developer và các tester phần mềm đánh giá khả năng xử lý, thời gian phản hồi, sự ổn định và khả năng mở rộng [...]
Read more →
Bài viết được sự cho phép bởi tác giả Vũ Thành Nam Có lẽ đây là một chủ đề nói đơn giản cũng không hẳn mà nói phức tạp cũng không hẳn, đi sâu hơn vào lĩnh vực này mình cảm thấy mình thật nhỏ bé, vì vậy có thể bài viết này sai sót ở đâu đó do mình còn ít kinh nghiệm mong các bạn có thể bổ sung góp ý thêm nhé! Đầu tiên thì bạn thường đặt câu hỏi tại sao lại phải làm phức tạp hóa vấn đề lên trong khi một phần mềm chỉ cần đáp ứng đúng và đủ nhu cầu hiện tại của mình. Nếu như bạn đã đọc qua về quá trình phát triển của các kiến trúc phần mềm thì bạn sẽ nhận thấy chúng ta thiết kế không phải nhằm mục đích đáp ứng mỗi nhu cầu hiện tại, mà nó còn để giải quyết những vấn đề phát triển trong tương [...]
Read more →