Lập Trình

Duyệt các bài viết được gắn thẻ Lập Trình

1677 bài viết

So sánh đối tượng với Comparable trong Java

So sánh đối tượng với Comparable trong Java

Java là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay và có rất nhiều tính năng hữu ích. Trong bài viết này, hãy cùng Station D tìm hiểu về giao diện Comparable trong Java và cách sử dụng nó để so sánh các đối tượng với nhau. Tìm hiểu về Comparable trong Java Comparable là một giao diện trong Java cung cấp khả năng so sánh các đối tượng với nhau. Nó được sử dụng để so sánh các đối tượng dựa trên một thứ tự được chỉ định. Bằng cách triển khai giao diện Comparable, bạn có thể so sánh các đối tượng của một lớp được xác định trước với nhau. Điểm khác biệt giữa Comparable và Comparator trong Java là Comparable được sử dụng để so sánh các đối tượng của cùng một lớp, trong khi Comparator được sử dụng để so sánh các đối tượng của các lớp khác nhau. Điều này có nghĩa là khi sử dụng Comparable, bạn chỉ có thể so sánh các đối tượng của lớp Student với nhau, trong khi khi sử dụng Comparator, bạn có thể so sánh các đối tượng của lớp Student với các đối tượng của lớp khác như Teacher hay Employee. Cách sử dụng Comparable trong Java Để sử dụng Comparable trong Java, bạn cần thực hiện các bước sau: Triển khai giao diện Comparable: Trong lớp của bạn, triển khai giao diện Comparable trong đó ClassName là tên lớp của bạn. Ghi đè phương thức compareTo(): Cung cấp logic so sánh trong phương thức compareTo(). Phương thức này phải trả về một số nguyên âm, dương hoặc không âm, biểu thị thứ tự của đối tượng hiện tại so với tham số đã truyền. Java tuyển dụng lương cao, đãi ngộ...

By stationd
AJAX là gì? Chi tiết về Asynchronous Javascript and XML

AJAX là gì? Chi tiết về Asynchronous Javascript and XML

AJAX là một kỹ thuật phát triển web mạnh mẽ được sử dụng để giúp các trang web nhanh và mượt mà hơn như đang dùng app desktop. Trong bài viết này, cùng Station D khám phá cách AJAX hoạt động, lợi ích mà nó mang lại và cách bạn có thể áp dụng nó vào các dự án web của mình. AJAX là gì? AJAX là từ viết tắt của Asynchronous Javascript and XML (JavaScript và XML không đồng bộ). AJAX là phương thức trao đổi dữ liệu với máy chủ cho phép cập nhật một hay nhiều phần của trang web, hoàn toàn không reload lại toàn bộ trang. Ajax được viết bằng Javascript chạy trên client, tức là mỗi browser sẽ chạy độc lập hoàn toàn không ảnh hưởng lẫn nhau. Về mặt kỹ thuật, nó đề cập đến việc sử dụng các đối tượng XmlHttpRequest để tương tác với một máy chủ web thông qua Javascript. XMLHttpRequest (XHR) là một API cho phép gửi các yêu cầu HTTP tới máy chủ và nhận các phản hồi một cách đồng bộ hoặc không đồng bộ. >> Đọc thêm: XML là gì ? Tại sao lại sử dụng AJAX? AJAX là một trong những công cụ giúp chúng ta đem lại cho người dùng trải nghiệm tốt hơn. Khi cần một thay đổi nhỏ thì sẽ không cần load lại cả trang web, làm trang web phải tải lại nhiều thứ không cần thiết. Những lợi ích mà AJAX mang lại: AJAX được sử dụng để thực hiện một callback. Được dùng để thực hiện việc truy xuất dữ liệu hoặc lưu trữ dữ liệu mà không cần phải reload lại toàn bộ trang web. Với những server nhỏ thì việc này cũng tiết kiệm được băng thông...

By stationd
Tìm hiểu về Graceful Shutdown, Graceful Shutdown trong Golang

Tìm hiểu về Graceful Shutdown, Graceful Shutdown trong Golang

Bài viết được sự cho phép của tác giả Võ Xuân Phong Trong bài viết này, mình sẽ trình bày cho anh em về Graceful Shutdown với ngôn ngữ lập trình Golang. Chúng ta sẽ đi tìm hiểu về Graceful Shutdown là gì? Tại sao chúng ta lại cần áp dụng nó và nó có mang lại lợi ích gì hay không? Channel trong Golang là gì? So sánh Callback function và mutex lock với channel Chiến trường sinh tử phiên bản lập trình : Python vs Ruby vs Golang Graceful Shutdown là gì? Hãy tưởng tượng rằng, chúng ta đang có một web service đang tiếp nhận yêu cầu (request) của các client để truy xuất dữ liệu từ database, vì dữ liệu truy xuất lớn nên phản hồi (response) phải mất một thời gian mới truy xuất xong. Trong khi đó anh em lại muốn tắt web service đó đi để bảo trì hệ thống hoặc triển khai (deploy) mới, bằng các thao tác kill ứng dụng web service đang chạy, có thể là câu lệnh stop của docker, câu lệnh kill process bằng PID hay Ctrl + C chúng ta vẫn thường hay dùng .v.v. Ngay lập tức những yêu cầu mà service xử lý chưa xong bị buộc ngưng giữa chừng. Ngoài ra những kết nối khác như kết nối với database không được kiểm soát và đóng lại đúng cách gây hao tốn tài nguyên của server. Những điều nói trên làm chúng ta phải dừng lại và suy nghĩ về nó phải không? Điều chúng ta muốn là khi service bị buộc dừng thì nó sẽ: Không đón nhận những yêu cầu (request) mới. Xử lý và và phản hồi những yêu cầu (request) cũ. Cuối cùng là đóng các kết nối, sau đó...

By stationd
Sử dụng List để quản lý dữ liệu trong Java

Sử dụng List để quản lý dữ liệu trong Java

Trong lập trình, việc quản lý dữ liệu là một phần quan trọng và không thể thiếu. Và trong Java , List là một trong những cấu trúc dữ liệu quan trọng nhất để lưu trữ và quản lý các bộ sưu tập các phần tử cùng kiểu dữ liệu. Trong bài viết này, hãy cùng Station D tìm hiểu về cách sử dụng List trong Java và các tính năng quan trọng của nó. Cách sử dụng List trong Java List là một trong những cấu trúc dữ liệu phổ biến nhất trong Java và được sử dụng rộng rãi trong các ứng dụng thực tế. Nó cung cấp cho chúng ta một cách tiện lợi để lưu trữ và quản lý các phần tử theo thứ tự và dưới đây là một số cách chúng ta có thể sử dụng List trong Java: Lưu trữ danh sách các sản phẩm trong một cửa hàng trực tuyến. Quản lý danh sách các khách hàng của một công ty. Lưu trữ thông tin về các bài viết trên một trang blog. Quản lý danh sách các sinh viên trong một lớp học. Với những ví dụ trên, chúng ta có thể thấy rằng List là một công cụ hữu ích để quản lý các bộ sưu tập dữ liệu trong nhiều lĩnh vực khác nhau. Tìm hiểu về interface List trong Java Trong lập trình Java , List được biểu diễn bằng giao diện java.util.List. Điều này có nghĩa là chúng ta không thể tạo một đối tượng List trực tiếp mà phải sử dụng một trong hai triển khai của giao diện này: ArrayList hoặc LinkedList. Giao diện List cung cấp một số phương thức để thao tác với các phần tử trong danh sách. Chúng ta sẽ tìm...

By stationd
Python cơ bản cho ứng dụng trong công việc

Python cơ bản cho ứng dụng trong công việc

Hiện nay, Python là một trong những ngôn ngữ lập trình đang được chú ý bởi tính đa dạng về ứng dụng, thư viện phong phú và cộng đồng đông đảo. Hiện tại python có thể ứng dụng vào sử lý dữ liệu lớn (BigData), Machine Learning hay làm web… Series Python cơ bản được tác giả Võ Duy Tuấn ghi chép trong quá trình dùng python để xử lý những tác vụ trong công việc mà Php đáp ứng khá chậm. Vì vậy đôi khi về phần back end, dùng python sẽ đem lại sự tối ưu perfomance, sách được chia làm 15 chương, mỗi chương sẽ trình bày 1 khía cạnh của Python mà tác giả đã gặp, sẽ rất hữu ích khi bạn biết các kiến thức này trong việc áp dụng Python vào công việc trong tương lai. Tuyển dụng python nhiều ngành nghề hot cho bạn Chapter 1 Python là một ngôn ngữ phiên dịch (Interpreter Language), tức là không cần build thành file thực thi mà chạy trực tiếp như PHP. Hiện tại Python có 2 nhánh chính là 2.x và 3.x. Ở nhánh 2.x đã dừng phát triển và đang đứng ở phiên bản 2.7. Nhánh Python 3.x thì vẫn đang được tiếp tục phát triển. Website chính thức của Python: www.python.org Module trong Python Cài đặt Python hỗ trợ hầu hết các nền tảng và rất dễ tìm thấy sẵn trên một số hệ điều hành như Mac OS… Để biết là hệ thống của bạn đã cài Python chưa, có thể vào màn hình command line và gõ: $ python --version Nếu đã cài đặt python thì sẽ hiển thị thông tin phiên bản python. Nếu báo lỗi thì đồng nghĩa với bạn chưa cài đặt Python. Có thể tham khảo...

By stationd
Fix lỗi “Fopen Failed To Open Stream: Permission Denied Windows Server”

Fix lỗi “Fopen Failed To Open Stream: Permission Denied Windows Server”

Bài viết được sự cho phép của BQT Kinh nghiệm lập trình Xin chào mọi người, mình quay trở lại rồi đây. Hôm nay mình chia sẻ 1 trick rất rất nhỏ và đơn giản để fix các vấn đề liên quan tới quyền truy cập trong Windows Server. Đọc tới đây không ít bạn tặc lưỡi, cái này thì mặc định rồi thì cần gì fix nhỉ? Ồ vậy mà khi đối mặt với nó, nếu không biết cách xử lý chúng ta sẽ tốn rất nhiều thời gian và chuốc lấy muôn vàn cay cú, rồi lại tự ngẫm, biết thế dùng server Linux có phải đỡ mệt không? Tuy nhiên đôi lúc chúng ta vẫn phải tìm cách sống chung với lũ trong khi chưa thấy phao cứu sinh ở đâu. Fix lỗi "Fopen Failed To Open Stream: Permission Denied Windows Server" Fix Lỗi "RDP Authentication Error Has Occurred – The Function Requested Is Not Supported" Nguyên nhân???? Lỗi trên xuất hiện khi nào? Lỗi trên găp phải khi chúng ta deploy phần mềm thao tác với các file, folder trong ổ C của Windows Server, nơi mà không phải lúc nào ta cũng có quyền read/write/delete một cách tùy tiện. Thông thường các bạn sẽ nhận được message như sau khi phát triển hệ thống với PHP: “fopen failed to open stream: Permission denied windows server” Cách xử lý Một hệ điều hành cực kỳ tiện dụng nhưng cũng nhiều ràng buộc khó chịu!!! Nguyên nhân rất rõ ràng rồi: chúng ta không đủ quyền để thao tác với folder/file mà ta đang cần xử lý. Vậy cách xử lý rất đơn giản: Cấp quyền. Khoan!!! Nhưng mà cấp quyền gì, cho tài khoản nào nhỉ? Và cấp như nào??? Phần này đôi khi khiến chúng...

By stationd
Những điểm mới của Java 8 (phần 5: Tham chiếu phương thức)

Những điểm mới của Java 8 (phần 5: Tham chiếu phương thức)

