Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Большая вложенность URL влияет на индексацию?

Лучший ответ:
Ваш вопрос никак не относится к вашей проблеме.
В данном случае URL значения не имеет он может быть любой длинны и содержать любое количество уровней вложенности в разумных пределах. Проверь например этот запрос вы увидите что на первой странице выдачи есть сайты с адресами вида:http://nn.blizko.ru/predl/promgood/appliances/ruhonnaja/kofemol
иhttps://vash.market/bytovaya-tehnika/melkaya-tehnika-dlya-kuhni/14-vidov-luchshih-kofemolok-printsip-raboty-kak-vybrat-harakteristiki.html
В первом случае точно так же глубина 4 как у вас + сама страница kofemol
Уровень вложенности не влияет на важность документа никак.
Почему не индексируются страницы листинга? Сложно сказать, их надо видеть, может на них мало контента или они настолько похожи что поисковики думают что это дубли.

Худший ответ:
Большая вложенность URL влияет на индексацию? - нет, если есть нормальная карта сайта. Но обычно не стоит усложнять жизнь себе и своим пользователям.
Вопрос: Yii2.0 С какого шаблона (basic|advance) начать разработку CRM?

Лучший ответ:
Как по мне, оба шаблона не очень удобные, мне и тот и другой приходится перестраивать под себя. У advance просто разделены бекэнд и фронтенд изначально - подходит для развитой админки, и та же работа с регистрацией пользователей более продвинутая, но ее все равно придется дорабатывать. У basic работа с пользователями практически вообще отсутствует.

Худший ответ:
Магия
Вопрос: Почему не работает форма?

Лучший ответ:
Доброе утро.
Потому, что надо соблюдать рекомендации, при создании формы и указывать атрибут name с нужным значением для каждого input.
И ещё, слово "Спорты" замените на "Виды спорта", будет грамотнее)))

Худший ответ:
Атрибут name впишите для чекбоксов и данные лучше ищите в $_POST
Вопрос: UPWORK: как определить налогооблагаемую базу для ИП на УСН доходы?

Лучший ответ:
Посмотрите документацию Эльбы.
Исходя из этого, вы платите налог за то, что пришло на валютный счёт.

Худший ответ:
то что пришло на ваш счет это и есть прибыль, которую нужно декларировать. притом учитывать курс доллара центробанка именно в день зачисления. остальные вычеты и минусовки - это уже все не относиться к прибыли. сколько не читал - понял что это так. возможно и ошибаюсь. но знакомые так и делают. вроде все ок. да и особо никто не заморачивается, если у вас по миллионам в месяц не проходит в транзакциях
Вопрос: Как фрилансеру подтвердить опыт работы?

Лучший ответ:
На блукард проще подаваться с айти образованием, опыт работы даже офисный не всегда канает, бумажки с апворка не помогут

Худший ответ:
Как фрилансеру подтвердить опыт работы?Так же как и остальным. Трудовую книжку покажите.
Вопрос: Как понять процесс создания и передачи макетов для мобильных устройств в верстку и далее в программинг?

Лучший ответ:
В общем случае:
- отличается дизайн под телефон и под планшет (собственно это могут быть вообще 2 разных приложения)
- отличается дизайн под ios и android.
Т.е это минимум 4 дизайна сразу.
Дальше зависит от особенностей конкретного приложения.
Какие то нужно глубоко тюнить под конкретное разрешение, а где то можно обойтись простой резиной.
PS Все что написано выше, применимо в первую очередь к нативной разработке. Cordova выбирают заказчики для которых низкая цена важнее качества, соответственно более 1 варианта дизайна вряд ли кто то согласится рисовать.

Худший ответ:
Полностью поддерживаю коммент Макс Минимус! Особенно, если индивидуальный дизайн. На сколько мне известно, эпловцы сильно придираются к дизайну и требуют к приложениям под ios соблюдение некоторых гайдов. У андроида проще и нет никакой проверки приложений на соответствие стайл-гайдам. Поэтому можно запилить макеты под смартфоны и планшеты и чтобы соответствовали требованиям айосовцев. Итого, под каждый экран приложения по 2 макета.
Для iOs приложения я использовала Framework7. То что нужно кастомизировала под дизайн-макеты.
Вопрос: Как строку перевести в json (Python )?

Лучший ответ:
можно создать словарь с данными, а потом уже сформировать jsonimport json


data = {
    'users': [
        {
            'id': 1,
            'name': 'user1',
        },
        {
            'id': 2,
            'name': 'user2',
        },
    ],
}

json_str = json.dumps(data)
В переменной json_str будет лежать json строка такого вида:{"users": [{"id": 1, "name": "user1"}, {"id": 2, "name": "user2"}]}

Худший ответ:
Модуль json
Вопрос: Как защитить базу данных от взлома по строке подключения?

Лучший ответ:
Бд изолируют как правило и работают через слой АПИ. Никакие строки подключения у клиента нигде быть не должны.Запрос из вашего приложения или браузера -> MVC контроллер -> обращение к базе из вашего кода.
Строка подключения при этом будет лежать в web.config или appsettings.json на сервере.

Худший ответ:
Такова селяви, вы можете попробовать запрятать логин и пароль в обфусицированном коде но это защитит только от пользователей но не от хакера/знающего человека, правда сделает эту задачу дорогой.
На практике, обычно так и делают, если у вас десктопное приложение и пользователи подключаются с его помощь к базе данных, можно запрашивать у них логин и пароль (т.е. строка подключения это только ip и порт БД), т.е. за авторизацию и аутентификацию будет отвечать БД.
p.s. парольная авторизация это пережиток прошлого ;) красивый пример - вы можете сделать авторизацию по qr-коду, генерируемым приложением на мобильном телефоне (а там таймкод по типу google authenticator) и снимать его через вебкамеру (подойдут даже самые дешевые, помню покупал одну за 70р, с подсветкой даже), коды авторизации выдавать пользователям при личной встрече.
Вопрос: Стоит ли изучать Kotlin, если не знаешь Java?

Лучший ответ:
нет, не стоит.

Худший ответ:
Я изучал Котлин не зная джава, вот по этому ресурсу Kotlin Manual, там все достаточно легко написано, я думаю не составит большого труда выучит Котлин
Вопрос: На какой максимум способен дизайнер при разработке сайта?

Лучший ответ:
Чтобы сэкономить деньги начальству, вы можете предложить им обратиться к специалистам.

Худший ответ:
Сказать, что вам нужен нормальный сайт и найти человека который сделает дешевле. Либо взяться за обучение и выучить html css и CMS. Можно MODx, можно любую другую, но сайт выйдет так себе)
Интересует сайт обращайтесь :)
Вопрос: Как сделать внутренние закругленные углы с неоднотонным фоном на CSS?

Лучший ответ:

https://habrahabr.ru/post/259603/
Пощупать пример: jsfiddle.net/53vq5pn1
Поковырять исходник: https://github.com/tegArt/border-radius-inset

Худший ответ:
Можно сделать окантовку на SVG, а прямоугольный блок при помощи border
Вопрос: Динамческий DOM без HTML и CSS?

Лучший ответ:
Конечно медленнее.
1. HTML уже на странице
загрузка HTML -> парсинг HTML -> рендеринг страницы
2. Только JS
Загрузка JS -> парсинг JS -> выполнение JS -> вставка кода DOM -> парсинг HTML -> рендеринг страницы
Вывод очевиден.

Худший ответ:
Во-первых, вам мама не говорила, что DOM-операции медленные?
Во-вторых... давайте посмотрим, как JS работает с DOM'ом.
Создаем элементvar el = document.createElement('div');
Вставляем егоdocument.appendChild(el);
Постойте-ка... у нас нет DOM вообще, а значит и body. А куда нам его вставлять? В сферического коня в вакуме?
В-третьих, как это вообще без DOM? Тег script часть DOM'а, т.е. прямо его загрузить мы, конечно же, не можем. Без DOM.
В-четвертых, если вам надоел DOM - переходите на темную сторону... на node.js
Вопрос: Какая есть программа для массовой оптимизации изображений без потери качества?

Лучший ответ:
Image Catalyst - png, jpg, gif, пакетная обработка.

Худший ответ:
На счёт gif не знаю, а png и jpg умеет оптимизировать tinyPNG. Правда скрипт для пакетной оптимизации придётся самому написать.
Вопрос: Как подключиться к базе данных, если выводит подобные ошибки(phpmyadmin)?

Лучший ответ:
подключиться к phpmyadmin - невозможно.
phpmyadmin - это не сервер БД, а всего лишь php оболочка для работы с ним

Худший ответ:
Ваша ошибка говорит о том, что mysql_query не смог самостоятельно подставить второй аргумент - ресурс.
Документация по функции: php.net/manual/ru/function.mysql-query.php
И вообще, у вордпресса есть своя оболочка для работы с базой данных, не нужно велосипеды изобретать. 
https://wp-kama.ru/function/wpdb
Вопрос: Как удалить дубликаты?

Лучший ответ:
COUNT(DISTINCT `IP`)
Только количество уникальных IP в общем случае не равно количеству уникальных посетителей.

Худший ответ:
Смотря для чего ты используешь эту таблицу. 
Если статистика простая то можно писать только уникальные ip в таблицу. Далее в конце суток по крону чистить ее и переносить в другую таблицу date|count : 26.05|123
Вопрос: Куда правильнее класть base.html?

Лучший ответ:
В статике ему делать нечего - совсем

Худший ответ:
joxi.ru/J2b4Dant4NaR7r
Создай отдельную директорию "templates". Шаблончики разложи по папочкам.
она может быть одна на весь проект.
Когда Django ищет шаблон она просматривает все директории "templates".
Вопрос: Есть смысл ставить SSD на ноут с такими характиристиками?

Лучший ответ:
На любом ноутбуке будет виден прирост производительности после установки SSD вместо обычного HDD.

Худший ответ:
Конечно будет, систему переставите на SSD и будет вам счастье!
Вопрос: Как прервать проверки в JavaScript?

Лучший ответ:
Немного сдожно для начинающего, но варианты с вашим кодом - только вручную прописывать условиеvar correct = 0;
var wrong = 0;
var questions = [ // без объектов и массивов в js никуда, так что лучше сразу с них и начинайте
{
  q: "Люди бывают фиолетовыми? Да / Нет",
  correct: ["нет"]
},
{
  q: "Висит груша нельзя скушать?",
  correct: ["лампа", "лампочка" ]
},
{
  q: "Идет то в гору, то с горы, но остается на месте?",
  correct: ["дорога" ]
},
]

questions.forEach(q => { // проходим каждый
if (wrong >= 2) { alert('Верных ответов: ' + correct + '\n' +  'Неверных ответов: ' + wrong); return; }

  var b = prompt (q.q).toLowerCase();
  if (q.correct.find(e => e === b)) { // ищем совпадение в правильных ответах
    alert ("Верно!");
     correct++;
    }
    else {
      alert ('Неверно!');
       wrong++;
    }

})

alert('Верных ответов: ' + correct + '\n' +  'Неверных ответов: ' + wrong);
upd: В комментах вариант с минимальными изменениями кода

Худший ответ:
Вот вариант с выводом вопросов-ответов в массиве snippet
Вопрос: Как, используя bash скрипт, посчитать размер всех файлов в директории, созданных в определенним году?

Лучший ответ:
посчитать размер всех файлов в директории, созданных в определенним году?
- "Размер всех файлов" -- неоднозначно, вас интересует сумма размеров, или объём занятый файлами на диске? Второе обычно больше первого.
- "В директории" -- только в ней, или во вложенных каталогах тоже?
- "Созданных" -- невозможно на большинстве файловых систем. Можно "в последний раз изменённых".
Итого, объём в байтах занятый на диске файлами в заданном каталоге и подкаталогах, в последний раз изменёнными в 2017, можно посчитать, например, вот так:find /home/user/repo -type f -newermt 2017-01-01 -not -newermt 2018-01-01 -print0 | du --files0-from=- -B 1 -c

Худший ответ:
ll| grep 2017| awk '{tot+=$5}; END {print "Total size: " tot}'
Соответственно в начале команды можно указать путь к нужной папке
Вопрос: Как в mysql скопировать значения столбца из одной таблицы в другую, при наличии общего столбца?

Лучший ответ:
можно через inner join типа тогоUPDATE table1 t1 JOIN table2 t2 ON t1.id = t2.id
SET t1.col1 = t2.col1, t1.col2 = t2.col2
или через подзапросUPDATE t1 SET col1 = (SELECT col1 FROM t2 WHERE id = t1.t2_id)
В php еще проще, делаешь запрос
$t2items = SELECT * FROM t2
потом foreach($t2items as $t2) по результатам и
UPDATE t1 ... WHERE t1.t2_id = t2.id

Худший ответ:
Спасибо, подзапросом очень коротко, быстро и просто  сделал. Чуть позже через php  сделаю.
Вопрос: Как получить данные SQL запросом, начианя с конкретное строки?

Лучший ответ:
Отказаться от подхода "черт-те-как спроектируем БД, а потом будем задалбывать ее сложными SQL-запросами, жрущими непомерные ресурсы на тривиальных задачах". Если id, действительно, "строка случайных символов", то полезной информации в ней ноль. В этом случае сделать рефакторинг и заменить id на автоинкрементное целочисленное поле с индексом и делать выборку простейшимWHERE id > :thePreviousMaxId. Если в id все-таки имеется осмысленная информация, используемая не только для обеспечения уникальности - добавить автоинкрементный альтернативный ключ, сведя тем самым решение к предыдущему варианту. В любом случае это будет эффективнее, чем заниматься запоминанием ранее полученных id

Худший ответ:
Можно брать с «нахлёстом». Раз день неуникален – коллизии возможны в рамках этого дня.
Придётся запоминать все id последнего дня выборки.
При следующем шаге надо включить последний день целиком, и исключить из него строки с запомненными id.
Вопрос: Как подключить к питанию примерно 30 ардуин, какой должен быть ток и напряжение?

Лучший ответ:
Смотришь спецификацию на свои платы. Там есть потребляемый ток. Суммируешь. Добавляешь небольшой запас. Там же указано напряжение. Его просто запоминаешь. Далее гуглишь или спрашиваешь сообщество что-то вроде "как собрать блок питания U=Столько-то, I=столько-то. Или не гуглишь а приходишь в магазин радиотоваров и тебе предложат готовый. Это недорого.

Худший ответ:
Один Ардуино потребляет 50 мА, следовательно 30 Ардуино будут потреблять 1.5 А.
Вопрос: Как происходит совместная работа бэкенд- и фронтенд-разработчиков над большими проектами?

Лучший ответ:
В разных компаниях это делают по-разному. Процитирую свой старый ответ на эту же тему, но про Django.
Есть три способа:Верстальщик делает для каждого типа страниц рыбу, бэкендер напяливает её на шаблонизатор. При дальнейших правках верстальщик правит рыбу, бэкендер правит шаблон. Плюс в простоте включения верстальщика в процесс, минус в дополнительной нагрузке на бэкендера. Хорошо подходит для привлечения верстальщиков со стороны.Поднимаете отдельный сервер для разработки. Настраиваете на нём FTP. Запускаете на нём нужные проекты, выдаёте права только на шаблоны. Запускаете верстальщика по FTP с chroot'ом в каталоге с проектами. Минус - нужен дополнительный сервер и понимание языка шаблонизатора со стороны верстальщика. Плюс - снижение нагрузки на бэкендера и возможность тестировать правки на живом проекте.На комп верстальщика ставится python и git. Верстальщик клонирует проект, запускает из корня проекта специально подготовленный батник, который активирует виртуальное окружение, ставит зависимости и запускает dev-сервер. Требует от верстальщика умения работать с git (а других нанимать и не надо), а от бэкендера делать нормальные приложения, которые не требуют долгих танцев с бубном для запуска.

Худший ответ:
Фронт и бэк оба на js, внутри одного проекта. Внутри папки src две папки: app для клиентского приложения и общего для фронта и бэка кода (сервер использует код клиента, но клиент не использует код сервера). На выходе и фронтендщиков и бэкендщиков постоянно актуальный единый проект, настроенный на одну базу данных, а они уже сосредотачиваются внутри своих папок.
Вопрос: Будущее веб-разработчиков python?

Лучший ответ:
Насколько я могу судить из свой практики. Ангуляр остается (и еще долго будет оставаться) всего лишь "продвинутым шаблонизатором" для создания интерактивных страничек. Клиенты не спешат выкидывать бизнес логику на фронтенд. А на счет того что nodejs выпихнет python с рынка бэкенда, то это вообще нонсенс. Сервернный JS красив пока не начал на нем писать. Для Hello World пойдет, но писать серьезные бизнес приложения - просто сразу ставить крест на бизнесе клиента. Серверный JS взлетел лишь благодаря хайпу и наличию огромной армии jQuery программистов, который возомнили себя теперь full-stack программистами. Сами погуглите много интересных историй про качество кода в NPM. Вот тут уже давно тоже был показательный случай
https://habrahabr.ru/post/228751/
Я тоже поддавался хайпу и пробовал для продакшен проектов и nodejs и go. Но в итоге все равно вернулся к старому доброму python :))))

Худший ответ:
Может заголовок получился не однозначный, но имелось в виду как питон будет использоваться в мире веб. Началися же перетягивания одеяла на php, node, ruby... Почему появились мысли о возможной смене вектора питона? В последнее время (с приходом ангуляров?), как мне кажется, возросла необходимость в проектировании API. Еще, например, с приходом asyncio повылазила хренова туча асинхронных фреймворков и библиотек. Разработка не стала намного сложнее, RPS взлетает в десятки раз, экономятся ресурсы серверов. Вот и появились мысли может питон уклонится в acync, и async станут только API или даже интернет-магазины? А может питон будет по-прежнему идти плечом об плечо с джангой? Что судя из комментов так и будет. Всем спасибо!
Вопрос: Хватает ли windows планшета для разработки?

Лучший ответ:
но вот вопрос , хватит ли 2 гига ОЗУ на браузер и тот же phpstorm ? Ну для нормальной работы браузера вполне хватит 6гигов из двух, а оставшееся поделите между phpstorm'ом и фотошопом.

Худший ответ:
Даже не пытайтесь, тут 8 бывает мало
Вопрос: Почему блокируют Google из-за telegram?

Лучший ответ:
Причин нет, не питайте иллюзий.
Это — рождение Великого Русского Файрвола.

