Thiết kế
Website
Website thiết kế chuẩn seo, giao diện đẹp, tương thích thiết bị di động...Domain
Hosting
Cung cấp các gói dịch vụ chất lượng cao với giá cả hợp lýQuảng cáo
Trực tuyến
Tối ưu hóa công cụ tìm kiếm(Seo), Facebook Ads, Google Ads...Đăng bởi: Thiết kế web Hải Phòng - HPSOFT
0.1 Cải tiến chất lượng mã
0.1.1 Sử dụng các Assembly
0.1.2 Sử dụng từ khoá sealed (C#) và NotOverridable (VB .NET)
mức phương thức khi thích hợp
0.1.3 Sử dụng các hàm ảo virtual (C#) và overidable (VB) ít nhất có thể
phương thức trong các lớp dẫn xuất, các trình biên dịch phải xây dựng một
bảng ảo (virtual table) chứa các địa chỉ hàm để xác định hàm cần gọi trong lúc
chạy -> Tiêu tốn bộ nhớ và thời gian chạy
chứ không nên lạm dụng
0.1.4 Chồng (override) các hàm Finalize & Dispose để quản lý tài nguyên
0.1.5 Sử dụng các khối Try-Cach-Finally để xử lý các ngoại lệ (Exception)
0.1.6 Sử dụng lớp StringBuilder để tối ưu các thao tác cộng dồn trên xâu ký tự
Lóp StringBuilder được sử dụng để tối ưu cho các phép toán cộng dồn các xâu ký tự nhằm tối ưu sử dụng bộ nhớ, Ví dụ
Ta có mảng các xâu sau:
String[] strs = {“This”, “is”, “a”, “string”}
Để ghép các xâu trên thành một xâu tổng, ta thưòng làm như sau:
String result = “”;
for (int i = 0; i < strs.Length; i++)
result += strs[i];
return result;
Để tối ưu hơn ta nên sử dụng StringBuilder như sau:
StringBuilder result = new StringBuilder();
for (int i = 0; i < strs.Length; i++)
result.Append(strs[i]);
return result.ToString();
0.1.7 Chồng hàm Equals trên các kiểu giá trị bạn thiết kế
Các kiểu giá trị (ValueType) được cấp phát trên Ngăn xếp (Stack), khi gọi phương thức Equals trên các đối tượng kiểu này gây ra hệ thống phải chuyển đổi các kiểu giá trị thành kiểu tham chiếu (ReferenceType) – Hay theo .NET còn gọi chuyển đổi này là Boxing, Sau khi thực hiện chuyển đổi, Framework tiếp tục dùng kỹ thuật Reflection để gọi hàm Equals -> Mất thời gian. Bằng cách cung cấp một cơ chế thực thi tuỳ biến sẽ tối ưu được thời gian xử lý. Ví dụ lớp số phức sau:
public struct Complex
{
private int real; // Phần thực
private int image; // Phần ảo
public Complex(int real, int image)
{
this.real = real;
this.image = image;
}
// Chồng phưong thức Equals cho lớp số phức
public override bool Equals(object obj)
{
if (! (obj is Complex))
return false;
Complex comp = obj as Complex;
if (com != null)
return (this.real == comp.real && this.image == comp.image)
return false;
}
}
0.1.8 Chọn sử dụng các cấu trúc dữ liệu Collection:
ArrayList là danh sách được tổ chức dưới dạng mảng, cho phép truy cập nhanh
chóng dựa vào chỉ số của các phần tử trong danh sách
ArrayList thích hợp cho việc lưu trữ các phần tử theo cấu trúc tuyến tính, thay đổi liên tục về số lượng các phần tử, hỗ trợ cho các thao tác thêm (Add), Chèn (Insert), loại bỏ (Remove) các phần tử
ArrayList cũng đựợc tối ưu cho các phép toán tìm kiếm (Searching) trên các mảng đã được sắp xếp
Nên tránh sử dụng ArrayList để lưu trữ các xâu ký tự, hãy sử dụng StringCollection thay vì ArrayList
StringCollection cũng giống như ArrayList, tuy nhiên nó là các ArrayList được tối ưu cho các phần tử dữ liệu là các Xâu ký tự
HashTable là cấu trúc dữ liệu biểu diễn một tập các phần tử dữ liệu dạng cặp Key/Value, cho phép truy cập các phần tử dựa vào chỉ số hoặc khóa (key) của phần tử đó
HashTable được tối ưu cho việc lưu trữ một tập dữ liệu lớn, ít thay đổi về mặt số lượng (Vì xảy ra việc băm lại các giá trị khóa), khả năng truy xuất nhanh chóng
Dùng Hashtable khi ta có một tập dữ liệu lớn, ít thay đổi về mặt số lượng, và cần truy xuất thường xuyên
NameValueCollection cũng được sử dụng giống như Hashtable, ngoại trừ là các phần tử cặp Key/Value đều là các dữ liệu kiểu Xâu ký tự
Là Hashtable với các khóa (Key) đă được sắp xếp
------------------------------------
CÔNG TY CỔ PHẦN GIẢI PHÁP PHẦN MỀM HẢI PHÒNG - HPSOFT
CEO Nguyễn Văn Công
Công ty TNHH TMDV Trường Hưng. Tel: 0936 847 357
CEO Hà Thị Thanh Xuân
Công ty TNHH Cửa Cuốn Đại Phúc. Tel: 0912.665.189
CEO Tạ Thị Hương
Công ty In Phi Long. Tel: 0936.434.222
CEO Nguyễn Tuấn Dũng
Chủ tịch hệ thống Yoga Vàng Việt Nam. Tel: 0968.25.6868