Чи стане WordPress повністю OOP?


15

Чи є якась інформація про те, що WordPress стає повністю OOP у наступних версіях?

Відповіді:


17

Я можу сказати з упевненістю приблизно на 99,9999%, що WordPress ніколи не стане повністю OOP у майбутній версії, не останнє з яких полягає в тому, що тема знову і знову з’являється у списку хакерів-wp, і члени основної команди не виявляють інтересу до роблячи так.

Коли я дивлюся на свій особистий досвід програмування та викладання OOP, починаючи з 1990 року, я погоджуюся з основною командою і думаю, що повний OOP був би помилкою. Хоча я колись був завзятим OOP і вважав, що OOP - панацея, я з тих пір вважаю, що він має свою цінність в деяких контекстах, але в інших контекстах це стає у дорозі.

Однією з найбільших проблем, з якою я стикався з OOP, є те, що він змушує розробника запікатися в структурі задовго до того, як розробник насправді зрозуміє, якою повинна бути ця структура, що потім призводить до крихкої проблеми базового класу .

Звичайно, для вибраних аспектів WordPress, OOP має багато сенсу, і якщо ви вивчите основні, ви знайдете такі класи; Widget, List_Tables (в 3.1) тощо.

На даний момент я радий працювати з WordPress в основному не парадигмі OOP, і думаю, що якби це була чисто OOP, WordPress ніколи не отримав би наступного. Чому? Оскільки OOP підніме планку складності для потенційних темер WordPress та розробників плагінів, і це, швидше за все, призвело б до появи не достатньо гнучкої програми для розвитку, оскільки основна команда дізналася більше про потреби своїх користувачів за останній час 6 років.

FWIW.


7
Але ви повинні погодитися, що якби Wordpress був повністю OOP, було б набагато простіше зрозуміти, як все там працює. Для розробника це економить вантажівку часу.
Євген

2
@Eugene - я насправді з цим взагалі не згоден. Я колись вважав, що OOP - кращий спосіб у всіх випадках, але я вже не вірю в це. Я здогадуюсь, що через те, що ви більше налаштовані на OOP, у вас є труднощі з розумінням WordPress, оскільки це не чисто OOP. Але, як конкретний випадок, я нещодавно намагався зрозуміти CodeIgnitor, і мене перейняло вся його складність OOP, тоді як мені здається, що WordPress надзвичайно легко зрозуміти. За аналогією я легко розумію англійську мову; Французька, не дуже. Сказав простіше, це те, що ви знаєте.
MikeSchinkel

1
@Eugene: Я не згоден, що простіше зрозуміти код OOP. Для когось, хто розвивається в OOP так, але для мене, наприклад, використовуючи класичний ANSI C, насправді.
petermolnar

1
Окей. Зрозумів. OOP баб, стиль Wordpress хороший. :) @MikeSchinkel Так. Я використовую обидва ці інструменти у своїй роботі. Якщо ви запропонуєте їх, то я спробую ще раз. Дякуємо за допомогу усім.
Євген

2
Я радий це почути. OOP не буде відповідним шляхом для WordPress.
Кіпріан

4

Багато компонентів WP переписуються в код OOP з кожним новим випуском, і нові компоненти, як правило, використовують його (наприклад, WP_Customizerріч). Але якщо ви запитуєте, чи WP змінить свою архітектуру на цілком об'єктно-орієнтовану - тоді ні, наразі немає інформації, яка б напрошувала таке.

Я б не пішов так далеко, щоб сказати, що це ніколи не відбудеться, але навряд чи це буде найближчим часом, і, мабуть, не через проблему "базового класу" :)

Перш за все, є лише недоліки у використанні процедурного коду через OOP для такої програми CMS, як WordPress, просто тому, що такі додатки мають розширюватися за допомогою плагінів. Додавання суміші функцій та глобальних змінних зовсім не полегшує це. На момент написання програми WP ніхто не міг передбачити, яким стане WP, і було зроблено багато поганих виборів. Зараз це досить важко наздогнати, бо більшість плагінів і тем перестануть працювати належним чином. Реалізація величезного рівня сумісності, щоб уникнути, що, ймовірно, сповільнить WP та додасть ще більше плутанини серед розробників. Також подумайте про мету - полегшити життя розробникам за рахунок користувачів?

Якщо це допомагає - дуже стара дискусія про wp-хакерів, але все ще актуальна для цієї теми, і запропонована громадою ідея , тепер позначена як "територія плагінів". Останнім часом я не помічав іншої активності в цьому напрямку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.