Худший ответ:
У меня и у моих клиентов, чьими сайтами я занимаюсь наблюдаются тормоза в работе сайтов, где стоит аналитика от гугл. Приплыли(
Вопрос: Как настроить роутинг?

Лучший ответ:
Принципиально, чтобы услуги были вложены в регион, а не наоборот.
Ох уж эти сеошники
По факту, вам нужно простоmysite.ru/regions/region_id/servises/all
Превратить в:mysite.ru/moskva/services/all
Для этого можно использоватьresources :regions, path: ''
что бы убрать regions
Что бы превратить region_id в moskva, смотрите apidock.com/rails/Object/to_param
На самом деле, оптимально иметь что-то вроде mysite.ru/moskva123 (с учетом что region_id == 123), но ваши сеошники поймут это только когда столкнутся с тем, что нужно переименовать moskva в moscow

Худший ответ:
Про to_param я в курсе, спасибо.
А вот как вообще избавиться от региона, если нужно просмотреть все услуги не привязываясь к региону?
Имеется ввиду первая часть вопроса:
mysite.ru/services/all
Можно, конечно написать
get 'services' => 'services#index'
Но дальше могут быть еще категории. Например:
-Автоперевозки
|---Такси
|---Грузоперевозки
--- |---Малотоннажные
--- |---Крупнотоннажные
и т.д.
Не делать же 2, практически одинаковых, набора.
Вопрос: Почему не отображается связанные таблицы в DetailView?

Лучший ответ:
Не отображается потому что Вы бред написали. Вы бы перед тем как код писать доку бы почиталиpublic function actionView($id)
{
    $user->idSotrud->name; // что за переменная $user откуда она взялась? что Вы вообще хотите сделать в этой строке.
    return $this->render('view', [
        'model' => $this->findModel($id),
        'user' => $user,
    ]);
}DetailView::widget([
    [
        'attribute' => 'id_sotrud', // а тут что Вы ожидаете увидеть? 
                                  // данные реляции? так Вы ж их не выводите
        'value' => $user,
    ],
])

Худший ответ:
Вы бы ошибки включили, так как $user->idSotrud->name; сразу выдало бы ошибку.public function actionView($id)
    {
        $user->idSotrud->name; // тут же у Вас просто переменная из ниоткуда появилась

        return $this->render('view', [
            'model' => $this->findModel($id), //тут тоже
            'user' => $user,
        ]);
    }
ожидается что-то типа:public function actionView($id)
    {
        $model = MyModel::find()->andWhere(['id'=>$id])->with('idSotrud')->one();
        $sotrud_name = $model->idSotrud->name;

        return $this->render('view', [
            'model' => $model,
            'sotrud_name' => $sotrud_name,
        ]);
    }
Вопрос: Серверный процессор на обычном ПК, будет работать?

Лучший ответ:
Если мать поддерживает. Есть такие "гибридные" матери, на которых можно слабать "недосервер" - у него даже KVM есть. Но надо понимать, что серверный проц рассчитан вовсе не на те задачи, которые решает десктоп и быстрее десктопа он не будет - то есть если Вы думаете, что купите серверый проц и у Вас десктоп запорхает как бабочка - это неверно. Ну разве только Ваша цель - ускорение каких-нибудь расчетов антенн, расшифровки инопланетных сигналов или майнинг :D

Худший ответ:
Если есть поддержка мат. платы - без проблем.
Поддержка должна быть как аппаратной - совместимость по сокету, так и программной - прошивка BIOS.
На разных сокетах по разному, нередко у Xeon'ов в отличии от аналогичных им десктопных моделей немного изменены расположения контактов, нужно перекидывать их местами, для этого выпускают специальные переходники.
Вопрос: Как сделать выделение части картинки?

Лучший ответ:
Смотрите в сторону map html
imagemap-generator.dariodomi.de
www.image-maps.com

Худший ответ:
ключевые запросы: imagemap, maphilights
https://codepen.io/nimblegirl/pen/QEvyBZ
Вопрос: Какой МК из avr лучше выбрать?

Лучший ответ:
Все МК AVR программируются одинаково. 
Самый простой, но эффективный МК из AVR Atmega 8 (я так думаю).
Спаять программатор можно такой, можно такой, но лучше такой

Худший ответ:
Да в принципе почти любой из серии ATMega, ATTiny в DIP-корпусе.
Вопрос: Как в php прописать класс css?

Лучший ответ:
В данном случае вот так if ($_GET['do'] == 'reg') {
    $reg .= '<b><div class="reg"></div></b>';
} elseif ($_GET['do'] == 'sign') {
    $reg .= "GET=sign";
}

Худший ответ:
" - Двойные кавычки внутри необходимо экранировать$reg .= "<div class=\"reg\"></div>";
Вопрос: Почему крупные сайты не используют адаптивную верстку?

Лучший ответ:
У них всего слишком много думаю и просто сложить не вариант. Страницы на мобилах будут огромные, некоторые блоки не просто складывать а скрывать придётся, а тогда зачем их грузить. К тому же если человек с мобилки мы можем определить её марку и в играх рекомендовать уже не все, а только для этой платформы что-то.
Причин много, но правило простое: когда нам нужны очень разные сайты или на основном сайте есть то, что не нужно в мобильном лучше сделать разные версии чем заниматься с адаптивностью. Хотя в малых компаниях, командах адаптивность проще поддерживать.

Худший ответ:
потому что есть другие задачи у программистов
переделать верстку крупного проекта - трудоемкая задача и второстепенная.
это называется бизнес и реальность. добро пожаловать
Вопрос: Как выбрать структуру, язык и фреймворк для приложения?

Лучший ответ:
Сам не айтишник, не знаю что сейчас лучше и перспективнее выбрать. Надеюсь на ваши советы!Совет — выберите cначала айтишника, дальше он сам всё сделает.

Худший ответ:
Вы не айтишник не берите на себя задачу айтишника, в данном вопросе вы должны выступать как заказчик, вам нужно реализовать сервис, для коммерческого предоставления услуг, вам необходимо чтобы клиенты имели доступ по сети, и могли пользоваться локально, при отсутствии соединения с сетью, вы хотите оптимизировать данное решение так, чтобы снизить стоимость оборудования. вариант храним все на своем сервере  -да это Sass
+ для вас:
1.абонентская плата  - может зависеть от количества пользователей
2.новые обновления делаются безболезненно нет желающих убить вас клиентов которым на их сервак пришли обнова и раз**нила все к чертям.
- для вас:
1. Работники в штате, как минимум админ сервера и техподдержка
2. Атаки на сервер (конкуренты например)
3.Аренда или покупка как минимум 1 сервера
Во-втором варианте для вас из плюсов то что все на железе (вы не заморачиваетесь с поддержкой своего сервера) клиента если его будут атаковать вы ответственности не несете, но по факту у вас единоразовый платеж от клиента и платная обнова на которую скупой клиент скорее всего забьет. 
Выбор сделать не легко,надо учитывать на сколько финансово вы можете вложиться, приложение-клиент на мобилки и десктоп стоят отдельных денег, разработка веб-интерфейса и бэкенд тоже отдельно, поэтому изначально посчитайте выгодна ли вам в конечном итоге эта затея