10/10/2018, 00:20

Lập trình PHP theo OOP và funtion thường cái nào chạy nhanh hơn?

Lập trình PHP theo OOP và funtion thường cái nào chạy nhanh hơn? Thực chất việc này cãi nhau ở các diễn đàn khác cũng khá nhiều. Theo các bác thì thế nào??
Vô Thin viết 02:23 ngày 10/10/2018
Độ nhanh / chậm tính bằng mili giây nên không quan trọng. Thường việc nhanh / chậm phụ thuộc nhiều vào kỹ năng của lập trình viên hơn là do cách tiếp cận theo function hay OOP của PHP.

Thường thì với OOP người ta cũng có các function (method) để có thể sử dụng. Cho nên, nếu lập trình kém đầu tư nghiên cứu tối ưu mã thì là chậm cả.

Do đó, vấn đề không phải là dùng Class hay chỉ thuần function. Nếu mà dùng chỉ các class tích hợp sẵn với PHP so với các function cũng của PHP thì khả năng nhanh chậm là như nhau.

PHP là một ngôn ngữ lập trình web, nên linh hoạt dùng phối hợp cả hai để hiệu suất thi hành được cao, cần học hỏi cách tiếp cận của phpBB. Còn nếu cứ cứng nhắc thì... nhiều khi lâm vào cảnh tự ta 'phát minh' ra cái đã có sẵn trong PHP và đã được tối ưu => chạy chậm là cái chắc.

Kết luận: OOP & function không mâu thuẫn nhau, so sánh chúng là điều không cần thiết, để thời gian tập trung vào tối ưu code sẽ tốt hơn. Mọi tranh cãi kiểu này chỉ tốn thời gian vô bổ.
conan1212 viết 02:34 ngày 10/10/2018
Function chạy nhanh hơn, nhưng đó là những trang cỡ nhỏ, nhưng trang lớn bạn phải code cả đống function thì việc quản lí chúng quả là ko dễ dàng.

Thên nữa với Function bạn không thể Overwrite nếu Function đã tồn tại.
Nhưng với OOP thì bạn có thể Overwrite method của một lớp bằng việc kế thừa Lớp chứa method đó bởi một lớp con mới, kết quả là bạn sẽ có thể cho phép tồn tại 2 method có cùng định danh và có thể sử dụng kết quả của method kia, có nghĩa là dù Overwrite nhưng method của lớp cha vẫn còn tồn tại trong chính nó.

Việc quản lí code cũng trở nên dễ dàng hơn với OOP.

Với một project sử dụng OOP 100% thì chắc là người phát triển cái project đó có lẽ là tín đồ của Java ^^
jiSh@n viết 02:34 ngày 10/10/2018
Với PHP sẽ khó có chuyện 100% OOP. Nếu tất cả các dòng code đều nằm trong class thì sẽ ko chạy được là cái chắc
cái nick đó viết 02:33 ngày 10/10/2018
Với một project sử dụng OOP 100% thì chắc là người phát triển cái project đó có lẽ là tín đồ của Java ^^
Em thì 99.9% thôi. 0.1% dành cho các function nhằm ngắn gọn hóa mấy method dài lòng thòng, tuy phá vỡ convention nhưng chấp nhận

ví dụ như
PHP Code:
function &bxp() {
    return 
BxPlatform::getInstance();

PHP Code:
function &view() {
    return 
BxPlatform::getInstance()->getView();

dolysheep viết 02:28 ngày 10/10/2018
Được gửi bởi superthin
Độ nhanh / chậm tính bằng mili giây nên không quan trọng. Thường việc nhanh / chậm phụ thuộc nhiều vào kỹ năng của lập trình viên hơn là do cách tiếp cận theo function hay OOP của PHP.

Thường thì với OOP người ta cũng có các function (method) để có thể sử dụng. Cho nên, nếu lập trình kém đầu tư nghiên cứu tối ưu mã thì là chậm cả.

Do đó, vấn đề không phải là dùng Class hay chỉ thuần function. Nếu mà dùng chỉ các class tích hợp sẵn với PHP so với các function cũng của PHP thì khả năng nhanh chậm là như nhau.

PHP là một ngôn ngữ lập trình web, nên linh hoạt dùng phối hợp cả hai để hiệu suất thi hành được cao, cần học hỏi cách tiếp cận của phpBB. Còn nếu cứ cứng nhắc thì... nhiều khi lâm vào cảnh tự ta 'phát minh' ra cái đã có sẵn trong PHP và đã được tối ưu => chạy chậm là cái chắc.

Kết luận: OOP & function không mâu thuẫn nhau, so sánh chúng là điều không cần thiết, để thời gian tập trung vào tối ưu code sẽ tốt hơn. Mọi tranh cãi kiểu này chỉ tốn thời gian vô bổ.
Ý kiến khá toàn diện so với học lực của em! Thanks
Vui365 viết 02:23 ngày 10/10/2018
Theo tôi biết thì OOP từ Function mà ra. Một còn ngựa có thêm một hiệp sĩ cưỡi lên thì chắc chắn là chạy chậm hơn rồi.
kemkem viết 02:24 ngày 10/10/2018
Được gửi bởi conan1212
Function chạy nhanh hơn, nhưng đó là những trang cỡ nhỏ, nhưng trang lớn bạn phải code cả đống function thì việc quản lí chúng quả là ko dễ dàng.

Thên nữa với Function bạn không thể Overwrite nếu Function đã tồn tại.
Nhưng với OOP thì bạn có thể Overwrite method của một lớp bằng việc kế thừa Lớp chứa method đó bởi một lớp con mới, kết quả là bạn sẽ có thể cho phép tồn tại 2 method có cùng định danh và có thể sử dụng kết quả của method kia, có nghĩa là dù Overwrite nhưng method của lớp cha vẫn còn tồn tại trong chính nó.

Việc quản lí code cũng trở nên dễ dàng hơn với OOP.

Với một project sử dụng OOP 100% thì chắc là người phát triển cái project đó có lẽ là tín đồ của Java ^^
cùng với ý kiến của bạn
TheHeTre viết 02:23 ngày 10/10/2018
Được gửi bởi dolysheep
Lập trình PHP theo OOP và funtion thường cái nào chạy nhanh hơn? Thực chất việc này cãi nhau ở các diễn đàn khác cũng khá nhiều. Theo các bác thì thế nào??
Và câu hỏi của bạn có phải muốn gợi lại những trận cãi nhau lịch sử giữa phe yêu Function (Drupal với Wordpress) và phe thích OOP (Joomla với Mambo) không nhỉ?

Về sơ sơ thì dao (function) và kéo (OOP) được dùng ở các lĩnh vực khác nhau. Đôi khi sử dụng lẫn nhau mới được việc.

Mới học thì cầm dao dễ hơn , còn học Y vài năm mới thành thạo dùng kéo (ví dụ thế). Nhanh hay không dùng vào trường hợp nào nữa, và tay nghề người sử dụng như thế nào. Tránh trường hợp dùng mổ trâu để giết gà.

OOP như @Conan nói. Tuy nhiên, nếu cùng 1 trình độ, cùng một dự án thì thường là code function nhanh hơn OOP vì lưu một object cần nhiều bộ nhớ hơn.
Thanh duc viết 02:32 ngày 10/10/2018
Được gửi bởi Vui365
Theo tôi biết thì OOP từ Function mà ra. Một còn ngựa có thêm một hiệp sĩ cưỡi lên thì chắc chắn là chạy chậm hơn rồi.
Thật chí lý chí lý
Bài liên quan
0