Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Впечатления новичка от opencart (код)


proctoleha

Recommended Posts

По сабжу: я не считаю себя супер гуру программером, но знания, навыки в php уверенные. До opencart плотно работал с yii2 и CI

 

И вот шефа убедили запускать новый проект на opencart. Ну я почитал отзывы, CMS популярная, развивающаяся, на шаблоне MVC - скачал, установил, купил шаблон.

 

И полез в код ... Я как бы сказать без мата - был шокирован! Код не документирован! Работаю с phpStorm и где какой класс, откуда ноги растут у того, или иного метода - фиг знает. Пришлось самому прописывать PhpDoc-и, чтобы можно было хоть как-то работать.

 

Второе, что было шоком: прямые SQL запросы. Даже в самых простых проектах, где можно было обойтись без фреймворка, где был чисто самописный код, я создавал обёртку для работы с БД. Потому что мне было в лом писать запросы руками. А в opencart запросы на несколько строк - это нормально. Как должно и быть.

 

Это я к чему? К  тому, что если какой-либо разработчик с опытом планирует начать работать с opencart, чтобы у него не было розовых очков. Код - ужасный. Но работает, и работает неплохо. Но это особенность PHP как языка.

  • +1 1
Надіслати
Поділитися на інших сайтах


Это такая особенность опенкарта. Все так делают

 

 Гениальный ответ! Ради интереса я качнул щас вордпресс и открыл первую попавшуюся страницу. Попробуйте сделать так же, и только потом говорите про всех

 

Во всех пособиях по php обязательно пишут: документируйте свой код, это азы вежливости. Идиоты наверное

Змінено користувачем proctoleha
  • +1 2
Надіслати
Поділитися на інших сайтах


По сабжу: я не считаю себя супер гуру программером, но знания, навыки в php уверенные. До opencart плотно работал с yii2 и CI

 

И вот шефа убедили запускать новый проект на opencart. Ну я почитал отзывы, CMS популярная, развивающаяся, на шаблоне MVC - скачал, установил, купил шаблон.

 

И полез в код ... Я как бы сказать без мата - был шокирован! Код не документирован! Работаю с phpStorm и где какой класс, откуда ноги растут у того, или иного метода - фиг знает. Пришлось самому прописывать PhpDoc-и, чтобы можно было хоть как-то работать.

 

Второе, что было шоком: прямые SQL запросы. Даже в самых простых проектах, где можно было обойтись без фреймворка, где был чисто самописный код, я создавал обёртку для работы с БД. Потому что мне было в лом писать запросы руками. А в opencart запросы на несколько строк - это нормально. Как должно и быть.

 

Это я к чему? К  тому, что если какой-либо разработчик с опытом планирует начать работать с opencart, чтобы у него не было розовых очков. Код - ужасный. Но работает, и работает неплохо. Но это особенность PHP как языка.

:-)  :-)  :-)

жжешь

Надіслати
Поділитися на інших сайтах


Для phpStorm поможет такой скрипт http://siter.org.ua/avtodopolnenie-koda-opencart-v-phpstorm/

нарм тема, жаль что я со свои консерватизмом, наверное не скоро слезу с нотпада :D

По сабжу соглашусь в целом с автором, но также и соглашусь с  deim - код достаточно очевидный, для знатока пыха, чтобы быстро с ним разобраться. 

Но иногда и для знатока достаточно сложно найти где какой класс подключается, тут нужен тупо опыт работы с двиглом. 

 

  • +1 1
Надіслати
Поділитися на інших сайтах


На мой взгляд opencart настолько очевиден, что документировать просто нечего

А в целом вброс уровня двачей для розжига

 

Очевидный то он очевидный, но вот я вижу обращение к методу. По названию понятно, что это за класс, т.к. все действительно очевидно. Я открываю дерево каталогов нахожу нужный класс, открываю, смотрю. Это с недокументированным кодом. 

 

Или я щелкаю по методу, зажав Ctrl и сразу попадаю туда, куда нужно.

 

Есть разница?

 

 

 

Для phpStorm поможет такой скрипт http://siter.org.ua/avtodopolnenie-koda-opencart-v-phpstorm/

 

А вот за это спасибо! Но лучше бы обходиться без костылей

Змінено користувачем proctoleha
Надіслати
Поділитися на інших сайтах


нарм тема, жаль что я со свои консерватизмом, наверное не скоро слезу с нотпада :D

По сабжу соглашусь в целом с автором, но также и соглашусь с  deim - код достаточно очевидный, для знатока пыха, чтобы быстро с ним разобраться. 

Но иногда и для знатока достаточно сложно найти где какой класс подключается, тут нужен тупо опыт работы с двиглом. 

 

Консерватизм это плохо ))

Я вот не представляю, что можно делать без мультикурсора или мгновенного поиска по содержимому файлов. Я когда переходил с нотепада++ на phpStorm, на некоторых моментах вообще сидел с открытым ртом минут 5, типа "а что так можно было?"  :ugeek:

Времени экономит кучу cXntoXnEtgp8eTPRBJlwDam9VvzAFR.png

Надіслати
Поділитися на інших сайтах

Золотые слова Бенедикт Бенедиктович  :eek:

 

Я именно про это! Про экономию времени и удобство в работе

Но это не относится к коду ;)

Да единственный недостаток opencart - "запросы". Но в принципе это не критично

В остальном в opencart на голову современнее архитектура чем в любой php CMS (FW не рассматриваем, там в них до CMS еще пилить и пилить)  И код как раз очень удобный с точки зрения разработчика, привыкшего к современным FW.

Надіслати
Поділитися на інших сайтах

И код как раз очень удобный с точки зрения разработчика, привыкшего к современным FW.

 

Ну-ну, если про современные FW то есть такая архиудобная фича, как пространство имен, namespase, в действительно современных FW. Подсаживаешься  как на наркотик, т.к. действительно удобно. И где opencart и где namespase? Я верю, что это будет, когда-нибудь, скорее всего с версии 3.xxx Но пока этого нет.

Надіслати
Поділитися на інших сайтах


Ну-ну, если про современные FW то есть такая архиудобная фича, как пространство имен, namespase, в действительно современных FW. Подсаживаешься  как на наркотик, т.к. действительно удобно. И где opencart и где namespase? Я верю, что это будет, когда-нибудь, скорее всего с версии 3.xxx Но пока этого нет.

Вы поймите opencart запускают до сих пор и на старом php 5.2 (а сколько еще у хостеров 5.2 стоит :) )

(поверьте столкнулся как раз разработчик когда начал использовать namespace в своих библиотеках, даже не представляете сколько было шума и у скольких пользователей включен php 5.2 по умолчанию, пришлось в FAQ заносить)

Когда CMS очень популярна некоторые фитчи не используют в угоду совместимости.

Да и особо namespace не влияют на функционал opencart, там инструментарий функционала отлично обходится и без него

Надіслати
Поділитися на інших сайтах

Когда CMS очень популярна некоторые фитчи не используют в угоду совместимости.

 

Да согласен я с вами. Всё понимаю, кроме одного: почему у крупного проекта не документирован код.

Надіслати
Поділитися на інших сайтах


Да согласен я с вами. Всё понимаю, кроме одного: почему у крупного проекта не документирован код.

Ну не знаю :) Лично мне не надо - там и так все понятно

Я думаю ни у одного разработчика здесь нету проблем с пониманием.

 

Opencart тем и отличается, что имеет современную, функциональную архитектуру и в тоже время самую простую

Надіслати
Поділитися на інших сайтах

Вот чего я не понимаю как одна известная CMS с такой (под спойлером) архитектурой может быть так "популярна"

Вот там надо описания :ugeek: :-D

global $wp_version, $wp_db_version, $tinymce_version, $required_php_version, $required_mysql_version, $wp_local_package;
require( ABSPATH . WPINC . '/version.php' );

/**
 * If not already configured, `$blog_id` will default to 1 in a single site
 * configuration. In multisite, it will be overridden by default in ms-settings.php.
 *
 * @global int $blog_id
 * @since 2.0.0
 */
global $blog_id;

// Set initial default constants including WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT, WP_DEBUG, SCRIPT_DEBUG, WP_CONTENT_DIR and WP_CACHE.
wp_initial_constants();

// Check for the required PHP version and for the MySQL extension or a database drop-in.
wp_check_php_mysql_versions();

// Disable magic quotes at runtime. Magic quotes are added using wpdb later in wp-settings.php.
@ini_set( 'magic_quotes_runtime', 0 );
@ini_set( 'magic_quotes_sybase',  0 );

// WordPress calculates offsets from UTC.
date_default_timezone_set( 'UTC' );

// Turn register_globals off.
wp_unregister_GLOBALS();

// Standardize $_SERVER variables across setups.
wp_fix_server_vars();

// Check if we have received a request due to missing favicon.ico
wp_favicon_request();

// Check if we're in maintenance mode.
wp_maintenance();

// Start loading timer.
timer_start();

// Check if we're in WP_DEBUG mode.
wp_debug_mode();

...
$GLOBALS['wp_locale'] = new WP_Locale();

Жесть

Это просто 3.14 а не архитектура

Надіслати
Поділитися на інших сайтах

Ну не знаю :) Лично мне не надо - там и так все понятно

 

При чем тут понятно? Мне в лом открывать нужные файлы вручную, мне, как и любому нормальному программеру, удобнее переходить к ним по клику. А для этого код должен быть документирован. И я говорю именно про современную разработку, а не про кодирование в Notepad++

 

И именно про phpStorm - самое популярное решение.

Змінено користувачем proctoleha
Надіслати
Поділитися на інших сайтах


При чем тут понятно? Мне в лом открывать нужные файлы вручную, мне, как и любому нормальному программеру, удобнее переходить к ним по клику. А для этого код должен быть документирован. И я говорю именно про современную разработку, а не про кодирование в Notepad++

Вы пользуетесь штормом я другими IDE - там не надо "документирования" ;)

Это уже личные хотелки

Надіслати
Поділитися на інших сайтах

Вы пользуетесь штормом я другими IDE - там не надо "документирования" ;)

Это уже личные хотелки

 

А поделитесь пожалуйста, какой средой разработки вы пользуетесь, при условии, что она будет работать под убунту. Вопрос очень серьезный, если вас всё устраивает, я тоже потестирую.

Надіслати
Поділитися на інших сайтах


А поделитесь пожалуйста, какой средой разработки вы пользуетесь, при условии, что она будет работать под убунту. Вопрос очень серьезный, если вас всё устраивает, я тоже потестирую.

Под убунту - ничего не могу сказать

Я просто к тому что это сугубо личная хотелка и никакого отношения к коду и функционалу opencart не имеет

Я за все время работы с opencart первый раз встречаю такую "хотелку" документации ядра кода opencart :)

Вот WP тот да, надо документировать - потому что там вообще НЕТ АРХИТЕКТУРЫ. Там просто фарш какого то г.. кода, где без "бутылки" не разберешься :? :roll:

Надіслати
Поділитися на інших сайтах

Я просто к тому что это сугубо личная хотелка и никакого отношения к коду и функционалу opencart не имеет

Я за все время работы с opencart первый раз встречаю такую "хотелку" документации ядра кода opencart :)

 

При чем тут хотелка? Вот есть правила этикета в жизни, считается, что воспитанный человек им должен следовать, хотя бы основным. Вот я пишу код на php. Для паблишера. Я обязательно буду комментировать свой код, это же основы! Основы этикета для ЛЮБОГО языка программирования. PHP не php, какая разница? Это правила хорошего тона, это азы с которых начинается обучение. Всегда документируйте свой код, давайте говорящие имена переменным, соблюдайте единую нотацию при объявлении переменных ... 

 

Или я опять жгу? И эти правила не для программистов?

Змінено користувачем proctoleha
  • +1 2
Надіслати
Поділитися на інших сайтах


...

Или я опять жгу?

Ну как бы да :)

Есть стандарты, а есть рекомендации.

Документирование кода - это рекомендации.

Если честно лично меня документирования "путают", потому что это просто лишняя информация, мешающая видеть весь код на одной странице экрана (к моНАХам такое "документирование")

Так что от документирования есть и вред. Причем иногда гораздо больший чем его "описание"

Документирование надо скорее junior - м.

Для остальных есть доки для разработчиков.

 

Opencart код сделан по стандартам. Причем архитектура настолько проста, что ей не надо документации в коде

Надіслати
Поділитися на інших сайтах

Документирование надо скорее junior - м.

 

Вот есть такой мощный, действительно развивающийся, находящийся в тренде FW Yii2. Задокументировано всё. Вы действительно верите в то, что он написан для юниоров и юниорами?

 

Вот я открываю незнакомый проект, что проще пробежаться глазами по комментам, или вникать в код? Как грамотные комменты могут мешать? Или у вас так много времени, что вы можете себе позволить тратить его впустую/нерационально?

Змінено користувачем proctoleha
Надіслати
Поділитися на інших сайтах


Вот есть такой мощный, действительно развивающийся, находящийся в тренде FW Yii2. Задокументировано всё. Вы действительно верите в то, что он написан для юниоров и юниорами?

 

Вот я открываю незнакомый проект, что проще пробежаться глазами по комментам, или вникать в код? Как грамотные комменты могут мешать? Или у вас так много времени, что вы можете себе позволить тратить его впустую/нерационально?

Давайте не сравнивать FW и CMS

Сравнение явно не уместное ;)

 

Открываете для себя новую CMS ? Прочтите руководство разработчика. Его достаточно.

А вы как обычно хотите "методом тыка" "пробежаться"

 

Документировать надо если код запутанный и не понятный (кстати во многих FW он избыточен и много лишнего "на все случаи жизни"). Opencart фактически упрощенный Symfony. Выкинуто все лишнее и не нужное.

Документировать надо недоcms WP где нету архитектуры вообще.

А в opencart там даже из названия методов и классов все понятно, к тому же они связаны.

А вот вреда от документирования не мало. Не видно на одном экране весь код "блока"! Поэтому тяжело его загрузить весь для понимания в "мозг".

 

Так что документирование кода ядра надо рассматривать в частных случаях.

В opencart - оно не нужно

Надіслати
Поділитися на інших сайтах

Давайте не сравнивать FW и CMS

Сравнение явно не уместное ;)

 

Открываете для себя новую CMS ? Прочтите руководство разработчика. Его достаточно.

А вы как обычно хотите "методом тыка" "пробежаться"

 

Поэтому тяжело его загрузить весь для понимания в "мозг".

 

Так что документирование кода ядра надо рассматривать в частных случаях.

В opencart - оно не нужно

 

Да будет ср@@@ч! У меня много проектов и все на разных движках, неважно CMS это, или FW. И я не должен использовать метод тыка. Я должен найти документацию в интернете, потратить кучу времени на её изучение, вместо того, чтобы  ctrl + click по методу, классу -> пробежался по коду, уложил в голове -> работаем дальше. Чем плох метод тыка? Или в opencart используют какие-то совсем нестандартные стандарты? Что я должен обязательно читать маны по любой фигне? Так нет - все просто и понятно. Только мне приходится терять время для открытия нужных файлов, т.к. нет доков в коде. И если через какое-то время мне придется дорабатывать проект, я опять должен читать доки?

 

И что значит давайте не сравнивать FW и CMS? Я сравниваю не функционал, а документированность кода! И я утверждаю, в  случае моего сравнения, что разработчики Yii2 - это далеко не  юниоры и что в этом FW соглашение об именовании соблюдается гораздо строже, чем в opencart, и что там тоже все прозрачно, что к чему относится. Но тем не менее они документируют код. Им делать нефига? Или они работают по принятым соглашениям? Боле того, в случае с Yii2 доки по большому счету не нужны, т.к. испльзуется пространство имен, и IDE  прекрасно понимает, что к чему относится, работает и автодополнение, и быстрый переход к нужным файлам

 

Конечно писать доки - это рекомендация. Так и правила этикета тоже необязательные нормы поведения. Но почему то нормальные воспитанные люди их соблюдают

  • +1 1
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.