IT - career path

Thảo luận trong 'Thư giãn' bắt đầu bởi depzaivai, 17/10/22.

  1. Barking1.1

    Barking1.1 Persian Prince

    Tham gia ngày:
    10/4/21
    Bài viết:
    3,631
    Nơi ở:
    Somewhere only I know
    1 giờ pull code 1 lần thì rát thiệt chứ.. team đông lắm mới cần thế.
    Chứ tui nghĩ tầm 1 ngày update 2 lần , đầu ngày và cuối ngày là ổn
     
  2. mashimuro

    mashimuro Glory to Mankind Lão Làng GVN

    Tham gia ngày:
    16/11/04
    Bài viết:
    21,387
    Team chừng 3-4 người thì team lead chỉ việc ngồi merge code là hết ngày pepe-1
     
  3. 934944

    934944 Baldur's Gate GameOver Lão Làng GVN

    Tham gia ngày:
    13/8/06
    Bài viết:
    30,741
    Nơi ở:
    đà nẵng
    chia task sao cho mỗi thằng 1 chức năng đỡ dính nhau pepe-1còn update code thì mỗi ngày 1 lần vào đầu ngày thôi cũng dc , quan trọng lúc có pull request biết chắc là sẽ bị vưới thằng kahcs
     
  4. kylanbac91

    kylanbac91 Sonic the Hedgehog Lão Làng GVN Sorcerer

    Tham gia ngày:
    13/1/06
    Bài viết:
    4,886
    Nơi ở:
    Omega Dungeon
    1 h thì quá nhiều và nếu conflict quá nhiều như vậy thì code base đang có vấn đề nghiêm trọng rồi pepe-3
     
  5. Barking1.1

    Barking1.1 Persian Prince

    Tham gia ngày:
    10/4/21
    Bài viết:
    3,631
    Nơi ở:
    Somewhere only I know
    tui cũng nghĩ vậy, 1h pull 1 lần thì ngồi check conflict hết giờ luôn
     
    mashimuro thích bài này.
  6. huydaybn3000

    huydaybn3000 Mega Man ⚜ Duel Master ⚜ Lão Làng GVN

    Tham gia ngày:
    26/3/07
    Bài viết:
    3,106
    Nơi ở:
    Hà Nội
    Ý là merge code liên tục để cuối sprint k merge 1 cục to đùng thôi peepo_dead,
     
  7. QHu91_IT

    QHu91_IT ٩(˘◡˘)۶ Moderator Knight

    Tham gia ngày:
    16/2/08
    Bài viết:
    9,787
    Nếu đã làm riêng từng PR rồi mà vẫn phải pull liên tục thế thì không ổn lắm nhỉ, như vậy thì depend nhau quá nhiều, quất cha chung 1 nhánh rồi mn commit - pull rebase - push liên tục cho rồi, đằng nào chả phải cập nhập liên tục, lock force push lại, giờ nó muốn push thì phải resolve conflic thôi pepe-1. Còn đã chia mỗi đứa 1 PR thì phải hạn chế liên quan nhất có thể.
     
  8. doctor who

    doctor who Space Marine Doomguy Lão Làng GVN

    Tham gia ngày:
    30/3/14
    Bài viết:
    5,643
    Trước khi commit thì pull cái rebase rồi mới commit là được màpepe-23
     
  9. hell_angel7602

    hell_angel7602 C O N T R A Lão Làng GVN

    Tham gia ngày:
    5/2/06
    Bài viết:
    1,836
    Pull mỗi ngày 1-2 lần là đc rồi, chứ mỗi tiếng thì 1 là structure codebase có vần đề, 2 là chia task có vấn đề pu_pepepolice
     
    Mai fen đút đít không? thích bài này.
  10. huydaybn3000

    huydaybn3000 Mega Man ⚜ Duel Master ⚜ Lão Làng GVN

    Tham gia ngày:
    26/3/07
    Bài viết:
    3,106
    Nơi ở:
    Hà Nội
    code base viettel, nói tới đây chắc ae hiểu peepo_dead
     
  11. depzaivai

    depzaivai Dragon Quest Lão Làng GVN

    Tham gia ngày:
    30/1/06
    Bài viết:
    1,336
    há há, 1 trong những câu hỏi phỏng vấn ưa thích của mềnh là chiến lược merge code mà bạn thường dùng khi làm việc với team là gì =))
    thường thì đã chia microservice ở backend rồi thì trong 1 sprint mỗi thằng 1 task liên quan đến 1 service thì ko lo bị conflict. Chỉ có thằng frontend là 2,3 thằng cùng chui vào để thêm sửa xoá. Thằng nào mà nghịch vào đống common component thì đúng là ối dồi ôi, cuối sprint chỉ có đi resolve conflict.
    Tiện đây hỏi ae chiến lược CI/CD mà mọi người đang thực hiện.
    Bên mình thì có 3 môi trường: local (máy của mỗi dev) / staging (môi trường dev deploy tính năng để qc test) / prod (môi trường khách hàng sử dụng).
    Repo thì có 2 nhánh quan trọng là dev và master, tương ứng với 2 môi trường staging và prod.
    Flow bên mình là như thế này:
    - Đầu sprint, sau khi nhận task thì dev sẽ checkout 1 nhánh feature mới từ branch dev của repo frontend, đặt tên theo template feature/PROJECT_TASK_ID-short-description, ví dụ: feature/JIRA-369-login-form (gọi là feature-A), tương tự thằng dev khác trong team sẽ có 1 nhánh khác là feature-B. Các dev code trên nhánh của mình ở môi trường local của mỗi dev
    - A xong trước thì A sẽ thực hiện việc tạo pull request vào nhánh dev, leader approve và merge thì sẽ tự động được build và deploy trên môi trường staging để QC test.
    - B xong sau thì sẽ thực hiện như sau ở môi trường local:
    • git checkout dev // chuyển sang nhánh dev
    • git pull origin dev // lấy code mới nhất về (đã merge feature-A)
    • git checkout -b deploy/feature-B // tạo nhánh mới từ dev
    • git merge feature-B // merge feature-B vào nhánh vừa tạo -> resolve conflict
    • git push --set-upstream origin deploy/feature-B // push tạo nhánh mới trên repo
    • tạo pull request merge deploy/feature-B vào lại nhánh dev, leader approve và merge để build lại trên staging. Sau đó QC sẽ vào test
     
  12. depzaivai

    depzaivai Dragon Quest Lão Làng GVN

    Tham gia ngày:
    30/1/06
    Bài viết:
    1,336
    phương án trên giải quyết việc mọi pull request đều ko có conflict, thằng leader chỉ việc review logic, convention và merge. Oái oăm nảy sinh khi mà QC test xong rồi đến phần fix bug, A và B tiếp tục sửa trên nhánh feature của bọn nó. Cái dở ở chỗ, có những lúc bug nó lại phát sinh khi 2 bên đã merge và resolve conflict =))
    dev ở A
    QC test ở (A -> dev) ra bug -> quay lại A tái hiện được bug -> fix tiếp được
    dev ở B
    test ở B -> (A -> dev) ra bug -> quay lại B để fix ko thấy bug xuất hiện .
     
  13. MegaAngel

    MegaAngel C O N T R A Lão Làng GVN

    Tham gia ngày:
    2/10/05
    Bài viết:
    1,781
    Cái này thì là git feature branch workflow, cộng đồng nó đã ra đưa ra tiêu chuẩn chắc cũng phải chục năm rồi. Đa số chỗ mình đã làm thì đều làm theo vậy nhưng trường hợp code base viettel của bạn kia thì mình nghĩ là áp dụng cũng không giảm được conflict vì nghi là có mấy cái như sau: toàn bộ model vứt vào một file, service với các module không chia rõ ràng vứt lung ta lung tung gộp chung vào file mấy chục nghìn dòng code nên người mới không biết code vào đâu còn người cũ thì thấy nó cũng quá to nên cũng lười để sửa thành ra cũng vứt lung tung nên sửa phát tỉ lệ đá nhau chan chát cao vcl !suong
     
  14. Barking1.1

    Barking1.1 Persian Prince

    Tham gia ngày:
    10/4/21
    Bài viết:
    3,631
    Nơi ở:
    Somewhere only I know
    Phần bôi đậm : sao ko merge/rebase trực tiếp vào branch feature-B luôn mà tạo ra branch phụ mần gì nhỉ ? Nhiều branch quá lại rối thêm, git thì cứ simple thôi :))

    Git scenario thì cứ follow theo common git flow thôi. Chỉ cần nhấn mạnh với dev là bắt buộc phải merge/rebase + resolve conflict trước khi push và tạo PR
     
  15. Hoàn Gia Sắc

    Hoàn Gia Sắc Mayor of SimCity Lão Làng GVN

    Tham gia ngày:
    14/9/09
    Bài viết:
    4,201
    Chia module nhỏ ra mà code, ez. Thời đại nào rồi mà phải check tay. Setup CI auto test, pass được thằng máy rồi mới cần người review lại. Trừ khi refactor lại core thôi
     
  16. QHu91_IT

    QHu91_IT ٩(˘◡˘)۶ Moderator Knight

    Tham gia ngày:
    16/2/08
    Bài viết:
    9,787
    Mai fen đút đít không? thích bài này.
  17. depzaivai

    depzaivai Dragon Quest Lão Làng GVN

    Tham gia ngày:
    30/1/06
    Bài viết:
    1,336
    nếu rebase/merge nhánh (dev+A) vào nhánh B thì thằng B sẽ mang cả code của thằng A -> code này có thể còn lỗi, nếu đến lúc cần merge thằng B vào master để lên product thì lại phải cherry pick
     
  18. Barking1.1

    Barking1.1 Persian Prince

    Tham gia ngày:
    10/4/21
    Bài viết:
    3,631
    Nơi ở:
    Somewhere only I know
    Nguyên tắc khi merge vào dev thì source code ở branch feature-A ít nhất phải chạy được (không chạy đc mà merge thì do ông review rồi) . Nếu có lỗi thì lại fix bằng 1 branch khác .
    Còn theo ý của fen thì chờ cho A chắc chắn hết lỗi mới xài code của A sao :))

    Theo mô hình như fen đang làm thì sẽ có case code ở 2 branch deploy/feature-B và feature-B nó không đồng bộ với nhau .. lúc đó thì tha hồ mà compare á
     
  19. Gin Melkior

    Gin Melkior Manchester is red GameOver

    Tham gia ngày:
    18/8/20
    Bài viết:
    8,044
    Vẫn phải có nguồn lực merge + resolve conflict :))
     
    Barking1.1 and mashimuro like this.
  20. huydaybn3000

    huydaybn3000 Mega Man ⚜ Duel Master ⚜ Lão Làng GVN

    Tham gia ngày:
    26/3/07
    Bài viết:
    3,106
    Nơi ở:
    Hà Nội
    Flow của a mà dính quả 1 trong 2 feature lùi lại sprint sau, cái còn lại thì đẩy prod là mệt đấy, staging (dev) đã dính code của 2 feature nên ko đẩy lên prod (main) đc, trc e quả này, sát ngày deploy thì PO bảo dời 1 feature, thế là phải tạo staging_A từ revision lúc đầu sprint, merge A, bỏ B rồi test lại 1 lượt, xong xóa mẹ staging hiện tại, base mới staging_A sang dev, lúc base trứng cút lô tô vkl.

    À phỏng vấn git phần rebase cũng vui phết, hỏi có nên dùng rebase cho branch nhiều ng code chung là biết ngay có quen dùng git hay ko
     

Chia sẻ trang này