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

Internationalization và Localization trong Java

Internationalization và Localization trong Java

Bài viết được sự cho phép của tác giả Lê Hồng Kỳ Internationalization và Localization trong Java sẽ đề cập đến Internationalization và Localization. Internationalization cũng có thể được viết tắt là i18n vì có 18 ký tự ở giữa I và N. Internationalization (quốc tế hoá) là một kỹ thuật cho phép chúng ta tạo ra các ứng dụng mà có thể thích ứng với nhiều ngôn ngữ và nhiều khu vực khác nhau. Localization cũng có thể được viết tắt là l10n vì 10 ký tự ở giữa L và N. Localization (nội địa hoá) là kỹ thuật giúp tạo ra một ứng dụng có thể thích ứng với một ngôn ngữ và vùng miền cụ thể. Như vậy, một ứng dụng hỗ trợ đa ngôn ngữ thì gọi là Internationalization (quốc tế hoá) và khi người dùng chọn một ngôn ngữ cụ thể để hiển thị thì gọi là Localization (nội địa hoá) Internationalization và localization trong Java – Các thành phần trong ứng dụng cần được quốc tế hóa Internationalization và localization trong Java – Quốc tế hoá các thông điệp (Messages) Chúng ta sẽ sử dụng lớp ResourceBundle để xử lý quốc tế hoá cho các message. Các message trong ứng dụng sẽ được khai báo trong tập tin properties thay vì viết trong code (hardcoded). Tên của tập tin properties đặt theo qui tắc filename_languagecode_countrycode với filename là tên tập tin, languagecode là mã ngôn ngữ, countrycode là mã quốc gia. Bên dưới là bảng mô tả language code và country code theo từng quốc gia. Country Language Code Country Code English en EN Germany de DE China zh CN Czech Republic cs CZ Netherlands nl AN France fr FR Italy it IT Japan ja JP Korea ko KR Russia ru RU Spain es...

By stationd
Tuple Python là gì? Tìm hiểu về tuple python

Tuple Python là gì? Tìm hiểu về tuple python

Với anh em nào chưa biết xài Tuple, bài viết này giúp đỡ được, với anh em nào đã xài Tuple và quên té cái giống và khác với List, đọc bài này cũng ổn. Nói chung là bài viết Tuple Python này dành cho mọi người, mọi trình độ. Đọc vui anh em nhớ ủng hộ nha!. Viết khá cụ thể, giống, khác, ví dụ ví dại rõ ràng đầy đủ. Bắt đầu ngay thôi nào! 1. Tuple là gì? Bắt đầu với đặc sản là lướt qua định nghĩa. A Tuple is also a sequence data type that can contain elements of different data types, but these are immutable in nature. In other words, a tuple is a collection of Python objects separated by commas. The tuple is faster than the list because of static in nature. Tuple là kiểu dữ liệu chuỗi bao gồm nhiều các thành phần có kiểu dữ liệu khác nhau, nhưng nó là không thể thay đổi được. Nói một các khác, tuple là một object Collection phân cách nhau bằng dấu phẩy. Tuple nhanh hơn List cũng ở chỗ này, do tĩnh (static) không thể thay đổi được. Biến toàn cục (global), biến cục bộ (local), biến nonlocal trong Python Biến và kiểu dữ liệu cơ bản trong Python Sau định nghĩa thì là syntax, làm gì thì làm vẫn phải lướt qua syntax nha. Ví dụ này bao gồm nhiều loại tuples lun ha. # Nhiều loại tuple # Empty tuple tuple_rong = () print(tuple_rong) # Tuple bao gồm toàn số tuple_toan_so = (1, 2, 3) print(tuple_toan_so) # Tuple nhiều loại dữ liệu tuple_nhieu_loai_du_lieu = (true, "Kieu Chuoi", 5.2) print(tuple_nhieu_loai_du_lieu) # Tuple kết hợp nhiều loại tuple_hon_hop = ("hon hop", [true, false, 6], (9, 2, 3)) print(tuple_hon_hop) Chỗ nhanh chậm này...

By stationd
Python: Giải thích hàm Sleep

