Pull to refresh
2
Electronick@Electronick

User

5
Subscribers
Send message
сейчас SQL используется зачастую там, где нам нужно просто key-value хранилище. просто для того, чтобы упростить установку веб-приложения и не вводить новых компонент.
действительно на базовом веб-сайте SQL нам необходим лишь в паре «модулей», в остальных NoSQL / Key-Value хранилищ будет с избытком.
мне кажется именно с этим связано
Я думаю, в будущем, мы увидим больше комбинированных решений, которые включают SQL и NoSQL.
Я понимаю вас, и имею примерное представление о том, как это происходит. И мой комментарий — это скорее провокация к тексту вашей статьи:
Вы начали очень подробно и доступно с конкреных чисел, и быстро ушли в неконкретные. Статья могла бы быть более информативной, если бы вы привели более детальный рассчет.
А сейчас первая часть статьи по факту сворачивается в «мы вынуждены наценивать 500%, потому что 100% — это наценка производителя, еще 100% съедает транспорт и таможня и последние 100% — расходы на содержание торговой сети и наша прибыль»
Поток сознания. В целом вы конечно верно начали, но когда от прямых чисел перешли к процентам — это выглядело лишь как оправдание.
Если хотите чтобы вас поняли, то приведите примеры более-менее реальных рассчетов, без указания 300% «потому что нужно содержать торговую сеть и персонал». Я не поверю что в 300% не заложены ваши сверх-прибыли.
Я как-то готовил доклад на тему «Нужна ли программисту математика» на одной из провинциальных конференций, общий тезис был таким же :) может опубликую в каком-то виде позже.
Дополню свою мысль:
здесь прозвучало предположение о том, что они остаются связанными в n-м измерении, однако поскольку мы это измерение наблюдать не можем, мы не можем знать какие именно воздействия могут произойти на связь в этом измерении. Как-то так.
да и вообще насколько эта связь крепка
вопрос еще в том, не нарушится ли связанность, при перемещении фотонов со скоростью, близкой к скорости света.
да, как-то так.

было бы удобно использовать несколько «профилей ленты» чтобы читать в загруженное время подписку «самое важное», а в более свободное «обо всем по-немногу»
не очень понравились изменения, было удобно ориентироваться по хабам топиков, если оставлять так, то стоит создать несколько лент с различным приоритетом
оказалось, что возможно и не такое 8)
Смысл в том, что если у вас есть диапазон 2 в который вложен диапазон 1 как-то так:

1 2 3 4 5 6 7 8
2 2 2 2 1 1 2 2

то при попытке получить 7 или 8 ваш алгоритм отработает с ошибкой.
Если рассматривать статью в целом, то можно уместить её в предложении:
Растекаясь мыслью по древу стоит направить свой взгляд в прошлое, и оценить себя, и сделать выводы.

Было бы интересно почитать о различных методиках и способах оценки :) Какой-то более-менее адекватный набор критериев что-ли :)
файл, открывающийся excel-ем — не есть xls документ. Просто умный интерпретатор экселя разгадывает предоставленный ему ребус.
У любой магии есть две стороны.

А представьте, вы захотите для одного из источников данных сменить тип кеширования, для одного или пары его методов. Вам придется вставлять костыль либо в декоратор, либо опять по всему коду исправлять методы.

Вообще было бы логично вообще не использовать префикс cached а навесить декоратор прямо на get-методы. И внутри декоратора научиться отслеживать, когда этот кеш нужно сбросить. Это также плохо совместимо с универсальной магией.
Если я верно понял, то каждый из наших ресурсов должен будет иметь свою подсистему для работы с сессиями аутентификации.
В принципе можно на её место поставить библиотеку, которая будет обращаться к некоторому сервису хранения сессий, а CAS делегировать право на установку cookie с id сессии.
Но, все равно будет требоваться редирект для запроса аутентификации, а когда веб-ресурс содержит контент, который может быть доступен без идентификации, не ясно когда этот редирект должен быть выполнен.
Это был частный случай, вы используете класс, как пространство имен для ваших методов.

Пример было бы намного более приятно использовать, если бы Вы:

1. выделили в отдельный интерфейс работу с данными, н-р:
namespace HerarhySelect;
interface DataSource
{
    public function getParentSiblings($itemValue);
    public function getSiblings($itemValue);
}


2. вынесли html-представление в отдельный файл или так же в помощник и убрали бы оттуда всяческие вхождения javascript, привязавшись только к классам при помощи .live() или реинициализации после ajax-подгрузки.

3. JavaScript оформили бы в виде плагина jQuery (это не сложно), раз уж Вы все равно используете этот фреймворк.
Простите, но что это?
        $num = 0;
        do {
            if($num > 1000)
            break;
            ...
            $num++;
        }
        while($isParentFind);
к тому, что это вводит второй уровень обработки Exceptions. Уровень контроллера действия в дополнении к уровню фронтального контроллера. Сможете ли вы красиво реализовать такое с trigger_error?
Перехватывайте, оборачивайте, и кидайте дальше.

в данном контексте я подразумевал это тоже как способ обработки :)
да, я согласен, что если метод возвращает коллекцию, то он должен возвращать её пустой, если найдено 0 объектов.

Вообще это вопрос проектируемого Вами интерфейса. Иногда нужно возвращать null в случае неудачи, а когда подразумевается, что загружаемый объект _должен_ существовать — Exception.

Согласитесь, конструкция вида
try {
    if ($object = $adapter->findById($objectId)) {
    } elseif ($object = $adapter->findByName($objectId)) {
    } else {
        return null;
    }
} 
catch (Adapter\Exception $e) {
   throw new Exception("Adapter error", Exception::ADAPTER_ERROR, $e)
}


как-то приятнее чем

try {
    $object = $adapter->findById($objectId
} 
catch (Adapter\Exception $e) {
    if ($e->getCode() != Adapter\Exception::NOT_FOUND) {
        throw new Exception("Adapter error", Exception::ADAPTER_ERROR, $e)
    }
    else {
        try {
            $object = $adapter->findById($objectId
        } 
        catch (Adapter\Exception $e) {
            if ($e->getCode() != Adapter\Exception::NOT_FOUND) {
                throw new Exception("Adapter error", Exception::ADAPTER_ERROR, $e)
            } else {
                throw new Exception("Object not found", Exception::NOT_FOUND, $e)
            }
        }
    }
    return $object;
}


Да и работать первый вариант будет быстрее.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity