Mình cũng suất phát từ công ty out source và những việc tối ưu code chạy nhanh gần như không mang lại value trực tiếp cho mình (lương, được công nhận,...) Nhưng nó không chỉ là tối ưu để code chạy nhan, mà còn có thể code nhanh hơn ngta (nghĩa là làm xong nhanh hơn) thì nó ảnh hưởng trực tiếp tới value mà mình tạo ra.
Có rất nhiều việc mình làm trong khoảng thời gian đó không có value, nhưng nó giúp mình có kinh nghiệm để sau này làm một công việc tốt hơn rất nhiều. Hard word paid off
cảm ơn comment của bác, bản thân mình lại thấy từ khoá suspend đã đủ và thay thế cho await , cũng không phải cứ suspend là nonblocking, nếu nó ko bị suspend thực sự. còn CancellationException bác có thể đọc đoạn comment https://github.com/Kotlin/kotlinx.coroutines/issues/3658
Mình hiểu tư duy của bạn, nhưng bạn nên hiểu là tư duy tối ưu hoá ở VN rất khó. Cty outsource thì họ chỉ cần code đúng nghiệp vụ, còn tối ưu hoá cho code nhẹ hay không, giúp chi phí giảm thiểu sao thì ấy là việc của khách. Sản phẩm của mình quái đâu mà mình phải lo.
@just-pthai-it còn lỗi của e bên trên, sao e đang build image mà e lại COPY cả volume chứa data của nó vào làm chi?
e nên ignore volume đi trong quá trình build image, vì nó ko cần thiết, làm cho image của e nặng nữa. volume chứa data nên tách rời khỏi Dockerfile, và đc mount ở docker-compose.yml
còn lỗi thì quá rõ ràng, do volume kia được sinh ra bởi container nó có 1 permission nào đó, lúc build image thì ở Dockerfile e đang cố gắng read/write với 1 user ko có đủ permission (non-root user rồi)
@just-pthai-it uk e, hầu như a đều mount trực tiếp vào đường dẫn nếu có thể, vì a có thể control được folder luôn, move qua lại hoặc clone đều dễ. Làm cách này đúng là có những trường hợp gặp lỗi permission, nhưng nó dạy cho a hiểu về permission trên Linux và fix các lỗi liên quan tới Docker, sau này quen rồi thì cũng mượt.
Nhưng đúng là dùng Docker volume như e nói thì behaviour nó sẽ consistent trên các môi trường, sẽ ko còn những đoạn note dành cho bạn nào đang dùng windows nữa
https://socket.io/docs/v4/client-options/#auth
ở client bạn thêm option auth, truyền token (JWT hoặc khác) vào và gửi về server, ở server phần event register (on connection), bạn lấy token từ socket.getConnectData() rồi xử lý token để lấy thông tin session, session của socket.io là stateful nên muốn lưu thêm dữ liệu cho session đó thì cứ thêm vào cái connect data là được. Event connection nó chỉ chạy khi client handshake, những lần sau gửi message nó sẽ không chạy lại nên sẽ không bị verify nhiều lần nhé.
Mình để source mẫu ở branch này https://github.com/huyvu8051/springboot-socketio/tree/add-security
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/JFiBjJ thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳.
THẢO LUẬN
Mình cũng suất phát từ công ty out source và những việc tối ưu code chạy nhanh gần như không mang lại value trực tiếp cho mình (lương, được công nhận,...) Nhưng nó không chỉ là tối ưu để code chạy nhan, mà còn có thể code nhanh hơn ngta (nghĩa là làm xong nhanh hơn) thì nó ảnh hưởng trực tiếp tới value mà mình tạo ra. Có rất nhiều việc mình làm trong khoảng thời gian đó không có value, nhưng nó giúp mình có kinh nghiệm để sau này làm một công việc tốt hơn rất nhiều. Hard word paid off
cảm ơn comment của bác, bản thân mình lại thấy từ khoá suspend đã đủ và thay thế cho await , cũng không phải cứ suspend là nonblocking, nếu nó ko bị suspend thực sự. còn CancellationException bác có thể đọc đoạn comment https://github.com/Kotlin/kotlinx.coroutines/issues/3658
đã thêm 1 star cho repo và 1 upvote ở đây
@truongannv B thử sửa như này xem:
ủa string trong vs đầu tiên json mà để 'DinhChieu' thế kia mà console.log ra đc à
Mình hiểu tư duy của bạn, nhưng bạn nên hiểu là tư duy tối ưu hoá ở VN rất khó. Cty outsource thì họ chỉ cần code đúng nghiệp vụ, còn tối ưu hoá cho code nhẹ hay không, giúp chi phí giảm thiểu sao thì ấy là việc của khách. Sản phẩm của mình quái đâu mà mình phải lo.
Phỏng vấn bên sing e hỏi có cần bằng cấp việt nam không hay có đủ kiến thức + tiếng anh là đủ ạ ? chúc a sức khoẻ mong a rep
Có thể margin cái scrollbar ko bạn :v
@giang.nt mình call API update Student nó update trong csdl nhưng lại không update trong cache2
Bạn giỏi thật. Ngưỡng mộ quá
@truongannv bạn gửi lỗi lên để mọi người xem bị lỗi gì
Nhưng chỉ có t với ô à, liệu có xôm được ko=))) để đôi ta vào trao đổi chiêu thức
có link code đầy đủ k cho mình xin nghiên cứu với
mình vừa thử xong và vẫn không được ạ
bác lập nhóm riêng trên fb đi bác, trao đổi cho xôm
@just-pthai-it còn lỗi của e bên trên, sao e đang build image mà e lại COPY cả volume chứa data của nó vào làm chi?
e nên ignore volume đi trong quá trình build image, vì nó ko cần thiết, làm cho image của e nặng nữa. volume chứa data nên tách rời khỏi Dockerfile, và đc mount ở docker-compose.yml
còn lỗi thì quá rõ ràng, do volume kia được sinh ra bởi container nó có 1 permission nào đó, lúc build image thì ở Dockerfile e đang cố gắng read/write với 1 user ko có đủ permission (non-root user rồi)
@just-pthai-it uk e, hầu như a đều mount trực tiếp vào đường dẫn nếu có thể, vì a có thể control được folder luôn, move qua lại hoặc clone đều dễ. Làm cách này đúng là có những trường hợp gặp lỗi permission, nhưng nó dạy cho a hiểu về permission trên Linux và fix các lỗi liên quan tới Docker, sau này quen rồi thì cũng mượt.
Nhưng đúng là dùng Docker volume như e nói thì behaviour nó sẽ consistent trên các môi trường, sẽ ko còn những đoạn note
dành cho bạn nào đang dùng windowsnữaak không nhé. nó độc lập mà
https://socket.io/docs/v4/client-options/#auth ở client bạn thêm option auth, truyền token (JWT hoặc khác) vào và gửi về server, ở server phần event register (on connection), bạn lấy token từ socket.getConnectData() rồi xử lý token để lấy thông tin session, session của socket.io là stateful nên muốn lưu thêm dữ liệu cho session đó thì cứ thêm vào cái connect data là được. Event connection nó chỉ chạy khi client handshake, những lần sau gửi message nó sẽ không chạy lại nên sẽ không bị verify nhiều lần nhé. Mình để source mẫu ở branch này https://github.com/huyvu8051/springboot-socketio/tree/add-security
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/JFiBjJ thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳.