а) про upwork спасибо. Т.е. если заказчик ушел в игнор, то фрилансер оплату не получает, пока и когда биржа с заказчиком не разберется? Как бы это не совсем тот результат, что я имел в виду, здесь риск на фрилансере, а биржа фактически ни за что не отвечает.
б) "почему биржа должна находить другого исполнителя — непонятно" — чтобы выполнить заказ, разумеется. Как-то я видел, что на биржах, помимо фрилансеров, есть целые команды разработчиков. Почему они могут принимать заказы, а сама биржа не может — непонятно.
Чисто фантазия… Я не фрилансер, просто интересно.
Если бы биржа несла ответственность:
а) за честность заказчика, точнее за оплату работы фрилансера. Если заказчик не оплачивает, то арбитраж с ним с перспективой судебного разбирательства.
б) за результат работы фрилансера. Если фрилансер не справляется, то биржа находит другого специалиста.
То, возможно, такой бирже цены бы не было. Конечно, это уже будет не биржа, а работодатель (фирма-разработчик-консалтер) получается. Но это может быть не по всем заказам, а в качестве отдельной услуги.
Да, в вызове d->area() значение указателя, лежащее в QObject, не меняется, следовательно для компилятора константность QObject соблюдена.
Еще обратите внимание, что во втором случае, когда QObjectPrivate является членом класса QObject, вам пришлось перенести его определение в .h, т.е. раскрыть детали его реализации пользователям QObject. Что не всегда желательно.
Использовать кучу правило или не использовать выбираете вы. Примеров есть кучи, где d на структуру, в контейнере выделенную один раз, указывает.
Не, пусть Йоде будет йоднутое. Короче, вас никто не обязывает выделять на каждый объект отдельную структуру из кучи. В стеке, конечно, выделить так память не получится, но можно заранее отложить память в объекте-контейнере/фабрике под N объектов.
Определение mutable в классе зачастую излишне раскрывает внутреннюю жизнь класса. Если вы делаете класс для внешнего API, то изменения его внутренней структуры, той же технологии кеширования, как в статье, заставляет пользователей вашего API перекомпилировать свои программы.
Поэтому мне больше по вкусу скрытая реализация внутренних данных, как это использовано в Qt.
class ObjectPrivate;
class QObject {
private
QObjectPrivate *d;
public:
// ... any const methods
};
То, что вы отнесли к ложному срабатыванию, зависит от трактовки. Например, новость может звучать так «Банки снижают ставки по кредитам», а новости про конкретные банки будут конкретизировать общую.
До релиза Firefox Quantum остаётся всё меньше времени. Он принесёт множество улучшений в производительности, в том числе сверхбыстрый движок CSS, который мы позаимствовали у Servo.
Принцип "свертки" описан в первой статье, ссылка на нее в начале. В кавычках, потому что она не совсем честная. В классической свертки ядро движется по пикселу исходного изображения за шаг, а я разбил изображение на кусочки, равные размеру ядра, и обработал их один раз.
б) "почему биржа должна находить другого исполнителя — непонятно" — чтобы выполнить заказ, разумеется. Как-то я видел, что на биржах, помимо фрилансеров, есть целые команды разработчиков. Почему они могут принимать заказы, а сама биржа не может — непонятно.
Я же сказал — отдельная услуга.
"… А еще мы выгуливаем собак" ©
Если бы биржа несла ответственность:
а) за честность заказчика, точнее за оплату работы фрилансера. Если заказчик не оплачивает, то арбитраж с ним с перспективой судебного разбирательства.
б) за результат работы фрилансера. Если фрилансер не справляется, то биржа находит другого специалиста.
То, возможно, такой бирже цены бы не было. Конечно, это уже будет не биржа, а работодатель (фирма-разработчик-консалтер) получается. Но это может быть не по всем заказам, а в качестве отдельной услуги.
Еще обратите внимание, что во втором случае, когда QObjectPrivate является членом класса QObject, вам пришлось перенести его определение в .h, т.е. раскрыть детали его реализации пользователям QObject. Что не всегда желательно.
QObjectPrivate, во-первых, не публичный, его структура скрыта, во-вторых, не обязан иметь const методов.
Не, пусть Йоде будет йоднутое. Короче, вас никто не обязывает выделять на каждый объект отдельную структуру из кучи. В стеке, конечно, выделить так память не получится, но можно заранее отложить память в объекте-контейнере/фабрике под N объектов.
Что да, в очередной…
Поэтому мне больше по вкусу скрытая реализация внутренних данных, как это использовано в Qt.
Для русского языка не годится?
Есть какая-то статья для ознакомления?
Похоже, что здесь еще присутствовало неявное требование web-интерфейса. Потому что непонятно, почему не рассматривался Qt.
В любом случае здорово.
На хабре есть перевод "Внутри супер-быстрого CSS-движка: Quantum CSS (aka Stylo)" azymohliad
Принцип "свертки" описан в первой статье, ссылка на нее в начале. В кавычках, потому что она не совсем честная. В классической свертки ядро движется по пикселу исходного изображения за шаг, а я разбил изображение на кусочки, равные размеру ядра, и обработал их один раз.
Я очень надеялся избежать какого-либо научного подхода, потому что в моем случае он был бы наукообразным...