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

TẤT TẦN TẬT VỀ PHP – Tìm hiểu về PHP như thế nào?
Dưới đây là một vài nội dung tổng hợp được của Station D cho bạn về học tài liệu tham khảo PHP. Các trang web tốt nhất cho bạn để tìm hiểu về PHP Các bạn tự vào google gõ tên web là ra nhé 1) PHP Manual Hướng dẫn toàn diện về PHP và bao gồm mọi thứ, từ các lệnh cơ bản và cách sử dụng chúng cho đến các chức năng và bảo mật tổng thể. Nếu bạn cần biết điều gì đó – đây là bất cứ điều gì – về PHP bạn sẽ tìm thấy nó trang web. Tìm việc làm php lương cao không yêu cầu kn 2) PHP 101 Đúng như tên gọi của nó, Trang web dành cho người chưa biết gì về php. Nếu bạn chỉ mới bắt đầu với PHP và bạn muốn tìm hiểu bằng ví dụ, thì đây là một nơi tuyệt vời để ghé thăm. Trang web cung cấp một loạt các hướng dẫn giải trí và hữu ích được viết bởi Vikram Vaswani – người sáng lập và CEO của Melonfire. Nội dung rõ ràng, súc tích và cực kỳ dễ hiểu đặc biệt là đối với người mới viết mã. Khi bạn hoàn thành toàn bộ hướng dẫn, bạn sẽ chuyển sang tạo một trang tổng hợp tin tức RSS đơn giản thông qua PHP. Nhược điểm duy nhất của trang web này là không có nhiều ảnh chụp màn hình để tham khảo, vì vậy bạn sẽ phải tìm hiểu sự xuất hiện của mã PHP bởi sự đơn độc của bạn – điều không nhất thiết phải là một công cụ giải quyết. 3) Killer PHP Đây là trang web giúp bạn học các kỹ năng PHP có thể sử dụng nhanh nhất...

Tính đa hình trong Java là gì?
Tính đa hình (polymorphism) trong Java cho phép các đối tượng thể hiện nhiều hành vi khác nhau dựa trên ngữ cảnh sử dụng. Bài viết này của Station D sẽ giải thích khái niệm tính đa hình trong Java, các phương thức đạt được tính đa hình, phân loại và lý do sử dụng nó trong lập trình hướng đối tượng. Tính đa hình (polymorphism) trong Java là gì? Tính đa hình là khả năng của các đối tượng thuộc các lớp có quan hệ kế thừa với nhau thể hiện nhiều hành vi khác nhau khi được gọi thông qua cùng một giao diện. Trong Java , tính đa hình cho phép xử lý đối tượng con thông qua tham chiếu đến lớp cha của chúng. Khi gọi phương thức trên đối tượng con thông qua tham chiếu lớp cha, phiên bản phương thức được thực thi sẽ phụ thuộc vào kiểu của đối tượng thực tế. Tính đa hình là gì? Tính đa hình là một trong những tính chất quan trọng của lập trình hướng đối tượng, cho phép các đối tượng có nhiều dạng (poly) và chức năng (morph) khác nhau. Nó cho phép một giao diện được thực hiện theo nhiều cách khác nhau. Một lệnh gọi trên một tham chiếu đối tượng sẽ thực thi hành vi phù hợp với kiểu của đối tượng được tham chiếu tới. Tính đa hình trong Java là gì? Trong Java, tính đa hình cho phép xác định một giao diện chung cho một nhóm các đối tượng có liên quan, sau đó ghi đè hoặc cài đặt các phiên bản cụ thể của các phương thức cho mỗi lớp con đại diện cho một loại cụ thể. Java cung cấp 2 cơ chế để đạt được...

Cập nhật các tính năng mới trong Java 20
Java 20 là một bản phát hành quan trọng của nền tảng ngôn ngữ lập trình Java , được phát hành vào tháng 3 năm 2023. Bản phát hành này bao gồm một loạt các tính năng mới và cải tiến giúp nâng cao hiệu suất, bảo mật và khả năng sử dụng của ngôn ngữ. Hãy cùng tìm hiểu về các tính năng mới trong Java 20 và cách sử dụng chúng để phát triển các ứng dụng hiệu quả. Tổng quan về Java 20 Java 20 là phiên bản tiếp theo của Java 11, được phát hành vào năm 2018. Nó là một bản phát hành dài hạn (LTS) và sẽ được hỗ trợ trong 8 năm. Điều này có nghĩa là các nhà phát triển có thể yên tâm sử dụng Java 20 trong dự án của họ trong một thời gian dài mà không cần phải lo lắng về việc nâng cấp phiên bản. Với Java 20, Oracle đã tập trung vào việc cải thiện hiệu suất, bảo mật và khả năng sử dụng của ngôn ngữ. Bản phát hành này cũng bao gồm một số tính năng mới và cải tiến để giúp các nhà phát triển viết mã dễ dàng hơn và tối ưu hóa quá trình phát triển. Các tính năng mới trong Java 20 Cải thiện hiệu suất GIGO (Garbage-In Garbage-Out) Một trong những tính năng mới đáng chú ý trong Java 20 là thuật toán thu gom rác mới có tên là GIGO (Garbage-In Garbage-Out). Thuật toán này giúp cải thiện hiệu suất thu gom rác và giảm độ trễ trong quá trình chạy của ứng dụng. Thuật toán GIGO hoạt động bằng cách loại bỏ các đối tượng không sử dụng khỏi bộ nhớ ngay khi chúng được tạo ra,...

Hướng dẫn cài đặt, lập trình Python trên Ubuntu (Linux)
Bài viết được sự cho phép của tác giả Trần Hữu Cương Hướng dẫn cài đặt, lập trình Python trên Ubuntu (Linux). Cài Python qua repository Đây là cách đơn giản nhất, các bạn không cần phải lên trang chủ python để tải file, giải nén… Chỉ cần chạy lệnh là được. B1: Update lại repository sudo apt - get update B2: Cài python sudo apt - get install python Mặc định nó sẽ cài cho bạn 2 bản python là 2.x và 3.x Để kiểm tra version của python sau khi cài đặt các bạn dùng lệnh sau: Với python 2.x: python hoặc python -V Với python 3.x: python3 hoặc python3 -V Học Python: Từ Zero đến Hero (phần 1) Demo: Chạy lệnh python và nhập print('hello') sau đó ấn enter sẽ thấy nó in ra dòng hello Chuyển đổi hệ cơ số trong Python Cài đặt pip cho python pip (python package manager) là một trình quản lý module, thư viện của python. Ví dụ bạn muốn thực hiện kết nối tới database bằng python thì bạn phải có module mysqlclient (trong java thì là thư viện jdbc). Nhưng khi cài python nó chưa có sẵn module đó, để cài module mysqlclient ta cài qua pip bằng lệnh pip install mysqlclient Thông thường các bản python mới sẽ tích hợp sẵn pip. Để kiểm tra pip đã cài chưa, các bạn dùng lệnh pip –version với python 2.x hoặc pip3 –version với python 3.x Trường hợp python của bạn chưa tích hợp sẵn pip thì bạn có thể cài đặt pip bằng lệnh sau: sudo apt - get install pip hoặc sudo apt - get install pip3 References: https://docs.python.org/3/ Bài viết gốc được đăng tải tại codecute.com Có thể bạn quan tâm: Dùng MicroPython với wifi board ESP-8266...

Java là gì? Tổng quan về ngôn ngữ lập trình Java
Java là ngôn ngữ lập trình thuộc top phổ biến nhất thế giới, Java không chỉ phổ biến trong lập trình ứng dụng web và di động mà còn là xương sống của nhiều hệ thống lớn như các nền tảng giao dịch tài chính, hệ thống quản lý doanh nghiệp, và các ứng dụng nhúng. Vậy Java là gì? Java hoạt động ra sao và ứng dụng như thế nào? Cùng Station D tìm hiểu tổng quan về ngôn ngữ lập trình Java này thông qua bài viết bên dưới nhé! Java là gì? Java là một trong những ngôn ngữ lập trình hướng đối tượng. Ngôn ngữ Java được sử dụng phổ biến trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động. Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991. Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak. Java được chính thức phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun MicroSystem. Java được thiết kế với tiêu chí “ Write Once, Run Anywhere ” (viết một lần, chạy mọi nơi), tức là mã nguồn Java sau khi biên dịch có thể chạy trên bất kỳ nền tảng nào hỗ trợ Java Virtual Machine (JVM), mà không cần thay đổi lại mã. Điều này giúp Java trở thành một ngôn ngữ lập trình đa nền tảng và rất phổ biến. Tham khảo thêm về công việc của Java developer tại đây Đặc điểm của ngôn ngữ lập trình Java là gì? Nguồn ảnh: ScholarHat Tương tự C++, hướng đối tượng hoàn toàn Trong quá trình tạo ra một ngôn ngữ mới phục vụ...

Top các Plugin jQuery tạo Lightbox free đẹp nhất cho website
Để showcase được sản phẩm/ dịch vụ của công ty thì bạn cần những hình ảnh/ video bắt mắt nhất mới nổi bật được. Ví dụ, dịch vụ của bạn là Khách sạn, thì cách tốt nhất để hút khách là bạn phải show ra nhiều hình ảnh đa dạng nhiều phòng, hồ bơi và các dịch vụ khác mà bạn cung cấp. Chứ một biển chữ thông tin sẽ không mảy may giúp ích được gì đâu! Vì thế việc up thật nhiều ảnh là một chiến thuật tốt để “khoe khoang” về sản phẩm, tuy nhiên sẽ dễ sa vào tình trạng bị “nhiễu” – overload. Ảnh lẻ và một số element có thể sẽ không được tốt như kỳ vọng vì nó cũng cạnh tranh với hàng loạt các nhóm ảnh và các element khác trên trang web nữa. Lúc này mới thấy Lightbox đóng vai trò khá quan trọng. Nó giúp tập trung sự chú ý của web visitor vào một ảnh/ một phần nhất định trong một gallery và portfolio trồi lên giữa page và làm mờ đi phần còn lại cho đến user thực hiện thao tác. Vấn đề còn lại lúc này vẫn còn cả ngàn lightbox plugin ngoài kia, và khá khó để chọn ra cái nào hợp nhất cho page của bạn. Bài viết này sẽ tổng hợp hết cho bạn Top 5 plugin lightbox cho năm 2022 . Bài post sẽ cover tất cả các feature để bạn dễ chọn lựa cái thích hợp nhất cho page của mình. 1. Plugin đầu tiên chắc chắn là LC Lightbox. Nó có đầy đủ các feature bạn cần cho một lightbox plugin và nhiều tính năng khác nữa. Một số feature nổi bật nhất gồm có: Bạn có thể tạo slideshow cho...

