Quần Cam

[Bật đèn] - Khi chị Dậu làm code review

alt text

Vì sao lại là Bật Đèn?

Ai từng đọc qua Tắt Đèn hẳn đã biết tác phẩm được kết thúc bằng tình huống:

Buông tay, chị vội choàng dậy, mở cửa chạy té ra sân. Trời tối như mực và như cái tiền đồ của chị.

Có lẽ chính Ngô Tất Tố cũng không ngờ rằng sau khi té ra sân, rời khỏi cái ngôi làng với bao tủi nhục như thầy dạy Văn đã phân tích, chị Dậu đã đến với thành phố. Ngày và đêm ở cái xứ ấy, trời đều sáng như đèn và tất nhiên, như cái tiền đồ của chị; giờ đây, sau bao cố gắng, chị Dậu đã trở thành một nữ developer chân chính.

Chị đã được nhận vào làm việc trong một công ty phần mềm xịn nhất nhì thành phố, và ở công ty đó, mỗi một pull request (PR) đều cần phải được review và approve trước khi release.

Có thể nói Chị Dậu review và được review code mỗi ngày, tất cả đồng nghiệp đều yêu mến và lúc nào cũng muốn được review code do chị Dậu viết, vậy bằng cách nào Chị đã làm điều đó?

Chị Dậu không ỷ lại vào người review

Trải qua biết bao khổ cực ở làng, Chị Dậu luôn tâm niệm rằng người khác cũng có chồng có con và công việc của họ cũng cần phải được hoàn thành. Chị luôn hiểu rõ rằng đồng nghiệp đang giúp chứ không chịu trách nhiệm cho công việc của Chị, Chị Dậu không bao giờ ỷ lại vào sự review của họ.

Với bất kì PR nào của mình, chị Dậu cố gắng tự review qua một hoặc hai lần, xem lại những dòng code do mình viết viết và tự đặt những câu hỏi Chị nghĩ rằng người khác sẽ hỏi. Vì vậy những PR của chị Dậu luôn được review nhanh chóng và hiệu suất làm việc của Chị rất cao.

Giữ cho PR càng ít thay đổi càng tốt

Ngày mới vào nghề, Chị Dậu được nhờ review một pull request như vậy.

alt text

Lúc ấy chị sợ lắm, đầu chị choáng váng, thân thể chị mê man, tứ chi chị kiệt sức, chị hoảng loạn mất phương hướng vì gần như không biết bắt đầu review từ đâu và làm thế nào để giúp được người lập trình viên ấy. Từ đó chị luôn thấm thía rằng phải Cố gắng giữ sự thay đổi càng ít càng tốt trong một pull request.

Cơ mà lỡ như Pull Request đó nó phải to như thế thì sao?

Là một dev chân chính, chị Dậu luôn nhắc nhở bản thân là câu hỏi nào cũng có thể được giải đáp bằng một mệnh đề if else.

Nếu Pull request có thể chia nhỏ ra được: Chị sẽ tiến hành chia nhỏ nó ra, link chúng lại với nhau và tìm cách giải thích sự tương quan của chúng.

Còn nếu Pull request không thể chia nhỏ ra được: Nếu như Chị Dậu cảm thấy rằng một PR to là không thể tránh được, Chị sẽ cố gắng mời Starbucks, mời Phúc Long, mời Sườn Cây nướng (đại khái là những món mà người viết đang thèm) và book một session với người review để cùng nhau lướt qua PR đó.

Chị luôn giải thích rõ ràng những gì đang làm

Từ trong tận sâu thẳm lòng mình, Chị Dậu nhận thức rằng thời gian là vàng là bạc là kim cương (rate của chị là hơn $50/.h), nên chị rất trân trọng thời gian của người khác và tránh lãng phí nó. Vì vậy, Chị Dậu luôn luôn viết message giải thích tại sao những commits đó của PR là cần thiết mà không để đồng nghiệp phải tự thân vận động để thắc mắc.

Chị cũng hay tham khảo ở trang này để nắm rõ thế nào là một commit message tốt.

Một lần chị Dậu gặp một PR với tiêu đề “Cho phép tất cả người dùng đăng nhập mà không cần password”, chị chỉ biết ngẩng đầu lên than với ông trời: “Giàng ơi, tôi biết đọc code, tôi hiểu nó đang làm gì, nhưng Giàng hãy chỉ lối cho tôi biết tại sao họ lại làm vậy hỡi Giàng?”

Ôi, sao mà cái cuộc đời chị nó khổ thế không biết!!!

Giữ cây commit gọn gàng ngăn nắp như tủ quần áo của chị

Những ngày tháng nghèo khó ở làng luôn khiến chị có thói quen giữ tủ quần áo ngăn nắp (cơ mà chẳng phải chị chỉ có đúng một bộ quần áo mặc trên người hay sao? … mà thôi lan man rồi), thói quen đó cũng được chị giữ khi chuyển sang làm lập trình viên.

Khi những thay đổi Chị Dậu viết cho Pull Request là khá lớn (tất nhiên trước khi làm điều này Chị luôn xem lại phần Giữ cho PR càng ít thay đổi càng tốt), chị sẽ cố gắng group nó trong những commit nhỏ và có ý nghĩa.

Chị cũng biết rằng Github cho phép xem Changes by commits nên việc chia ra những commit nhỏ gọn sẽ giúp ích rất nhiều cho người review hiểu những gì Chị đang làm và cho ra review tốt hơn.

Chị Dậu luôn cảm ơn người review giúp mình.

Chị biết rằng thì ở một mức độ nào đó, người review đang giúp Chị viết code tốt hơn và giảm bớt rủi ro lỗi hơn. Vì vậy Chị luôn luôn cám ơn đồng nghiệp sau khi review xong. Dù trong suốt quá trình review có lúc Chị hài lòng, có lúc không, có lúc chỉ muốn lộn luôn cái bàn, tuy nhiên một lời cám ơn người đã bỏ thời gian giúp mình sẽ làm cho họ vui hơn và cảm thấy công sức của họ được trân trọng.

Chẳng rõ có phải vì thế mà code của chị luôn được đánh giá cao, sếp và đồng nghiệp thì yêu quý chị, lương chị thì tăng vùn vụt. :shurg:

Kết luận

Là một người cực kì ghét viết kết luận nên Mình sẽ để đây và ai muốn nói gì thì nói.

P/S: Khi viết gần xong thì mình tìm ra bài này (biết vậy khỏi viết), các bạn quan tâm có thể đọc qua nhé.


NGUY HIỂM! KHU VỰC NHIỀU GIÓ!
Khuyến cáo giữ chặt bàn phím và lướt thật nhanh khi đi qua khu vực này.
Chức năng này hỗ trợ markdown và các thứ liên quan.

Bài viết cùng chủ đề

Nhật ký hốt sh*t—Chuyện về cái service A

Bài viết mà thằng chả chém gió về cách chả monitoring và debug một sự cố gặp phải khi vận hành hệ thống Elixir

Vài ghi chép về Elixir Compiler (phần 1)

Bài viết mà thằng chả chém gió về Elixir compiler.

Lamport timestamp

Bài viết là một phần trong paper Time, Clocks, and the Ordering of Events in a Distributed System của Leslie Lamport.