Việc coding không đơn giản là code sao cho chương trình chạy được, làm việc lâu với code cũng sinh ra cái thú vị của nó. Sinh viên như tôi được học vẫn quen cách code sao cho chương trình chạy được mà chưa để ý tới mức độ phức tạp trong xử lý. Vì đa phần toàn làm bài tập. Khi code 1 phần mềm "có khả năng sử dụng được trong thực tế" mới thấy cái sai của mình.
Topic này lập ra với mục đích chia sẻ các coding mà các bạn thấy nó là tinh tế, giản tiện và thực thi nhanh. Ví dụ như sự tinh tế trong các đặt tên ngôn ngữ C++ là 1 cải tiến của C bằng chính toán tử "++" thường gặp.
Không ghê gớm lắm đâu. Chẳng hạn
Return:
- Thay vì khai báo:
thì thay bằngPHP Code:s = a +b;
return s;
Hạn chế dùng biến toàn cục.PHP Code:return (a+b)
Hạn chế dùng biến toàn cục.
Bạn hay sử dụng cách này để giải quyết các bài toán nhỏ. Nhưng đưa qua các vòng lặp và biến đó tồn tại lâu dài sẽ gây thiếu bộ nhớ, code xử lý chậm hơn. Lập trình hướng đối tượng thường xử lý mã lệnh theo mô hình stack - xếp chồng. Do đó, phạm vi biến càng hẹp thì tốc độ thực thi sẽ nhanh hơn hơn. Các biến cục bộ, biến thông số (biến truyền vào - parameter),... sẽ tốt hơn so với global variable - biến toàn cục. Chẳng hạn,
và,PHP Code:String value;
for(int i = 0; i < list.size(); i++) {
value = list.get(i);
// code logic có sử dụng biến value
}
các viết thứ 2 sẽ chạy nhanh hơn trong trường hợp phạm vi sử dụng của biến value không vượt quá vòng lặp for.PHP Code:for(int i = 0; i < list.size(); i++) {
String value = list.get(i);
// code logic có sử dụng biến value
}
Hạn chế đệ quy
Đệ quy chỉ dùng cho các trường hợp bất đắc dĩ, vì cách này ngôn ngữ phải làm việc với stack, phải giải quyết đến cùng mới quay lại dần, ví dụ fibonanci quen thuộc với số hàng triệu...
--> Hãy tìm cách khử đệ quy.
So sánh
Thường thì ta dùng if, nhưng toán tử ? cũng giải quyết được vấn đề này và rất là tinh tế. Xem ví dụ so sánh 3 số, tìm max, min.
Các bạn hãy chia sẻ hoặc thảo luận cách tối ưu hóa code. Mỗi người góp 1 ít, dần dần chúng ta sẽ có nhiều.PHP Code:int function(int a,int b,int c,int &min, int &max)
{
max=a;
max>b ? (max>c ? max=a: max=c): (b>c ? max=b: max=c);
min=a;
min<b ? (min<c ? min=a : min=c): (b<c ? min=b : min=c);
}
--------------------------------------------------
Xem các chủ đề cùng chuyên mục:
- pác nào có đầy đủ đề và bài giải của java cơ bản từ bài thực hành số 1 tới 7 và 2 bài tổng hợp up... 02/07/2011
- Xin Ebook JAVA 14/01/2011
- [Share]Một vài ebook về Java edition mới nhất 04/02/2012
- Một số bài tập Java Căn bản 27/10/2011
- Lấy thông tin thời tiết tự động bằng Javascript 11/10/2010
- Cho em hỏi về cách nhúng file javascript đuôi .js vào web 20/11/2011
- Frame & GridbagLayout trong java 21/09/2011
- Giúp đỡ.. thực hiện 5 chia 9 = 0.5555555555555556 về 0.56 22/03/2011
- [JAVA-XML]Hàm sửa đổi tệp XML bằng Java – (JDOM) 25/04/2011
- Java - xml biểu diễn cây xml bằng JTree 21/01/2011
+2 EXP







Trả Lời Với Trích Dẫn
interpol