Bug là gì? Những ích lợi mang lại từ những việc “chiến đấu” với bug là gì? Đó là 1 câu hỏi không mấy mừng quýnh, vì chưng chắc rằng phần đông thiết kế viên hồ hết hy vọng có tác dụng tính năng mới, chứ chả mấy ai say mê buộc phải bảo trì sản phẩm bao gồm sẵn xuất xắc là fix bug.

Bạn đang xem: Bug nghĩa là gì

Song, với cá nhân tôi, việc tìm và đào bới với fix bug mang đến rất nhiều nụ cười cũng tương tự cơ hội học hỏi và giao lưu, cải tiến và phát triển công việc và nghề nghiệp. Sau đó là một số trong những tổng kết của mình về:

Bug là gì? 4 tiện ích của vấn đề fix bugCách ghi lại bug hiệu quả3 bài học mập và 18 kinh nghiệm xương ngày tiết về fix bug

Xem vấn đề làm cho Developer chất trên toludenim.com

Bug là gì? Debug là gì? Fixbug là gì?

Bug là gì? Bug là hồ hết lỗi ứng dụng vào lịch trình hoặc khối hệ thống máy vi tính tạo cho công dụng ko đúng chuẩn hoặc ko chuyển động như ý. – Theo Wikipedia

Debug là quá trình tìm kiếm tìm với phạt hiện tại lỗi vào ứng dụng trước khi launching, chuyển thành phầm cho tay người dùng. Debug ra mắt ngay lập tức sau khi phần lớn loại code đầu tiên được viết và thường xuyên được tiến hành cho đến khi kết hợp với số đông unit khác của lập trình sinh sản thành một sản phầm ứng dụng hoàn hảo.

Fixbug (sửa lỗi) là quy trình thực thi ngay lập tức sau debug, nhằm gia hạn hoặc nâng cao unique sản phẩm.

Lợi ích của bài toán gặp gỡ bug là gì?

Trong từng ngôi trường vừa lòng, chúng ta các rất có thể học tập đôi điều về phong thái thiết kế, sản phẩm hoặc về nghành mà lại phần mềm vẫn chuyển động.

Trên hết, có 4 lí bởi vì chủ yếu, cũng chính là 4 niềm vui quan trọng đặc biệt độc nhất vô nhị nhưng mà Việc fix bug rất có thể mang lại mang đến thiết kế viên nhỏng sau:

Mỗi bug luôn dạy bạn điều gì đó

Feedbaông chồng luôn là chìa khóa của cách tân và phát triển sản phẩm và bên cạnh đó cũng chính là triết lý cốt tử của quy mô agile.

Cả unit testing với iterative development phần đa nhằm mục tiêu đưa ra feedbachồng nhanh hơn. Với unit testing, bạn nhận được feedbaông xã về Việc code gồm chạy hay không. Với mỗi release, chúng ta có thể lắng tai feedbachồng của người sử dụng về các tính năng được cải thiện.

Báo cáo bug cũng chính là hình thức feedbaông chồng khác về code của chúng ta.

cũng có thể có khá nhiều nguim nhân gây ra một bug. Ví dụ:

quý khách hàng có các câu lệnh if lồng nhau với vô tình lại đặt lệnh else làm việc không nên nhánh.Giả định ko đúng mực. Chẳng hạn: truy nã xuất một nằm trong tính ko mãi mãi, nỗ lực là dính NullPointerExceptionKhông bao hàm không còn các ngôi trường phù hợp. Chẳng hạn, bạn đề nghị trả về một quý hiếm không giống đi nếu như hàm được điện thoại tư vấn cùng với tmê man số XHoặc, quý khách hàng thực hiện ứng dụng theo cách cơ mà bạn ngạc nhiên cho tới (cơ mà vẫn hòa hợp lệ), với nạm là bùm! Dính bug!

Đào sâu mày mò ngulặng nhân tạo ra bug, bạn sẽ đúc kết được rất nhiều bài học cực hiếm.

Code của các bạn sẽ dễ debug hơn

Một Lúc đã phải vứt sức lực lao động, thời gian ra nhằm tìm cùng fix bug, trường đoản cú xung khắc bạn sẽ muốn viết code càng dễ debug càng tốt. Bởi vì chưng sẽ rất khốn khổ ví như không tồn tại hồ hết tài liệu quan trọng.

Một vấn đề cực kì dễ dàng gặp gỡ là các Exceptions (biệt lệ) ko cất tài liệu bổ ích.

lấy ví dụ như nhỏng, tất cả một quãng code hưởng thụ cực hiếm từ bỏ 0 – trăng tròn. Bao nhiêu lần chúng ta bám exception chỉ vỏn vẹn “Illegal value”? Nó hoàn toàn không hỗ trợ gì nếu như khách hàng nên sửa lỗi. Chẳng hạn, nếu như nlỗi giá trị 21 được nhập lệ, exception bắt buộc nói là “Illegal value: 21, not in range 0 – 20”.

Việc hiển thị cực hiếm được nhtràn vào cùng với mức quý hiếm mong muốn, rõ ràng khôn xiết hữu dụng. Giá trị hiện tại hoàn toàn có thể là 21, -128 tuyệt 65535. Chúng hầu như giúp đỡ bạn tất cả mai dong nhằm tìm ra lỗi, hơn là dòng “Illegal value” nthêm gọn.

Ngay cả Steve sầu McConnell thi phảng phất cũng phá mức sử dụng này trong cuốn sách tuyệt đối Code Complete. Chẳng hạn, vào chương 15, McConnell nêu ra tình huống phát hiện một đẳng cấp ký kết từ bỏ không hề mong muốn, tuy thế thông báo lỗi lại ko hiển thị cam kết trường đoản cú kia.

do đó, mỗi lúc tìm kiếm với fix bug, bạn cần trường đoản cú hỏi: liệu rất có thể đổi khác điều gì trong code để sau đây không gặp gỡ phải đông đảo bug dạng này không? Liệu có giải pháp như thế nào hoặc điều gì mình buộc phải có tác dụng, nhằm về sau đưa ra phần đông bug dạng này thuận tiện rộng không?

Việc có tác dụng Developer TP. HCM

Việc làm Developer Hà Nội

Fix bug đem về nụ cười cho cả bạn cùng khách hàng

giữa những nụ cười nhưng mà các bước thiết kế mang đến, theo tôi, sẽ là có tác dụng điều hữu ích cho những người không giống. Fix bug cũng đưa về thú vui tương tự, và thậm chí còn còn nhanh lẹ rộng.

Bởi lẽ, nhằm tạo ra một tính năng vượt trội đề nghị tốn khá nhiều thời hạn, trong khi câu hỏi fix một bug có thể chỉ cần một giờ đồng hồ đeo tay. Mỗi bug được fix hoàn thành đang đem về khoái cảm đã hoàn thành/giành được điều gì. Và kia là 1 trong những cảm giác tuyệt vời!

Fix bug cũng đem lại niềm vui mang lại quý khách hàng (cho dù nghe dường như oái oăm). Nếu tức thì từ đầu không có bug, chưa hẳn fix bug, thì chẳng nên người tiêu dùng vẫn vui hơn sao?. Nhưng, tự kinh nghiệm tay nghề rộng 20 năm lập trình với “chiến đấu” với bug, tôi dám khẳng định: người tiêu dùng thực thụ hài lòng mọi khi nhấn về bug đã làm được fix xong nhanh lẹ.

Vấn đề là vậy: Tất cả phần đông người rất nhiều biết SẼ LUÔN CÓ BUG! Cho đề nghị, miễn sao gồm bạn chuẩn bị fix thật nkhô giòn ngay trong khi bug được khui ra.

Thư giãn cùng với video: Fix bug “chất” nhỏng Vinch Râu

Niềm vui của bài toán giải câu đố

*

Rất những xây dựng viên ưng ý giải câu đố, như đùa trò Sudoku, giải ô chữ, giải IQ toán thù học, hay tđắm đuối gia những thử thách xây dựng.

Thậm chí, hiểu truyện trinc thám giết fan cũng đem đến tương đối nhiều hứng khởi: chúng ta lần theo các đầu mối để khám phá phần lớn cthị trấn vẫn ra mắt ra làm sao.

Debug với fix bug cũng như vậy. Mỗi bug là một bí mật đề nghị khám phá.

Đôi khi, bội nghịch ứng đầu tiên của người sử dụng khi phát hiện ra một report bug đã là: Không thể nào! Tại sao có thể xảy ra bug này được?!?

