Skip to main content

Posts

Showing posts from March, 2023

Áp dụng SOLID trong NestJS

NestJS cung cấp kiến trúc module cho phép các nhà phát triển có thể tái sử dụng và kiểm tra được code. NestJS cũng hỗ trợ TypeScript, cung cấp khả năng kiểm tra kiểu tĩnh và IntelliSense để các developer có năng suất tốt hơn. NestJS được xây dựng dựa trên Express, một framework web phổ biến cho Node.js. NestJS cũng cung cấp CLI mạnh mẽ giúp dễ dàng tạo project, modules, controllers và services. NestJS là framework Node.js được sử dụng để xây dựng các ứng dụng có thể mở rộng và bảo trì. Nó dựa trên các nguyên tắc lập trình hướng đối tượng và các mẫu thiết kế, bao gồm các nguyên tắc SOLID. S.O.L.I.D là từ viết tắt đại diện cho 5 nguyên tắc thiết kế trong phát triển phần mềm. Những nguyên tắc này được Robert C. Martin (còn được gọi là Bác Bob) giới thiệu như những hướng dẫn để tạo ra các hệ thống phần mềm linh hoạt và có thể bảo trì. Mỗi chữ cái trong từ viết tắt tương ứng với một nguyên tắc cụ thể: S - Single Responsibility Principle (SRP) : Nguyên tắc này nêu rõ rằng một lớp hoặc mo...

Software engineer Vs Software developer

Các thuật ngữ "kỹ sư phần mềm - software engineer" và "nhà phát triển phần mềm - software developer" thường được sử dụng thay thế cho nhau, nhưng có sự khác biệt nhỏ giữa hai vai trò này. Đây là một so sánh về sự khác biệt chính của họ: Software engineer vs Software developer Công nghệ phần mềm (Software engineering) là một cách tiếp cận có hệ thống để phát triển và bảo trì phần mềm. Nó liên quan đến việc sử dụng các nguyên tắc, phương pháp và công cụ kỹ thuật để thiết kế, phát triển, kiểm tra và bảo trì phần mềm. Các kỹ sư phần mềm chịu trách nhiệm cho toàn bộ vòng đời phát triển phần mềm, từ phân tích yêu cầu đến thiết kế, triển khai, thử nghiệm, triển khai và bảo trì. Họ cũng xem xét các yếu tố như khả năng mở rộng, độ tin cậy và bảo mật trong khi phát triển phần mềm. Học vấn và nền tảng (Education and background) : Một kỹ sư phần mềm thường có nền tảng về khoa học máy tính hoặc kỹ thuật phần mềm và có ít nhất bằng Cử nhân (Batchelor degree) trong lĩnh vực này. H...

10 điều cần biết dành cho Lập trình viên Java

Kể từ khi JAVA được công bố chính thức từ năm 1995, nó đã thay đổi rất nhiều cái nhìn của chúng ta về Hệ Điều hành. Bill Gate đã từng nói đùa rằng, nó – Hệ Điều hành – không phải là phần cứng mà là phần mềm, là tương lai. (It was not about the hardware but the software which will be the future). Một thập kỷ sau, John Gage (thành viên thứ năm của SUN) đã nói, “Mạng là máy tính” (The Network is the Computer). Và điều này đã nhanh chóng được chứng minh trong thế kỷ 21 này. Tuy nhiên, JAVA đã được xây dựng không phụ thuộc vào Hệ Điều hành và được triển khai qua mạng. JAVA với công nghệ Applet đã khai sinh cho những Ứng dụng Mạng Giàu Tương tác (Rich Network Application hay còn gọi là Rich Internet Application – RIA). JAVA không hoàn hảo và chúng ta liên tục có những bản phát hành khác nhau, tuy nhiên JAVA đã khai sinh một ngôn ngữ lập trình cực kỳ phổ biến. Trở lại với nội dung bài viết, tác giả Armel Nene (Senior Java developer với kinh nghiệm làm việc trong lĩnh vực tài chí...

Web application là gì?

Trong kỹ thuật phần mềm, một Ứng dụng web hay webapp là một trình ứng dụng mà có thể tiếp cận qua web thông qua mạng như Internet hay intranet. Ứng dụng web phổ biến nhờ vào sự có mặt vào bất cứ nơi đâu của một chương trình. Khả năng cập nhật và bảo trì ứng dụng Web mà không phải phân phối và cài đặt phần mềm trên hàng ngàn máy tính là lý do chính cho sự phổ biến của nó. Ứng dụng web được dùng để hiện thực Webmail, bán hàng trực tuyến, đấu giá trực tuyến, wiki, diễn đàn thảo luận, Weblog, MMORPG, Hệ quản trị quan hệ khách hàng và nhiều chức năng khác. Lịch sử Trong dạng tính toán chủ-khách trước đây, mỗi ứng dụng có chương trình khách riêng của nó sẽ phục vụ như giao diện người dùng và phải được cài đặt riêng rẽ trên mỗi máy tính cá nhân của người dùng. Sự nâng cấp phần máy chủ của ứng dụng sẽ cần nâng cấp tất cả máy khách đã được cài trên mỗi máy trạm người dùng, thêm vào đó là chi phí hỗ trợ và giảm năng suất. Ngược lại, ứng dụng web linh hoạt tạo ra một loạt các tài l...

Java là gì?

Java  là một ngôn ngữ lập trình được Sun Microsystems giới thiệu vào tháng 6 năm 1995. Nó được xây dựng trên nền tảng của C và C++ nghĩa là Java sử dụng cú pháp của C và đặc trưng hướng đối tượng của C++. Java là ngôn ngữ vừa biên dịch vừa thông dịch. Một số đặc trưng của Java: Đơn giản:  Những người thiết kế Java mong muốn phát triển một ngôn ngữ dễ học và quen thuộc với đa số lập trình viên. Java loại bỏ các phức tạp của C và C++. Loại bỏ con trỏ, thao tác định nghĩa chồng toán tử (operator overloading)... Không cho phép đa thừa kế (multi-inheritance) mà sử dụng các giao diện (interface). Không sử dụng lệnh goto cũng như file header (.h). Loại bỏ cấu trúc "struct" và "union". Hướng đối tượng:  Java là  ngôn ngữ hoàn toàn hướng đối tượng. Mọi thực thể trong hệ thống đều coi là một đối tượng, nghĩa là một thể hiện cụ thể của một lớp xác định. Tất cả các chương trình đều nằm trong một lớp (class) nhất định. Và hơn thế nữa Java không cho phép định nghĩa dữ liệ...

Java hay .NET? Một bài toán nan giải của nhiều Newbie

Có rất nhiều bạn đang rất phân vân khi không biết chọn hướng nào, có bạn đã định hướng trước là chọn Java nhưng nghe nói .NET hay quá cũng phân vân, có bạn chọn .NET rồi nhưng lại thấy tiếc, có bạn muốn chọn cả hai thì sợ mình kham không nổi. Chính chủ nhân blog này đã từng gặp phải hoàn cảnh như vậy, nhưng khi đọc qua một số bài viết trên một diễn đàn IT thì tôi mới ngộ ra được nhiều điều. Tôi nghĩ bài viết này cũng rất có ích cho nhiều bạn trẻ khi mới tập tành học lập trình … Cám ơn các tác giả có nickname YHT và davidex về bài phân tích khá chi tiết này. Bài viết này không nhằm vào mục đích so sánh khía cạnh kỹ thuật giữa hai công nghệ J2EE và .NET mà sẽ đi vào phân tích xem bạn nên chọn hướng nào và tại sao. Khi so sánh giữa sinh viên đại học và sinh viên ở các trung tâm đào tạo (điển hình là ở Đại học Bách khoa Tp.HCM và học viện CNTT NIIT Vietnam) chúng ta thường hay nhắc sinh viên đại học được học nhiều kiến thức nền tảng trong khi sinh viên NIIT lại học chuyên về những công ngh...