Sự khác biệt giữa junior và senior khi fix bug

Dạo này ít viết blog vì không còn được code nhiều nữa, chỉ toàn đi chém gió linh tinh nên nghề cũng hơi bị lục, không tích lũy thêm tí kinh nghiệm gì để chia sẻ.

Hôm nay may mắn mình có cơ hội hỗ trợ bạn đồng nghiệp trẻ giải quyết vấn đề khi dùng typeahead bị dính lỗi:

Error: [$rootScope:inprog] http://errors.angularjs.org/1.4.4/$rootScope/inprog?p0=%24digest
at q (http://localhost:5555/Scripts/angular.min.js:125:265)
at n.prototype.$digest (http://localhost:5555/Scripts/angular.min.js:129:423)
at B (http://localhost:5555/Scripts/bootstrap/js/ui-bootstrap-tpls-0.10.0.min.js:12:9740)
at v.event.dispatch (http://localhost:5555/Scripts/js/jquery.min.js:2:37997)
at u (http://localhost:5555/Scripts/js/jquery.min.js:2:33835)
at v.event.trigger (http://localhost:5555/Scripts/js/jquery.min.js:2:36645)
at Anonymous function (http://localhost:5555/Scripts/js/jquery.min.js:2:44408)
at each (http://localhost:5555/Scripts/js/jquery.min.js:2:14538)
at v.prototype.each (http://localhost:5555/Scripts/js/jquery.min.js:2:11208)
at trigger (http://localhost:5555/Scripts/js/jquery.min.js:2:44380) undefined

Mình phải thừa nhận các bạn trẻ giờ học hỏi mọi thứ nhanh, phản ứng lẹ và quyết đoán. Anh bạn đồng nghiệp trẻ của mình mất chưa đầy 15 phút để tìm ra được nguồn cội của cái bug, sửa liền cái bug ngay và luôn.

Sự việc chẳng có gì đáng nói nếu như mình không phát hiện ra anh bạn đồng nghiệp mở file core của library lên để sửa sau khi mình review code của bạn đó.

Số là ba bốn dự án đang xài chung cái library, sắp tới sẽ có thêm vài project phát triển trên cùng solution nữa, mà chúng ta mở file core thì rất là nguy hiểm.

Những tình huống có thể xảy ra như:

– Chúng ta có thể fix được lỗi hiện tại nhưng cũng có thể ảnh hưởng đến team khác vì đây là thư viện nhiều team dùng chung. Chúng ta có thể làm phát sinh bug khác mà không lường trước được
– Trong tương lai, có thể do sự giới hạn của thư viện hiện tại hoặc do những nhu cầu mới phát sinh mà team có thể upgrade lên version mới hơn. Điều này có nghĩa là những dòng code của chúng ta có thể bị overwrite
– …

Với cái lỗi này, nếu chúng ta chịu khó phân tích và kết hợp với google thì chúng ta có thể thu nhỏ được vùng bị lỗi và fix nó một cách dễ dàng. Điều này cũng giúp chúng ta thu nhỏ độ nguy hiểm khi đó chúng ta apply những dòng lệnh vào vùng chúng ta có thể kiểm soát.

Hết!


Leave a Reply

Your email address will not be published. Required fields are marked *