Và cũng từ kia, chúng ta bắt đầu hành trình tò mò bí hiểm. quý khách lần theo những manh mối. Logs nói gì? Có report lỗi làm sao từ khối hệ thống không? Tại thời đặc điểm đó, khối hệ thống tất cả xảy ra sự việc gì không giống tuyệt không? Gần phía trên gồm vật gì bị chuyển đổi không – phần mềm new, chuyển đổi thông số kỹ thuật, lưu lại lượt truy vấn ảnh hưởng?

Cách kết quả duy nhất nhằm lưu lại bug là gì?

Lý bởi vì của bài toán cần phải lưu lại bug là gì? Để bạn cũng có thể giao lưu và học hỏi hiệu quả duy nhất trường đoản cú hầu hết bug các bạn vẫn fix. Pmùi hương pháp cơ mà tôi cần sử dụng là luôn luôn dành ra vài phút ít để ghi chú lại những thông tin: diễn tả bug, bí quyết fix, bài học kinh nghiệm.

Nguyên tắc

Chỉ ghi crúc đông đảo bug nặng nề nhằn hoặc thực sự thú vị. Đây không phải là bug tracker.Ghi crúc hồ hết bug vị bao gồm mình gây ra. (Trừ trường phù hợp bug của tín đồ không giống nhưng đầy đủ thú vị).Ghi lại bug tức thì sau khoản thời gian fix xong. Tránh lưu giữ nhầm, lưu giữ không cụ thể.

Cách ghi lại bug

Tôi hay được sử dụng khung sau đây nhằm lưu lại bug dưới dạng file text (bugs.txt). Quý khách hàng có thể xem thêm thông qua ví dụ sau:

tin tức nền:

Cách sửa – Quá trình sửa:

Sửa: Nếu chiều nhiều năm tra cứu thấy bởi 0, đặt nó lại bởi 1. vì thế chúng ta đã luôn đi tiếp được.Sửa trong file(s): callh/q931_msg.cxxThủ phạm là tôi: Đúng vậy.Thời gian sửa bug: 1 tiếng.

Bài học đúc rút được:

Bài học: Đặt “tinh thần lầm chỗ” vào dữ liệu của biểu hiện thân tặng. Giá trị dữ liệu có thể quá to có tác dụng chương trình chạy không nên. Trong khi khi chiều dài bởi 0 cũng hoàn toàn có thể là 1 trong tín hiệu xấu.

Ba bài học kinh nghiệm béo giành riêng cho lập trình viên

Về coding

*

Những lỗi phạm buộc phải trong code? Có buộc phải đã quên một else-part? Có phải một lệnh Gọi khối hệ thống bị không thắng cuộc, tuy nhiên trả lời chưa được check? Làm sao chỉnh sửa code nhằm tách mọi vấn đề này trong tương lai?

Trình từ sự kiện

khi cách xử lý sự kiện, phần lớn thắc mắc sau sẽ rất bao gồm ích:

Liệu sự khiếu nại hoàn toàn có thể mang đến theo chưa có người yêu từ khác được không?Sẽ thay làm sao còn nếu như không nhận thấy sự khiếu nại này? Sẽ gắng như thế nào trường hợp sự kiện này diễn ra hai lần liên tiếp?Thậm chí, nếu như nó không khi nào xẩy ra, bugs ngơi nghỉ đông đảo phần khác của hệ thống (hoặc của không ít khối hệ thống khác có tương tác) vẫn có thể khiến cho nó xảy ra.Quá sớm

Cái này là 1 trong những trường phù hợp quan trọng của phần “Trình từ sự kiện” ở bên trên. Nhưng chính vì nó gây ra một số trong những lỗi vô cùng nặng nề tìm kiếm vì thế nó được đưa ra riêng.

Chẳng hạn, ví như biểu đạt nhận thấy vượt nhanh chóng, trước khi những quá trình thiết lập cùng khởi đụng hoàn tất, kĩ năng chương trình sẽ sở hữu được phần đa biểu hiện kỳ lạ.

Một ví dụ khác: lúc một kết nối được lưu lại là down trong cả trước lúc nó được chuyển vào list idle. khi cần kiếm tìm lỗi này, chúng ta luôn khoác định rằng nó bị lưu lại down trong những lúc đang nghỉ ngơi vào danh sách idle (tuy thế cơ hội đó tại vì sao nó không được kéo ra ngoài danh sách?).

Đó là một sai lạc trong nhận thức của họ lúc không xét mang lại trường đúng theo có những trang bị xẩy ra vượt nhanh chóng.

