Bàn về thói quen comments (viết diễn giải) và optimizing (tối ưu) khi coding

  • Thread starter Thread starter hai2hai
  • Ngày gửi Ngày gửi
Liên hệ QC

hai2hai

VNUNi®
Thành viên danh dự
Tham gia
14/6/06
Bài viết
1,137
Được thích
2,297
Nghề nghiệp
Tư vấn giải pháp bán lẻ
Mọi người chú ý: Comments trong code ko nên là Tiếng Việt có dấu. Tốt nhất là tiếng anh (hầu hết các quy định viết code ở các công ty đều bắt buộc thực hiện yêu cầu này). Tuy nhiên, nếu ko viết được tiếng anh thì viết tiếng Việt KHÔNG DẤU. Nguyên tắc này ko rõ từ đâu nhưng nó được "truyền đời" (qua tài liệu đàng hoàng) ở mọi công ty lập trình mà tôi từng làm.

Ngoài ra thêm 1 thói quen: Tất cả các hàm String nên dùng thêm $ để tăng tốc. Ví dụ: Left$(), Right$(), Trim$(), ... Chỉ cần thêm $ đó thôi, nếu mọi người dùng trong vòng lặp nhiều hoặc hay phải xử lý chuỗi lớn (và xử lý nhiều như việc convert font, v.v....) thì sẽ thấy có sự khác biệt lớn về tốc độ.
 
Lần chỉnh sửa cuối:
Comments trong code ko nên là Tiếng Việt có dấu. Tốt nhất là tiếng anh Tuy nhiên, nếu ko viết được tiếng anh thì viết tiếng Việt KHÔNG DẤU.
.

Rất cảm ơn bạn đã nhắc nhỡ để nằm lòng!

Nhưng thiết nghĩ, TuanVNUNI chắc chủ đích để bọn lơ tơ mơ này hiểu rõ , hiểu nhanh & hiểu đúng í mà!

Rất xin cảm ơn bạn!
 
Upvote 0
Mọi người chú ý: Comments trong code ko nên là Tiếng Việt có dấu.
.
Lần đầu tiên được đọc những chú ý này nên còn nhiều thắc mắc, ai có thể nói cụ thể thêm là tại sao lại không nên, có ảnh hưởng gì đến tốc độ hoặc hệ thống không, phải chăng để tiết kiệm bộ nhớ?
Ngoài ra thêm 1 thói quen: Tất cả các hàm String nên dùng thêm $ để tăng tốc.
Cái này cũng chưa hiểu, thêm $ vào các hàm string theo như hai2hai nói có tác dụng tăng tốc, vậy có ai biết rõ bản chất của việc thêm $ không?
 
Upvote 0
Lần đầu tiên được đọc những chú ý này nên còn nhiều thắc mắc, ai có thể nói cụ thể thêm là tại sao lại không nên, có ảnh hưởng gì đến tốc độ hoặc hệ thống không, phải chăng để tiết kiệm bộ nhớ?

- Thứ 1: Môi trường IDE cũ như VB6, VBA đều ko hỗ trợ Unicode, việc đổi font khác để suport tiếng Việt (TCVN3...) là KHÔNG TỐT vì vấn đề chia sẻ trong dự án, khi đó sang máy mới lại không hiển thị tiếng Việt và người nào cũng phải đổi về cùng 1 môi trường.
- Thứ 2: Chả hiểu sao trong các môi trường công ty làm PM có nhiều người, việc viết tiếng Việt có dấu trong code là điều tối kỵ mà sếp nào cũng cấm. Có lẽ đa phần những người làm coder bắt buộc phải đọc hiểu và viết được tiếng anh.
- Thứ 3: Một số dự án OutSource thì KH không phải là người Việt, người làm cùng dự án chưa chắc đã phải là người Việt nên phải sử dụng ngôn ngữ chung là tiếng anh
- Thứ 4: Tất cả các phần mềm mã nguồn tung trên PSC hay các site nước ngoài khác nếu sử dụng ngôn ngữ địa phương thì hầu như ko ai sử dụng, đa số chỉ chia sẻ cục bộ trong khi cả thế giới chúng ta đang chia sẽ tài nguyên cho nhau (đa phần code của tớ đều lấy từ Internet và nếu họ viết comments tiếng Nga hay tiếng Ả rập thì chắc chắn tớ ko dùng rồi)
- Thứ 5: Nói câu này thì hơi bị nhiều người ghét nhưng professional coder thì ko dùng tiếng Việt trong code (sorry)

Cái này cũng chưa hiểu, thêm $ vào các hàm string theo như hai2hai nói có tác dụng tăng tốc, vậy có ai biết rõ bản chất của việc thêm $ không?

Cái này ko cần chứng mình đâu. 15 năm làm VB từ VB3 tới VB6 của mình đứng ra đảm bảo đó là sự thật (ngày nào mình chả đọc những gì liên quan tới lập trình VB6 và nhiều thứ khác trên mạng). Tuy nhiên, bạn có thể Google: optimized code in Visual basic 6 hoặc Google: optimized code in string manipulation + visual basic hoặc ... đâu đó trong ổ cứng của mình có nhiều tài liệu đó lắm, hoặc ngay trên PSC cũng có nhiều article nói về vấn đề này.
 
Lần chỉnh sửa cuối:
Upvote 0
- Thứ 1:
- Thứ 2:
- Thứ 3:
- Thứ 4:
- Thứ 5:
Cái này thì không quan trọng lắm, nhất là đối với những người a ma tơ như tôi, lắm lúc đau đầu chỉ vì dốt EN.
Cái này ko cần chứng mình đâu....
Cái này thì có lẽ là bổ ích đây.
Cảm ơn bạn đã chia xẻ kinh nghiệm cho mọi người.
 
