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ạo ứng dụng Java RESTful Client với thư viện OkHttp

Tạo ứng dụng Java RESTful Client với thư viện OkHttp

Bài viết được sự cho phép của tác giả Giang Phan Trong các bài viết trước chúng ta sử dụng thư viện Jersey client để gọi các RESTful API. Trong bài này, tôi sẽ giới thiệu với các bạn thư viện khác, rất mạnh mẽ để gọi các RESTful API là OkHttp . Giới thiệu OkHttp OkHttp là một thư viện Java mã nguồn mở, được thiết kế để trở thành một HTTP Client hiệu quả với tốc độ tải nhanh và giảm băng thông đường truyền. Một số đặc điểm nỗi bật của OkHttp: Hỗ trợ Http/2 protocol. Connection pooling : giúp giảm độ trợ của các request. GZIP compression : hỗ trợ nén dữ liệu khi truyền tải. Cache : tránh lặp lại một request nhiều lần. Hỗ trợ synchronous và asynchronous. 10 lý do cho thấy tại sao bạn nên theo học ngôn ngữ lập trình Java 10 tips để trở thành Java Developer xịn hơn Xem thêm nhiều việc làm Java hấp dẫn trên Station D OkHttp được sử dụng để gửi và nhận kết quả từ các ứng dụng Restful web service. Một số thành phần của OkHttp: Request.Builder : hỗ trợ tạo request bao gồm : HTTP Method, header, cookie, media type, … RestClient : chịu trách nhiệm giao tiếp với REST service bao gồm gửi Request và nhận Response. Ví dụ CRUD Restful Client với OkHttp Tạo project Tạo maven project và khai báo dependency sau trong file pom.xml . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " > < modelVersion >4.0.0</ modelVersion > < groupId...

By stationd
TypeScript là gì? Hướng dẫn cài đặt và sử dụng chi tiết

TypeScript là gì? Hướng dẫn cài đặt và sử dụng chi tiết

TypeScript chắc hẳn không quá xa lạ đối với các lập trình viên, tuy nhiên, bạn có thật sự hiểu hết về TypeScript, giữa TypeScript và JavaScript có mối quan hệ gì không? Trong bài viết hôm nay của Station D, chúng ta sẽ cùng tìm hiểu cặn kẽ TypeScript là gì và tại sao nên sử dụng ngôn ngữ này thay vì các ngôn ngữ lập trình khác. TypeScript Là gì? TypeScript là gì? TypeScript (viết tắt là TS) là một ngôn ngữ lập trình mã nguồn mở ( OOP ) được phát triển và duy trì bởi Microsoft vào năm 2012. TypeScript được xem là một phần mở rộng của JavaScript, sử dụng cú pháp của JavaScript và bổ sung thêm các tính năng mạnh mẽ như kiểu tĩnh và hướng đối tượng để hỗ trợ Type (các kiểu dữ liệu). TypeScript là ngôn ngữ tĩnh (Static typed) có nghĩa là nó nghiêm ngặt và có trật tự trái ngược với free-type. Với TypeScript, ta có thể bê nguyên xi code JavaScript vào trong cùng một file và chạy cùng nhau bình thường, bởi vì TypeScript duy trì cú pháp của JavaScript và mở rộng nó bằng một loạt tính năng mới. Nhờ đó mà hiệu năng làm việc được tăng lên đáng kể. Tuy nhiên một project viết bằng TypeScript cần có compiler (trình biên dịch) để biên dịch những dòng code đó thành JavaScript để browser có thể đọc hiểu được. Tại sao vậy? Nhắc lại kiến thức căn bản đó là browser chỉ hiểu được HTML, CSS và JavaScript, vì vậy cần phải có TypeScript Compiler. Tại sao cần có TypeScript Compiler Tham khảo thêm các việc làm Typescript lương cao cho bạn. Tính năng của TypeScript Null Checking TypeScript hỗ trợ kiểm tra null...

By stationd
Python là gì? Tổng hợp kiến thức cho người mới bắt đầu

