• Какие перспективы у профессии Software engineer?

    Moskus
    @Moskus
    Дефицит или избыток людей той или иной профессии всегда влияет только на одно: на сколько легко или сложно найти работу дрянным специалистам. Так что волноваться нужно не по поводу того, сколько идиотов попытаются стать Software engineer-ами, а по поводу того, чтобы стать хорошим специалистом. А бросаться осваивать профессию только потому, что планируется дефицит специалистов - фиговая мотивация.
    Ответ написан
    Комментировать
  • Как "исправить" кодировку psql?

    fzfx
    @fzfx
    18,5 дм
    в командной строке перед запуском psql наберите chcp 1251.
    а ещё лучше в postgres используйте в качестве LC_COLLATE значение ru_RU.UTF-8, а в командной строке - chcp 65001.
    также можете ознакомиться с https://superuser.com/questions/269818/change-defa...
    Ответ написан
    1 комментарий
  • Можно ли средствами PHP, HTML, CSS создать аналог ВК (исключительно для тренировки)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    vk написан на слегка допиленном php. Да, можно, но без понятия архитектуры приложения / нормализации/денормализации данных и прочих вещей которые нужно знать опытному разработчику будет а) сложно, б) криво.
    Ответ написан
    Комментировать
  • Какой технологией хранения данных в браузере пользоваться?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    WebSQL, увы, стал deprecated еще до того как вышел из черновика. Браузеры тут же кинулись встраивать SQLite, а Oracle испугался и через Mozilla продавил, что браузерное хранилище должно быть key-value. Кое-где (скажем откровенно, в Chromium-based браузерах) до сих пор работает, но когда отвалится -- неизвестно.
    У IndexedDB есть одно ярковыраженное преимущество перед localStorage: по умолчанию доступное место заметно больше. Остальное по вкусу, тем более что есть фасадные надстройки над всеми тремя типа localForage.

    Если необходимо хранить статичные данные для браузерного расширения

    Если это пользовательские настройки, то альтернатив chrome.storage нету. Если это данные необходимые для работу самому расширению (скажем, карты уровней для игры), то проще и логичнее держать это в, например, JSON.
    Ответ написан
    Комментировать
  • PhpStorm как вернуть поиск в файле?

    Decadal
    @Decadal
    вы должны щелкнуть на рабочей области и только потом нажимать ctrl+f. У вас фокус ввода находится не в том окошке.
    Ответ написан
    2 комментария
  • Как организовать процесс разработки масштабируемой системы?

    sim3x
    @sim3x
    Ваш вопрос вцелом не имеет смысла
    Хайлоад появляется только на успешных проектах

    Если вас просто мандраж перед термином
    Возьмите свой проект, любой
    Поставьте себе локально на виртуалку
    И поставьте себе задачу завалить его
    Потом отбейте свой ДДОС без потери легитимных пользователей

    каким образом организовать начальный этап этой разработки?Каков стек необходимого ПО и/или иных инструментов для этого?
    полностью зависит от ТЗ

    Под стеком не имею в виду на каком языке делать бэк, какую использовать БД и что использовать для кэширования, а интересует больше то, каким должно быть окружение процесса разработки - нужно ли с самого начала поддерживать "версионность" и если да, то как это делать?
    гит нужно использовать всегда
    Версионность данных желательно
    Как их хранить? - Делайте консистентные бекапы

    Где вообще изначально разворачивать систему - на локалке или нет?
    у вас джанга. При разработке используйте встроенный сервер, при деплое -nginx/uWSGI/postgreqsl

    если да, то хотелось бы более подробно какие инструменты для этого нужны и как, к примеру, потом с локалки проецировать на боевой сервак без танцев с бубном?
    ansible

    Нужно ли с самого начала задействовать несколько нод - для самого простого случая одна под базу, одна под бэк, одна под фронт или можно на одной все делать а потом как-то относительно просто масштабировать на другие ноды?
    нет. Вначале просто докупают больше мощности, потом выселяют субд на отдельный сервер, и только после такого думают как разделять бекенд.
    Или у вас в задаче прямо сказано, что у вас будет строго больше 10k RPS
    Ответ написан
    Комментировать
  • Пожалуйста, объясните код?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    1 комментарий
  • Как решить проблему в обход kill -9?

    @MechanID
    Админ хостинг провайдера
    этот процесс находится в D state - это ожидание ввода/вывода, например у вас была сетевая папка или сетевой диск например по iscsi и его теперь нет, а процесс хотел туда чтото записать. kill -9 тут не поможет, либо восстановить ему возможность ввода вывода либо ребут
    Ответ написан
    5 комментариев
  • Почему root шлёт сообщения root?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Потому что там английским по белому написано - база алиасов недоступна
    Ответ написан
    Комментировать
  • Определение СУБД. Что относится к субд?

    kotomyava
    @kotomyava
    Системный администратор
    SAP, 1c предприятие и прочие программы которые работают с базами данными) СУБД? Если нет, то почему?

    Они работают с базами, а не обеспечивают работу баз. В их случаях СУБД это MS SQL Server, Oracle, Postgres и.т.п.
    Ответ написан
    Комментировать
  • Определение СУБД. Что относится к субд?

    sim3x
    @sim3x
    Если нет, то почему?
    SAP, 1c предприятие и прочие программы просто работают с базами данными
    Ответ написан
    Комментировать
  • Определение СУБД. Что относится к субд?

    обеспечивающих управление созданием и использованием баз данных.

    Если основная цель существования программного средства - это обеспечение того что указано в цитате - то это СУБД. Это значит, что в какой-нибудь PostgreSQL никто не будет добавлять код, поддерживающий бухгалтерский учёт, т.к. основная цель существования PostgreSQL - это то что в цитате, а не бухгалтерский учёт.

    Основная цель существования 1C как платформы более конкретная и прикладная, нежели обеспечение управления и использования баз данных. В 1C вполне может быть компонент, решающий задачу, указанную в цитате, и тогда можно сказать, что в 1C есть компонент, называющийся СУБД.

    Большинство прикладных решений не содержат таких компонентов собственного написания, а подразумевают использование уже созданного и настроенного программного средства или программного компонента (на сегодняшний день - как правило клиент-серверного решения вроде MS SQL или оракла или постгреса, либо же в отдельных случаях - встроенного, вроде SQLite), которое и решает указанную в цитате задачу.

    Обычно задачи, которая решает СУБД, диктуются не прикладным направлением (складской учёт/банковское дело и т.д. и т.п.), а некоторой общей моделью данных, имеющей формальное описание (напр., реляционную модель). Наличие такой модели данных и вообще само разделение большой программной системы на СУБД и всё остальное подразумевает, что СУБД создают специально прокачанные в этом люди, а разработчики прикладных систем используют эти наработки, чтобы не писать алгоритмы обработки данных, одинаковые для 98% задач (поиск, сортировка, индексация и т.д.) каждый раз заново (и гораздо хуже людей, которые делают это большую часть своей IT-карьеры).
    Ответ написан
    Комментировать
  • В чем отличие DBAL от ORM?

    muzikant777
    @muzikant777
    PHP/Vue разработчик
    Некорректно сравнивать тёплое с мягким. Так и здесь: DBAL, как вы правильно написали - слой абстракции, представляющий единый интерфейс для работы с различными реализациями БД.
    ORM - штука, которая позволяет работать с объектами и связями в БД как с сущностями, не заботясь о том, из каких именно таблиц и полей заполняется сущность.

    У вышеупомянутой Doctrine тоже есть свой DBAL, но это не мешает ей быть ORM :)
    Ответ написан
    Комментировать
  • Как вы оптимизируйте свою работу? Что используйте для увеличения производительности?

    riseteam
    @riseteam
    Для ускорения работы технической части работы – шаблонизация и компонетный подход
    Для борьбы с прокрастинацией – logtime.ru (или онлайн дневник + ставить цели, которые мотивируют)
    Для планирования дел – wunderlist.com
    + наставник/старший товарищ, если такой человек будет, это сильно повышает личную производительность =)
    Ответ написан
    1 комментарий
  • Можно ли заменять в SQL запросе ' на "?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Эти функции - какой-то ужас, летящий на крыльях ночи. mysql_real_escape_string - вообще за гранью добра и зла.

    Но главное, что я не могу понять - это какое отношение к mysql и mssql имеет функция xss_clean. Ну то есть я даже представить себе не могу, как можно функцию для защиты от xss применять для любых манипуляций c SQL. Это - я не знаю - как положить деньги в презерватив от грабителей. Он же служит для безопасности. Ну вот деньги и будут в безопасности.

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

    $sql = "SELECT TOP 10 * FROM user where mssql.department_id=?";  
    $stmt = $conn->prepare($sql);  
    $stmt->execute([$_GET['department_id']]); 
    $users = $stmt->fetchAll();
    
    $sql = "SELECT * FROM user where mysql.department_id=? LIMIT 10";  
    $stmt = $conn->prepare($sql);  
    $stmt->execute([$_GET['department_id']]); 
    $users = $stmt->fetchAll();


    Как можно заметить, в запросах нет ни одной кавычки вообще, что делает сам вопрос про замену бессмысленным.

    От XSS же надо защищаться совсем в другом месте, и также без всего этого ужаса
    Ответ написан
    1 комментарий
  • Так ли необходимо использовать плэйсхолдеры для избежания инъекций, или написанная собственноручно проверка входных данных будет более чем достаточна?

    @neol
    Инъекции (как и любые распространённые типы уязвимостей) появляются не потому, что невозможно что-то сделать, а потому, что кто-то забыл, перепутал, опечатался или ошибся. Если у вас нет возможности накосячить (или она сведена к минимуму) - это в любом случае надёжнее, чем когда у вас есть возможность не накосячить. Именно поэтому подготовленные запросы считаются надёжнее любых проверок переменных, rust считается безопаснее C и т. д.
    Ответ написан
    Комментировать
  • Чем тестировать проекты?

    sim3x
    @sim3x
    Такое называется fuzzing
    И относится к инфобезу или тестированию на проникновение
    Не к юнит тестированию
    Юнит тестирование предназначено для выявления проблем при рефакторинге и написании кода в проекте, а не к безопасноти напрямую

    Вам же требуется писать код так, чтоб он пропускал только то что прямо указано
    Чем строже поле - тем лучше (проще) для вас

    Основная задача тестов - позволить вам писать новый код без страха поломать что-то старое
    Ответ написан
    1 комментарий
  • Как разбить транзакцию по микросервисам сохранив консистентность данных?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    то что вы описали называется двухФазным комитом, раньше очень часто использовался.
    сейчас активнее используют похожий но немного другой подход, тоже связанный с тем что резервируют определенные ресурсы (например деньги на счету, и товар на складе) потом проверяют промежуточный статус операции, и потом проводят и подтверждают операцию - разница в том что ничего не перезаписывается а непрерывно все запросы логируется, и любые откаты операции идут через добавление новых записей-запросов в лог (он же и очередь сообщений)
    ----
    там много тонкостей, например вы говорили про время-метки, в целом метки времени добавляют - если нужно контролировать очередность промежуточных шагов (но обычно это не так важно, поэтому метку времени не всегда добавляют), но добавляют уникальный айди операции, тк в случае сбоя запроса (при например длительном ожидания ответа), может произойти "переотправка" запроса, и нам эта метка с уникальным айди позволяет не дублировать одну и туже операцию.
    =====
    есть тонкости например с тем, каким образом разделены эти микросервисы, может это просто дублирование одного и того же сервиса но например каждый из них обрабатывает запросы от разных сегментов пользователей, поэтому не требуется согласовывать какие-то операции между этими микросервисами.
    ====
    на мой взгляд - это вобще разводные вопросы не имеющие правильного ответа, схемы подбираются конкретно под проект и задачи, тем более если вы не разрабатывали какую-нибудь платежную систему, типа яндекс.денег то вообще бесполезно что-то обсуждать.
    это не камень в ваш огород, этим вообще обычно мало кто реально занимается, уверен те кто у вас это спрашивал сами мало что в этом понимают, а спрашивают такие вещи чтоб вас слить.
    Ответ написан
    3 комментария
  • Как разбить транзакцию по микросервисам сохранив консистентность данных?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Если возникла проблема - очень большая вероятность того, что разделение на микросервисы было не корректным и стоит вернуться к монолиту.

    Что касается распределенных транзакций. Как минимум можно пытаться повторять запросы N раз, в противном случае откатывать на каждом из сервисов.

    Как вариант можно использовать всякие kafka для хранения истории сообщений с целью дальнейшего восстановления неотрботавших транзакций.

    Нужно продусмотреть причины отката транзакций каждым из сервисов, например на счету нет денег - транзакция оплаты невозможна.

    Правильного варианта не существует. Все зависит от проекта
    Ответ написан
    4 комментария
  • Список типичных уязвимостей?

    @nicandr
    Да есть, называется OWASP, там есть описание уязвимостей, также как их предотвратить, и каждый год там публикуют топ 10 уязвимостей
    Ответ написан
    Комментировать