Upvote 0
Cái này cũng chưa hiểu, thêm $ vào các hàm string theo như hai2hai nói có tác dụng tăng tốc, vậy có ai biết rõ bản chất của việc thêm $ không?

Kiểu dữ liệu trong VB là String, ký tự đại diện là $
Bnạ có thêt khai báo biến kiểu String bằng hai cách:

Dim strVar As String
hoặc
Dim strVar$

Trong các hàm của VB/VBA kiểu dữ liệu của các đối số phần lớn là Variant, kể cả những hàm xử lý về chuỗi như LEFT, RIGHT, TRIM, REPLACE, ...

Với một hàm xử lý chuỗi, nó sẽ phải làm các việc là, kiểm tra, nếu kiểu dữ liệu của biến không phải là chuỗi thì nó sẽ đổi/ép kiểu về dạng chuỗi. Việc làm này làm tăng khối lượng tính toán của máy tính. Đây chính là lý do máy chạy chậm hơn.

Các hàm có ký tự $ ở cuối LEFT$, RIGHT$, TRIM$, REPLACE$, ... là đã xác kiệu kiểu giá trị của đối số và kiểu trả về là chuỗi luôn rồi, vì vậy mã nguồn trong hàm không có phần đổi/ép kiểu nữa, giảm khối lượng công việc của hàm.

Mã:
Function Left(String, Length As Long) chính là Function Left(String As Variant, Length As Long) As Variant

Function Left$(String As String, Length As Long) As String

Việc các hàm trong VB/VBA thường khai báo kiểu Variant nhằm tạo tính năng động cho nó, người dùng giảm bới khối lượng công việc->nhận thấy lập trình VB dễ dàng hơn một số ngôn ngữ khác như C, Delphi. Thực tế máy tính vẫn phải đảm nhiệm hết tất cả các công việc từ A->Z. Nếu người dùng chưa có kinh nghiệm cũng như chưa hiểu biết về VB một cách sâu sắc, việc khai báo và sử dụng biến+kiểu dữ liệu "bừa bãi" thì vô tình đã để cho máy tính phải làm nhiều việc hơn mức cần thiết. Đây là một trong những lý do chính làm VB chạy chậm.
 
Upvote 0
Đúng rồi, đúng rồi, rất cặn kẽ và tỉ mỉ.
Lý do chính là chỗ này: "Trong các hàm của VB/VBA kiểu dữ liệu của các đối số phần lớn là Variant"
Bây thì tôi đã hiểu rõ hơn.
 
Upvote 0
Mình thì có rất nhiều thứ đã trở thành thói quen do đã từng đọc từ thời xa xưa (VB6 có từ lâu lắm rồi) và cứ thế áp dụng. Vấn đề quan trọng là làm nhiều thì tự khắc hiểu lý do.

Đây chỉ là 1 trong những rất nhiều tài liệu nói về tips for optimizing vb code. Thậm chí còn có những tips & tricks, những sourcecodes, ebooks, tutorials do chính người thiết kế VB6 hồi còn làm ở Microsoft viết ra.

Nhưng mà, tiếng anh là chìa khóa duy nhất để biến những thứ đó thành những gì nằm trong đầu chúng ta để chúng trở thành thói quen. Nếu lười tiếng anh thì đó là 1 hạn chế vô cùng.

Việc khai báo biến rõ kiểu là điều rất hiển nhiên, tớ rất lạ là có nhiều người trên GPE khai báo kiểu


Cần phải có những quy chuẩn viết code và những thứ đó phải trở thành 1 thói quen. Kể cả viết 1 project nháp chơi chơi tớ cũng đặt tên biến, tên thủ tục thật rõ ràng (bằng tiếng Anh, nhiều khi phải tra từ điển rất lâu) mặc dù viết xong thì xóa (chỉ để những optimizing tips đó trở thành các thói quen khi làm việc). Có rất nhiều mẹo nhỏ khi viết code như Dùng Len(txtItemName.Text) > 0 chứ ko dùng txtItemName.Text <> "" để check string rỗng, không dùng thuộc tính của control trong vòng lặp để kiểm tra mà nên lấy ra giá trị biến 1 lần rồi sử dụng biến để kiểm tra, sử dụng biến Long thay vì Integer, thay thế DoEvents chuẩn của VB6, thay thế Timer control, khi nào dùng Select Case, khi nào dùng If Then Else, Khi nào dùng For Next, khi nào dùng Do While Loop, v.v.... Tất cả những thứ đó đều là những gì mà dân VB đã từng chứng minh là optimized thì chúng ta cần áp dụng và biến chúng trở thành thói quen. (Còn nếu mà bạn cứ khăng khăng bảo Amateur thì ko cần thói quen đó thì chịu rồi)

Trong lập trình đã phải có những thói quen như vậy thì trong khi viết SQL đặc biệt lại cần phải có thói quen optimizing đó. Cũng là 1 câu sql thôi mà chỉ đảo thứ tự đi 1 tý là tốc độ thay đổi hẳn khi xử lý nhiều dữ liệu. Vì thế, trước khi làm coding thì bạn cần xem ngôn ngữ đó lúc viết thì cần optimizing thế nào và hãy cố gắng biến chúng trở thành thói quen (thậm chí không cần biết lý do kỹ càng vì thời gian của chúng ta là để làm việc khác)

Vì thế, đối với tớ, viết chạy ra đúng thì chưa đủ. Viết phải tối ưu và phải để nhiều người khác đọc hiểu.

(Mình move ra topic riêng cho đỡ lẫn lộn)
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom