Toán và toán nhé.em đang nghiên cứu cái món canvas, mục đích build một hệ thống data flow trên nền web, bác nào đã từng khinh qua ko chỉ em keyword với, tìm kiếm trên mạng mông lung quá vs lại e ko biết keyword gì, kiểu hệ thống như này Xem tệp đính kèm 1775774
Bữa giờ không check threadShallow compare chứ có deep compare đâu nhỉ? Chưa hiểu bottleneck thế nào?. Như fen nói thì react nó đã lưu ý vấn đề hiệu năng rồi. so sanh compare a === b thì chậm thế nào nhỉ?
Còn hiện tại ai đang ko làm theo document của React thì biết rồi. Fen cũng chả đưa ra được dẫn chứng nào chứng minh của fen nói cả. Tại sao phải tin lời của fen so với cái document nói? Ko lẽ mấy thằng core team nó dốt hơn fen?
Còn mấy cái lưu ý này trong document đều có nói đến, thậm chí còn tốn sức tạo ra cái eslint rule cho mấy thằng dev xài, mà hóa ra cơ số mấy anh giỏi trên đây ignore ko thèm xài luôn![]()


Yeah đồng ý vs bác.Bữa giờ không check thread
rảnh vô chém gió với fence chơi
thật ra thì bottleneck nó đâu có nằm ở cái compare
nó nằm ngay cái callback ấy chứ, tưởng tượng một expensive function nằm trong callback r useEffect được trigger vì một dependency nào đó không mong muốn đi
Tất nhiên là dependency đó vẫn được dùng đúng như docs React đã chỉ nhé
không violate rules of hook
via theNEXTvoz for iPhone
Yeah đồng ý vs bác.
Nhiều ông cứ máy móc bỏ hết vào deps mà hổng biết nó dùng làm gì.
Thậm chí có 1 số thứ còn chẳng thèm nhét vào useCallback vs useMemo cơ :v
Với lại trong 1 số trường hợp chi phí để tạo lại 1 object mới có khi còn ít hơn chi phí để memorize nó :v

Thế bottleneck do tốn memory hay do tốn CPU. Rồi cpu với memory thì cái nào ảnh hưởng perf user trước tiên.Bữa giờ không check thread
rảnh vô chém gió với fence chơi
thật ra thì bottleneck nó đâu có nằm ở cái compare
nó nằm ngay cái callback ấy chứ, tưởng tượng một expensive function nằm trong callback r useEffect được trigger vì một dependency nào đó không mong muốn đi
Tất nhiên là dependency đó vẫn được dùng đúng như docs React đã chỉ nhé
không violate rules of hook
via theNEXTvoz for iPhone
Là sao taThế bottleneck do tốn memory hay do tốn CPU. Rồi cpu với memory thì cái nào ảnh hưởng perf user trước tiên.
cái nào hết trước thì ảnh hưởng trước th, hay ý fence là memory xài 5% nhưng mà CPU xài tới 99% vẫn chưa gọi là ảnh hưởng 
lúc nào cũng skip deps thì disable cái rule lun cho r chứ thêm code làm gì cho nặngMà thôi giờ nhé, lúc nào cũng skip deps array hay chỉ đôi lúc thôi. Fen nói thẳng đi.


oke chưa
.Là sao tacái nào hết trước thì ảnh hưởng trước th, hay ý fence là memory xài 5% nhưng mà CPU xài tới 99% vẫn chưa gọi là ảnh hưởng
lúc nào cũng skip deps thì disable cái rule lun cho r chứ thêm code làm gì cho nặng
Giờ ví dụ một thứ tại sao expensive function lại quan trọng nhé
Chắc fence biết browser xác định một task được gọi là long running task là thế nào mà đk, nếu long running task đó chiếm dụng main thread ko thả ra cho browser render thì lúc đó user còn muốn xài nữa không
Code tốt là code lôi kéo và giữ chân đc user
còn lý do vì sao tôi dị ứng autofill full deps, đơn giản là vì lúc review code làm sao biết đc context của ticket đó thế nào mà đoán đc là hook có được sử dụng đúng cách hay chưa? Chỉ khi nào thấy bottleneck r thì mới chui đầu vô mà debug th, mà tới lúc như vậy thì có khi codebase đã quá to, người fix ko nắm được tất cả context để xử lý cho phù hợpoke chưa

