[Thảo luận] Code sao cho tinh tế

Thảo luận trong 'Java/Java Script' bắt đầu bởi integer, 2 Tháng một 2012.

  1. Offline

    integer

    • Tiếu Ngạo Giang Hồ

    • :-?
    Số bài viết:
    1.695
    Đã được thích:
    1.313
    Điểm thành tích:
    900
    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:
    PHP:
    +b;
    return 
    s;
    thì thay bằng
    PHP:
    return (a+b)
    Hạn chế dùng biến toàn cục.
    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,
    PHP:

          String value
    ;
          for(
    int i 0< list.size(); i++) {
              
    value = list.get(i);
              
    // code logic có sử dụng biến value
            
    }
    và,

    PHP:
      for(int i 0< list.size(); i++) {
              
    String  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.

    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.
    PHP:
    int function(int a,int b,int c,int &minint &max)
    {
        
    max=a;
        
    max>? (max>max=amax=c): (b>max=bmax=c);
        
    min=a;
        
    min<? (min<min=min=c): (b<min=min=c);

    }
    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.
    TruTra, clandn.angel, alt+F41 người khác thích bài này.

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí