Lập Trình

Tổng hợp các thông tin, kinh nghiệm hữu ích và mới nhất về lập trình cần học gì, phỏng vấn, mức lương trong ngành IT như thế nào, tìm hiểu ngay!

398 bài viết

Hướng dẫn viết code PHP chuẩn – PSR tiêu chuẩn khi lập trình PHP

Hướng dẫn viết code PHP chuẩn – PSR tiêu chuẩn khi lập trình PHP

Bài viết được sự cho phép của tác giả Lê Chí Dũng Lý do bạn nên viết code theo tiêu chuẩn PSR: PSR là tiêu chuẩn code được áp dụng vào các dự án lớn hoặc framework PHP (Cakephp, Composer, Phalcon, Magento,…). Viết code chuẩn giúp bạn và đồng đội dễ dàng hiểu code của nhau. Thống nhất chung về cách thức viết code, tổ chức các class,… Dễ dàng đọc, hiểu, trình bày khỏi mất công bản thân “ tự chế ” kiểu code không giống ai. PSR là gì? PSR có nghĩa là PHP Standards Recommendations, nó là tiêu chuẩn được khuyến nghị áp dụng khi lập trình PHP và được các lập trình viên, tổ chức chấp nhận sử dụng. PSR được soạn thảo, đánh giá và khuyến khích sử dụng bởi một nhóm chuyên gia PHP những người phát triển cho các Framework và hệ thống PHP phổ biến ( thành viên PSR ). PSR bao gồm 7 phần ( http://www.php-fig.org/psr/ ) từ PSR-1, PSR-2, PSR-3, PSR-4, PSR-6, PSR-7. Các tiêu chuẩn thành phần hoàn chỉnh của PSR đó gồm: Basic Coding Standard: Tiêu chuẩn cơ bản khi viết code PHP Coding Style Guide: Tiêu chuẩn trình bày code Logger Interface: Giao diện logger Autoloading Standard: Tiêu chuẩn về tự động nạp Caching Interface: Giao diện về Caching HTTP Message Interface: Tiêu chuẩn Giao diện thông điệp HTTP PHP Autoloading là gì? PSR-4 autoloading với Composer Code PHP chuẩn convention với PHP CodeSniffer 1. PSR-1 Basic Coding Standard (Tiêu chuẩn cơ bản khi viết code PHP) PRS-1 là các nguyên tắc mỗi lập trình viên PHP nên theo để đảm bảo code dễ đọc, bảo trì, và dễ sử dụng lại cũng như chia sẻ cho đồng đội. 1. Nguyên tắc chung nhất khi code PHP...

By stationd
Tất tần tật về Collection trong Java

Tất tần tật về Collection trong Java

Collection là một phần cơ bản và quan trọng nhất trong bộ thư viện tiêu chuẩn của Java mà mọi anh em lập trình viên phải nắm vững. Nó cung cấp cho chúng ta hầu như tất cả những gì cần để làm việc với dữ liệu dạng tập hợp hay đồ thị và cho phép mở rộng để phù hợp với mục đích sử dụng. Để hiểu rõ hơn về cách mà Java phân cấp các kiểu dữ liệu tập hợp, bài viết hôm nay chúng ta cùng nhau tìm hiểu sâu hơn về khái niệm này nhé. Collection là gì? Collection là một interface có trong java.util package, nó được sử dụng để biểu diễn một nhóm các đối tượng riêng lẻ dưới dạng một đơn vị duy nhất (single unit). Collection cũng là một root interface trong collection framework mà Java cung cấp để làm việc với dữ liệu tập hợp. Collection interface cũng chứa một số các methods quan trọng để thao tác với dữ liệu tập hợp như add , delete , clear , size hay contains . List, Queue, Set là những sub-interfaces chính của Collection. Chúng ta cần phân biệt giữa Collection và Collections trong Java, đây là 2 khái niệm khác nhau. Collections là một lớp tiện ích (utility class) chứa các phương thức static dùng cho việc lưu trữ và thao tác với các tập dữ liệu như tìm kiếm, phân loại, chèn, xóa, … Cả Collection và Collections đều được cung cấp từ java.util package giúp chúng ta khởi tạo và thao tác với dữ liệu dạng tập hợp một cách hiệu quả nhất. Ví dụ Khởi tạo một ArrayList (1 lớp của Collection interface) // Creating an object of List<String> List < String > arrlist = new ArrayList <...

By stationd
PHP 8 có gì mới?

PHP 8 có gì mới?

Bài viết được sự cho phép của tác giả Phạm Bình Chào anh em, PHP đã chính thức phát hành phiên bản 8.0 (26/11/2020), với nhiều cải tiến mới cả về hiệu năng lẫn cũ pháp. Trong bài viết này, chúng ta cùng review các điểm thay đổi có trong PHP 8 nhé. Trích lời dẫn trên trang chủ PHP.net PHP 8.0 là một phiên bản cập nhật lớn của PHP. Phiên bản này bao gồm rất nhiều tính năng mới, đồng thời tối ưu cách truyền tham số (có thể đặt tên khi truyền tham số), union types (một biến có thể thuộc một vài kiểu dữ liệu), attributes, constructor, biểu thức match (cú pháp mới, gần giống switch case), toán tử nullsafe (cho phép truy xuất giá trị null một cách an toàn), JIT (trình biên dịch mới, giúp PHP 8 đạt hiệu năng cao), và cải tiến các về type system, xử lý lỗi, và tính nhất quán. Chúng ta sẽ tìm hiểu lần lượt về các sự thay đổi của PHP 8 so với phiên bản trước lần lượt qua các mục dưới đây. Cách thiết lập JIT trong PHP 8 Callback trong PHP là gì? Xem thêm nhiều việc làm PHP hấp dẫn trên Station D I. TRUYỀN THAM SỐ THEO TÊN GỌI – PHP 8 Việc một function có nhiều tham số (với mình là từ 3 tham số trở nên), có thể khiến developer lúng túng khi sử dụng vì không nhớ rõ ý nghĩa của từng tham số, cũng như thứ tự truyền của chúng. Ví dụ, function mkdir() (function giúp tạo thư mục) trong PHP có 4 tham số lần lượt là: $directory : Bắt buộc, là đường dẫn để tạo thư mục $permissions : Không bắt buộc, là khả năng...

By stationd
Refactoring Design Pattern với tính năng mới trong Java 8

Refactoring Design Pattern với tính năng mới trong Java 8

Bài viết được sự cho phép của tác giả Giang Phan Trong bài này, tôi sẽ giới thiệu với các bạn cách sử dụng một số tính năng mới trong Java 8 như Lambda , Function, Supplier, … để refactor code của một số Design Pattern. Xem thêm nhiều việc làm Java lương cao trên Station D Refactoring Strategy Design Pattern Strategy.java package com.gpcoder.designpatterns.strategy; public interface Strategy { void performTask(); } Strategy Pattern không sử dụng Lambda StartegyPatternExample.java package com.gpcoder.designpatterns.strategy; import java.util.Arrays; import java.util.List; class EagerStrategy implements Strategy { @Override public void performTask() { System.out.println("Eager strategy"); } } class LazyStratgey implements Strategy { @Override public void performTask() { System.out.println("Lazy strategy"); } } public class StartegyPatternExample { public static void main(String[] args) { Strategy eagerStrategy = new EagerStrategy(); Strategy lazyStrategy = new LazyStratgey(); List strategies = Arrays.asList(eagerStrategy, lazyStrategy); for (Strategy stg : strategies) { stg.performTask(); } } } Strategy Pattern sử dụng Lambda package com.gpcoder.designpatterns.strategy; import java.util.Arrays; import java.util.List; public class LambdaStartegyPatternExample { public static void main(String[] args) { Strategy eagerStrategy = () -> System.out.println("Eager strategy"); Strategy lazyStrategy = () -> System.out.println("Lazy strategy"); List strategies = Arrays.asList(eagerStrategy, lazyStrategy); strategies.forEach((elem) -> elem.performTask()); } } Như bạn thấy, sử dụng Lambda code chúng ta đơn giản hơn nhiều, không cần tạo thêm các class. 30 tiện ích Chrome (extensions) cho Designer và Developer 30 tiện ích Chrome cho designer và dev Refactoring Observer Design Pattern Observer.java package com.gpcoder.designpatterns.observer; public interface Observer { void update(String str); } Subject.java package com.gpcoder.designpatterns.observer; public interface Subject { void registerObserver(Observer observer); void notifyObservers(String str); } AccountService.java package com.gpcoder.designpatterns.observer; import java.util.ArrayList; import java.util.List; public class AccountService implements Subject { private final List observers = new ArrayList<>(); public void login(String username) { System.out.println("Login: " + username); notifyObservers(username); } @Override public void registerObserver(Observer observer) { if (!observers.contains(observer)) { observers.add(observer); } }...

By stationd
Chuẩn coding convention trong PHP với PSR

Chuẩn coding convention trong PHP với PSR

Bài viết được sự cho phép của tác giả Phạm Bình Chào các bạn, Ngày xưa lúc mới học lập trình, thì cứ vài hôm mình lại thay đổi phong cách code một lần. Lúc thì đặt tên biến kiểu ten_bien , lúc thì đặt kiểu tenbien , lúc thì tenBien ,… đến lúc hoàn thành dự án, mặc dù code chạy không sai đọc lại thấy ngu không tả nổi, cảm giác cứ như nhìn vào tờ giấy nháp vậy. Mình đặt ra câu hỏi “Làm một mình còn code khuyết tật thế này, thế làm team thì sao, chẳng lẽ lại mạnh ai người ý code à?”. Không, không thể nào như vậy được, mình cho rằng phải có một quy ước chung nào đó. Thế là mình thử lên mạng tìm hiểu xem, thì thấy có khái niệm về coding convention giải quyết được vấn đề mình gặp phải. I. CODING CONVENTION LÀ GÌ? Coding convention dịch ra Tiếng Việt là quy ước coding . Hiểu nôm na nó là một tập hợp các quy ước về phong cách code, cách đặt tên biến, tên hàm, tên file,… để các coder tuân theo. Coding convention sẽ đem lại lợi ích nhiều hơn khi bạn làm việc nhóm. Hãy tưởng tượng nhóm 5 người và cùng tuân theo một phong cách code, thì khi người này đọc code của người kia sẽ dễ hiểu hơn, không cảm thấy “ngứa mắt” hay muốn đánh đồng nghiệp. Ý kiến cá nhân : Code không có convention là dấu hiệu thất bại đầu tiên khi làm phần mềm. Ngay cả khi bạn làm một mình, thì tuân theo coding convention cũng vẫn rất quan trọng. Những dòng code chuẩn chỉ sẽ khiến bạn có hứng thú đọc hơn là những dòng...

By stationd
React dành cho người mới bắt đầu

React dành cho người mới bắt đầu

Đối với bất kỳ bạn lập trình viên mới nào thì React hiện tại đang là một thư viện JavaScript được sử dụng rộng rãi, được phát triển và duy trì bởi Meta (tiền thân là Facebook). React đã trở thành một thư viện front-end được ưa chuộng nhất và lên tục được phát triển về cả mức độ phổ biến và tầm ảnh hưởng của mình. Để cho các bạn mới bắt đầu tiếp cận với thế giới React một cách thuận tiện nhất, mình có tổng hợp một số các hướng dẫn, gợi ý dành cho các bạn trong bài viết này hôm nay. Chúng ta cùng bắt đầu nhé Sử dụng Create React App để khởi tạo projects Một trong những chức năng đơn giản mà hiệu quả nhất của React là khả năng tạo ra một dự án mới bằng một dòng lệnh duy nhất: sử dụng Create React App. Bạn có thể chạy 1 trong 3 dòng lệnh dưới đây: npx create-react-app my-app npm init react-app my-app yarn create react-app my-app Đây là cách nhanh và cũng là tốt nhất dành cho các bạn mới học React, 1 project React với tên “my-app” (tất nhiên các bạn có thể đổi tên nó) được tạo ra với đầy đủ các package cần thiết cho bạn. Sau khi cài đặt, chúng ta có thể ngay lập tức chạy ứng dụng của mình ở chế độ development bằng lệnh: “npm start” hoặc “fiber start”, cổng (port) mặc định sẽ là 3000, thậm chí nó còn tự động mở trình duyệt lên và chạy ứng dụng vừa được tạo ra. Tìm hiểu những cú pháp cơ bản React là thư viện thân thiện với lập trình viên, hãy bắt đầu học và nắm chắc những khái niệm dưới đây,...

By stationd
Doc Comment Và Javadoc Trong Java

Doc Comment Và Javadoc Trong Java

Bài viết được sự cho phép của tác giả Nhựt Danh Nhắc Lại Kiểu Documentation Comment Từ bây giờ chúng ta hãy gọi chức năng này bằng một tên chuẩn tiếng Anh cho thống nhất, hãy gọi chức năng này là Documentation Comment , hay gọi tắt là Doc Comment cũng được. Chúng ta đều hiểu nó là cách comment code theo kiểu document vậy. Vậy thì đây là một kiểu comment đặc biệt. Khác với kiểu // Text là comment trên một dòng hay /* Text */ là comment trên nhiều dòng code. Kiểu Doc Comment được ghi theo format /** Document */ . Tất cả các kiểu comment đều có một điểm giống nhau là khi build, trình biên dịch sẽ bỏ qua chúng, không build comment vào file build cuối cùng. Nhưng, khác với anh em trong họ comment, Doc Comment không đơn thuần chỉ là để comment, chúng được dùng trong một chuyện khác. Công dụng cụ thể của Doc Comment là gì thì mời bạn xem qua mục sau. Dưới đây là một ví dụ sử dụng comment theo kiểu Doc Comment . /** * The MainClass is the class that help to print out the "Hello World!" text * * @author yellowcode * @version 1.0 * @since 2021-05-04 * */ public class MainClass { /** * The main function, entry point of this app * @param args */ public static void main ( String [] args ) { System. out . println ( "Hello World!" ) ; } } Công Dụng Của Doc Comment Về phía kinh nghiệm code bao lâu nay của mình, mình vẫn rất thích kiểu Doc Comment này hơn các kiểu comment khác, là vì có các lợi ích sau đây. Thứ nhất, về mặt giải thích cho các dòng...

By stationd
Cài đặt và sử dụng Storybook cho ReactJS

Cài đặt và sử dụng Storybook cho ReactJS

Bài viết được sự cho phép của tác giả Phạm Minh Khoa Trong bài viết trước đây mình đã giới thiệu về Storybook, các bạn chưa đọc có thể xem lại ở link dưới đây: Giới thiệu về StoryBook cho dự án FrontEnd Hôm nay mình tiếp tục hướng dẫn các bước để cài đặt và sử dụng Storybook trong dự án ReactJS. Cài đặt Storybook Storybook có thể cài đặt dễ dàng bằng cách chạy dòng lệnh dưới đây ở thư mục root của project (lưu ý là sử dụng với project đã có, lệnh dưới sẽ không tạo ra 1 project mới) # Add Storybook: npx sb init Storybook sẽ check các dependencies sẵn có trong project của bạn (file package.json) và thực hiện cài đặt để cung cấp cho bạn 1 cấu hình tốt nhất có thể. Dòng lệnh trên sẽ thực hiện các công việc sau: Cài đặt các dependencies cần thiết Cài đặt những mã (scripts) cần thiết cho việc build và chạy Storybook Thêm cấu hình mặc định cho Storybook Tạo ra 1 số stories mẫu để bạn có thể xem và chạy thử Sau khi chạy xong thì 1 thư mục stories chứa các stories mẫu sẽ được tạo ra nằm trong thư mục src trong project của bạn. React là gì? Lộ trình trở thành lập trình viên ReactJS Những câu hỏi phỏng vấn React thường gặp Chạy Storybook # Starts Storybook in development mode npm run storybook Chạy storybook cho project của bạn bằng lệnh trên, kết quả nhận được sẽ như hình dưới đây nếu mọi thứ làm việc ok. Setup Storybook Giờ chúng ta sẽ tìm cách hiển thị component trong project của mình lên storybook. Ví dụ chúng ta có 1 component là YourComponent, tạo các file .stories.js...

By stationd
JDBC – người tiền sử trong kỷ Java

JDBC – người tiền sử trong kỷ Java

Bài viết được sự cho phép của tác giả Kiên Nguyễn 1. JDBC – người nguyên thủy. Trước tiên, nhắc tới JDBC (Java Database Connectivity) , ai trong số các bạn cũng liên tưởng về một API xưa cổ dùng để connect tới database và query dữ liệu. Nói nó xưa cổ là vì JDBC là công cụ thô sơ nhất, mộc mạc nhất dùng để kết nối tới cơ sở dữ liệu. Cái chân chất mộc mạc này tuy chán, nhưng lại là kiến thức nền tảng quan trọng cần phải nắm thật vững. Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC Hibernate là gì? Sao phải dùng nó thay JDBC? Xem thêm các việc làm Java lương cao trên Station D Hiểu thật rõ về bản chất của JDBC có thể giúp ta vững vàng tìm hiểu thêm các frameworks mới và mạnh mẽ như Hibernate, JPA . Tất cả chúng, tựu chung đều sử dụng JDBC để thực hiện kết nối và lấy dữ liệu. Hình : Vị trí của JDBC trong application Bài viết này mình sẽ chú trọng tới bản chất và mô hình của JDBC . Mong rằng bài viết này sẽ giúp đỡ các bạn nhiều!. 2. JDBC – cái nhìn tổng quan qua ví dụ hàng hóa. Để hiểu JDBC, chúng ta cùng xem xét ví dụ thường gặp trong đời sống là lấy hàng từ kho. Một khách hàng muốn thực hiện lấy hàng từ một trong số các kho (Oracle, MySql, Sql Server, …), các bước tiến hành của anh ta như sau: Khởi tạo connection (liên lạc viên): trước tiên, khi muốn lấy hàng từ bất cứ kho hàng nào, điều đầu tiên luôn cần phải làm là thực hiện kết nối (getConnection) tới kho hàng....

By stationd
Thư viện Python: Cái nào tốt nhất cho vai trò gì?

Thư viện Python: Cái nào tốt nhất cho vai trò gì?

Bài viết được sự cho phép của tác giả Nguyễn Chí Thức Thư viện Python là gì? Đầu tiên, bạn nên hiểu rằng các thư viện Python không khác với các thư viện thông thường chứa những cuốn sách. Cả hai đều là bộ sưu tập các nguồn thông tin. Learning about python libraries Tuy nhiên, thay vì sách, bạn sẽ truy xuất các mô-đun áp dụng trong quá trình coding của mình. Tất cả các nhà phát triển chuyên nghiệp tận dụng các mô-đun tài liệu thường được ghi lại cho quá trình học Python của mình. Nếu có một cách dễ dàng như vậy, tại sao không nên thực hiện theo cách này? IronPython Trong quá trình học Python và khi bắt đầu nghiên cứu các thư viện Python, bạn sẽ bị chìm đắm bởi số lượng thư viện chính và bên thứ ba. Có rất nhiều bộ sưu tập các mô-đun có sẵn. Bạn có thể cảm thấy băn khoăn khi không biết phải quyết định khám phá cái nào trong số chúng. Nếu đang cố gắng học những lĩnh vực khác nhau trên con đường lập trình thì khá khó để chọn một thư viện phù hợp nhất. Bạn nên biết rằng Python là một ngôn ngữ linh hoạt. Nó là một viên ngọc quý trong thế giới lập trình. Vì cách sử dụng của nó sẽ được sử dụng từ khoa học dữ liệu, phát triển web và thậm chí đến cả học máy. Nếu là một lập trình viên Python mới bắt đầu, chúng tôi khuyến khích bạn tham gia khóa học dưới đây để có thêm được kiến ​​thức sâu hơn. Nhìn chung, các thư viện Python khác nhau sẽ bao gồm các mô-đun cho các lĩnh vực cụ thể. Chúng ta sẽ...

By stationd
Cài đặt môi trường lập trình web PHP

Cài đặt môi trường lập trình web PHP

Bài viết được sự cho phép của tác giả Phạm Bình Chào các bạn, Trên blog của mình có những bài viết cao siêu về trick nọ trick kia, thế nhưng có một điều quan trọng mà các bạn mới bắt đầu thường quan tâm đó là cài đặt những phần mềm gì vào máy tính để có thể học được lập trình web PHP thì chưa có. Vậy trong bài viết này, mình sẽ hướng dẫn các bạn cách cài đặt môi trường để có thể học lập trình web PHP nhé. I. Cài đặt code editor Code editor là phần mềm để chúng ta có thể viết code. Hiện nay có rất nhiều các code editor hỗ trợ cho lập trình web PHP, nhưng mình khuyên các bạn nên sử dụng Sublime Text 3 – một editor nhẹ nhàng nhưng vẫn đầy đủ. Sublime Text 3 có mặt trên cả 3 hệ điều hành phổ biến là Windows, Mac, Ubuntu – thoải mái cho bạn lựa chọn. Sublime Texr 3 cũng có cách cài đặt đơn giản như những phần mềm bình thường khác nên bạn đừng lo lắng nhé. II. Cài đặt trình duyệt Đối với web developer, trình duyệt không chỉ đơng giản là phần mềm để lướt web, mà nó còn là công cụ để phát triển web, vì vậy mà máy bạn có trình duyệt hay chưa không quan trọng, quan trọng là bạn đang sử dụng trình duyệt nào . Ở đây, mình gợi ý các bạn nên sử dụng Google Chrome, bởi nó nhẹ nhàng, được tích hợp tool phát triển web, lại là trình duyệt được nhiều người dùng nhất. Ở Việt Nam còn có một trình duyệt phổ biến nữa đó là trình duyệt Coccoc, bạn có thể sử dụng...

By stationd
10 Lý do nên học Python trong năm 2024

10 Lý do nên học Python trong năm 2024

Bài viết được sự cho phép của tác giả Nguyễn Chí Thức Từ năm 2016, Python đã thay thế Java trở thành ngôn ngữ phổ biến nhất trong các trường cao đẳng và đại học trên thế giới và kể từ đó Python chưa bao giờ dừng lại. Python đang phát triển và lớn mạnh hơn theo thời gian. Nếu bạn đọc tin tức về lập trình và công nghệ hoặc bài đăng trên blog thì bạn có thể nhận thấy sự tần suất Python xuất hiện ngày càng tăng. Bởi vì nhiều cộng đồng lập trình viên phổ biến bao gồm StackOverflow và CodeAcademy đang đề cập đến sự trỗi dậy của Python như một ngôn ngữ lập trình chính. Nhưng, câu hỏi lớn nhất là TẠI SAO một lập trình viên nên học Python? Python đang phát triển mạnh. OK, điều này tốt không? TỐT. Nhưng điều này không có nghĩa là Java đang đi xuống hoặc C ++ đang suy giảm. Đối với người mới bắt đầu học lập trình, hãy bắt đầu với Python vì nó rất dễ học và đủ mạnh để xây dựng một ứng dụng web và xây dựng các quy trình tự động hóa. Trên thực tế, một vài năm trước, Script là lý do chính để học Python và đó cũng là lý do đầu tiên và quan trọng nhất mà Python thu hút mình hơn Perl. Đối với các lập trình viên có kinh nghiệm hoặc ai đó đã biết về Ruby, Java hoặc JavaScript, học Python có nghĩa là có được một công cụ mới và mạnh mẽ trong kho vũ khí của mình. Và trong số những người mình biết, mình vẫn chưa thấy ai nói “KHÔNG” với một công cụ tốt cả. Theo như cuốn sách “Tự...

By stationd