1. OOP là gì? OOP là viết tắt của Object-Oriented Programming, nghĩa là lập trình hướng đối tượng. Đây là một phương pháp lập trình dựa trên khái niệm "đối tượng" (object), giúp mô hình hóa các thực thể trong thế giới thực thành các đối tượng trong chương trình. 1.1 Khái niệm cơ bản về OOP Lập trình hướng đối tượng là phương pháp lập trình tập trung vào việc mô tả thế giới thực thông qua các đ... Chi tiết
When it comes to version control and collaboration tools for developers, GitLab and GitHub are two of the most popular platforms. Both are built around Git, the widely-used version control system, but they offer distinct features and cater to different needs. Here’s a quick comparison to help you decide which one is right for you. GitHub: The Community Giant GitHub is the most well-known plat... Chi tiết
Mở đầu Chào mừng các bạn trở lại với chuỗi bài viết về Rust! Ở bài trước, chúng ta đã tìm hiểu về Variables và Mutability trong Rust. Hôm nay chúng ta sẽ cùng nhau khám phá một trong những khái niệm có thể gọi là quan trọng nhất trong Rust: Ownership. Đừng lo nếu bạn thấy chúng hơi "khoai" - ban đầu mình cũng vậy. Mình sẽ cố gắng giải thích chúng một cách dễ hiểu nhất, và khi đã hiểu rồi, bạn s... Chi tiết
1. Dữ liệu và thông tin có vai trò gì trong doanh nghiệp? Dữ liệu và thông tin là tài sản quan trọng nhất của doanh nghiệp. Tuy nhiên, nhiều tổ chức hiện nay gặp khó khăn trong việc hiểu và sử dụng dữ liệu để tạo ra thay đổi tích cực. Điều này khiến doanh nghiệp chưa thể khai thác dữ liệu một cách hiệu quả, ảnh hưởng đến khả năng đưa ra hành động. Ví dụ, các doanh nghiệp bán lẻ ngày nay thu ... Chi tiết
Widget Composition và Cách Xây Dựng Giao Diện Người Dùng trong Flutter Flutter là một framework mạnh mẽ để phát triển ứng dụng đa nền tảng, và một trong những khái niệm cốt lõi của Flutter là widget. Trong Flutter, mọi thứ đều là widget, từ các thành phần nhỏ như nút bấm, văn bản, đến các bố cục phức tạp như danh sách và lưới. Bài viết này sẽ giúp bạn hiểu rõ hơn về widget composition (sự kết ... Chi tiết
Nếu bạn đang tìm hiểu về Flutter, chắc hẳn bạn đã nghe đến Dart - ngôn ngữ lập trình chính thức được sử dụng để xây dựng các ứng dụng Flutter. Dart không chỉ mạnh mẽ mà còn rất dễ học, đặc biệt nếu bạn đã có kinh nghiệm với các ngôn ngữ như Java, JavaScript, hoặc C. Trong bài viết này, mình sẽ giới thiệu chi tiết về Dart, từ những khái niệm cơ bản đến các tính năng nổi bật giúp nó trở thành một... Chi tiết
Thứ tự thực thi 1 câu lệnh SQL là một phần quan trọng để thực hiện truy vấn cơ sỡ dữ liệu thông qua ngôn ngữ SQL. Giúp lập trình viên như chúng ta có thể dễ dàng kiểm soát business logic của mình. Từ đó đưa ra các dòng truy phấn phức tạp một cách chính xác hơn. Bài viết ngày hôm nay mình muốn chia sẻ về trình tự thực thi của một câu lệnh SQL. Liệu rằng những gì xảy ra bên dưới của nó có giống n... Chi tiết
Docker là một công cụ phổ biến giúp tạo và quản lý các container, mang lại sự linh hoạt và hiệu quả cho việc phát triển và triển khai phần mềm. Chúng ta có thể biết nhiều hơn về việc sử dụng Docker để cài và quản lý các ứng dụng chạy trên nền Linux, tuy nhiên hoàn toàn có thể cài một hệ điều hành Windows chạy trong Docker! Bài viết này mình sẽ hướng dẫn chi tiết về cài đặt Windows với Docker. ... Chi tiết
Trong buổi trò chuyện cùng Engineer Pro, anh Trọng Hoàng – cựu học viên hiện đang làm việc tại Huawei Hồng Kông – đã chia sẻ hành trình đầy cảm hứng về việc chinh phục vị trí trong một tập đoàn công nghệ lớn. Chào anh Hoàng! Đầu tiên, anh có thể giới thiệu đôi nét về bản thân được không? Chào các bạn, mình là Trọng Hoàng, sinh năm 1996. Hiện tại, mình đang làm việc tại Huawei với vị trí kỹ s... Chi tiết
Trong bài viết trước, mình đã chia sẻ về cách tích hợp RDBMS và Elasticsearch để tối ưu hệ thống lưu trữ và tìm kiếm. Hi vọng các bạn đã có cái nhìn tổng quan phương án thực hiện. Hôm nay, mình sẽ đi sâu hơn vào việc triển khai CRUD (Create, Read, Update, Delete) cho 1 đối tượng Article, từ phương án cơ bản đến nâng cao, kèm theo ví dụ code cụ thể bằng C#. 1. CRUD cơ bản cho Article vào Data... Chi tiết
Today, the world is moving very fast, and almost every industry has been impacted by technology. Of course, law firms and their lawyers and clients are no exception to that. Lawyer app development has become very necessary for efficient legal matter management between law firms, lawyers, and clients. It has been created in such a manner that makes processes simpler, easier, and accessible. In ... Chi tiết
Hôm nay, mình muốn chia sẻ với các bạn một chủ đề liên quan đến công việc lập trình rất quan trọng mà lại ít được các thầy cô dạy đó là việc viết git commit message như thế nào cho đúng, chuẩn. Điều mà có các lập trình viên như chúng mình khi làm việc cùng team mai sau sẽ dùng hằng ngày luôn 😄 I. Mục đích Commit message là gì ? - Commit message có mục đích chính là cung cấp thông tin rõ ràng v... Chi tiết
Trong quá trình đi làm được thao tác trực tiếp với cơ sở dữ liệu, đặc biệt là cơ sở dữ liệu SQL mình nhận thấy rằng việc phân tích tại sao một câu lệnh SQL chậm cũng rất quan trọng, nó là kiến thức nền tảng giúp mình tối ưu lênh trong ứng dụng lập trình hàng ngày. Hơn thế nữa nó cũng là kiến thức nền tảng và thường xuyên được hỏi trong hành trình phỏng vấn Backend Job của mình. Vậy có những chi... Chi tiết
Mình đang trong quá trình tìm hiểu lại các Foudation Language Model, thì đọc đến Llama 1 thì có đề cập tới kỹ thuật này. Dù ban đầu tính là sẽ nhét hết vào một bài viết về Llama, nhưng thấy rằng có khá nhiều kiến thức bị bỏ qua nên đánh riêng một bài luôn. I. Layer Normalization Layer Normalization (LayerNorm) là một kỹ thuật chuẩn hóa được giới thiệu vào năm 2016 bởi Jimmy Lei Ba và các cộng... Chi tiết
Trong hành trình thúc đẩy khám phá khoa học, các nhà nghiên cứu luôn tìm kiếm những cách mới để tinh giản quy trình làm việc và tập trung vào các khía cạnh sáng tạo nhất của công việc. Agent Laboratory, một framework mới lạ, nổi lên như một giải pháp đầy hứa hẹn, khai thác sức mạnh của các Mô hình Ngôn ngữ Lớn (LLMs) để hoạt động như các trợ lý nghiên cứu tự động. Hệ thống mã nguồn mở này nhằm ... Chi tiết
Câu hỏi 1: Em có thiết kế database không? Trả lời: - Có, em đã tham gia vào việc thiết kế database trong các dự án mà em làm việc, bao gồm cả việc thiết kế mới và tối ưu hóa các cơ sở dữ liệu hiện có. - Em sử dụng các hệ quản trị cơ sở dữ liệu như MySQL, MSSQL, MariaDB và cũng có kinh nghiệm với NoSQL (như Redis) để xử lý các tình huống đặc thù. Câu hỏi 2: Khi thiết kế database, em sẽ thực hi... Chi tiết
Một trong những thách thức lớn nhất của LLMs là việc xử lý long context. Hiện nay chúng ta có biết được hai hướng chính để xử lý vấn đề này: - Input Reduction: Rút gọn lại độ dài đầu vào, tiêu biểu trong phương án này là RAG, với việc chia văn bản lớn thành các đoạn nhỏ, chỉ lấy những đoạn có nội dung gần nhất với câu hỏi đầu vào. - Context Window Expanding: Hiểu đơn giản là việc chúng ta mở rộ... Chi tiết
Viblo Team vô cùng tự hào và hân hạnh được công bố những cá nhân và đội ngũ xuất sắc nhất năm 2024 trong cộng đồng Viblo! 🏆 Hãy cùng vinh danh những đóng góp và nỗ lực tuyệt vời của họ qua 7 hạng mục giải thưởng: 🏅 Top Post 2024 - Giải thưởng dành cho Top 3 bài viết có lượng postviews cao nhất 2024 thuộc về: ✨ Tác giả Tờ Mờ Sáng học Lập trình @tmsanghoclaptrinh với bài viết Có nên sử dụng #inc... Chi tiết
Phong cách thiết kế mang lại cảm giác hiện đại , thậm chí tương lai - Bạn luôn tự hỏi hoặc nhận thấy các dev khác làm giao diện đẹp và đặt sắc hơn mình ? Đừng lo bài viết này sẽ mang đến cho bạn những từ khóa gợi mở cho bạn - Bản thân mình đi lên từ backend làm giao diện khá xấu , nhưng nhờ có tailwind và các chatbot AI : như Gemini, Tabnine, Github Copilot gần đây mình có dùng con V0.dev và De... Chi tiết
Khái niệm Microservices với RabbitMQ trong NestJS Microservices (dịch vụ vi mô) là một kiến trúc phần mềm, trong đó các ứng dụng lớn được chia thành các dịch vụ nhỏ độc lập, có thể triển khai và mở rộng độc lập. Trong NestJS, kiến trúc Microservices được hỗ trợ mạnh mẽ thông qua các message broker như RabbitMQ. RabbitMQ là một message broker cho phép giao tiếp không đồng bộ giữa các dịch vụ b... Chi tiết
Nếu bạn muốn được huấn luyện/Mentor/Coaching hoặc hợp tác với chuyên gia hàng đầu về lập trình ==>Hãy đăng ký bên dưới nhé!