Cách sử dụng hàm isset trong PHP
Isset là một hàm cơ bản nhưng cực kỳ quan trọng trong PHP giúp chúng ta kiểm tra giá trị của một biến. Mặc dù vậy thì thực tế sử dụng các bạn mới code PHP thường nhầm lẫn nó với một số hàm khác có chức năng kiểm tra biến tương tự như empty hay is_null . Bài viết hôm nay chúng ta cùng nhau tìm hiểu cách sử dụng hàm isset trong PHP áp dụng bài toán thực tế nhé. Hàm isset() trong PHP Hàm isset() trong PHP thực hiện việc kiểm tra một biến đã được thiết lập hay chưa. Nếu một biến đã được unset với hàm unset() trong PHP thì nó sẽ được xem là không còn được thiết lập nữa. Hàm isset() sẽ trả về false nếu như biến đang kiểm tra chứa giá trị là NULL. Cú pháp hàm: isset(variable1, variable2……) Tham số: variable1 (bắt buộc): biến cần check variable2 …… (không bắt buộc): các biến cần check khác Giá trị trả về: TRUE : nếu như các biến (variable1,variable2..) truyền vào tồn tại và có giá trị khác NULL FALSE : trong các trường hợp còn lại Ví dụ: Để kiểm tra xem người dùng đã nhấn vào nút submit trên form login hay chưa, chúng ta thường xử lý như đoạn dưới đây trong PHP bằng cách sử dụng hàm isset để check. <?php if ( isset ( $_POST [ 'login' ])){ // Code xử lý khi người dùng nhấn vào nút login form } ?> Sử dụng hàm isset giúp chúng ta tránh được các lỗi liên quan đến việc khởi tạo biến hoặc khởi tạo các phần tử trong mảng, ví dụ như lỗi Notice: Undefined variable hay Notice: Undefined index . Việc kiểm tra trước điều kiện giúp...

Cách xây dựng ThreadLocal trong Java
Bài viết được sự cho phép của tác giả Trần Văn Dem ThreadLocal là một công cụ rất mạnh mẽ của Java Concurrent . Nó cung cấp API để lưu data trên từng Thread , các Thread tự quản lý data của mình. Khi cần dùng thì không cần phải khởi tạo lại dữ liệu mà có thể lấy ra dùng trực tiếp mà không cần khởi tạo lại đối tượng từ đó giúp tiết kiệm thời gian. Chúng ta thường hay sử dụng các loại API sau : public T get() : dùng để lấy dữ liệu lưu trong Thread . public void set(T value) : dùng để lưu dữ liệu vào Thread . Tuy nhiên sau khi đọc code của Java tôi nhận thấy ThreadLocal không tối ưu cho 2 loại API này. Cụ thể tôi đã search trên mạng và thấy một bài khá hay về FastThreadLocal của netty . Tránh lỗi ConcurrentModificationException trong Java như thế nào? Hướng dẫn Java Design Pattern – Object Pool Phân tích API của ThreadLocal. Các bạn tham khảo tại link sau. Dưới đây tôi xin giải thích đơn giản như sau. Đầu tiên hãy phân tích hàm set của Java . public void set (T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null ) map.set( this , value); else createMap(t, value); } ThreadLocalMap getMap (Thread t) { return t.threadLocals; } /** * Set the value associated with key. * * @param key the thread local object * @param value the value to be set */ private void set (ThreadLocal<?> key, Object value) { // We don't use a fast path as with get() because it is at // least as common to use set() to create new entries as // it is to replace...

Str trong Python là gì? Kiểu dữ liệu chuỗi và định dạng chuỗi trong Python
Bài viết được sự cho phép của tác giả Kien Dang Chung Xử lý văn bản là công việc thường xuyên trong các ứng dụng hiện đại, văn bản có ở khắp mọi nơi, do vậy nắm vững kiến thức về kiểu chuỗi sẽ giúp bạn giải quyết được các vấn đề. 1. Kiểu dữ liệu chuỗi Kiểu dữ liệu chuỗi – string trong Python là một trong những kiểu dữ liệu cơ bản và được sử dụng rất phổ biến trong Python , một từ, một đoạn văn bản đều là kiểu chuỗi. Chuỗi (string) được đặt trong dấu ngoặc kép, có thể là dấu ngoặc kép đơn (”) hoặc dấu ngoặc kép đôi (“”). Ví dụ: "Hello, World!" hay 'Python' str trong Python là một lớp (class) được sử dụng để biểu diễn và xử lý các chuỗi ký tự. 1.1 Chuỗi đơn giản Chuỗi trong Python được đánh dấu bằng dấu nháy đơn ‘ hoặc nháy kép “, tuy nhiên nếu bắt đầu bằng dấu nào thì phải kết thúc bằng dấu đấy . Ví dụ: first_name = "Nguyễn" middle_name = 'Văn' last_name = 'A" # Lỗi khi thực hiện do bắt đầu và kết thúc chuỗi khác nhau. Khi muốn đưa các dấu nháy đơn và nháy kép vào trong chuỗi có hai cách: Cách 1: Đóng mở chuỗi bằng dấu khác với loại dấu nháy cần đưa vào chuỗi. speech = 'Một chuyên gia nói: "Python hiện là ngôn ngữ được nhiều người tìm hiểu nhất hiện nay", phát biểu tại Ngày hội Trí tuệ nhân tạo 2019' sentence = "It 's my car" Cách 2: Sử dụng dấu gạch chéo , dấu này giúp Python nhận biết là phải bỏ qua ngữ nghĩa của ký tự ngay sau. example = "Trong một câu có...

React Redux: Redux middleware là gì?
Bài viết được sự cho phép của tác giả Phạm Minh Khoa Để hiểu rõ hơn khái niệm Redux middleware , chúng ta cùng thử xử lý 1 bài toán như sau: Bạn cần phải ngăn chặn người dùng (users) không được sử dụng các từ khóa bị cấm (ví dụ như vl, vkl, cmnr, …) trong bài viết của họ. Để đơn giản thì mình sẽ xử lý lúc người dùng submit bài viết (trong ví dụ sẽ chỉ check trong tiêu đề bài viết thôi nhé) handleSubmit(event) { event.preventDefault(); const { title } = this.state; this.props.addArticle({ title }); this.setState({ title: "" }); } Việc kiểm tra tất nhiên sẽ được đặt trước dòng this.props.addArticle và nó sẽ kiểu như này: handleSubmit(event) { event.preventDefault(); const { title } = this.state; const forbiddenWords = ['spam', 'money']; const foundWord = forbiddenWords.filter(word => title.includes(word) ) if (foundWord) { return this.props.titleForbidden(); } this.props.addArticle({ title }); this.setState({ title: "" }); } Việc làm như này tất nhiên cũng chẳng sao, tuy nhiên trong đoạn code trên chứa phần xử lý logic (business logic) và nó nằm trong UI Component; thế là không đạt được mục đích của Redux là chuyển logic ra khỏi React Component rồi. Redux middleware sinh ra để giải quyết bài toán trên cho mọi người. Hiểu 1 cách đơn giản thì Redux middleware cho phép chúng ta can thiệp vào giữa thời điểm dispatch 1 action và thời điểm action đến được reducer. Bạn có thể nhìn flow dưới đây để dễ hình dung. Redux vận hành như thế nào Redux middleware là 1 function trả về 1 function, nhận next như 1 tham số. Bên trong function sẽ trả về 1 function khác nhận action như 1 tham số và cuối cùng là trả về next(action). Nó sẽ giống...

Hướng dẫn Java Design Pattern – Decorator
Bài viết được sự cho phép của tác giả Giang Phan Một trong những khía cạnh quan trọng nhất trong quá trình phát triển một ứng dụng mà các lập trình viên phải đối đầu là sự thay đổi. Khi muốn thêm hoặc loại bỏ một tính năng của một đối tượng, điều đầu tiên chúng ta nghĩ đến là thừa kế (extends). Tuy nhiên, thừa kế không khả thi vì nó là static, chúng ta không thể thêm các lớp con mới vào một chương trình khi nó đã được biên dịch và thực thi. Để giải quyết vấn đề này, chúng ta có thể sử dụng Decorator Pattern được giới thiệu trong phần tiếp theo của bài viết này. Decorator Pattern là gì? Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. Decorator pattern là một trong những Pattern thuộc nhóm cấu trúc (Structural Pattern). Nó cho phép người dùng thêm chức năng mới vào đối tượng hiện tại mà không muốn ảnh hưởng đến các đối tượng khác. Kiểu thiết kế này có cấu trúc hoạt động như một lớp bao bọc (wrap) cho lớp hiện có. Mỗi khi cần thêm tính năng mới, đối tượng hiện có được wrap trong một đối tượng mới (decorator class). Decorator pattern sử dụng composition thay vì inheritance (thừa kế) để mở rộng đối tượng. Decorator pattern còn được gọi là Wrapper hay Smart Proxy . Tìm Java job lương cao trên Station D ngay! Cài đặt Decorator Pattern như thế nào? Decorator pattern hoạt động dựa trên một đối tượng đặc biệt, được gọi là decorator (hay wrapper). Nó có cùng một interface như một đối tượng mà nó cần bao bọc (wrap), vì vậy phía client sẽ không nhận thấy...

Hướng dẫn sử dụng thư viện Jackson
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Trong các bài trước, chúng ta đã tìm hiệu về thư viện Gson để chuyển đổi từ đối tượng Java sang JSON và từ JSON sang đối tượng Java. Trong bài này, tôi sẽ hướng dẫn bạn sử dụng thư viện Jackson , một thư viện mã nguồn mở miễn phí rất mạnh mẽ được sử dụng trong nhiều ứng dụng Java. Giới thiệu Jackson là một thư viện Java chứa rất nhiều chức năng để đọc và xây dựng JSON. Nó có khả năng ràng buộc dữ liệu rất mạnh mẽ và cung cấp một framework để tùy chỉnh quá trình chuyển đối tượng Java sang chuỗi JSON và chuỗi JSON sang đối tượng Java. Tạo JSON từ đối Java Có 3 cách để tạo JSON từ Java: Từ một đối tượng Java Từ cây JsonNode Từ Json Stream Phân tích chuỗi JSON Có 3 cách thường dùng để phân tích chuỗi JSON sang Java: Streaming : sử dụng JsonParser để phân tích cú pháp json. Nó cung cấp các phần tử json như là các token. Sử dụng JsonGenerator để tạo ra json từ chuỗi, số nguyên, boolean, … Tree Traversing : json có thể được đọc thành một JsonNode. Node sau đó có thể đi qua để có được thuộc tính cần thiết. Một cây cũng có thể được tạo ra và sau đó được viết như chuỗi json. Data Binding (liên kết dữ liệu) : sử dụng Annotation để đánh dấu các thuộc tính trên đối tượng (POJO) liên kết với các phần tử của chuỗi JSON. Tham khảo việc làm Java Fresher mới nhất trên Station D! Download thư viện Jackson <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.3</version> </dependency> Các ví dụ Chuyển...