Bài viết được sự cho phép của smartjob.vn Từ phiên bản 8, lập trình viên Java có thể áp dụng kỹ thuật Tham chiếu phương thức (method reference). Trong những đoạn mã nguồn Java , khi bạn nhìn thấy ký hiệu :: (hai dấu hai chấm) thì đó chính là tham chiếu phương thức. 3 dạng của tham chiếu phương thức: – Phương thức tĩnh (static method) – Phương thức khởi tạo đối tượng (instance methods) – Constructor (“Constructor”: hàm tạo về bản chất cũng là phương thức) package vn.smartJob.java8features; import java.util.List; import java.util.ArrayList; public class Example1 { public static void main(String args[]) { List employeeList = new ArrayList(); employeeList.add("Bùi Đăng Trường"); employeeList.add("Nguyễn Tiến Mạnh"); employeeList.add("Nguyễn Văn Bình"); employeeList.add("Nguyễn Anh Dũng"); employeeList.add("Đỗ Văn Cường"); employeeList.forEach(System.out::println); } } // Kết quả: //run: //Bùi Đăng Trường //Nguyễn Tiến Mạnh //Nguyễn Văn Bình //Nguyễn Anh Dũng //Đỗ Văn Cường //BUILD SUCCESSFUL (total time: 0 seconds) Xem thêm các chương trình tuyển dụng Java hấp dẫn trên Station D Trong ví dụ trên, tại dòng 15, đã sử dụng kỹ thuật tham chiếu phương thức. Tham chiếu phương thức có thể kết hợp với Streams API giúp việc tăng tính linh hoạt (như chúng tôi đã trình bày trong phần 2). package vn.smartJob.java8features; import java.util.function.Supplier; public class Example2 { public static void main(String[] args) { String s = "SmartJob - Mạng tuyển dụng hàng đầu Việt Nam"; printResult(s::length); } public static void printResult(Supplier<Integer> supplier) { System.out.println(supplier.get()); } } // Kết quả: // 44 Download mã nguồn từ server SmartJob: Java8_method_reference hoặc clone/fork từ repository Github: https://github.com/SmartJobVN/java8 Đỗ Như Vý – Bài viết gốc được đăng tải tại smartjob.vn Có thể bạn quan tâm: Những điểm mới của Java 8 (phần 4: DateTime API) Những điểm mới của Java 8 (phần 6: Nashorn engine và...

By stationd
Học lập trình để làm gì? Nên học lập trình gì?

Học lập trình để làm gì? Nên học lập trình gì?

Bài viết được sự cho phép của ucode.vn Học cái gì đó mục đích cuối cùng là để có một nghề nghiệp hoặc sự nghiệp ổn định. Đó cũng là định luật muôn thuở và luôn đúng với bất kỳ người nào đang tìm kiếm các trung tâm hay học viện để học một cái gì đó? Vậy sau khi học lập trình, chúng ta có thể làm những nghề nào? Chia buồn với bạn, không phải cứ học xong thì Coder có thể làm bất cứ nghề nào về lập trình cũng được. Bởi thế, trả lời cho câu hỏi “Tôi học cái này để làm gì?” luôn cần thiết ngay từ những bước chân đầu tiên. Câu trả lời chung chung thì rất nhiều. Nhưng câu trả lời chính xác là xác định mục đích cuối cùng và mong muốn của bạn là gì sau khi học lập trình xong. Sau đây, mình sẽ cho bạn những gợi ý về nghề nghiệp phù hợp con đường mà bạn đang theo đuổi. 10 câu nói cực hay về lập trình 10 kênh Youtube học lập trình không thể bỏ qua dành cho Junior Web Developer / Designer Bạn muốn là một Software Engineer Đối tượng phù hợp: Coder đa năng và truyền thống Đây là công việc khá phổ biến về lập trình. Một Software Engineẻ cần phải học JavaScript, Ruby, HTML, và CSS. Ranh giới giữa Software Engineer và Software Developer khá mờ nhạt, vì vai trò của họ gần như tương đương nhau. Bạn có thể tìm hiểu kỹ hơn trên Reddit để có cái nhìn sâu hơn. Đối với hầu hết mọi trường hợp, Software Engineer cần phải học lập trình và hiểu sản phẩm cuối được thiết kế và quản trị như thế nào. Thông...

By stationd
11 cách tăng tốc nhanh cho WordPress bằng file wp-conig.php

11 cách tăng tốc nhanh cho WordPress bằng file wp-conig.php

Việc tối ưu lại cơ sở dữ liệu luôn là một trong các việc quan trọng nhất cần phải làm khi một website đã có quá nhiều dữ liệu và có quá nhiều lượt truy cập. Bởi vì bạn biết rằng website càng có nhiều lượt truy cập thì website sẽ càng gửi nhiều truy vấn (query) về database để lấy dữ liệu ra (đa phần là truy vấn SELECT ). Mà đã nhiều truy vấn rồi mà dữ liệu lại lớn, chưa được sắp xếp gọn gàng thì nó lại càng mất thêm thời gian để xử lý các truy vấn đó. Ngoài việc dọn dẹp database , chúng ta còn một cách khác nhưng cũng rất quan trọng đó là tối ưu lại bảng wp_options của database. Bảng này sẽ chứa toàn bộ các thiết lập bên trong website, bao gồm các thiết lập theme và plugin. Điều đó có nghĩa là bạn đã từng cài nhiều plugin và theme vào website thì bảng này sẽ rất nặng mặc dù bạn đã tắt các plugin hoặc theme đó đi vì đa phần các plugin không hỗ trợ “làm sạch” chiến trường khi ta tắt đi để có thể sử dụng lại sau này. Xem ngay tin tuyển dụng PHP lương cao trên Station D wp-config.php là một tập tin PHP nằm trong thư mục chứa website WordPress của bạn, bạn có thể tìm thấy file wp-config.php theo như danh sách như hình 1 bên dưới đây : Station D Techtalk #54: PHP & PHP7 – Secrets behind Optimization *Hồ Chí Minh: 18h00 – 21h00 thứ 5, ngày 12/01/2017 [HCM] (Senior) PHP Developers – Tiki.vn | From $800 — Tiki Corp [GẤP] Graphic Designer (hoặc Thực tập Full-time) | Lương cạnh tranh — Applancer JSC [HN] Software Engineers (AngularJS/...

By stationd
Thiết lập môi trường phát triển Laravel/PHP tốc độ ánh sáng trên Windows 10 với Windows Subsystem for Linux (WSL)

Thiết lập môi trường phát triển Laravel/PHP tốc độ ánh sáng trên Windows 10 với Windows Subsystem for Linux (WSL)

Bài viết được sự cho phép của tác giả Nguyễn Trần Chung WSL là gì WSL (Windows Subsystem for Linux) là một tính năng có trên Windows x64 (từ Windows 10, bản 1607 và trên Windows Server 2019), nó cho phép chạy hệ điều hành Linux (GNU/Linux) trên Windows. Với WSL bạn có thể chạy các lệnh, các ứng dụng trực tiếp từ dòng lệnh Windows mà không phải bận tâm về việc tạo / quản lý máy ảo như trước đây. Cụ thể, một số lưu ý mà Microsoft liệt kê có thể làm với WSL Bạn có thể làm gì với WSL Chạy được từ dòng lệnh các lệnh linux như ls, grep, sed … hoặc bất kỳ chương trình nhị phân 64 bit (ELF-64) nào của Linux Chạy được các công cụ như: vim, emacs …; các ngôn ngữ lập trình như NodeJS, JavaScript, C/C++, C# …, các dịch vụ như PHP, Nginx, MySQL, Apache, … Có thể thực hiện cài đặt các gói từ trình quản lý gói của Distro đó (như lệnh apt trên Ubuntu, yum trên CentOS) Từ Windows có thể chạy các ứng dụng Linux thông qua command line Từ Linux có thể gọi ứng dụng của Windows Yêu cầu WSL1: Windows 10 1607 (window + R -> winver) WSL2: Kích hoạt chế độ hỗ trợ ảo hóa của CPU (CPU Virtualization), bạn kích hoạt bằng cách truy cập vào BIOS của máy, tùy loại mainboard mà nơi kích hoạt khác nhau Việc làm Laravel hấp dẫn trong tháng lương 2000USD Kích hoạt Windows Subsystem Linux dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart Mở windows store lên cài đặt Ubuntu 18.04 Khởi động sau khi cài đặt Login vào WSL với user mặc định là root ubuntu1804 config --default-user root Truy cập vào WSL...

By stationd
Hướng dẫn build java project, maven project trên Jenkins

Hướng dẫn build java project, maven project trên Jenkins

Bài viết được sự cho phép của tác giả Trần Hữu Cương Hướng dẫn build java project, maven project trên Jenkins Trong ví dụ này mình sẽ thực hiện clone 1 maven project từ github và thực hiện build nó thành file jar. Tất cả sẽ được thực hiện tự động bằng Jenkins. 10 Java Web Framework tốt nhất 10 tip tối ưu code trên JavaScript mà web developer nào cũng nên biết Yêu cầu: Đã cấu hình JDK cho Jenkins Đã cấu hình Maven cho Jenkins Trong ví dụ này mình sử dụng 1 project maven trên github có url: https://github.com/stackjava/spring-boot-hello . Đây là 1 ví dụ về spring, đã được cấu hình chạy trên port 8081 . Các bạn có thể fork/clone về account github của các bạn để dùng. (Xem lại: Code ví dụ Spring boot Hello World ) Hướng dẫn build java project, maven project trên Jenkins Đầu tiên, ta tạo 1 plan build bằng cách click vào New Item Chọn Maven Project và nhập tên cho plan build Ở đây mình dùng source code từ github nên mình sẽ chọn Git (khi build, jenkins sẽ clone source từ github về) Để Jenkins clone được source code, ta cần cấu hình account git cho nó. Nhập username/password của tài khoản github mà bạn sử dụng để clone source code. (nếu bạn dùng bitbucket, gitlab… thì cũng nhập username/password tương ứng) Nhập repository URL của project git. Phần Credentials chọn account git mà bạn vừa thêm. Click Save. Sau khi Save, ở màn hình chính chúng ta sẽ thấy plan build vừa tạo. Click vào icon build để build project. Ở menu bên trái sẽ có trạng thái build của project. Click vào đó để xem. Click vào Console Ouput để xem log realtime của quá trình...

By stationd
Lập trình IOS: Triển khai MVVM cho project swift(phần 3)

Lập trình IOS: Triển khai MVVM cho project swift(phần 3)

Bài viết được sự cho phép của tác giả Lê Xuân Quỳnh Hello guys! Lại là mình đây Trong bài trước , chúng ta đã học cách viết 1 lớp network layer rất chuyên nghiệp để call API, clear và simple. Hôm nay chúng ta sẽ tinh chỉnh cho app chuyên nghiệp hơn. Lập trình IOS: Làm sao để viết code swift đúng chuẩn thế giới? 5 bài học quí giá về việc phát triển ứng dụng iOS Thêm indicator và search more Vậy chúng ta sẽ làm gì hôm nay: Thêm phần loading cho search Sửa API theo ducument Thêm phần load more khi scroll table view OKey, vậy chúng ta hãy cùng bắt đầu nhé. Đầu tiên như các bài trước bạn hãy checkout source code tại đây: https://github.com/codetoanbug/MVVMSample.git Vui lòng đọc cách chuyển sang branch bai3 dựa vào các bài trước để xem code nhé. Hãy cùng bắt đầu nhé Thêm phần loading cho search Như các bạn thấy, thì các mục search trên các ứng dụng như facebook, google, họ thường hay thêm indicator hiển thị loading để người dùng chờ đợi. Vì thế mà ứng dụng của chúng ta cũng nên có cái này để tăng trải nghiệm người dùng. Chứ mà không có thì ai biết ứng dụng có đang working hay không. Phần loading sẽ show khi người dùng bắt đầu search, và sẽ ẩn đi khi đã kết thúc tác vụ search. Vì thế chúng ta sẽ sửa lại giao diện như sau: Thêm indicator Trong hình trên, chúng ta sẽ thêm 1 indicator ở dưới ô search và trên ô table. Tôi đưa indicator và tableview vào 1 stack view vì khi indicator show/hide, thì tableview sẽ tự động full màn hình. topIndicator: Show lên khi người dùng nhập text để...

By stationd