Python là gì? Tổng hợp kiến thức cho người mới bắt đầu

Nhắc đến ngôn ngữ lập trình phổ biến nhất thì Python luôn luôn được xếp trong top đầu trong hầu hết các bảng xếp hạng. Với sự phát triển của khoa học dữ liệu hiện nay, Python lại càng được ưa chuộng hơn nhờ tốc độ xử lý dữ liệu của mình. Bài viết hôm nay mình sẽ cùng các bạn tìm hiểu xem Python là gì ? và các bước để tự học lập trình Python nhé. Python Là Gì? Tổng hợp kiến thứ cho người mới bắt đầu Python là gì? Python là một ngôn ngữ lập trình bậc cao , mã nguồn mở và đa nền tảng. Python được sử dụng rộng rãi để phát triển các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học (ML). Python là một ngôn ngữ lập trình mà máy tính có thể hiểu và thực thi trực tiếp mà không cần phải biên dịch trước. Nó được thiết kế để dễ đọc và dễ viết, với cú pháp đơn giản và rõ ràng. Python được Guido van Rossum giới thiệu vào năm 1991 và đã trải qua 3 giai đoạn phát triển khác nhau tương ứng với các version, mới nhất hiện nay là Python version 3x (3.12.3 vào 9 tháng 4 2024). Python có cú pháp rõ ràng và ngắn gọn, giúp cho việc học và sử dụng ngôn ngữ này trở nên dễ dàng. Video giới thiệu Python từ W3school: Tại sao lại chọn ngôn ngữ Python? Dưới đây là bảng xếp hạng các ngôn ngữ lập trình phổ biến nhất năm 2024, được đăng tải trên trang twitter chính thức của Python Developer: Python – ngôn ngữ được sử dụng nhiều nhất thế giới Nguồn: https://x.com/Python_Dv Ta có thể thấy, Python là...

By stationd
Python call by gì?

Python call by gì?

Bài viết được sự cho phép của tác giả Nguyễn Việt Hưng Một câu hỏi nhạt toẹt của nhà phỏng vấn có thể đưa ra (với người phỏng vấn thường có kiến thức từ ngôn ngữ khác như Java, PHP hay C++, hoặc một chuyên gia Python thực sự và hỏi để check xem bạn có mắc bẫy không – loại này thì hiếm, và không rảnh ). Python dùng call-by-value hay call-by-reference? Hai khái niệm này thực ra không tồn tại trong Python, bạn có thể đào tung cả trang document của Python cũng sẽ không thấy nói gì về khái niệm này. Tức là: nó không có thật! Nó không cần thiết! bạn chỉ cần hiểu function hoạt động thế nào, cách Python sử dụng “name binding”. Còn không nên ngồi cãi nhau về “call-by-reference”, “call-by-value” làm gì cho tốn thời gian, vô tác dụng. https://docs.python.org/3/search.html?q=by+reference https://docs.python.org/3/search.html?q=by+value Call by XYZ là cái gì? Mọi khái niệm viết sau đây không tồn tại trong Python, các thuật ngữ được viết với “từ vựng” của ngôn ngữ lập trình khác. Trong một số ngôn ngữ như C, C++, khi gọi function ta có truyền vào các “tham số” (pass argument), nếu function đó nhận vào một array (trong Python hiểu nôm na là list), thì trong function, ta sẽ xử lý chính array đó hay một bản copy của nó? Kiểu 1 update ( danh_sach ) Kiểu 2 update ( & danh_sach ) Với câu gọi function (call function) thứ nhất ta gọi function với giá trị (value) của biến danh_sach . Mọi thay đổi trong function thực hiện trên argument được gọi là thực hiện trên bản copy của danh_sach . Câu gọi function thứ hai ta gọi function với con trỏ (pointer) đến biến danh_sach hay còn gọi...

By stationd
HTTP status code là gì? Danh sách đầy đủ HTTP status code

HTTP status code là gì? Danh sách đầy đủ HTTP status code

Dù có là 1 lập trình viên web hay không, chắc hẳn bạn cũng đã bắt gặp HTTP status code (mã trạng thái HTTP) ít nhất 1 hay nhiều lần rồi đúng không nào? 200, 404, 500… đều là những HTTP status code phổ biến. Thậm chí các truyện vui hay ảnh chế meme về 404 cũng khá nổi tiếng và đầy rẫy trên mạng Internet mà hầu hết bất kỳ ai cũng có thể hiểu được. Vậy thì có bao giờ bạn thắc mắc HTTP status code là gì và ý nghĩa các con số của chúng hay chưa? Hôm nay chúng ta sẽ nói tổng quát 1 chút về HTTP status code và ý nghĩa nằm ẩn sau các con số đó nhé! HTTP Status Code – Mã trạng thái HTTP là gì? Khi được nhận và phiên dịch 1 yêu cầu HTTP từ phía client, HTTP status code sẽ được máy chủ cung cấp để đáp ứng yêu cầu đó của họ. Nó bao gồm code từ IETF Request for Comments (RFC), các thông số kỹ thuật khác và 1 số code bổ sung được sử dụng trong 1 số ứng dụng phổ biến của giao thức HTTP. Chữ số đầu tiên của HTTP status code chỉ định 1 trong 5 loại phản hồi quy chuẩn. Các cụm tin nhắn được hiển thị chỉ mang tính tượng trưng, nhưng cũng có thể cung cấp bất kỳ thông tin bổ sung nào để chúng ta có thể đọc được. Trừ khi có những chỉ định khác, HTTP status code được xem như 1 phần của quy chuẩn HTTP/1.1 (RFC 7231). Cơ Quan Cấp Số Được Ấn Định Trên Internet (tức IANA hay The Internet Assigned Numbers Authority) chính là nơi duy trì sổ đăng ký chính thức của...

By stationd
Debug project Yii2 với XDebug và PHPStorm IDE

Debug project Yii2 với XDebug và PHPStorm IDE

Tác giả: Ugin Po Hôm nay chúng ta đang nói về gỡ lỗi và một trình gỡ lỗi. Trước hết, tôi phải thông báo cho bạn rằng bài viết này dành cho người mới bắt đầu muốn có khả năng gỡ lỗi dự án Yii2 của riêng họ trong IDE PHPStorm mạnh mẽ với XDebug. Bắt đầu. Trong trường hợp của tôi, tôi đã sử dụng các công cụ tiếp theo: Apache 2.4 PHP 5,5 Trình duyệt Chrome với JetBrains IDE Plugin 2.8 PHPStorm 9 xDebug 2.2.6 Xem tin tuyển lập trình viên PHP đãi ngộ tốt trên Station D Bước 1. Trong php.ini của bạn tìm một phần [Xdebug] và các chỉ thị bỏ ghi chú bên dưới: zend_extension=”YOUR_PATH_TO_PHP/ext/php_xdebug.dll” xdebug.default_enable = 1 xdebug.remote_autostart = 0 xdebug.remote_enable = 1 xdebug.remote_port = 9001 Sau đó bạn nên kiểm tra cấu hình php của bạn thông qua hàm phpinfo (). Nếu bạn có thể tìm thấy xdebug trong danh sách thuộc tính, điều này có nghĩa là bạn đã cấu hình quyền xDebug. Bước 2. Vào PHPStorm-> File-> Settings-> Language & Frameworks Bạn nên thiết lập môi trường phát triển trong phần phiên dịch php như sau: Bước 3. Sau đó vào PHPStorm-> File-> Settings-> Language & Frameworks-> PHP-> Server và thiết lập các tùy chọn máy chủ web của bạn: Bước 4. Trong PHPStorm-> File-> Settings-> Language & Frameworks-> PHP-> Debug định cấu hình cài đặt xDebug: Bước 5. Ở góc trên cùng bên phải của PHPStorm chọn tùy chọn “Edit Configurations…” Bước 6. Trong cửa sổ xuất hiện, nhấp vào “+” và thêm “PHP Web Application”. Đó là tất cả. Bước tiếp theo là đặt điểm ngắt bằng cách nhấp vào bên trái của trình chỉnh sửa đối với một số chức năng hoặc các thực thể khác mà bạn...

By stationd
Java Serializable là gì? Serialization và Deserialization trong Java

Java Serializable là gì? Serialization và Deserialization trong Java

Bài viết được sự cho phép của tác giả Trần Hữu Cương Khi lập trình với Java chắc hẳn bạn đã bắt gặp khái niệm serialize nhất là khi đọc ghi object ra file, mapping với cơ sở dữ liệu… Java Serializable là gì? Serialization trong Java là cơ chế chuyển đổi trạng thái của một đối tượng (giá trị các thuộc tính trong object) thành một chuỗi byte sao cho chuỗi byte này có thể chuyển đổi ngược lại thành một đối tượng. Quá trình chuyển đổi chuỗi byte thành đối tượng gọi là deserialization. Một object có thể serializable (có thể thực hiện Serialization) nếu class của nó thực hiện implements interface java.io.Serializable 10 lý do cho thấy tại sao bạn nên theo học ngôn ngữ lập trình Java Java Developer là gì? Lộ trình để trở thành Java Developer Tại sao cần Serialization? Trong Java, khi trao đổi dữ liệu giữa các thành phần khác nhau (giữa các module cùng viết bằng Java) thì dữ liệu được thể hiện dưới dạng byte chứ không phải là đối tượng. Do đó ta cần có một cơ chế để hiểu các đối tượng được gửi và nhận. Quá trình serilization hoàn toàn độc lập với platform (không phụ thuộc vào hệ điều hành) nên việc chuyển đổi giữa byte và object giữa các module được đảm bảo. Java tuyển dụng lương cao, đãi ngộ tốt Code ví dụ Ví dụ mình có 2 module, một module thực hiện chuyển đối tượng Customer thành byte và ghi ra file .Một module thực hiện đọc byte từ file và chuyển ngược lại thành đối tượng Customer. (Trong thực tế thì 2 module có thể trao đổi qua database, network chứ không phải qua file) package stackjava. com . serializable . demo...

By stationd
Kết nối Database động với PHP, Dynamic Database Connection!

Kết nối Database động với PHP, Dynamic Database Connection!

Bài viết được sự cho phép của BQT Kinh nghiệm lập trình Hôm nay mình cùng trở lai với PHP nhé. Chắc hẳn chúng ta đều đã biết hầu hết các hệ thống/ứng dụng đều sử dụng ít nhất 1 hệ quản trị Cơ sở dữ liệu để lưu trữ dữ liệu cho ứng dụng của mình. Thông thường các hệ thống đó có thể sử dụng một hoặc nhiều Database. Tuy nhiên phần lớn chúng đều được khai báo cố định trước trong các file config. Một ngày đẹp trời, chúng ta cần xây dựng một hệ thống mà cần quản lý, kết nối tới nhiều Database khác nhau nhưng lại không được khai báo và xác đinh trước. Vậy chúng ta sẽ xử lý ra sao? Bài viết hôm nay mình sẽ chia sẻ phương án giải quyết cho việc kết nối động tới Database (dynamic database connection). Cụ thể mình sẽ minh họa đối với PHP CodeIgniter. Dynamic Database Connection Giải pháp Các bước thực hiện như sau: Tạo helper xử lý việc trả về cấu hình chuẩn để kết nối Database Load dữ liệu thông tin Database trước khi cần kết nối Sử dụng helper để render dữ liệu config với Database trên Load model với config Database mới Việc làm database lương cao Tạo Helper Tạo 1 file helper, đặt tên là db_dinamic_helper.php trong folder application/helpers Code Helper demo Sau khi tạo helper chúng ta cùng thêm function để render cấu trúc config PHP. Trên hình là code mình sử dụng với CodeIgniter. Một điệu đặc biệt quan trọng là thêm helper trên vào Autoload . Xem thêm Việc làm php hấp dẫn Load thông tin kết nối Database Ở bước này, các bạn load thông tin kết nối của Database bạn đang muốn kết...

By stationd
Sử dụng override trong Java sao cho hiệu quả?

Sử dụng override trong Java sao cho hiệu quả?

Trong lập trình hướng đối tượng (OOP), việc ghi đè phương thức (method overriding) là một tính năng cho phép con lớp định nghĩa lại các phương thức được kế thừa từ lớp cha. Phương thức ghi đè sẽ có cùng tên và tham số với phương thức trong lớp cha, nhưng có thể có hành vi khác nhau. Từ khóa override được sử dụng trong java để chỉ ra rằng phương thức trong con lớp đang ghi đè phương thức của lớp cha. Từ khóa này giúp trình biên dịch Java kiểm tra xem phương thức được ghi đè có tuân theo các quy tắc nhất định hay không. Tìm hiểu về từ khóa override trong Java Trong Java , từ khóa override được sử dụng để ghi đè phương thức của lớp cha trong lớp con. Điều này có nghĩa là khi một phương thức được gọi từ một đối tượng của lớp con, phương thức trong lớp con sẽ được thực thi thay vì phương thức trong lớp cha. Điều này cho phép chúng ta định nghĩa lại các phương thức đã có trong lớp cha và điều chỉnh hành vi của chúng theo ý muốn. Để sử dụng từ khóa override, chúng ta cần thực hiện các bước sau: Tạo một con lớp kế thừa từ lớp cha có phương thức muốn ghi đè. Định nghĩa một phương thức mới trong con lớp có cùng tên và tham số với phương thức trong lớp cha. Sử dụng từ khóa override trước khai báo phương thức trong con lớp. Ví dụ: class Cha { public void inRa() { System.out.println("Đây là lớp cha"); } } class Con extends Cha { @Override public void inRa() { System.out.println("Đây là lớp con"); } } Trong ví dụ trên, phương thức inRa()...

By stationd
Expressjs là gì? Framework mạnh mẽ Nodejs Express

Expressjs là gì? Framework mạnh mẽ Nodejs Express

Expressjs là gì ? Nếu đã từng vào nhà hàng kiểu ngồi (sit-down restaurant), bạn sẽ hiểu được những kiến thức cơ bản về Express. Nhưng nếu chỉ mới build backend Node.js lần đầu thì… bạn sẽ gặp khá nhiều khó khăn. Yes, nếu đã làm việc với Javascript bạn sẽ học Node nhanh hơn. Nhưng thách thức đối mặt khi xây dựng backend hoàn toàn khác với những thách thức khi sử dụng Javascript ở frontend. Khi học Node, tôi đã chọn 1 cách học khó nhằn là nghiên cứu eBooks, các tài liệu hướng dẫn, videos.. cứ như vậy cho đến khi thực sự hiểu tại sao mình lại làm những gì mình đang làm. Tự học Node.js thì bắt đầu từ đâu? Học Node.js có khó không? Nhưng có 1 cách dễ hiểu hơn, là sử dụng câu chuyện so sánh liên quan đến nhà hàng kiểu ngồi để giải thích 4 phần quan trọng nhất trong app Express đầu tiên của bạn. Express.js là 1 framework dùng để sắp xếp code nổi tiếng, thường được các bạn mới bắt đầu code sử dụng. Bài viết “Expressjs là gì?”sẽ tập trung vào 4 phần chính sau: Require statements trong Expressjs là gì? Middleware Routing trong Expressjs là gì? App.listen()/ Starting the server Trong phép so sánh này, bạn sẽ là chủ nhà hàng đang muốn tuyển Manager chung – người tạo nên tất cả quy trình và quản lý nhà hàng 1 cách trơn tru nhất, đem lại cho khách hàng những trải nghiệm vui vẻ, hạnh phúc. . Tổng quan bài viết Expressjs là gì như sau: Định nghĩa về Expressjs là gì? Expressjs là một framework được xây dựng trên nền tảng của Nodejs . Nó cung cấp các tính năng mạnh mẽ để phát...

By stationd
Tại sao không nên lưu trữ data user trên Local Storage?

Tại sao không nên lưu trữ data user trên Local Storage?

Tại sao Local Storage không an toàn và bạn không nên dùng nó để lưu trữ data nhạy cảm? Có một vấn đề: hầu hết những thứ xấu về local storage đều không quá quan trọng. Bạn vẫn có thể dùng nó nhưng app sẽ chậm hơn một chút và nhiều phiền toái cho dev. Nhưng vấn đề bảo mật thì khác. Model bảo mật của local storage rất rất quan trọng để biết và nó hoàn toàn ảnh hưởng đến trang web của bạn theo nhiều cách khác nhau. Còn vấn đề của local storage đó nó không an toàn ! Hoàn toàn không. Mọi người đều dùng local storage để store thông tin nhạy cảm như session data, user detail và tất cả những thứ bạn không muốn post công khai trên Facebook. Local storage không được design như một cơ chế storage an toàn trên browser. Nó được design để store các string đơn giản mà dev có thể dùng để build các app single page phức tạp hơn một chút. Vậy thôi. Việc làm Data engineer Việc làm Database Thứ nguy hiểm nhất trên thế giới là gì? JavaScript! Hãy thử nghĩ xem: khi bạn store thông tin nhạy cảm lên local storage, bạn cũng đang làm một trong những việc liều lĩnh nhất thế giới là store thông tin lên công cụ tệ nhất mọi thời đại. Nếu bị tấn công cross-site scripting (XSS) thì sao? Tôi sẽ không kể lê thê hết về XSS đâu, nhưng tóm tắt là như thế này: Nếu một attacker có thể run JavaScript trên wesite của bạn, họ có thể retrive mọi data bạn đã lưu trong local storage và gửi nó đi các domain khác của chúng. Nó có nghĩa là bất kì thứ gì nhạy cảm...

By stationd
Quy tắc đặt tên biến trong Python đúng chuẩn 2024

Quy tắc đặt tên biến trong Python đúng chuẩn 2024

Đặt tên biến thường là vấn đề nhức nhối không chỉ của anh em Junior mới vào nghề mà còn cả những ông Senior lão làng. Chỉ là đặt tên thôi nhưng chưa bao giờ là chuyện đơn giản, bởi tất cả đều có quy tắc riêng. Quy tắc ở đây không phải là quy tắc cứng nhắc, chỉ đơn giản là những cách thức đặt tên phổ biến. Với những cách đặt tên này, nếu anh em tuân theo sẽ tốt hơn khi viết hoặc maintain code. Chỉ là cái tên cũng đủ để anh em nhức đầu Bài viết này cung cấp một số quy chuẩn thường được dùng để đặt tên biến. Mời anh em đón đọc 1. Đặt tên trong python Đối với ngôn ngữ lập trình Python nói riêng và các ngôn ngữ lập trình khác nói chung. Tất cả đều quy định rất rõ các yêu cầu phải có khi đặt tên biến. Cụ thể đối với ngôn ngữ Python, ta có: A variable name must start with a letter or the underscore character – Biến không thể bắt đầu với ký tự hoặc gạch chân. A variable name cannot start with a number – Biến không thể bắt đầu với số. A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ ) – Biến chỉ có các ký tự từ A-z và 0-9 hoặc gạch dưới. Variable names are case-sensitive (age, Age and AGE are three different variables) – Trường hợp viết thường, viết hoa hoặc viết hoa một phần, các biến được hiểu là khác nhau. # Đặt tên biến hợp lệ myvar = "John" my_var = "John" _my_var = "John" myVar = "John" MYVAR = "John" myvar2 = "John" #Tên biến không hợp lệ: 2myvar = "John"...

By stationd