Здравствуйте, Ночной Смотрящий, Вы писали:
НС>При одном пользователе? НС>Масштабируемость? Не, не слышал.
При куче пользователей. Сессиями занимается сама cppcms, я же пишу как бы в рамках одной сессии.
S>>Были сомнения что веб-приложения на с++ написать нельзя? Я эти сомнения развеял. НС>URL можно, чтобы на твой развей поглядеть?
Пока что нет, некоторые вещи не готовы, и я занимаюсь пока внутрикорпоративным веб-приложением.
Здравствуйте, genre, Вы писали:
S>>Это есть, их и соблюдаю. G>Есть да не то. У тебя есть требование "хочу чтобы этот кусок кода работал быстро". А это называется не написание работающего софта, а удовлетворение собственных технических амбиций.
Называй как хочешь
G>И это мы еще даже не заикнулись о требованиях к маштабированию. На нем твой проект может просто закончится.
Что имеется ввиду?
G>>>Слепи прототип, померяй. Возьми адекватный требованиям инструмент и твоя система будет у пользователей гораздо быстрее. S>>Уже частично в работе. В смысле — люди уже местами пользуются G>Что-то мне подсказывает, что это "частично" очень надолго.
Зависит от количества основной работы.
G>>>Ты не понял. Код который использует данные из базы не должен знать ничего про sql. Он должен делать типизированные вызовы типа getUsers(). S>>У, нет. В таком случае этих getUsers будет несколько вариантов. G>Будет. И может даже довольно много вариантов. Но как только ты задашь себе вопрос например "а нужно ли мне оптимизировать этот кусок кода и если нужно то как же мне померять его скорость" или к примеру у тебя появится странное, на первый взгляд, желание написать тесты, то окажется, что декомпозиция это не просто благо, а практически серебрянная пуля в твоем случае.
Это не оптимизация кода. Это оперирование только теми данными, которые нужны на данный момент.
G>Не говоря уж о дублировании кода, поиске багов и прочем и прочем.
Никакого дублирования, откуда?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, Sheridan, Вы писали:
S>>Понимаешь, какая штука... На распарсинг шаблона страницы с заменой %переменных%, с разворачиванием циклов (записи, комментарии) и прочей лабудой откусится кусок процессорного времени, который мог бы потратиться на что то полезное, например на генерацию еще одной страницы другому клиенту. НС>Поэтому в современных фреймворках для компилируемых языков страница при первом обращении компилируется. А при желании ее можно скомпилировать в момент деплоймента или даже при компиляции веб-приложения.
Я рад. Но не имею возможности закупать сервера под одно приложение второстепенной важности.
S>>Да, у меня в проекте хтмл генерируется прямо в коде. НС>Ты не поверишь, но в каком нибудь ASP.NET страница тоже генерируется прямо в коде. Разница в том, что этот код никто руками не пишет.
Тем более еще и закупать на сервера серверную винду.
S>>А ты в курсе про байку, в которой говорится что если разработчик не уверен в необходимости/правильности чегототам (поведения, меню, вида), он добавляет новую опцию в настройки? НС>Байка в качестве аргумента? Достойно Шеридана.
Попал в яблочко, судя по реакции
Здравствуйте, Sheridan, Вы писали:
G>>Есть да не то. У тебя есть требование "хочу чтобы этот кусок кода работал быстро". А это называется не написание работающего софта, а удовлетворение собственных технических амбиций. S>Называй как хочешь
Да мне вообще все равно. А вот тех кто будет пользоваться твоим творением жалко.
G>>И это мы еще даже не заикнулись о требованиях к маштабированию. На нем твой проект может просто закончится. S>Что имеется ввиду?
Ну что ты будешь делать если добавится еще 100 пользователей? Или (предположим не добавится) когда база станет настолько большой, что все начнет тормозить?
G>>Не говоря уж о дублировании кода, поиске багов и прочем и прочем. S>Никакого дублирования, откуда?
А у тебя ровно в одном месте есть выборка из, допустим, таблицы users?
Здравствуйте, Privalov, Вы писали:
P>Понимаешь, какая штука. Допустим, ты где-то слегка ошибся в HTML-коде. Например, написал <a href='/tasks/add'>Саздать задачу</a>. Так вот: исправление такой ошибки может занять пару недель. Потому что ни один вменяемый менеджер проекта никода не выпустит в production версию без полного цикла тестирования. А, как ты говоришь, перекомпиляция — это построение новой версии. Такие дела.
Это никуда не годится. А чем собственно html-код принципиально отличается от любого другого кода? Если ошибся, поправь, закоммить, попроси ревью, пройди авто-тесты, дай тестеру проверить и только потом на продакшн. А то уже не раз наблюдал как такие ловкие поправляльщики через ftp на продакшене тупо ошибались, промазывали по кнопке. Поправляешь одну буковку, но не замечаешь, что писал в окно чата и что-то случайно попало в окно с кодом, и всё нафиг поломалось, да ещё и не сразу заметно, т.к. место ошибки не связано с местом правки.
Если у вас выпуск хотфикса занимает две недели, так это у вас что-то не так в консерватории, там и править надо, а не в html-файлах.
2Sheridan. Код ок, но мешанина sql и html в одном файле — я думал этим уже все переболели лет 15 назад. SRP и прочий SOLID, однако.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, Sheridan, Вы писали:
S>Я рад. Но не имею возможности закупать сервера под одно приложение второстепенной важности.
А зачем тебе закупать сервера?
НС>>Ты не поверишь, но в каком нибудь ASP.NET страница тоже генерируется прямо в коде. Разница в том, что этот код никто руками не пишет. S>Тем более еще и закупать на сервера серверную винду.
ASP.NET официально поддерживается на Моно. И есть аналоги для Java.
НС>>Байка в качестве аргумента? Достойно Шеридана. S>Попал в яблочко, судя по реакции
Здравствуйте, Sheridan, Вы писали:
S>У, нет. В таком случае этих getUsers будет несколько вариантов. Ибо тут нужны юзеры с должностями, там с последней датой посещения, здесь с количеством исполненых заданий, заданий в работе итд.
Вот поэтому для работы с БД и нужно выбирать языки, в которых есть механизмы цитирования кода, а не С++.
Здравствуйте, Sheridan, Вы писали:
S>Ну, как я и сказл — дело в отсутствии опыта и знаний, но не в с++.
В отсутствии необходимой инфраструктуры и переоценке собсовенных сил в возможности ее создания. Этим грешат не только студенты, но и вполне взрослые дядьки.
S>>>Вот и я об чём. А мой проект будет вполне себе работать на raspberry pi, при условии конечно что БД будет на нормальном сервере. P>>Дак причем тут клиент? ОН каким угодно может быть. К нему другие требования. S>Я как раз про серверную часть
Ты на raspberry pi сервер запускаешь?
S>Нет, я не планировал распределять серверную часть между несколькими серверами. Нет необходимости, по крайней мере в этом проекте.
А надо. Как правильно отметил ниже Ночной Смотрящий это называется масштабируемость. Все, кто занимается серверным софтом, с этим сталкиваются. Так что готовься.
После того, как я перешел с серверов на клиенты, я термин "масштабируемость" сразу и вспомнить не смог.
P>>А чем серверный код заниматься должен помимо обслуживания запросов от клиентов? S>Так мы дойдём до "А чем серверный код заниматься должен помимо формирования одних данных исходя из других?". Слишком общий вопрос, тут ответ один: "ничем". Безотносительно назначения приложения.
А что, позволь спросить, делает серверный код, написанный тобой, кроме обслуживания клиентских запросов?
S>Гдето я читал байку про геймдев, где упёрлись в ограничение по памяти.
Про оптимизацию холостого цикла — это не байка. Лаптев подтвердит, он тоже эту историю знает. И что общего у этого рассказа с твоей байкой?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>>>Масштабируемость? Не, не слышал. S>>При куче пользователей. НС>Тесты в студию. Хотя бы их результаты.
Что именно ты хочешь увидеть?
НС>>>URL можно, чтобы на твой развей поглядеть? S>>Пока что нет НС>Тогда ты пока что ничего не развеял.
Что именно ты хочешь увидеть?
Здравствуйте, genre, Вы писали:
G>Здравствуйте, Sheridan, Вы писали:
G>>>Есть да не то. У тебя есть требование "хочу чтобы этот кусок кода работал быстро". А это называется не написание работающего софта, а удовлетворение собственных технических амбиций. S>>Называй как хочешь G>Да мне вообще все равно. А вот тех кто будет пользоваться твоим творением жалко.
Ну-ну...
G>>>И это мы еще даже не заикнулись о требованиях к маштабированию. На нем твой проект может просто закончится. S>>Что имеется ввиду? G>Ну что ты будешь делать если добавится еще 100 пользователей? Или (предположим не добавится) когда база станет настолько большой, что все начнет тормозить?
Поставлю еще один сервер БД
G>>>Не говоря уж о дублировании кода, поиске багов и прочем и прочем. S>>Никакого дублирования, откуда? G>А у тебя ровно в одном месте есть выборка из, допустим, таблицы users?
Нет. Но двух одинаковых выборок тоже не встретишь.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Вот поэтому для работы с БД и нужно выбирать языки, в которых есть механизмы цитирования кода, а не С++.
Пример пожалуйста.
Здравствуйте, Ночной Смотрящий, Вы писали:
S>>Можно и так, движок позволяет. Только поиск по int индексу все таки быстрее, чем поиск по std::string индексу. НС>Вот поэтому надо выбирать языки, в которых есть LINQ, а не С++.
Объектную модель записей БД я и сам в состоянии построить. Но мне она не нужна. Лишняя прослойка между данными и результатом.
Здравствуйте, Privalov, Вы писали:
S>>Ну, как я и сказл — дело в отсутствии опыта и знаний, но не в с++. P>В отсутствии необходимой инфраструктуры и переоценке собсовенных сил в возможности ее создания. Этим грешат не только студенты, но и вполне взрослые дядьки.
Я так о сих пор и не пойму, при чем тут с++...
P>>>Дак причем тут клиент? ОН каким угодно может быть. К нему другие требования. S>>Я как раз про серверную часть P>Ты на raspberry pi сервер запускаешь?
Пока еще не пробовал, железяка занята — крутит местный ТВ канал по кругу со всякой рекламой. Получится купить еще пару pi — попробую.
S>>Нет, я не планировал распределять серверную часть между несколькими серверами. Нет необходимости, по крайней мере в этом проекте. P>А надо. Как правильно отметил ниже Ночной Смотрящий это называется масштабируемость. Все, кто занимается серверным софтом, с этим сталкиваются. Так что готовься. P>После того, как я перешел с серверов на клиенты, я термин "масштабируемость" сразу и вспомнить не смог.
Ну так масштабировать надо узкие места. Как правило это БД. При огромном числе запросов, когда начнут кончаться сокеты — пишется балансер, если один из существующих не подходит. Будет необходимость — разберусь. Ранняя оптимизация, знаешь ли, вредна
P>>>А чем серверный код заниматься должен помимо обслуживания запросов от клиентов? S>>Так мы дойдём до "А чем серверный код заниматься должен помимо формирования одних данных исходя из других?". Слишком общий вопрос, тут ответ один: "ничем". Безотносительно назначения приложения. P>А что, позволь спросить, делает серверный код, написанный тобой, кроме обслуживания клиентских запросов?
Вопрос риторический. Я об этом. "С какой стороны клавиатуры находится клавиша esc?"
S>>Гдето я читал байку про геймдев, где упёрлись в ограничение по памяти. P>Про оптимизацию холостого цикла — это не байка. Лаптев подтвердит, он тоже эту историю знает. И что общего у этого рассказа с твоей байкой?
Тоже про программирование, разве нет?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>А зачем тебе закупать сервера? НС>ASP.NET официально поддерживается на Моно. И есть аналоги для Java.
То есть запускаю на десктопе десятилетней давности и всё летает?
Здравствуйте, genre, Вы писали:
G>Понимаешь какое дело. До тех пор пока ты не померял ты не можешь даже быть уверен, что твой способ быстрее чем какой-то другой.
Предложи тест, набросаю под него по свободе код.
Только без фанатизма, типа "нагрузи полутысячью юзеров" — их у меня взять негде.