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

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


proctoleha

Recommended Posts

Господа, спокойнее...

Полностью здесь согласен с Марком. Открываешь любой файл движка и читаешь код как книгу. Нечего там комментировать.

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

 

Так вот: СОВРЕМЕННОЕ сообщество разрабов живёт несколько по др. принципам. Они уважают и себя и других.

Я смотрю вы не читаете ничего

Про ваше "уважение" мы уже все увидели.

Повторю:

https://opencartforum.com/topic/68417-впечатления-новичка-от-opencart-код/page-3#entry632700

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

Господа, спокойнее...

Полностью здесь согласен с Марком. Открываешь любой файл движка и читаешь код как книгу. Нечего там комментировать.

Так об этом и говориться ТС -у

Но суть в том что у ТС phpstorm (кстати мне он не понравился уже давно) которому надо документирование методов (но это его личные проблемы)

 

Но вместо того чтобы как то читать ответы и логически рассуждать ТС вдался до того что начал всех называть (дословно)

"ущербными, пукающими, обосравшимися, с кастрюлей на голове"

 

shoputils ну что еще можно ответить по этому поводу ;)

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

Так об этом и говориться ТС -у

Но суть в том что у ТС phpstorm (кстати мне он не понравился уже давно) которому надо документирование методов (но это его личные проблемы)

 

Да ну? Самая популярная IDE вам не нравится?  Где есть всё? Даже то, чего быть не может? Может вы слегка закостенели? Требования оформлять phpDoc - это не блажь.

 

Это правила этикета, в программировании.

 

Или у вас нет $100 на её покупку? Мне вас искренне жаль. Откройте для себя действительно нормальную среду программирования, наступив на горло своей жабе.

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


Да ну? Самая популярная IDE вам не нравится?  Где есть всё? Даже то, чего быть не может? Может вы слегка закостенели? Требования оформлять phpDoc - это не блажь.

 

Это правила этикета, в программировании.

А может она просто не особо подходит для php проектов

Да для Android проектов и т п она отлично подходит.

И нету таких ТРЕБОВАНИЙ

Есть РЕКОМЕНДАЦИИ

Читать умеете и разницу улавливаете или опять приведу нелицеприятную ссылку на вики

 

Знаете ...

К opencart -у я пришел после ASM, Visual C, C++, Game developer, WP, Joomla, Magento, Presta (я не считаю себя гуру или супер пупер программистом, наверняка есть и гораздо лучше) и когда я открыл код opencart мне не надо было даже руководства разработчика или какого то документирования - я его читал как книгу.

Что там вообще "документировать" ?

Есть рекомендация только, а не требования - не путайте это.

Так я вам ответил, что за НЕ НУЖНУЮ простыню "документирования" можно получить и в табло, потому что из-за неё не видно всего кода на рабочей области экрана.

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

А может она просто не особо подходит для php проектов

Да для Android проектов и т п она отлично подходит.

И нету таких ТРЕБОВАНИЙ

Есть РЕКОМЕНДАЦИИ

Читать умеете и разницу улавливаете или опять приведу нелицеприятную ссылку на вики

 

Знаете ...

К opencart -у я пришел после ASM, Visual C, C++, Game developer, WP, Joomla, Magento, Presta (я не считаю себя гуру или супер пупер программистом, наверняка есть и гораздо лучше) и когда я открыл код

 

 Ну услышьте меня, пожалуйста: да я читаю код, мне всё понятно, но мне влом тыкать по дереву меню для ОТКРЫТИЯ нужного файла. Мне жаль этих минут! Очень жаль! Они слишком дорого стоят :(

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


 Ну услышьте меня, пожалуйста: да я читаю код, мне всё понятно, но мне влом тыкать по дереву меню для ОТКРЫТИЯ нужного файла. Мне жаль этих минут! Очень жаль! Они слишком дорого стоят :(

Ну это ваша личная проблема  и "вашего" IDE

Но никак не opencart (о чем вы написали в первом посте)

Вам четко разъяснили "почему" в opencart не документируются.

В итоге вы всех обозвали "ущербными, пукающими, обосравшимися, с кастрюлей на голове"

И еще "обиделись"  :ugeek: 

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

Раз жаль времени, может лучше пока не поздно делать проект на другом движке? Сэкономите много времени. Или надо все бросить и помчаться документировать персонально для вас?

Вот меня совсем не напрягает открыть 3 - 6 файлов, нужных для работы над текущей задачей, в Notepad++ и переключиться старым дедовским способом с помощью большого и среднего пальца левой руки между нужными файлами, FTP-клиентом и браузером. Думаю, большинство также работает.

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

И еще "обиделись"  :ugeek:

 

Я вас умоляю: если мне что-то не нравится, то абсолютно не значит, что не не моя точка зрения не имеет права на существование. Я как-то перерос подростковый возраст. Но опять же я оставляю за собой право остаться при своих. 

 

И кстати я кидал намёки про ущербность .... но не явно. 

 

Это тоже надо уметь :)

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


Вот меня совсем не напрягает открыть 3 - 6 файлов, нужных для работы над текущей задачей, в Notepad++ и переключиться старым дедовским способом с помощью большого и среднего пальца левой руки между нужными файлами, FTP-клиентом и браузером. Думаю, большинство также работает.

 

А вам вообще понятен такой баш скрипт:

#!/bin/bash

echo -e "Введите имя удаленного пользователя"
read USER_NAME

echo -e "Сайт, без домена первого уровня (должно быть соответствие локального и удаленного, например example.loc и example.ru)"
read SITE

echo -e "Домен 1 уровня для удаленного (ru, com)"
read DOMEN

echo -e "Откуда, куда копировать? На локальный? (l) На удаленный? (r)"
read LOC_REM

echo -e "--delete include? (--delete or '')"
read DEL

DIR_REMOTE=/var/www/$USER_NAME/public_html/$SITE.$DOMEN
DIR_LOCAL=/var/www/alex/public_html/$SITE.loc

case $LOC_REM in
	r)
		rsync -avzhe "ssh -p 2904" "$DEL"  $DIR_LOCAL/	[email protected]:$DIR_REMOTE			
	  ;;		
	
	l)
		rsync -avzhe "ssh -p 2904" "$DEL" [email protected]:$DIR_REMOTE/ $DIR_LOCAL
	  ;;	  
esac

exit 0

Вы вообще можете представить, что можно работать без протокола ftp? Что это гораздо быстрее и удобней?

 

Вот более 90% серверов работают под Линуксом. А у многих разработчиков - маздай. Вот как так может быть, мне не понять.

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



А вам вообще понятен такой баш скрипт:

К чему вопрос?

 

$i = 2 - $i;

$i++;

 

вам такой скрипт понятен?

 

Мне? да.

 

А кому-то потребуется его объяснять и комментировать.

 

но такие методы getProduct и подобные объяснять не надо

 

И.. документировать не надо..

 

или вот

/* PHP version validation */
if (version_compare(phpversion(), '5.5.0', '<') === true) {

НАХУА?

 

или вот

/**
 * Create value-object \Magento\Framework\Phrase
 *
 * @return \Magento\Framework\Phrase
 */
function __()
{

Что вам сказало документирование?

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

К чему вопрос?

 

$i = 2 - $i;

$i++;

 

вам такой скрипт понятен?

 

Мне? да.

 

А кому-то потребуется его объяснять и комментировать.

 

1. Я отвечал не вам

 

2. Для тех кто в танке, без обид пожалуйста: я говорил про быстрый переход к классу/методу

 

Я сжую свои потные недельные носки, если вы мне покажете IDE которая на это способна без PhpDoc-ов

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



Про документирование кода, независимо от его сложности?

Зачем?

 

Поясните!

Пример приведен..

 

Потому как, мне как разработчику, в том числе, как сказал Марк, удобно когда код функции вмещается на один экран (максимум - два)

При просмотре чужого "документированного" кода мне приходится листать по 2-3 страницы

 

Если документировать, то

документировать с примером вызова

    /**
     * Decode a given ACE domain name
     * @param    string   Domain name (ACE string)
     * [@param    string   Desired output encoding, see {@link set_parameter}]
     * @return   string   Decoded Domain name (UTF-8 or UCS-4)
     */
    public function decode($input, $one_time_encoding = false)
    {

Но такой уровень документирования для универсального использования, с использованием библиотеки для ВСЕХ

 

Но документировать код OC не вижу смысла

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

Зачем?

 

При просмотре чужого "документированного" кода мне приходится листать по 2-3 страницы

 

Но документировать код OC не вижу смысла

 

Вот опять 25! Вот я начал работать с новой системой. Мне пофигу один экран, два... Я хочу прочитать и понять как что работает. Я хочу переходить к нужным мне классам/методам по одному клику и всё собственно ... 

 

Я не хочу лезть в доки в инете, я и так всё пойму ....

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


да что ж это такое

 

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

 

В каком месте ужасный код?

 

 

 

 

Второе, что было шоком: прямые SQL запросы.

Что такое?

 

я создавал обёртку для работы с БД.

 

 

И в OC ее нет?

$this->db->query - что это если не обертка?

Ну.. тут есть конечно о чем поговорить.. но это к делу не относится.

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

да что ж это такое

 

В каком месте ужасный код?

 в OC ее нет?

$this->db->query - что это если не обертка?

Ну.. тут есть конечно о чем поговорить.. но это к делу не относится.

 

Странно, что приходится вам описывать очевидные вещи.

 

Вот, например, я открыл свой старый проект на CI, перешёл в каталог модели и вижу код:

    public function get_ost($art)
    {
        $t = $this->db->select('ostatok')->from('prod')->where('art', $art)->get()->
            row_array();
        return $t['ostatok'];
    }

Что тут непонятного? Есть класс active_record в котором всё абсолютно прозрачно, и не надо ломать голову, читать:

$result = $this->db->query("SELECT FROM ... WHERE ...");

return $result->row();

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

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


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

Это ваша проблема

 

$t = $this->db->select('ostatok')->from('prod')->where('art', $art)->get()->

row_array();

 

Потому что такая колбаса ничуть не хуже  прямого запроса.

Ну.. у меня по этом есть особое мнение, что конструктор запросов нужен, но это не вопрос новичка.

 

А пояснение по сути простое

 

Каждая переменная попадающая в запрос должна быть замаскирована, в приведенной вами колбасе маскирования нет

 

 

Так понятно?

 

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

Идите пободайтесь с Даниэлем.

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

Это ваша проблема

 

А пояснение по сути простое

 

Каждая переменная попадающая в запрос должна быть замаскирована, в приведенной вами колбасе маскирования нет

 

Так понятно?

 

Если вы действительно программист, почему вы решили, что в запрос я передаю необработанные данные? Из моего куска кода это не следует. Это именно кусок. Кода.

 

Вот есть такое выражение: учим матчасть. Это я так - вслух. 

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


Вы привели код, я не увидел маскирования, впрочем в примерах, я также иногда не привожу.

 

Я вам показал, что ваша колбаса, ничуть не лучше строки с запросом. Но и не хуже. Но в этой системе (ОС) она не применяется.

Все! Принимайте правила игры.

 

Матчасть учить вам. (вслух) И этой матчастью есть элементарный код не требующий  комментирования.

 

Если посмотреть в базовый код ОС, то там даже условия (if) четко прослеживают источники переменных, и условий.

 

оффтоп
Эх, жалко, недавно удалил письмо трехлентей давности. Мне прислали задание. Одним из условий было - использование phpDoc, кроме того - при необходимости воспользоваться готовыми библиотеками. Само задание яйца выеденного не стоило (парсинг xml). Я его отправил, в примере была использована simplexml(или что-то подобное). А в ответ получил - у вас излишнее документирование кода. На что товарисчи были посланы.

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

Документировать код надо в том случае если код не понятен интуитивно

 

Ну, возьмём, например, какой-то метод в какой-то модели, где параметры передаются через массив $data. Как нам узнать, какие там могут быть параметры (имена) и какие у них могут быть значения? Да, узнать достаточно просто - просмотреть полотнище кода этого метода выискивая глазами все вхождения элементов из $data и по контексту пытаясь угадать, что там может быть.

Либо искать, где этот метод используется в движке и смотреть, чем там заполняется массив параметров (а в разных местах он может заполняться разным набором элементов)

 

И это всё конечно же "намного лучше", чем если б перед методом просто был комментарий содержащий список всех возможных элементов в $data и их возможных значений.

 

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

 

 

У opencart многие классы повторяются, но лежат в разных каталогах.

 

Повторяются только между admin и catalog. В остальном можно положиться на название класса, просто учитывая, что оно относительно текущей директории (admin или catalog).

 

 

 

phpstorm (кстати мне он не понравился уже давно)

 

А есть для пыха что-то лучше?

 

 

 

 

А вам вообще понятен такой баш скрипт:

 

А зачем, если в phpStorm есть автовыгрузка при сохранении и при коммите?

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


public function get_ost($art)
    {
        $t = $this->db->select('ostatok')->from('prod')->where('art', $art)->get()->
            row_array();
        return $t['ostatok'];
    }

Нет, спасибо, уж лучше буду читать SQL запросы 

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

public function get_ost($art)
    {
        $t = $this->db->select('ostatok')->from('prod')->where('art', $art)->get()->
            row_array();
        return $t['ostatok'];
    }

Нет, спасибо, уж лучше буду читать SQL запросы 

 

а так

$t = $this->db
->select('ostatok')
->from('prod')
->where('art', $art)
->get()

И заметьте - DB_PREFIX нет, мало того, исключены ошибки при SELECT * FROM " . DB_PREFIX. "order

 

Но это не в этой теме.

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

public function get_ost($art)
    {
        $t = $this->db->select('ostatok')->from('prod')->where('art', $art)->get()->
            row_array();
        return $t['ostatok'];
    }

Нет, спасибо, уж лучше буду читать SQL запросы 

 

Это просто очень плохой пример. В реальности Active Record намного удобней, понятней и читабельней, чем голый SQL.

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


Это просто очень плохой пример. В реальности Active Record намного удобней, понятней и читабельней, чем голый SQL.

И замечу легче брать привязку для ocmod,  а также "разбирать" части запросов (к примеру для фильтров)

Хотя есть и нюансы

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

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

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

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

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

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

Вхід

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

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

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

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

Important Information

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