Здравствуйте, Privalov, Вы писали:
S>>То есть запускаю на десктопе десятилетней давности и всё летает? P>Наше приложение на десктопах 7-летней давности идет без тормозов. И в нем на C/C++ от силы сотня строк.
Здравствуйте, genre, Вы писали:
G>Здравствуйте, Sheridan, Вы писали:
S>>Ну так масштабировать надо узкие места. Как правило это БД. При огромном числе запросов, когда начнут кончаться сокеты — пишется балансер, если один из существующих не подходит. Будет необходимость — разберусь. Ранняя оптимизация, знаешь ли, вредна
G>В БД ты не упрешься. Ну если не будешь (надеюсь) писать логику на SQL. А вот что ты планируешь делать если упрешься в процессор?
Намного раньше он упрется в количество потоков (при чем, ждущих завершения IO операций 99,9% времени) — т.е. даже вертикального масштабирования нет.
Решение: асинхронные IO операции (т.е. IOCP или epoll), что, в случае плюсов, означает взрыв на макаронной фабрике из колбэков.
Boost.coroutine не предлагать — оно однопоточное.
Здравствуйте, Sheridan, Вы писали:
S>В качестве сервера — десктоп 7летней давности?
Не, сейчас мы работаем над клиентским приложением. Но с точки зрения C++ какое это имеет значение? В прошлом проекте мы работали над серверным приложением. Примерно 50 метров на Java и пара сотен строк C/C++ — JNI и одна маленькая утилитка. И ничего не тормозило. Сервера — ничего выдающегося.
Здравствуйте, Sheridan, Вы писали:
S>Я еще время на ingress и eve online нахожу
Лучше бы книжек о разработке почитал. Правда, в этом случае не было бы, скорее всего, этой ветки в форуме.
S>А задача нужная. Но не так чтобы "должно быть готово вчера", а "между делом сделай".
Здравствуйте, Sheridan, Вы писали:
S>>> Но мне она не нужна. Лишняя прослойка между данными и результатом. НС>>Ты просто не понимаешь как работает LINQ. Никакой проклейки нет — модель, при желании, может служить строго источником метаданных. linq2db даже умеет в качестве модели использовать интерфейсы, экземпляр которых невозможно создать в принципе. S>Да всё равно это лишняя прослойка. Запрос к БД любой сложности я и сам в состоянии составить, прооптимизировать при возможности (и запрос и БД под запрос если надо) и потом воспользоваться данными.
Веселуха начинается когда строишь сложный фильтр. Например, 10 опциональных параметров, притом некоторые с множественным выбором (например, выбор по нескольким городам). Либо запрос будет жутко неэффективный (параметер вполне может данные из джойнов брать), либо придётся рисовать 2^10=1024 запроса, либо конкатенировать хитровывернутым способом строчку и долго-долго отлаживать.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, Sheridan, Вы писали:
S>>> — пишется балансер, если один из существующих не подходит. НС>>Ты не понимаешь о чем говоришь. S>Будь уверен — столкнусь с проблемой — разберусь.
А система в это время будет стоять? Это значит, контора будет терпеть убытки?
Говорят, в Японии сисадмин получает зарплату, бонусы и прочие плюшки, пока у него все работает. А как только встречает проблему и начинает с ней разбираться — перестает получать.
Я тут как-то слышал, в одном немаленьком банке датацентр сутки простоял. Банк потерял четверть миллиарда долларов. Понимаешь, за сутки! И это были только прямые убытки.
Здравствуйте, artelk, Вы писали:
A>Здравствуйте, genre, Вы писали:
G>>В БД ты не упрешься. Ну если не будешь (надеюсь) писать логику на SQL. А вот что ты планируешь делать если упрешься в процессор?
A>Намного раньше он упрется в количество потоков (при чем, ждущих завершения IO операций 99,9% времени) — т.е. даже вертикального масштабирования нет. A>Решение: асинхронные IO операции (т.е. IOCP или epoll), что, в случае плюсов, означает взрыв на макаронной фабрике из колбэков. A>Boost.coroutine не предлагать — оно однопоточное.
Здравствуйте, Sheridan, Вы писали:
НС>>Подобного это какого? Строгой типизации? Нет, не понял. А что, ты против нее? S>Нет, против лишних объектных прослоек между данными и результатом.
Тебе может по английски написать, а то русский ты не очень понимаешь? Нет никаких объектных прослоек. При желании, если совсем ума нет, можно прямо htmkl строки генерить. Как нибудь так:
Здравствуйте, Sheridan, Вы писали:
НС>>Даже если полей два десятка? S>Да
Ну ну.
НС>>Быстрее и проще как раз использовать LINQ — гарантия отсутствия любых проблем с неправильным индексом поля. S>Нафига усложнять?
Вот и я тоже думаю — нафига?
НС>>Уверен? Давай проверим, недавно в соседнем форуме обсуждалось. Есть табличка вида (messageid:int, userid:int, parentid:int, date:datetime). Нужно составить запрос, который выдает все корневые сообщения (parentid=null), упорядоченные по дате последнего ответа в ветку, начатую указанным userid. Разумеется, на любом уровне вложенности. Простой, так сказать, тестик на знание CTE. S>Еще раз и помеждленее, не понял тз.
Есть топик. В нем есть мое сообщение. На него есть ответы. В том числе и не прямые. И есть соседние ветки, без моих сообщений. Нужно взять дату последнего ответа, но только в тех ветках, в которой наверху есть мое сообщение, и отсортировать топики по ней.
Здравствуйте, ., Вы писали:
.>Веселуха начинается когда строишь сложный фильтр. Например, 10 опциональных параметров, притом некоторые с множественным выбором (например, выбор по нескольким городам). Либо запрос будет жутко неэффективный (параметер вполне может данные из джойнов брать), либо придётся рисовать 2^10=1024 запроса, либо конкатенировать хитровывернутым способом строчку и долго-долго отлаживать.
Была бы задача. А возиться с решением интересно.
Здравствуйте, Privalov, Вы писали:
P>Не, сейчас мы работаем над клиентским приложением. Но с точки зрения C++ какое это имеет значение? В прошлом проекте мы работали над серверным приложением. Примерно 50 метров на Java и пара сотен строк C/C++ — JNI и одна маленькая утилитка. И ничего не тормозило. Сервера — ничего выдающегося.
А тут меня уверяют что с++ и 200 запросов\с не выдержит.
Здравствуйте, Privalov, Вы писали:
S>>Я еще время на ingress и eve online нахожу P>Лучше бы книжек о разработке почитал. Правда, в этом случае не было бы, скорее всего, этой ветки в форуме.
Возможно правда была бы там, если бы я попал в менеджеры и учил бы программеров правильно прикрывать тылы. Слава богам, я попал в админы.
S>>А задача нужная. Но не так чтобы "должно быть готово вчера", а "между делом сделай". P>Через пару-другую лет прототип будет?
Частично уже люди в ней работают. В одном из "модулей"
Здравствуйте, Privalov, Вы писали:
S>>Будь уверен — столкнусь с проблемой — разберусь. P>А система в это время будет стоять? Это значит, контора будет терпеть убытки?
Нету убытков у меня. Запомни это. Денег в этом уравнении нет вообще. Если ты говоришь о программировании за деньги — то это не про меня.
Здравствуйте, Sheridan, Вы писали:
S>Возможно правда была бы там, если бы я попал в менеджеры и учил бы программеров правильно прикрывать тылы. Слава богам, я попал в админы.
Ну да, те, кто сами не умеют, с большой охотой учат других.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Тебе может по английски написать, а то русский ты не очень понимаешь? Нет никаких объектных прослоек. При желании, если совсем ума нет, можно прямо htmkl строки генерить. Как нибудь так: НС>
НС>Никаких прослоек. При полном сохранении типизации.
Ок. Откуда берутся данные? Вот по полочкам разложи, как из этого собирается запрос, как исполняется, откуда берется user и как у него вырастает FirstName, которое становится строкой и склеивается со всем остальным.
а я с удовольствием послушаю.
S>>Тогда потерпи. Волшебной палочки у меня нет. НС>Сколько терпеть то? Полгода?
Ты мне сроки ставишь? о0 А кто ты?
Здравствуйте, Sheridan, Вы писали:
S>Нету убытков у меня. Запомни это. Денег в этом уравнении нет вообще. Если ты говоришь о программировании за деньги — то это не про меня.
У тебя — нет. А у конторы, где ты работаешь — есть. А то, что ты на нее бесплатно работаешь — проблема твоя, а не ее.