taydocauduongphong
Senior Member
Có vẻ hay. Bạn nói rõ hơn hoặc dẫn link mấy cái mà bạn nói giúp mình được ko?Nhảy mẹ nó vào Qt C++ mà xem họ thi triển OOP, hoặc fork một project opensource về nghiệp vụ doanh nghiệp viết bằng JAVA mà học.
Có vẻ hay. Bạn nói rõ hơn hoặc dẫn link mấy cái mà bạn nói giúp mình được ko?Nhảy mẹ nó vào Qt C++ mà xem họ thi triển OOP, hoặc fork một project opensource về nghiệp vụ doanh nghiệp viết bằng JAVA mà học.
Qt.ioCó vẻ hay. Bạn nói rõ hơn hoặc dẫn link mấy cái mà bạn nói giúp mình được ko?
Xin lỗi nếu quote làm phiền bác nhưng bác nói mấy tính chất đó để quản lý state không thôi thì mình thấy chưa đủ vì nó còn liên quan đến behavior của đối tượng mà cái này là cái mình thấy quan trọng trong OOPTôi thường bảo các em sv, tốt nhất học OOP thì đừng xoáy vào mấy cái ví dụ thú với chó làm gì. Nhảy mẹ nó vào Qt C++ mà xem họ thi triển OOP, hoặc fork một project opensource về nghiệp vụ doanh nghiệp viết bằng JAVA mà học. Éo ai suốt ngày lớp thú 4 chân, lớp thú dưới nước kế thừa cái éo gì ở đây, phỏng vấn mấy bạn sv như này tôi phát nhọc. Mà tôi gặp suốt
à mà các bạn ấy rất hay nói rất phức tạp về abstraction, encapsulation, inheritance and polymorphism. Trong khi gói gọn là mấy tính chất này là cách để quản lý state.
class Wheel
def size(rim)
rim.diameter * 2 + 5
end
end

Trong thế giới OOP thì sẽ có rất nhiều cái để mà cho là concept. Mỗi người chọn một vài concept để nhận định nó là bản chất của OOP, miễn sao những thứ ấy giúp họ làm kim chỉ nam để viết code OOP cho chuẩn và đơn giản hóa.Xin lỗi nếu quote làm phiền bác nhưng bác nói mấy tính chất đó để quản lý state không thôi thì mình thấy chưa đủ vì nó còn liên quan đến behavior của đối tượng mà cái này là cái mình thấy quan trọng trong OOP
Ví dụ như thằng polymorphism, trong Ruby mà mình học thì với class sau
Ruby:class Wheel def size(rim) rim.diameter * 2 + 5 end end
Thì thằng Wheel không cần quan tâm thằng rim được truyền vào có class nào miễn sao nó hiểu được diameter mà thằng Wheel send tới.
mà cái này chỉ có dynamic-type mới làm được nên với mình thì dynamic-type là chân ái![]()
https://github.com/thechangelog/changelog.com mời bạn xem.nói dài dai như topic FP lần trước, cũng k ai mang được cái ví dụ apply FP thay OOP ntn?
ai có thể cho mình cái keyword tải 1 project web bằng các loại no OOP xem thử k?
vd java: để apply 1 action gì đó cho request, thì sẽ extend/implement cái java.servlet.Filter. nếu k dùng OOP thì làm ntn?
thiếu gì project web no OOP, giờ đang hot cmn golang mà go nó có OOP méo đâunói dài dai như topic FP lần trước, cũng k ai mang được cái ví dụ apply FP thay OOP ntn?
ai có thể cho mình cái keyword tải 1 project web bằng các loại no OOP xem thử k?
vd java: để apply 1 action gì đó cho request, thì sẽ extend/implement cái java.servlet.Filter. nếu k dùng OOP thì làm ntn?
)Tùy framework thôi. Cái java.servlet.Filter nhiệm vụ của nó là provide behavior thông qua cái hàmnói dài dai như topic FP lần trước, cũng k ai mang được cái ví dụ apply FP thay OOP ntn?
ai có thể cho mình cái keyword tải 1 project web bằng các loại no OOP xem thử k?
vd java: để apply 1 action gì đó cho request, thì sẽ extend/implement cái java.servlet.Filter. nếu k dùng OOP thì làm ntn?
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
}
thiếu gì project web no OOP, giờ đang hot cmn golang mà go nó có OOP méo đâu)

Thực tế tôi gặp thì hầu hết không chơi kế thừa nữa vì rất khó quản lý mà lợi ích đem lại không nhiều. Thường cứ tạo hết property vào 1 class và dùng chung cho toàn bộ đối tượng, nếu có lỗi conflict thì ghi log và notify lên slack channel để báo bad data.Code oop giờ còn chơi kế thừa ko nhỉ
Thời thế thay đổi nhanh vậy sao bác, nhớ khoảng 1-2 năm trước thôi tôi vào chê mấy cái abstraction bị ném gạch quá trờiThực tế tôi gặp thì hầu hết không chơi kế thừa nữa vì rất khó quản lý mà lợi ích đem lại không nhiều. Thường cứ tạo hết property vào 1 class và dùng chung cho toàn bộ đối tượng, nếu có lỗi conflict thì ghi log và notify lên slack channel để báo bad data.
Game trước đây thì lua rất phổ biến, đây là ngôn ngữ mà toàn bộ biến điều là dynamic type. Và trick của ngôn ngữ này là đặt tên biến sao cho thể hiện rõ nó là cái gì, khi truyền biến vào function chả phải quan tâm đến lớp kế thừa để gọi tên hàm như oopMình nghe nói làm game dev thì sẽ cảm nhận OOP rõ ràng hơn mấy cái khác. Bạn nào xác nhận giúp mình với.
Vấn đề là ở đây, nếu không dùng kế thừa thì nó đâu thật sự là OOP nữa , nếu tách biệt data với function thì là đang thực hành functional programmingThực tế tôi gặp thì hầu hết không chơi kế thừa nữa vì rất khó quản lý mà lợi ích đem lại không nhiều. Thường cứ tạo hết property vào 1 class và dùng chung cho toàn bộ đối tượng, nếu có lỗi conflict thì ghi log và notify lên slack channel để báo bad data.
Vấn đề là ở đây, nếu không dùng kế thừa thì nó đâu thật sự là OOP nữa , nếu tách biệt data với function thì là đang thực hành functional programming
Thời thế thay đổi nhanh vậy sao bác, nhớ khoảng 1-2 năm trước thôi tôi vào chê mấy cái abstraction bị ném gạch quá trời
Cũng ko hẳn là quên đi mà là golang nó ko có cái món kế thừa đặc trưng của OOP, nên khi code tư duy kiểu khác hẳn như là code C so với code java, cần cái gì thì khai báo struct thay vì cân nhắc class mới kế thừa cái nào...ừa Golang đang hot mà, mà học golang thì cái đầu tiên là quên cmn OOP đi
code web với Go sướng vl, nhảy qua mấy cái khác code thấy nó ngu ngu thế nào ấy (ruby/java/python), mặc dù tụi nó cũng ko phải là dở.
Phải công nhận là Go nó thiết kế đơn giản mà hiệu quả thật.