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

Cùng một công việc, Java đòi hỏi nhiều dòng code hơn Python?

Cùng một công việc, Java đòi hỏi nhiều dòng code hơn Python?

Vì sao những ngôn ngữ như Java đòi hỏi phải code nhiều hơn Python khi thực hiện cùng một công việc? Có rất nhiều lí do, nhưng đầu tiên thì tôi muốn nói rõ là tôi đã sử dụng Python một cách thành thạo được 10 năm rồi. Tôi không có vấn đề gì với Python cả, thậm chí tôi còn thấy nó rất tốt cho việc học. “Code dài hơn hơn khi thực hiện cùng một công việc” Đúng vậy. Nói chung là lập trình Java sẽ cần phải gõ nhiều hơn Python đấy. Nhưng nếu đó là vấn đề lớn với bạn, hãy kiếm IDE khác tốt hơn hoặc học cách đánh máy nhanh hơn. Code của Python ngắn gọn hơn, nhưng cái giá phải trả là gì? Cùng xem nhé… def getCustomer(id): Hàm này sẽ trả về gì nhỉ? Hay không trả về bất cứ gì cả? Biến “id” là kiểu gì? Số? Chuỗi? “CustomerID” object? Cùng xem Java nào… public CustomerRecord getCustomer(CustomerID id){ Số lượng code dài gấp đôi. Nhưng chúng ta có thể thấy rõ là hàm sẽ trả về kiểu nào, code làm gì trong đó. Những đoạn code của Java rõ ràng như những điều khoản được viết ra trong hợp đồng vậy. Đây điều mà Python không có. Tôi nghĩ là Python phù hợp cho việc học và có thể làm nhiều thứ cao cấp hơn nữa. Nhưng công việc gần nhất của tôi về Python đòi hỏi viết hơn 100,000 dòng code. Ứng tuyển các vị trí việc làm Java lương cao trên Station D Trong 100,000 dòng code đó, ví dụ mà tôi đưa ra ở trên sẽ xảy ra hơn 1000 lần, với hơn 1000 biến không xác định và hơn 1000 kết quả trả về cũng không xác...

By stationd
Record class trong Java

Record class trong Java

Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Trong Java , khái niệm immutable dùng để chỉ những class mà đối tượng của chúng không bị thay đổi thông tin sau khi được khởi tạo. Bình thường, để khai báo một immutable class, chúng ta sẽ : Khai báo class này là final để không class nào extend được từ nó. Khai báo các fields của class đó là private và final, Không có các phương thức Setter mà chỉ có các phương thức Getter, Nếu một trong các fields của class đó là object thì khi lấy thông tin của field đó, chúng ta cần return copy của object đó. Ví dụ, nếu mình cần implement class Student với 2 thuộc tính là tên và tuổi, là immutable class, mình sẽ khai báo như sau: package com . huongdanjava . javaexample ; public final class Student { private final String name ; private final int age ; public Student ( String name , int age ) { this . name = name ; this . age = age ; } public String getName ( ) { return name ; } public int getAge ( ) { return age ; } } Mình đã giới thiệu với các bạn về Project Lombok , về lợi ích của nó trong việc giảm thiểu việc viết code cho những phương thức Getter, hay constructor, … khi khai báo một class. Với immutable class Student ở trên, chúng ta có thể viết lại với Project Lombok như sau: package com . huongdanjava . javaexample ; import lombok . AllArgsConstructor ; import lombok . Getter ; @Getter @AllArgsConstructor public final class Student { private final String name ; private final int age ; } Từ Java 14 trở đi, chúng...

By stationd