@minhtuancnttk39 Về Polymorphic Relations, hay dịch ra là quan hệ đa hình, em có thể tham khảo một vài bài viết dưới đây trên Viblo, trong đó có những ví dụ cụ thể sẽ giúp em hiểu rõ hơn
Còn làm thế nào để check xem thử 1 user đã like comment, hoặc post hay chưa?, thì rất đơn giản, em check xem có record trong bảng likes hay chưa.
Ví dụ check xem user có id là 3 đã like comment có id là 4hay chưa thì em chỉ cần query kiểu như sau
select * from likes where user_id = 3 and likeable_id = 4 and likeable_type = 'App\Model\Comment' limit 1;
nếu có record thì chứng tỏ like rồi, còn chưa có thì tức là chưa like Bởi khi người dùng like, em sẽ tạo thêm 1 record với nội dung kiểu như ở trên, còn ghi người dùng unlike, em sẽ xoá record đấy đi
thật sự sorry các bạn, vì thời gian vừa rồi mình phải tập trung cho công việc của bản thân nên việc chia sẻ của mình bị chậm lại, tuần này bàn giao xong việc thì mình sẽ tiếp tục ra các bài mới nhé. Cám ơn bạn đã theo dõi
Thực ra thì kết hợp với Google docs (TestListCategoryAbbott) với ví dụ của bạn thì mình mới hiểu. Theo mình thì bạn nên nêu rõ, bạn đang sử dụng api gì của Google (cũ - legacy hay mới - v1), sử dụng loại protocal nào (PHP hay XMPP - nếu được thì cho biết thêm XMPP khác gì với PHP), để người đọc tiện theo dõi, cũng như là có được cái nhìn tổng thể. Trong đoạn code của bạn thì ghi chú có lẽ hơi ít, nhưng đoán + đọc tài liệu miếng thì cũng hiểu được. Dù sao đi nữa, cũng cám ơn bạn nhiều .
Về mục tiêu là em đang investigate mức độ khả thi khi sử dụng JDK 10 để build project hiện tại.
Trong quá trình build thì thì em gặp lỗi như sau ạ :
Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean
BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'org.springframework.aop.aspectj.AspectJPointcutAdvisor#0': Bean instantiation via constructor failed; nested exception is
org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.aop.aspectj.AspectJPointcutAdvisor]: Constructor threw
exception; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.aspectj.util.LangUtil.
Em có đọc thì thấy một số nói là Java 10 không tương thích với Spring 3.x nên em đã Migration lên bản mới nhất là 5.x nhưng vẫn xuất hiện các lỗi liên quan tới version => conflict vs nested.
Về việc quản lý dependency : Hiện tại project của em đang sử dụng eclipse-userlibraries để quản lí các lib Jar file và build bằng Eclipse luôn ạ. Bác có suggestion gì giúp em việc này với ạ ?
Ngoài việc sử dụng các Lib Jar thì bên em còn nhúng cả các schema từ web như hình ạ ? Nếu em chuyển sang build bằng maven thì có control được thư viện nhúng kiểu này không ạ ?
@thanh_tuan Ừ nhỉ, chắc trưa rồi đang đói nên quên mất tiêu câu hỏi của bạn. Đơn giản là bạn có nhiều file main khác nhau chẳng hạn một file main được dành cho Admin area, Frontend area 1, Front area 2... Nhiều modules được dùng chung giữa chúng (tách thành các partial), nhưng cũng có nhiều module lại chỉ dùng cho 1 vài file main.
Khi đó có thể đặt chung tất cả trong một folder, setup gulp để compile toàn bộ các file sass bên trong folder đấy. Bất cứ khi nào bạn thay đổi nội dung của một module thì tất cả các file được build cho các area kia đều được update lại. :v
Và khi đó, mỗi area chỉ chứa các module mà nó thực sự cần thiết. Những module giống nhau thì style giữa các module cũng được giống nhau: Fonts, colors...
@huukimit tks bạn nhiều, mà hình như bạn quên chưa trả lời cho câu hỏi của mình mà :
trường hợp nào mình cần compile cả 1 folder vậy (?) - trong khi đó mình nghĩ tất cả đều dồn chung vào file main.scss - thì ta chỉ cần biên dịch độc file này thôi
PS : Srr vì mình là thành viên mới nên không Upvote được cho mỗi câu trả lời của bạn !
@thanh_tuan Về gulp sẽ hơi dài dòng, đơn giản nhất đây là công cụ giúp bạn quản lý các file assets như js, css, sass, less, thực hiện tự động hóa một số công việc râu ria như minify assets cho production, tự động compile sass, less thành css khi nội dung file bị sass bị thay đổi.. Bạn có thể đọc thêm bài https://viblo.asia/p/tim-hieu-ve-gulpjs-naQZRw2jlvx hoặc https://viblo.asia/tags/gulp để giúp bạn hiểu thêm nha.
Thời điểm bây giờ bạn nên tìm hiểu về một tool được ưu chuộng hơn là webpack thay vì gulp. Bạn tìm hiểu về webpack tại: https://viblo.asia/tags/webpack giúp mình nha. hihi
@huukimit mình cám ơn bạn nhiều ạ. Mà cho mình hỏi thêm chút xíu nhé, thường thì mình dùng phần mềm Prepros để compile file sass thành file css, còn thằng gulp bạn nói mình cũng nghe qua nhưng chưa sử dụng, theo như bạn nói sức mạnh của nó có thể compile hẳn 1 folder chứa các file sass sang 1 folder khác chứa file css, mà mình không hiểu trường hợp nào mình cần compile cả 1 folder vậy (?) - trong khi đó mình nghĩ tất cả đều dồn chung vào file main.scss rồi thì ta chỉ cần biên dịch độc file này là đủ rồi còn gì ?
@devil_boom_129
Làm việc Teamwork cũng là 1 kĩ năng mà chúng ta cần cải thiện nhiều bạn nhỉ . Thất bại và trải nghiệm cũng sẽ giúp ta có những điều chỉnh được cách liên lạc với các member trong đội chúc bạn thành công
@thanh_tuan Sr bạn vì mình diễn đạt chưa rõ ràng. Đúng như những gì bạn nói, nhưng đó là trường hợp bạn chỉ định rõ một file cần compile thành một file CSS, thay vào đó nếu bạn dùng một tool nào khác (gulp chẳng hạn) để compile hẳn một folder chứa nhiều file sass. Khi đó những file css được tạo ra sẽ tương ứng với các file sass được đặt tên không bắt đầu bằng underscore. Những file partial lúc này sẽ không được compile thành một file CSS tương ứng nữa.
Chính vì thế nên chính xác là các file partial sẽ không được compile thành một file CSS như thường lệ.
THẢO LUẬN
@minhtuancnttk39 Về Polymorphic Relations, hay dịch ra là quan hệ đa hình, em có thể tham khảo một vài bài viết dưới đây trên Viblo, trong đó có những ví dụ cụ thể sẽ giúp em hiểu rõ hơn
Còn làm thế nào để check xem thử 1 user đã like comment, hoặc post hay chưa?, thì rất đơn giản, em check xem có record trong bảng
likes
hay chưa.Ví dụ check xem user có id là
3
đã like comment có id là4
hay chưa thì em chỉ cần query kiểu như saunếu có record thì chứng tỏ like rồi, còn chưa có thì tức là chưa like Bởi khi người dùng like, em sẽ tạo thêm 1 record với nội dung kiểu như ở trên, còn ghi người dùng unlike, em sẽ xoá record đấy đi
E hiểu ý a ạ... nhưng e chưa tìm hiểu được Polymorphic Relations đó ạ? A có thể nói cụ thể hơn xíu được không ạ?
Thêm 1 ý là e chưa biết cách check xem thử 1 user đã like comment, hoặc post hay chưa ạ?...
Cảm ơn Hùng. Một bài viết mẫu mực và tâm huyết!
Bài viết này là của tác giả Phạm Huy Hoàng đăng trên Blog Toidicodedao. Bạn nên ghi rõ nguồn cho bài viết này: https://toidicodedao.com/2015/03/24/solid-la-gi-ap-dung-cac-nguyen-ly-solid-de-tro-thanh-lap-trinh-vien-code-cung/
thật sự sorry các bạn, vì thời gian vừa rồi mình phải tập trung cho công việc của bản thân nên việc chia sẻ của mình bị chậm lại, tuần này bàn giao xong việc thì mình sẽ tiếp tục ra các bài mới nhé. Cám ơn bạn đã theo dõi
cảm ơn bạn quan tâm, theo suy luận thì nếu truy vấn đến CSDL gặp lỗi thì phải do mysql rồi
Chào thớt, mấy bài trước tốc độ ra bài khá nhanh mà bài sau hơi lâu nhỉ Ko biết đã kết thúc seri này chưa
Cảm ơn vì bài rất hay, trình bày dễ hiểu, đẹp! Gợi ý thêm chuyển đổi từ ERM sang thiết kế cơ sở dữ liệu(bảng)
Chuẩn. Mặc dù mình làm dev 😂
Thực ra thì kết hợp với Google docs (TestListCategoryAbbott) với ví dụ của bạn thì mình mới hiểu. Theo mình thì bạn nên nêu rõ, bạn đang sử dụng api gì của Google (cũ - legacy hay mới - v1), sử dụng loại protocal nào (PHP hay XMPP - nếu được thì cho biết thêm XMPP khác gì với PHP), để người đọc tiện theo dõi, cũng như là có được cái nhìn tổng thể. Trong đoạn code của bạn thì ghi chú có lẽ hơi ít, nhưng đoán + đọc tài liệu miếng thì cũng hiểu được. Dù sao đi nữa, cũng cám ơn bạn nhiều .
Cảm ơn bác đã trả lời câu hỏi của em ạ !
bài viết hay quá. Cám ơn
tks bạn nhiều
@huukimit , ok ==)) mình hiểu rồi - cám ơn bạn nha
@thanh_tuan Ừ nhỉ, chắc trưa rồi đang đói nên quên mất tiêu câu hỏi của bạn. Đơn giản là bạn có nhiều file main khác nhau chẳng hạn một file main được dành cho Admin area, Frontend area 1, Front area 2... Nhiều modules được dùng chung giữa chúng (tách thành các partial), nhưng cũng có nhiều module lại chỉ dùng cho 1 vài file main.
Khi đó có thể đặt chung tất cả trong một folder, setup gulp để compile toàn bộ các file sass bên trong folder đấy. Bất cứ khi nào bạn thay đổi nội dung của một module thì tất cả các file được build cho các area kia đều được update lại. :v
Và khi đó, mỗi area chỉ chứa các module mà nó thực sự cần thiết. Những module giống nhau thì style giữa các module cũng được giống nhau: Fonts, colors...
@huukimit tks bạn nhiều, mà hình như bạn quên chưa trả lời cho câu hỏi của mình mà :
trường hợp nào mình cần compile cả 1 folder vậy (?) - trong khi đó mình nghĩ tất cả đều dồn chung vào file main.scss - thì ta chỉ cần biên dịch độc file này thôi
PS : Srr vì mình là thành viên mới nên không Upvote được cho mỗi câu trả lời của bạn !@thanh_tuan Về gulp sẽ hơi dài dòng, đơn giản nhất đây là công cụ giúp bạn quản lý các file assets như js, css, sass, less, thực hiện tự động hóa một số công việc râu ria như minify assets cho production, tự động compile sass, less thành css khi nội dung file bị sass bị thay đổi.. Bạn có thể đọc thêm bài https://viblo.asia/p/tim-hieu-ve-gulpjs-naQZRw2jlvx hoặc https://viblo.asia/tags/gulp để giúp bạn hiểu thêm nha.
Thời điểm bây giờ bạn nên tìm hiểu về một tool được ưu chuộng hơn là webpack thay vì gulp. Bạn tìm hiểu về webpack tại: https://viblo.asia/tags/webpack giúp mình nha. hihi
@huukimit mình cám ơn bạn nhiều ạ. Mà cho mình hỏi thêm chút xíu nhé, thường thì mình dùng phần mềm Prepros để compile file sass thành file css, còn thằng
gulp
bạn nói mình cũng nghe qua nhưng chưa sử dụng, theo như bạn nói sức mạnh của nó có thể compile hẳn 1 folder chứa các file sass sang 1 folder khác chứa file css, mà mình không hiểu trường hợp nào mình cần compile cả 1 folder vậy (?) - trong khi đó mình nghĩ tất cả đều dồn chung vào filemain.scss
rồi thì ta chỉ cần biên dịch độc file này là đủ rồi còn gì ?@devil_boom_129 Làm việc Teamwork cũng là 1 kĩ năng mà chúng ta cần cải thiện nhiều bạn nhỉ . Thất bại và trải nghiệm cũng sẽ giúp ta có những điều chỉnh được cách liên lạc với các member trong đội chúc bạn thành công
@thanh_tuan Sr bạn vì mình diễn đạt chưa rõ ràng. Đúng như những gì bạn nói, nhưng đó là trường hợp bạn chỉ định rõ một file cần compile thành một file CSS, thay vào đó nếu bạn dùng một tool nào khác (
gulp
chẳng hạn) để compile hẳn một folder chứa nhiều file sass. Khi đó những file css được tạo ra sẽ tương ứng với các file sass được đặt tên không bắt đầu bằng underscore. Những file partial lúc này sẽ không được compile thành một file CSS tương ứng nữa.Chính vì thế nên chính xác là các file partial sẽ không được compile thành một file CSS như thường lệ.