“Cái chết êm đềm”

Một trong những đầy đủ lỗi cực nhọc phân phát hiện độc nhất vô nhị là lúc bọn chúng âm thầm lặng lẽ ra đi với công tác tiếp tục được thực hiện mà lại ko quăng ra exception làm sao.

Chẳng hạn nhỏng các lệnh call khối hệ thống (bind chẳng hạn) trả về mã lỗi tuy vậy ko được đánh giá.

Hoặc nhỏng, phần code để so sánh biểu lộ chỉ đơn giản dễ dàng return Lúc bắt gặp một nhân tố chưa phù hợp lệ, trong khi xứng đáng lẽ cần quăng lỗi.

Cmùi hương trình tiếp tục chạy trong trạng thái sai, tạo nên debug càng cạnh tranh rộng. Nói tầm thường rất tốt là 1 lỗi yêu cầu được quăng ra càng cấp tốc càng xuất sắc.

If

Lệnh if với khá nhiều ĐK, if (a or b), đặc biệt là lúc được nối lại cùng nhau, if (x) else if (y), gây nên vượt trời lỗi mang lại tôi.

Dù cho câu lệnh if về khía cạnh khái niệm quá dễ dàng và đơn giản đi, bọn chúng vẫn dễ dẫn đến sai Lúc có không ít ĐK đi kèm theo.

Bây giờ đồng hồ tôi cố gắng viết code đơn giản và dễ dàng rộng để rời đề nghị cách xử trí các câu if tinh vi.

Else

Cũng bao gồm thừa ttách lỗi là vì không xét đến trường đúng theo bỏ qua lệnh else. Gần nlỗi toàn bộ ngôi trường hợp, luôn luôn phải gồm một lệnh else cho mỗi câu if. Ngoài ra, nếu bạn đặt một đổi thay bên phía trong lệnh if, khả năng cao là các bạn phải đặt nó sinh sống số đông nơi khác nữa.

Một ví dụ khôn cùng liên quan là những đoạn lệnh kiểm tra cờ (flag). Quá thuận tiện lúc để điều kiện để bật cờ, dẫu vậy lại rất hấp dẫn quên đặt ĐK để tại vị lại cờ. Để lá cờ nhảy thường xuyên có chức năng cao là sẽ có được lỗi sau này.

Xem thêm: Điều Nào Là Đúng Khi Võ Sư Dùng Cuồng Phong Quyền Lên Mục Tiêu Tàng Hình? ?

Txuất xắc thay đổi các giả định

Những lỗi cực nhọc phòng rời tốt nhất vào quy trình tiến độ đầu hay là vì biến đổi trả định.

Chẳng hạn, ban sơ rất có thể chỉ bao gồm một sự khiếu nại customer mỗi ngày. Thế là rất nhiều code được viết cùng với giả định này. Một vài ngày sau, kiến thiết chuyển đổi được cho phép nhiều sự kiện customer diễn ra trong thời gian ngày. Lúc chuyện này xẩy ra, hoàn toàn có thể siêu khó để đổi khác không còn tất cả trường hợp bị ảnh hưởng bởi kiến thiết mới.

Nói bình thường ko khó khăn nhằm tra cứu toàn bộ những phần phụ thuộc vào phân minh. Cái cực nhọc là tìm ra phần lớn phần nhờ vào tiềm ẩn bên trong kiến tạo cũ.

Chẳng hạn hoàn toàn có thể bao gồm phần code thu thập toàn bộ sự khiếu nại của customers vào một ngày nhất thiết. Một mang định phân minh có thể là công dụng trả về ko bao giờ to hơn số lượng customers.

Tôi không biết cách làm sao xuất sắc để ngừa phần nhiều ngôi trường hòa hợp này, nếu bạn như thế nào biết thì lưu ý góp tôi cùng với nhé.

Logging

Điều về tối đặc biệt quan trọng là bao gồm thừa nhận thức về gần như gì chương trình chuyển động, đặc biệt quan trọng Một trong những lịch trình có xúc tích tinh vi.

Cần chắc chắn logging được đặt vừa đủ cùng đúng khu vực, để bạn cũng có thể giải thích tại vì sao chương trình lại chạy như vậy.

khi các lắp thêm hoạt động trơn tuột tru thì không vấn đề gì, mà lại ngay lúc chương trình xẩy ra lỗi (chuyện cấp thiết tránh khỏi), không nhiều ra các bạn sẽ thấy niềm hạnh phúc vì đang logging đúng chỗ.

Về Testing

*

Có các bug cụ thể đề xuất được “khui” ra tức thì trong quy trình chạy thử. Nếu vậy, phần kiểm tra như thế nào đã thiếu thốn sót – unit, functional, tốt system? Test case làm sao đã trở nên thiếu?

0 với null

Luôn chắc chắn khám nghiệm với giá trị 0 cùng null (ví như tất cả thể). Đối cùng với chuỗi, yêu cầu chú ý chuỗi rỗng, và chuỗi là null.

Một ví dụ khác: soát sổ ngôi trường phù hợp đứt liên kết TCPhường. trước lúc bất kể tài liệu (zero bytes) làm sao được gửi.

Bỏ qua Việc chất vấn những ngôi trường đúng theo trên là nguyên nhân số một làm cho bug lọt ngoài phần demo của tớ.

Thêm vào với xóa đi

Thường các tính năng mới đã dính tới chuyện thêm những cấu hình thiết lập mới vào hệ thống, ví dụ như một loại định dạng new số điện thoại thông minh.

Thông thường bạn sẽ soát sổ xem hoàn toàn có thể thêm định hình mới hay không, mà lại tôi thấy là rất đơn giản quên bình chọn trường hòa hợp xóa định hình cũ.

Xử lý lỗi

Phần code dùng để làm xử lý lỗi thường xuyên khôn xiết khó chất vấn. Tốt duy nhất là yêu cầu tất cả những kiểm tra tự động nhằm khám nghiệm phần này, mà lại đôi lúc bài toán này trở cần bất khả.

Một mẹo tôi xuất xắc sử dụng là sửa code trong thời điểm tạm thời nhằm kích hoạt phần giải pháp xử lý lỗi. Dễ độc nhất là xoay ngược điều kiện if lại, ví dụ như gửi if error_count > 0 thành if error_count == 0.

Một ví dụ không giống là vờ vịt viết sai thương hiệu một column vào database để kích hoạt lỗi.

Sử dụng tài liệu nguồn vào ngẫu nhiên

Một bí quyết bình chọn không giống hoàn toàn có thể dùng để làm vạc hiện bug là sử dụng dữ liệu đầu vào hốt nhiên.

Chẳng hạn như, phần giải mã ASN.1 của giao thức H.323 chuyển động trên dữ liệu nhị phân. Bằng bí quyết gửi các bytes ngẫu nhiên để lời giải, chúng tôi đang tìm thấy tương đối nhiều lỗi trong phần này.

Một ví dụ khác là tạo ra đông đảo cuộc điện thoại tư vấn thí điểm, với thời gian call, độ trễ khi vấn đáp, bên làm sao ngắt lắp thêm trước, v.v.. được tạo thành bỗng dưng. Những cuộc gọi này làm cho lòi ra một lô bug, đặt biệt là khi bọn chúng xen vào đông đảo sự khiếu nại xảy ra gần như đồng thời.

Kiểm tra hành vi không hề muốn tất cả thật sự KHÔNG diễn ra

Thường testing tương quan đến coi demo hành vi mong muốn có xảy ra không. Nhưng lại rất dễ bỏ qua mất ngôi trường hòa hợp ngược trở lại – bình chọn hành động không mong muốn thật sự ko diễn ra.

Tự làm tool

Tôi thường xuyên từ bỏ làm cho những tool nhỏ để thử nghiệm dễ dàng hơn.

ví dụ như, khi Lúc tôi làm việc cùng với giao thức SIP.. mang đến VoIP., tôi viết một đoạn mã bé dại rất có thể trả lời cùng với headers với quý hiếm tôi ước muốn. Đoạn mã này góp tôi chất vấn đầy đủ trường phù hợp đặc biệt quan trọng tiện lợi hơn.

Một ví dụ không giống là 1 trong công tác dòng lệnh chuyên dùng để làm hotline API.

Bằng cách bắt đầu bé dại, và từ từ cải cách và phát triển thêm nhân kiệt mang lại nó, sau cùng tôi bao gồm trong nay hồ hết phép tắc khôn cùng bổ ích. Lợi ích của Việc này là tôi bao hàm lao lý đúng như tôi mong ước.

Về Debugging

*

Cách nhanh hao rộng để “khui” bug là gì? Tôi đã dùng đúng tool chưa? Có phải tôi vẫn phỏng đân oán vượt nhiều? Tôi bao gồm bắt buộc logging tốt rộng không?

Thảo luận

Nếu bạn hỏi tôi biện pháp công dụng tốt nhất nhằm giải pháp xử lý bug là gì? Tôi đang vấn đáp là thảo luận cùng với người cùng cơ quan. Trong thời điểm tìm kiếm bí quyết giải thích đến bọn họ phát âm vấn đề chạm chán phải là gì, tôi cũng bên cạnh đó gọi sâu cùng rõ rộng về nó.

Thêm nữa, cho dù không quen thuộc với code trong thắc mắc, hay bọn họ sẽ có tầm nhìn khách quan nhằm đã cho thấy vụ việc rất có thể phát sinh tự đâu.

Đây là bí quyết cực kì tác dụng góp tôi xử lý hầu như bug khó nhằn tốt nhất.

Cẩn thận cho từng tè tiết

lúc câu hỏi debug ngốn quá nhiều thời hạn, thì hay là vì tôi đã suy đoán sai.

lấy ví dụ như, tôi nghĩ về sự việc xẩy ra ở 1 method làm sao kia, trong khi thực tiễn không lẽ nào cthị trấn đó xảy ra.

Hoặc, một ngoại lệ xẩy ra trái cùng với ngoại lệ tôi suy đoán. Hoặc, tôi nghĩ về ứng dụng chạy version mới nhất, trong những lúc thực chất nó lại chạy một version cũ hơn.

Cho phải, hãy chắc chắn các bạn vẫn soát sổ lại tất cả chi tiết cụ vày khoác định đa số máy. Thật dễ giúp xem phần lớn gì bạn mong muốn thấy, hơn là những gì thật sự ở đó.

Ttốt đổi mới nhất

lúc phần lớn trang bị từng vận động tình cờ trục trệu, hay là do gần như chuyển đổi tiên tiến nhất gây ra.

Có ngôi trường hợp, chúng ta chỉ chuyển đổi logging, tuy nhiên một lỗi vào logging sẽ gây nên sự vậy lớn hơn những.

Để dễ dàng truy vấn tìm phần đa sự nắm phong cách này, bạn nên commit đầy đủ núm biến hóa nhau Một trong những commit khác nhau, với ghi crúc rõ ràng về bài toán thay đổi.

Tin lên trên tín đồ dùng

thường thì người dùng report một sự việc làm sao đó, ý suy nghĩ đầu tiên của tớ là: Không thể nào! Chắc bọn họ nhầm lẫn chứ đọng cthị trấn đó sao xảy ra được! Nhưng rồi, hóa ra bọn họ sẽ report đúng.

Những kinh nghiệm tay nghề tmùi hương nhức vẫn dạy dỗ tôi rằng: Hãy tin ở người dùng.

Dĩ nhiên tôi vẫn đề xuất bình chọn lại giúp thấy mọi sản phẩm công nghệ đã có thiết lập cấu hình đúng không. Nhưng tôi sẽ gặp gỡ không ít ngôi trường hợp kì dị xảy ra bởi vì một tùy chỉnh không thường xuyên chạm mặt, một bí quyết sử dụng ko được dự đoán thù trước, tốt trả định ban đầu của tớ rằng bọn chúng đề xuất như thế. Và vậy là chương trình chạy không đúng.

Test phần đang sửa

Sau lúc đang sửa ngừng, bước tiếp theo sau bạn cần làm cùng với bug là gì? lúc bug vẫn sửa ngừng thì các bạn đề nghị test lại. trước hết, hãy chạy code cơ mà ko cần sử dụng phần vẫn sửa với theo dõi bug. Sau kia, áp dụng phần đang sửa với chạy lại chạy thử case.

Xem thêm: Rich Piana Là Ai - Rich Piana: Di Sản Để Lại Và Tranh Cãi Bất Tận

Tuân theo hầu hết bước bên trên để giúp đỡ chúng ta chắc hẳn rằng bug kia thực thụ là bug, cùng phần đang sửa thực sự hiệu quả. Đơn giản tuy vậy quan trọng.

*

Nếu bạn nghĩ về đầy đủ share này rất có thể giúp ích cho bạn bè hoặc người cùng cơ quan thì chớ hổ ngươi dìm nút Share dưới nhé!


Chuyên mục: TỔNG HỢP
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *