- vừa được xem lúc

Có cần cưng chiều params trong function quá không ? Liệu bạn có quá hửng hờ cô nàng unit test không?

0 0 19

Người đăng: Vinh Huỳnh

Theo Viblo Asia

[GÓC DEV GÀ]

[Lưu ý: Đây là bài viết dành cho các bạn mới học mới làm dev, nên các anh chị cũng hoan hỷ, vui vẻ đọc coi như giải trí thôi nhá 😃 ]

Cái tiêu đề hơi Gà? Nhưng mà mình nghĩ đặt vấn đề vầy cái chủ đề sẽ vui hơn bớt nhạt ( mình nghĩ vậy 😗) Thì cũng tranh thủ 5p - 10p trước giờ vào làm viết bài này( tại vì cũng đang có hứng 😃 ).

Trong 1 buổi sáng đẹp trời đi làm sớm, nghĩ về cuộc đời, nhân sinh, tình cảm, công việc,... thì chợt nhớ trong một lần dev và debug mình gặp một vài case như vầy.

Mình có 1 service mình nhận thông tin từ 1 service khác và mình và bạn dev bên service còn lại thống nhất data gửi từ service 1 (bạn đó) gửi qua service 2(mình) phải có kiểu dữ liệu là. { amount: number, key: string, ...... }

Nhưng trong quá trình vận chuyển, shipper làm vỡ hàng thì cục hàng hay shop làm ăn ẩu tả mà. mình nhận được là cục hàng là { amount: undefined || null , key: string, ...... } 😛 thì sai kiểu dữ liệu đúng ra mình phải không nhận và trả cục hàng này về shop

Nhưng mình lại handle nếu như undifine || null ==> mình gắn cho biến amount = 0; đó là thói quen của mình và làm trong vô thức. (Đó mọi sự ngu si đều bắt đầu từ đây) 🙂.

Nhưng mà có 1 vấn đề xảy ra nếu như. vậy lúc nào đoạn code này cũng sẽ pass những thằng undefined, null , và mình đã trả giá khi debug (dữ liệu không đúng sai logic, user bảo nhập 4 tại sao lưu là 0), về cơ bản những thằng này sai kiểu dữ liệu là dữ liệu sai nên không chấp nhận được nên phải báo lỗi hoặc dừng luôn vì dữ liệu gửi qua là sai , nên không làm được những logic phía sau.

Nhưng vì thói quen trong mình mặc định nó về 0 nên lúc nào cũng đẹp hết,.... Một số bạn sẽ thắc mắt tại sao không có validate hoặc check logic hoặc unit test,.... cho cái đầu vào? ummmm contract giữa 2 services thay đổi liên tục, vì vậy phải đổi unit test và validate (diễn giải cho dài chứ thật ra mình ẩu, lười viết/cập nhật unit test 🙂).

Túm cái váy lại thì đây là vấn đề nhỏ xíu xìu xiu. Giải quyết vấn đề trên thì :

  • Cần chịu khó làm Unit test, function test và làm cho nó kĩ hơn, tốt hơn, là ổn, bớt hờ hững nó một xíu .
  • Trong những function chắc chắn kiểu dữ liệu đầu vào thì không cần handle như mình để có lỗi thì còn phát hiện hoặc unit test phát hiện. Chợt nhận ra lúc đó mình quá ngu quá ẩu:

Nhưng mình cũng muốn note/ đặt vấn đây để nhở có mấy bạn mới học mới làm cũng gặp, thật ra cũng tự nhận mình từng có cái ngu cái kém của mình trong công việc.

Thì mình rút ra một cái bài học là nếu cái base, model, function, class,... mình đang viết mà biết dữ liệu gửi về luôn chắc chắn phải đúng kiểu dữ liệu đã thống nhất thì cứ code bình thường không cần check cứ để cho nó lỗi.Còn bắt lỗi thì sẽ có unit test hoặc những phần handler error khác.

Thói quen cưng chiều params đã hại mình, thói quen nên mình đã tốn thời gian để sửa tíng này, nhận định đúng case cần check và gắn lại giá trị cho nó, và tất nhiên không bỏ qua việc unit test dù funtion đó có đơn giản như thế nào đi nữa (Từ cái đợt mình lỗi tới hiện tại vẫn đang làm như vầy cũng hạn chế cơ số bug 😅)

Đối với mọi người có thể đây và vấn đề đơn giản có nhiêu đó mà cũng không biết ? hì nhưng đối với mình dù nó đơn giản nhưng cũng là 1 cái kinh nghiệm nho nhỏ mình cần lưu tâm để lần sau làm đúng hơn, Có thể mọi người có cách khác hoặc base, góc nhìn khác hơn hiệu quả hơn về những case như này, mình cũng rất mong chờ để mở mang hơn để từ 1 DEV gà trở thành DEV gà vip 😆

Bình luận

Bài viết tương tự

- vừa được xem lúc

Con đường mình trở thành Software Engineer ở Singapore

Chào các bạn, lại là mình đây . Goodbye 1 năm với cuộc sống chỉ là Work from Home, chúc cho các bạn đọc của mình 1 năm mới với nhiều điều tuyệt vời mới mẻ, sức khoẻ dồi dào và nhiều thành công .

0 0 30

- vừa được xem lúc

Nếu biết trước mình là lập trình viên, thì quay lại thời học sinh mình sẽ chuẩn bị gì ?

Nếu biết trước mình là lập trình viên, thì quay lại thời học sinh mình sẽ chuẩn bị gì . Do dạo gần đây khá nhiều những người quen của mình, cô chú bác có con còn học cấp ba muốn định hướng sau này cho

0 0 26

- vừa được xem lúc

Những sai lầm mình gặp phải khi làm Dev

Hello các bạn lại là mình đây,. Lâu lắm mới lại được ngồi viết blog, ngồi chia sẻ với các bạn những gì mình học được trong quãng thời gian vừa qua.

0 0 19

- vừa được xem lúc

Pet project - những lợi ích và câu chuyện bản thân

Pet project (hay side project), một từ mà dân code chúng ta ít nhiều cũng đã nghe qua hoặc đã từng làm dăm ba cái để rèn luyện kỹ năng hay tiếp cận những công nghệ mới. Chủ đề này có lẽ đã được anh Ho

0 0 49

- vừa được xem lúc

Những sai lầm tôi mắc phải khi là một lập trình viên mới bắt đầu (P1)

Hãy để tôi làm rõ một điều đầu tiên. Nếu bạn là một lập trình viên mới bắt đầu, bài viết này không nhằm mục đích khiến bạn cảm thấy tồi tệ về những sai lầm mà bạn có thể mắc phải mà là để giúp bạn nhậ

0 0 8

- vừa được xem lúc

Những sai lầm tôi mắc phải khi là một lập trình viên mới bắt đầu (P2)

Chào các bạn, tôi sẽ tiếp tục chủ đề “Những sai lầm tôi mắc phải khi là một lập trình viên mới bắt đầu” ở bài viết này. Tôi đã học cách tránh viết nhận xét khi có thể và điều đó không hề dễ.

0 0 8