Python: Giải thích hàm Sleep

Bài viết được sự cho phép của tác giả Phạm Văn Nguyên Trong Python hoặc bất kỳ ngôn ngữ lập trình nào khác, đôi khi bạn muốn thêm thời gian trễ trong chương trình của mình trước khi bạn tiếp tục đến phần tiếp theo của mã. Nếu đây là những gì bạn muốn làm, thì bạn nên sử dụng chức năng sleep từ module time . Đầu tiên, tôi sẽ bắt đầu bằng cách thảo luận về cách sử dụng chức năng sleep của Python . Sau đó tôi sẽ nói nhiều hơn về một số câu hỏi thường gặp và cách thức thực hiện của function(hàm) sleep . Hàm sleep Giống như tôi đã đề cập, Sleep là một hàm tích hợp Python trong mô-đun time . Vì vậy, để sử hàm sleep , bạn sẽ cần import module time trước. Hàm sleep có một đối số là khoảng thời gian tính bằng giây mà bạn dừng. Sử dụng hàn sleep trong Python 2 và Python 3 hoàn toàn giống nhau, vì vậy bạn sẽ không cần phải lo lắng về phiên bản Python nào mà mã của bạn đang chạy. Nó thực sự rất đơn giản và dễ hiểu. Chúng ta hãy đi qua một số ví dụ. Python: Tạo một máy chủ HTTP đơn giản Python 2 Giả sử bạn muốn hàn sleep để thêm độ trễ 10 giây. Trong ví dụ sau, tôi in ra thời gian đã trôi qua giữa việc gọi hàm sleep và sau khi nó trả về . import time# record start timestart_time = time.time()# sleep for 10 secondstime.sleep(10)# print elapsed timeelapsed_time = time.time() - start_timeprint(elapsed_time)# output: 10.000149965286255 Như bạn có thể thấy, thời gian trôi qua rất gần với 10 giây, đó là những gì chúng ta mong đợi. Python...

By stationd
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8

Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8

Bài viết được sự cho phép của tác giả Giang Phan Trong bài viết “ Giới thiệu về Stream API trong Java 8 ” , chúng ta đã tìm hiểu về các đặc điểm, các làm việc của Stream trong Java 8. Ở bài viết này, tôi muốn giải thích kỹ hơn về cơ chế Lazy Evaluation của Stream trong Java 8. 10 tips để trở thành Java Developer xịn hơn Những mã xấu mà Java 8 có thể khử Xem thêm tuyển dụng Java lương cao trên Station D Như chúng ta đã biết, Stream có một đặc điểm rất quan trọng là cho phép tối ưu hóa hiệu xuất của chương trình thông qua cơ chế lazy evaluation , nghĩa là chúng không được thực hiện cho đến khi cần thiết. Các hoạt động tính toán trên source data chỉ được thực hiện khi một terminal operation được khởi tạo và các source element chỉ được sử dụng khi cần. Hãy xem ví dụ sau: 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 import java.util.HashMap; import java.util.Map; import java.util.function.Predicate; import java.util.stream.Stream; import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor class Employee { String name; String department; int salary; } class EmployeeRepository { private static final Map<Integer, Employee> employees = new HashMap<>(); static { employees.put( 1 , new Employee( "gpcoder 1" , "A" , 50 )); employees.put( 2 , new Employee( "gpcoder 2" , "B" , 100 )); employees.put( 3 , new Employee( "gpcoder 3" , "A"...

By stationd
Nhập/Xuất Trên Console

Nhập/Xuất Trên Console

Bài viết được sự cho phép của tác giả Nhựt Danh Bài viết hôm nay sẽ hướng dẫn bạn sử dụng một “công cụ” để các bạn tiến hành nhập/xuất thông qua Console . Công cụ này giúp cho các bạn sau khi nhập dữ liệu vào từ bàn phím, nó sẽ lấy dữ liệu được nhập này rồi sau đó chuyển vào chương trình của bạn, để chương trình xử lý, rồi xuất ra kết quả thông qua màn hình Console . Sau bài học hôm nay thì các bạn có thể test thoải mái các dòng code, để hỗ trợ tốt vào quá trình học Java của bạn. Nhưng trước hết, chúng ta hãy cùng tìm hiểu sâu hơn về khái niệm nãy nhờ được nhắc đi nhắc lại này. Khái Niệm Console Đầu tiên bạn có thể hiểu Console chúng như là một bảng điều khiển chuyên dụng. Như các Game Console chính là các thiết bị chuyên cho việc điều khiển game. Hay các trang web quản lý như quản lý nhân viên cũng có thể coi là các Console chuyên dụng cho việc quản lý. Trong ngôn ngữ lập trình, Console được biết đến như là một cách điều khiển ứng dụng đơn thuần nhất thông qua các dòng text (dòng lệnh), nó được phân biệt với điều khiển bằng UI. Và Console trong chương trình học của chúng ta là hình minh họa dưới đây, ở các bài làm quen sơ sơ trước, khi bạn thực thi chương trình thì cũng đã biết tới cửa sổ Console này rồi đúng không nào. Màn hình Console trong InteliJ Nhập Trên Consolse Chúng ta đang nói đến các cách thức để bạn nhập dữ liệu từ Console . Để bắt đầu, bạn hãy mở InteliJ lên....

By stationd
Tổng hợp các Module Python “khủng” mà bạn có thể đã bỏ qua

Tổng hợp các Module Python “khủng” mà bạn có thể đã bỏ qua

Tác giả: Adam Goldschmidt Python là một ngôn ngữ lập trình tuyệt vời, và nó chứa nhiều module tích hợp sẵn nhằm giúp chúng ta viết code tốt hơn, code đẹp hơn. Mục tiêu Thông qua bài viết này, chúng ta sẽ sử dụng một vài module và phương pháp ít ai biết mà có thể cải thiện được cách code của chúng ta cả về phần nhìn và tính hiệu quả. NamedTuple Tôi tin rằng một vài người hẳn đã biết tới câu lệnh phổ biến hơn là namedtuple từ module collections (Nếu chưa biết bạn có thể xem tại đây), nhưng kể từ phiên bản Python 3.6, một loại mới đã có trong module typing là NamedTuple . Cả hai đều được thiết kế để giúp bạn nhanh chóng tạo ra những đối tượng bất biến có thể đọc được. NamedTuple thực ra là một phiên bản viết lại của namedtuple , và theo quan điểm của tôi thì nó dễ đọc hơn nhiều: In [2]: import typing In [3]: class BetterLookingArticle(typing.NamedTuple): ...: title: str ...: id: int ...: description: str = "No description given." ...: In [4]: BetterLookingArticle(title="Python is cool.", id=1) BetterLookingArticle(title='Python is cool.', id=1, description='No description given.') Còn thay vào đó nếu ta sử dụng namedtuple : In [6]: import collections In [7]: Article = collections.namedtuple("Article", ["title", "description", "id"]) In [8]: Article(title="Python is cool.", id=1, description="") Article(title='Python is cool.', description='', id=1) array.array Các mảng giá trị số hiệu quả. Mảng là những loại trình tự hoạt động rất giống như list, ngoại trừ các loại đối tượng được lưu trữ bị hạn chế. Khi sử dụng module array , chúng ta cần khởi tạo bằng 1 typecode kiểu mã mà trong đó tất cả những element phần tử đều được sử dụng. Hãy so sánh tính...

By stationd
Một số đoạn code Python phổ biến bạn nên thuộc lòng

Một số đoạn code Python phổ biến bạn nên thuộc lòng

Bài viết được sự cho phép của tác giả Nguyen Chi Thuc Đảo ngược chuỗi trong Python Đoạn mã sau đảo ngược một chuỗi bằng cách sử dụng thao tác cắt (slicing) trong Python . # Đảo ngược chuỗi sử dụng slicing my_string = "ABCDE" reversed_string = my_string[:: -1 ] print(reversed_string) # Kết quả # EDCBA Viết Hoa ký tự đầu tiên của mỗi từ Đoạn code sau có thể được sử dụng để chuyển đổi một chuỗi thành trường chuỗi mới được viết HOA ký tự đầu tiên của mỗi từ. Điều này được thực hiện bằng cách sử dụng phương thức title() của string class. my_string = "đây là một chuỗi" # Sử dụng hàm title() của lớp string new_string = my_string.title() print(new_string) # kết quả # Đây Là Một Chuỗi Tìm việc python các công ty tập đoàn Tìm các phần tử duy nhất trong một chuỗi Đoạn code sau có thể được sử dụng để tìm tất cả các phần tử duy nhất trong một chuỗi. Chúng ta sử dụng tính chất của kiểu dữ liệu set: Tất cả các phần tử trong set là duy nhất. my_string = "aavvccccddddeee" # Chuyển chuỗi thành một set temp_set = set(my_string) # Chuyển set thành một chuỗi sử dụng join new_string = '' .join(temp_set) print(new_string) # Kết quả # acdve # Vì set không có thứ tự # nên thứ tự chuỗi mới nhận được là ngẫu nhiên In một Chuỗi hoặc một List n lần Bạn có thể sử dụng phép nhân (*) với chuỗi hoặc List. Điều này cho phép chúng ta nhân chúng bao nhiêu lần tùy thích. n = 3 # Số lần lặp lại my_string = "abcd" my_list = [ 1 , 2 , 3 ] print(my_string*n) # abcdabcdabcd print(my_list*n) # [1,2,3,1,2,3,1,2,3] Một...

By stationd
Học Python: Từ Zero đến Hero (phần 2)

Học Python: Từ Zero đến Hero (phần 2)

Iteration: Looping thông qua Data Structures Như đã biết về Python Basics , List iteration rất đơn giản. Các developer Python thường sử dụng looping For như sau: bookshelf = [ "The Effective Engineer", "The 4 hours work week", "Zero to One", "Lean Startup", "Hooked" ] for book in bookshelf: print(book) Vậy là với mỗi quyển trên kệ, ( có thể làm mọi thứ ) để print nó. Đơn giản & trực quan, đó chính là Python. Đối với hash data structure, chúng ta cũng có thể sử dụng loop for nhưng áp dụng key : dictionary = { "some_key": "some_value" } for key in dictionary: print("%s --> %s" %(key, dictionary[key])) # some_key --> some_value Với mỗi key trong dictionary , chúng ta sẽ print key đó và value tương ứng của nó. Cách khác là sử dụng method iteritems . dictionary = { "some_key": "some_value" } for key, value in dictionary.items(): print("%s --> %s" %(key, value)) # some_key --> some_value Chúng ta đã đặt tên 2 biến số là key & value , nhưng không cần thiết, có thể đặt bất kì tên nào. Cùng xem: dictionary_tk = { "name": "Leandro", "nickname": "Tk", "nationality": "Brazilian", "age": 24 } for attribute, value in dictionary_tk.items(): print("My %s is %s" %(attribute, value)) # My name is Leandro # My nickname is Tk # My nationality is Brazilian # My age is 24 Rõ ràng, chúng ta đã sử dụng attribute như 1 tham số cho Dictionary key & nó hoạt động rất tốt. Quá tuyệt vời! Học Python: Từ Zero đến Hero (phần 1) Classes & Objects Một chút lý thuyết Objects là đại diện cho các đối tượng trong thực tế như xe hơi, chó, xe đạp. Các objects sẽ chia sẻ 2 đặc tính chủ chốt là: data và behavior...

By stationd
PHP & MySQL: Novice to Ninja, 5th Edition

PHP & MySQL: Novice to Ninja, 5th Edition

Dưới đây là tài liệu về PHP & MySQL mà Station D đã tham khảo được trên diễn đàn. Người mới làm quen với Ninja là một hướng dẫn thực hành thực tế để tìm hiểu tất cả các công cụ, nguyên tắc và kỹ thuật cần thiết để xây dựng một trang web hướng cơ sở dữ liệu đầy đủ chức năng bằng cách sử dụng PHP & MySQL Tải tại đây Tham khảo thêm việc làm php nhiều ngành nghề tại đây

By stationd