🎁 Note & Chia sẻ kiến thức hay tới các bạn: 🍀 Thời điểm mình viết comment này là mình đang ngồi hoàn thiện code giáo trình cho khóa MERN Advanced nâng cao sau khóa MERN Pro thì mình phát hiện ra một điểm nên tối ưu hơn nữa, đó là ở phút thứ 10:37 thay vì gọi lần lượt tất cả type của board để cho vào hàm valid() thì có thể viết gọn lại bằng Object.values() kết hợp Spread Operator của JS. Cụ thể: .valid(...Object.values(BOARD_TYPES)) 🍀 Làm như trên thì sau này dù các bạn có thêm hay sửa gì vào cái BOARD_TYPES trong file constants thì ở những chỗ dùng Joi trong Model hay Validation cũng không cần phải đụng vào nữa. Tối ưu gọn gàng hơn luôn. 🍀 Chúc các bạn học tốt! Happy Coding! Nhớ đừng tiếc gì một lượt đăng ký kênh và chia sẻ kênh ủng hộ mình nhé ^^
@nguyenvuanhduy173 Жыл бұрын
Riêng em, em thấy đoạn biến đổi dl để phù hợp với FE là hay nhất, anh làm em hiểu hơn về các hàm rồi dl json. Quá đã @@
@Mecoding9811 ай бұрын
video này quá đỉnh a ơi. Vừa hay và dài. Coi đã thật kkk
@trungquandev11 ай бұрын
Phía viewer: "coi đã thật." Phía creator: "đau lưng thật" :))))
@trungquandev Жыл бұрын
🍀Xem xong video này rồi có cảm nghĩ gì thì bạn hãy comment bên dưới cho mình biết với nhé 😄 🔔Like video cũng như Đăng Ký Kênh ủng hộ mình & Join cộng đồng Discord hoặc Facebook rất văn minh lịch sự tại đây nha: 🔗Discord: Kiến Thức Lập Trình: discord.gg/ycSbhP6gDu 🔗Fanpage: Trung Quân DEV: facebook.com/trungquandev 🔗Group: Cộng đồng Lập Trình Web • Front-end & Back-end Việt Nam: facebook.com/groups/laptrinhwebvietnam
@tungphunghuu934 Жыл бұрын
Video dài coi đã thật ❤
@trungquandev Жыл бұрын
Làm video thì mệt thật 🥲=))
@tungphunghuu934 Жыл бұрын
😆😆😆
@minat-yw6qk7 ай бұрын
hehee em đang làm project có phần join mà quên mất cách làm, nhớ anh có nên quay lại xem cách làm với sẵn lấy doc đọc thêm lun, chúc anh sức khoẻ nhenn
@trungquandev7 ай бұрын
Ừa chúc em nhiều sức khỏe, công việc thuận lợi nhé.
@minat-yw6qk8 ай бұрын
45:13 cái khúc so sánh cards.columnId với columns._id, nghĩa là js không trực tiếp support so sánh ObjectId mà phải thông qua hàm toString() để convert cả hai về string thì mới so sánh được, hoặc theo cách 2 là dùng hàm equals() của mongodb thì mới so sánh được 2 cái dạng ObjectId đúng hong anh?
@minat-yw6qk8 ай бұрын
riêng bài này em thấy thật sự quá hay, biết cách join bảng cũng như là xử lí api theo ý mình muốn để trả ra cho fe
@trungquandev8 ай бұрын
Em hiểu đúng rồi nhé. 👍
@ĐứcTrịnhVăn-q9x4 ай бұрын
Chỗ cloneDeep ở phút 38:20, mình có thể sử dụng Spread Operator như này được không ạ? const resBoard = {...board}
@trungquandev4 ай бұрын
- Anh có giải thích từ đoạn đó luôn rồi đó em, nếu em dùng Spread Operator thì nó không clone deep hoàn toàn Object đâu mà nó vẫn còn Reference tới cái ban đầu. - Trong trường hợp hiện tại thì em dùng cái nào cũng được vì mình chưa có xử lý gì hay cần so sánh dữ liệu làm gì cả. - Thêm kiến thức để em hiểu hơn là nhớ lại kiểu dữ liệu nguyên thủy Primitive và kiểu dữ liệu tham chiếu Reference trong JS nhé, nếu không nhớ thì anh có video này giải thích rất đầy đủ rồi: kzbin.info/www/bejne/fYuteZmClM6bZposi=IMjEnFBx88m8Hb1H
@truongtinhkalalala5 ай бұрын
Anh ơi theo em tìm hiểu thì ngoài aggregate ra còn có một cách để lấy data từ các collection khác là populate và em thấy populate khá dễ hiểu. Anh có thể làm video so sánh 2 cách này được không ạ
@trungquandev5 ай бұрын
Khả năng em skip qua video số 43 trong bộ này của anh rồi đúng không =)) Xem xong video đó em sẽ hiểu, anh có giải thích rồi nhé. Chịu khó xem hết các video anh làm nha, tất cả đều là kiến thức giá trị mà anh chọn lọc ra cũng như chia sẻ tới các em đó nhé.
@truongtinhkalalala5 ай бұрын
@@trungquandev à vâng chắc đoạn đó khuya em buồn ngủ nên bỏ sót ạ hehe
@huynhnhutanhduy2 ай бұрын
Chào anh, cho em hỏi là sao đoạn biến đổi data loop để add cards vào trong columns, mình biến đổi ở tầng service mà không phải biến đổi ở tầng model luôn vậy anh?
@trungquandev2 ай бұрын
Lúc học về sơ đồ và cấu trúc code phía BE trong bộ này anh có giải thích rồi đó em, tầng Service là nơi mình xử lý dữ liệu giữa Model với Controller nhé. Gọn được ở phần nào thì mình làm gọn luôn để tránh phức tạp.
@tuannguyenthai Жыл бұрын
Yeah cái join với cái query lồng nó cũng khiến mệt mỏi 😂😂
@trungquandev Жыл бұрын
Lâu lắm mới thấy comment có nội dung này =)))
@tuannguyenthai Жыл бұрын
@@trungquandev có cách nào luyện query hay không anh quân
@trungquandev Жыл бұрын
@@tuannguyenthai nghĩ ra nhiều tính năng cho dự án, làm nhiều lên là lên tay thôi em, thực hành là cốt lõi của việc học mà.
@vuongqtvn Жыл бұрын
10 điểm làm gì có nhưng được
@phuchuynhduy257710 ай бұрын
Em xem và code theo thì hiểu luồng code chạy ntn, nhưng để code thì chắc hiện tại hơi khó
@trungquandev10 ай бұрын
- Vậy mới cần thực hành nhiều đó em, và đó cũng là điểm khác nhau giữa một người đi làm lâu năm và người mới học, mới đi làm. Cái này tùy mỗi người chứ không thể đốt cháy giai đoạn được. - Quan trọng là mình đã từng học về một vấn đề, sau này gặp vấn đề tương tự, mình nhớ lại đã từng học, từ khóa nó là gì, hoặc cần thì xem lại code. Đừng cố học thuộc lòng làm gì nhé em.