Pull to refresh
4
0
Алексей @LastDragon

Пользователь

Send message
> непонятно зачем? на стадии создания итак известен товар. getItem нужен прежде всего при дальнейшей обработке, когда надо по номеру покупки, узнать что за товар был продан. При этом getItem() переопределённый для каждого типа, избавляет от ещё одного switch

У Вас:

Хотя бы за тем, чтобы разделить 2 класса CPurchaseItem и

Сейчас

По CBilling (к CPurchase тоже можно отнести), возможно, лучшим решением будет сделать отдельную фабрику (не обязательно, но это облегчит понимание кода) для создания биллингов — BillingFactory — все методы этого класса будут статичными (BillingFactory::createBillingByType, BillingFactory::getBillingTypeByRequest и т.д.), в нем же можно реализовать метод для добавления новых биллингов, тогда отпадет необходимость при добавлении новых типов модифицировать код. Будет примерно так — pastebin.ru/308746

Интересен 3 вариант, т.к. можно будет упростить реализацию.
> Сразу оговорюсь, в другом языке, можно было обойтись абстрактным классом и его наследниками, но поскольку в PHP нельзя переопределить статическую функцию, предков разделили на интерфейс + базовый класс.

Это и сейчас можно, вот так, например, pastebin.ru/308744

В Вашем варианте можно сделать «class CPurchase implements InterfacePurchase» что позволит переложить проверку сигнатур методов на PHP.

Я один заметил, что при выполнении этот блок
> case self::PURCHASE_SHOP:$purchase = new CPurchaseShop();
> case PURCHASE_ACCOUNT: $purchase = new CPurchaseAccount();
> case PURCHASE_RAIT: $purchase = new CPurchaseRait();
> //…
> default: throw new ExceptionUnknownPurchaseType (__CLASS__);

работает совсем не так, как ожидается?
> Кроме того, какая вероятность того, что автор согласится за деньги что-то допилить?

Ничего не мешает спросить об этом самого автора, и даже если откажется, всегда можно найти программиста который сможет это сделать (не бесплатно естественно).

Если фича полезная можно найти единомышленников и скинуться на её реализацию.

Можно самому помочь.

Вариантов на самом деле очень много.

> Тогда теряется весь смысл open source.

Выложите купленный код в общий доступ, тем самым Вы поможете проекту и поддержите идеологию open source.

> Потому что платить за опен сорс не вижу смысла

Так не платите, никто не заставляет. Но в таком случае — как можно чего то требовать от автора? Он Вам ничего не должен.

Все IMHO, естественно.
> Мне не хватает связи задач между проектами.

Включите в настройках «Ситуация по задачам» -> «Разрешить пересечение задач по проектам». После этого можно будет задачи как угодно связывать. (Redmine 0.9)
Я с Вами согласен, разве что забыли добавить пометку активной страницы.

Но почему-то мне кажется, что большинство напишет как в первом примере (если приложения не только для себя это рано или поздно случится, т.к. проверять всех кто правит шаблоны не будешь). Разбираться в подобных шаблонах у меня желания нет, т.е. для себя я сделал вывод: в тех приложениях где нельзя гарантировать определенный уровень XSLT верстальщика (а они есть?) предпочтительнее обычный шаблонизатор.
Это шаблон из бесплатной редакции HostCMS, т.е. реальный пример того с чем придется столкнуться при работе XSLT.
Я не говорил что XSLT плохой, преимущества у него есть и их глупо отрицать. Но вот синтаксис удобным назвать нельзя и в больших шаблонах получается действительно мешанина.

Для примера, часть реального шаблона: pastebin.org/55704

Удобно? Понятно? Мне — нет.

Работал с XSLT немного (верстка для HostCMS), по-моему главный его недостаток в том, что неудобно читать шаблоны — мешанина из тэгов (разные пространства имен не спасают).
Если не ошибаюсь, это не проблема, по крайней мере, в 5.2.* это, похоже, сознательно убрано. Нашел bugs.php.net/bug.php?id=45691, возможно, как раз из-за него.
WinCacheGrind — пробовал с последним xdebug ни один лог не открыла, после чего была выкинута.

Поставил CachegrindVisualizer — удобно и главное работает, но кроме Adobe AIR понадобиться graphviz и zgrviewer.

Работа происходит следующим образом:
1) Запускаем скрипт, получаем лог
2) Открываем его в CachegrindVisualizer (если файл большой может зависнуть)
3) После того как CachegrindVisualizer отработал, в той же директории, находим *.dot, который открываем в zgrviewer
4) Смотрим.

Если *.dot большой ждать нужно долго или может не хватить памяти. В последнем случае узнать об этом проблематично, т.к. выброшенное исключение отобразиться в консоле (т.к. zgrviewer запускается через bat файл), которая закрыта окном.

Если нужно просмотреть много логов — надоедает.
Случайно eAccelerator не включен? У меня (PHP 5.2.10, Apache 2.2.11, WinXP SP3) проблема решилась установкой eaccelerator.optimizer = «0».
Меня больше другое удивляет: зачем мне как радиотехнику вообще пытались преподавать паскаль и html?!

Пытались, потому что те, кому это было интересно ничего нового не узнали, а те, кто не знал, лучше бы и не знали, т.к. знания которые нам (про других не знаю) давали – очень поверхностны и устаревшие на пару лет как минимум. Т.е. практической пользы от этого не было никакой.
Так интереснее :)

Тем более обе (я про программирование) специальности полезны и в некоторых областях довольно тесно пересекаются (микроконтроллеры, ПЛИС-ы и тд.).

+ есть несколько знакомых программистов (не только web), которые в прошлом были радиотехниками (или увлекались этим). Им (как и мне) это не мешает, скорее даже наоборот.

Рад за тех у кого на первых двух курсах было время чтобы делать что-то кроме учебы. К сожалению, в моем случае на 1 и 2 курсах времени на что-то еще не оставалось. (специальность Радиотехника, сам web-программист).

На третьем стало по легче, на этом курсе действительно можно пойти работать и довольно успешно. У нас этот курс был переломным — кончались общие предметы (большинство из которых мне тогда казались лишними, впрочем сейчас считаю, что я ошибался, т.к. сейчас времени даже на простое знакомство с ними нет) и начинались по специальности.

Четвертый курс — переломный — на нем окончательно выбираешь что для тебя важнее — учеба или работа. Как правило, те кто выбирает первый вариант (я, например) большую часть времени отдают учебе, работе остается минимум времени. Если важнее работа (причины могут быть разные — нужны деньги, учиться надоело, пришло понимание что выбранная специальность не пригодиться) — тогда учебе минимум времени, но как правило сессии сдаются очень удачно (не зря же работаем:)?).

Пятый курс — продолжение 4 курса, т.к. если учился, то диплом делается без проблем (хотя и отнимает много времени), если работал — есть наработанные контакты среди преподавателей…

По поводу «взлета» — это может быть как пятый курс, так и время после окончания учебы (если не идти в армию), по-моему потеря одного года это не страшно (если он был потрачен с пользой).
Я не говорил про алкоголь, т.к. и сам употребляю :), хотя и не помню чтобы отец пил при мне.

> Я даже пообщеал ему не пить… ***И пил***, а теперь не пью…"

про это и речь, только в случае с наркотой последствия хуже.

> И я все это сам, самостоятельно!
Вас, знание того, что это плохо не оставило. Почему Вы думаете, что в случае с наркотой все будет по другому? (тем более когда вот она, на столе лежит).
Читаю комментарии и становится страшно… П****ц…

Все, кто за легализацию наркотиков и подобных вещей, а также за то, чтобы ВАШИ дети сами выбирали — не пишите йухню!

Если Вы в самом деле верите, что ВАШИ дети намного лучше/умнее чем другие и не будут употреблять всё это — купите героина/траву/<еще что-то> положите на видное место у СЕБЯ ДОМА, объясните СВОЕМУ ребенку что и как (в плане использования) и главное — не забудьте сказать, что это ЕГО выбор употреблять или нет. После этого спокойно можете ехать на недельку другую отдыхать куда нибудь на море…

Слабо?
12 ...
63

Information

Rating
Does not participate
Location
Россия
Registered
Activity