Oke giờ thêm một ví dụ nữa nha, giờ expensive task đó không phải do mình code mà là của một library nào đó (cách dùng làm y chang docs nhé). Lúc này code chậm là lỗi do mình luôn pkVì code sao nó chậm là lỗi anh thôi, code dởm chống chế phải skip deps. Or lúc này a tự nghĩ mình thuộc 1% mà skip deps cũng dc.![]()



Anh em nào làm dc cái web ngốm ram như đỉa đói thì chắc ko còn vô voz chém gió đâu tôi nói thật. (ko tính web nào cùi hủi do memory leak)Oke giờ thêm một ví dụ nữa nha, giờ expensive task đó không phải do mình code mà là của một library nào đó (cách dùng làm y chang docs nhé). Lúc này code chậm là lỗi do mình luôn pk
a không thấy chậm thì không có nghĩa là client ko thấy chậm, có bao giờ bật tab performance r thử throttle network với CPU xem thử code nhìn clean mà sao nó lại block main thread quá lâu hem
Một website đâu phải chạy ở localhost đâu, cũng đâu phải lúc nào cũng đc chạy trên Macbook pro M1 32GB RAM đâu
vậy nha fence cứ giữ cái quan điểm như vậy chả ảnh hưởng gì tới tôi, chủ yếu lên đây chém gió th
P/S: À mà tôi cũng ko đưa ra được example đâu, tại đâu có biết đâu mà đưa ra![]()
Chắc useRef ko tốn memo như useCallback quá fen. Làm vậy chi cho cực? Kiểu né cái này qua cái kia cũng y chang mà còn cực lòi ass ra nữa.Cái deps trong useEffect là để quản lý khi nào cần làm gì, trong trường hợp bất kì biến nào nằm ở cái deps đó được update, đâu nhất thiết phải fill hết vào deps đâu.
Nếu sợ callback không lấy được value mới nhất vì miss biến trong deps, thì tạo một cái useEffect riêng với chỉ duy nhất biến đó trong deps thôi, rồi update value vào một cái useRef ở trong đấy, dùng cái useRef đó ở useEffect phía trên là xong.
Đã bảo chú rồi đừng có tranh luận với mấy thằng kia mà.Cty xịn giờ (Nab, baemin) có mua cả sonarlint để check code đấy, eslint còn bị turn off local chứ chạy CI CD thoát vào mắt. Mấy chỗ mà skip deps thì tha hồ giải thích với team lead
https://stackoverflow.com/questions/37555031/why-does-json-return-a-promiseHi các bác, là em hôm trước hỏi cái FE đây, có bác nào có thể cứu em ca này với. Em dùng fetch để lấy data từ API, nhưng response trả về bị promise.Xem tệp đính kèm 1777946
Sau khi em dùng async/await vào trả về vẫn bị như thế
Xem tệp đính kèm 1777948
Response mong đợi trả về trong postman thì nó đáng lẽ nên như thế này:
Xem tệp đính kèm 1777951
Bây giờ làm sao để fix ạ, em stress quá
promise thì dùng then là đc mà nhỉHi các bác, là em hôm trước hỏi cái FE đây, có bác nào có thể cứu em ca này với. Em dùng fetch để lấy data từ API, nhưng response trả về bị promise.Xem tệp đính kèm 1777946
Sau khi em dùng async/await vào trả về vẫn bị như thế
Xem tệp đính kèm 1777948
Response mong đợi trả về trong postman thì nó đáng lẽ nên như thế này:
Xem tệp đính kèm 1777951
Bây giờ làm sao để fix ạ, em stress quá
Sonarlint em tưởng là extension trên IDE chứ thímCty xịn giờ (Nab, baemin) có mua cả sonarlint để check code đấy, eslint còn bị turn off local chứ chạy CI CD thoát vào mắt. Mấy chỗ mà skip deps thì tha hồ giải thích với team lead
Thì nó có cli để chạy ci/cd chứ sao thímSonarlint em tưởng là extension trên IDE chứ thím