• Почему не работает ajax запрос?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Возможно решит проблему:
    xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    Ответ написан
    1 комментарий
  • QA engineer, с чего начать?

    @azShoo
    Для начала давайте разберемся, что же такое QA? Понятие это довольно абстрактное, и в СНГ применяется зачастую в ином понимании, нежели в краях более отдаленных.
    QA - это обеспечение качества продукта, причем, в идеальном случае, на всех этапах разработки.
    Самое первое, с чем придется в большинстве случаев столкнуться QA Engineer`у это функциональное тестирование.
    Написание тестов по задачам и прохождение этих тестов., прохождение уже написанных, апдейт, заведение багов и прочее. В этом случае QA Engineer = Тестировщик. Для этого самое важное - хорошо работающая голова, умение читать задачи и задавать правильные вопросы: "А что если так? А если этак?".
    В зависимости от продукта требуются дополнительные скиллы -> в вебе своя специфика, в мобильных своя, в по - своя, в железе - своя. Ну и соответственно базовое понимание кода, работа с базой данных и прочее - тоже периодически понадобятся.

    Но, процесс обеспечения качества не заканчивается на функциональном тестировании, поэтому понятие QA шире, чем тестирование. Здесь мы уходим от банальных тестов по функциональным требованиям и переходим к анализу требований и документации (поиск узких мест в требованиях и реализации), юзабилити тестирование (поиск "косяков" в интерфейсах и функциональности), тестирование производительности и прочее.

    Отдельная часть - автоматизация тестирования. Здесь от компании к компании все по разному, и роль автотестера варьируется от "тестера который научился использовать тестовый фреймворк" до "полноценного разработчика, который автоматизирует то, что ему говорят тестировщики".
    Требования отличаются соответственно.

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

    Что в итоге?
    Мне кажется, что QA-инженер это тестировщик, который вышел в своей работе за рамки тестирования. Который работает над качеством продукта не только в плане "Требования выполнены - к продакшену готовы", а старается делать продукт лучше во всех отношениях, в первую очередь - для бизнеса, во вторую - для пользователя, в третью - для тех, кто этот продукт делает.
    Следовательно, я считаю что путь QA лучше всего начинать именно с тестирования (кстати говоря, в России понятия QA и тестирования почти всегда тождественны в умах не-тестировщиков).
    Что важно для тестировщика?
    Способность и желание разбираться в том, как это [продукт\фича\пр] работает сейчас, и как это должно работать.
    Так же стоит приготовиться много говорить "нет, так не пойдет" менеджерам и разработчикам.
    Ну и вообще, смириться с тем, что другие стороны процесса очень часто готовы действовать в ущерб качеству.

    Что хотят, что бы знал джуниор?
    1) представление о процессе разработки. Этапы, когда пора тестировать и все такое.
    2) представление о написании тестов: что представляет из себя тест-план, тест-сьют, тест-кейс, тест-степ, Definition of Done, Ожидаемый результат и тд.
    3) представление о том, что такое дефект: Severity и Priority дефектов, какие бывают; из чего состоит описание дефекта, и все такое.
    4) хотя бы общее представление о тест-дизайне: что такое, зачем нужен, какие есть практики.
    5) Базовые навыки SQL - селект, упдейт, работа с несколькими таблицами и все такое.
    А ещё хотят, что бы человек умел думать. Будь готов к задачкам на логику (которые туфта и ненужны) и к задачкам типа "Есть окно с кнопкой, посылает запрос: напиши тесткейсы" или "Протестируй карандаш".

    Как-то так.
    К сожалению, больше рассказал именно о тестировании, чем о QA в целом. :)
    Ответ написан
    2 комментария
  • Как получить длину JSON объекта?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    пишет колличество символов, а не елементов
    Значит, у вас нет объекта, а есть строка. Используйте JSON.parse(), чтобы получить объект. Дальше уже определяйте что вы считаете "элементами" и по запросу "javascript get number of x in type y" найдёте решение за три секунды.
    Ответ написан
    Комментировать
  • Как получить длину JSON объекта?

    JSON это просто текст. это никакой не объект. чтобы с ним работать как с объектом, его нужно сначала спарсить в этот объект
    Ответ написан
    Комментировать
  • Что из себя представляет должность администратора баз данных?

    Melkij
    @Melkij
    PostgreSQL DBA
    являясь собственно DBA последние сколько-то там лет...

    Основная рутина:
    - внесение изменений схемы данных без даунтайма собственно приложения
    - выполнение каких-то массивных операций над данными (удалить половину данных из полутеррабайтной таблички, например)
    - исследование проблем производительности со стороны базы
    - решение в целом проблем на серверах баз, не только производительности
    - текущее сопровождение: бекапы, репликация, переезды с одних серверов на другие, настройка новых серверов, минорные обновления базы
    - major обновления базы
    - заведение пользователей и организация прав доступа
    - консультации разработчикам "как лучше сделать"
    - консультации "так это работать не будет, придётся менять"
    Ответ написан
    Комментировать
  • Что из себя представляет должность администратора баз данных?

    @rPman
    Администратор БД это тот кто следит за работой базы, раздает и управляет правами доступа пользователей, настраивает размещение tablespace, настройка репликации и резеврной копии и т.п.

    Если администратор БД часть команды разработчика приложения (это важное дополнение) то на него обычно ложится все что касается оптимизации скорости (проектирование индексов и вообще участие в проектировании базы данных). Абсолютно бессмысленно просить словами администратора создать/удалить таблицу, но прежде чем что либо в базе делать, лучше обсудить, особенно если это все на продакшн базе будет происходить, так как когда размер базы большой, простейшее добавление или удаление колонки (например если там есть default value) может занимать сутки-недели.

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

    @lotse8
    site.ru/bolgarki/faq/вопрос1
    site.ru/bolgarki/faq/вопрос2
    site.ru/bolgarki/faq/вопросn
    Потому что поисковик сразу понимает, что faq это вопросы и ответы и будет индексировать и продвигать лучше questions однозначно. Промежуточные уровни нужно удалять, три шага вложенность максимум для лучшей индексации.
    Ответ написан
    Комментировать
  • Что из себя представляет должность администратора баз данных?

    @tukreb
    Если не расписано, то в буквальном смысле всё-всё по БД.
    От обычного бэкапинга, до создания новых таблиц/юзеров, триггеров, оптимизаций и много много всего.
    Ответ написан
    Комментировать
  • Как можно использовать Foreign Key?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Запомните одну вещь. Многие её забывают или не знают, и из этого проистекают все их проблемы.

    Внешний ключ (FOREIGN KEY) - это ПРАВИЛО. Всё остальное - либо дополнения, либо следствия. Народ начинает рассказывать про индексы и прочее - НЕТ! Не включайте всё это в определение собственно внешнего ключа.

    Хотя оно хранится в структуре таблицы, оно является не частью структуры таблицы, а инструкцией, которая будет обрабатываться подсистемой контроля целостности и непротиворечивости данных - есть такая в составе SQL-сервера.

    Это правило устанавливает, что при добавлении/изменении значения следует проверить существование нового значения в ссылочной таблице. И наоборот - при удалении следует проверить отсутствие удаляемого значения в ссылающейся таблице. То есть правило работает в обе стороны - влияет не только на таблицу, в которой оно определено, но и на упомянутую в правиле таблицу, при этом в структуре ссылочной таблицы никакого упоминания о существовании этого правила нет. Но, поскольку подсистема контроля - это подсистема уровня сервера, то ей плевать, где прописано.

    Это правило может быть дополнено опциями каскадной операции ON DELETE/UPDATE - в этом случае после контроля нового значения подсистема даёт дополнительную команду на выполнение указанных в опции изменений зависящих данных.

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

    Также создание внешнего ключа приводит к выполнению дополнительного контроля такого индекса поддержки, если он удаляется. Если нет другого индекса, который может использоваться для поддержки, то операция удаления индекса будет заблокирована.
    Ответ написан
    Комментировать
  • Долго прогружается сайт?

    6412a04cdde62995663013.jpeg
    Вот ваши сырники 62 кб. Можно ещё легче сделать без потери качества.
    Подробности здесь
    Ответ написан
    Комментировать
  • Как автоматически отправить форму?

    vovka3003
    @vovka3003
    Фрилансер. Инженер систем безопасности.
    По сути ClientID - это скорее всего обезличенные данные, поэтому необязательно. Но мы живём в такой стране, где "больше бумаги - ж.. чище", посему одна строчка "Соглашаюсь отправить свой клиент ид" врядли помешает...)
    Ответ написан
    6 комментариев
  • Как можно использовать Foreign Key?

    TMProject
    @TMProject
    Frontend developer React/Redux
    Foreign key (внешний ключ) - это механизм, который позволяет связывать данные из двух таблиц в базе данных, где одна таблица ссылается на другую посредством поля, которое является первичным ключом в таблице, на которую она ссылается.

    Использование foreign key имеет несколько преимуществ. Одно из них - обеспечение целостности данных, то есть предотвращение появления некорректных значений в таблице. Когда вы устанавливаете foreign key, вы создаете ограничение, которое не позволит вставить запись в таблицу, если нет соответствующего значения в связанной таблице.

    Чтобы создать foreign key, вы должны выполнить следующие шаги:
    1. Создайте таблицу, которая будет ссылаться на другую таблицу:
      CREATE TABLE table1 (
          id INT PRIMARY KEY,
          name VARCHAR(50),
          table2_id INT,
          FOREIGN KEY (table2_id) REFERENCES table2(id)
      );


    2. Создайте таблицу, на которую будет ссылаться первая таблица:
      CREATE TABLE table2 (
          id INT PRIMARY KEY,
          name VARCHAR(50)
      );


    3. Установите связь между таблицами с помощью ключевого слова REFERENCES:
      FOREIGN KEY (table2_id) REFERENCES table2(id)


    В этом примере, мы создаем таблицу table1, которая имеет поле table2_id, которое ссылается на поле id в таблице table2. С помощью ключевого слова FOREIGN KEY мы говорим базе данных, что это поле должно быть связано с полем id в таблице table2.

    Также мы можем добавить ограничение ON DELETE, чтобы определить, что происходит с записями в таблице, которые связаны с удаленными записями из другой таблицы. Например:
    FOREIGN KEY (table2_id) REFERENCES table2(id) ON DELETE CASCADE

    В этом примере, мы указываем, что при удалении записи из таблицы table2, все связанные записи в таблице table1 также должны быть удалены (CASCADE).

    Таким образом, использование foreign key может значительно улучшить целостность данных в вашей базе данных, облегчить ее обслуживание и предотвратить появление ошибок в будущем.
    Ответ написан
    Комментировать
  • Как можно использовать Foreign Key?

    vabka
    @vabka
    Токсичный шарпист
    Очевидный пример:
    Допустим у тебя есть таблица с домашними животными и таблица с хозяевами домашних животных.

    Чтобы указать у животного, кто его владелец - ты заводишь колонку "идентификатор владельца".

    И вот чтобы гарантировать, что эта колонка всегда содержит реально существующий идентификатор, и что, например, никто не удалит владельца, к которому привязаны какие-то животные - ты можешь завести foreign key.

    В случае попытки удалить запись о владельце, на которого кто-то ещё ссылается, или при попытке указать несуществующий ИД - СУБД выдаст ошибку, что было нарушено ограничение.
    Ответ написан
    4 комментария
  • Как извлечь данные из привязанной таблицы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    JOIN
    Ответ написан
    Комментировать
  • Как сделать так, чтобы после перезагрузки страницы данные не исчезали?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Делая свой собственный счётчик посещений, нужно решить для начала, что именно ты хочешь считать - загрузки страницы, уникальных пользователей или что-то ещё. После этого и считать именно это.

    Что касается уникальности, есть нюансы, но общий принцип един - сначала определяешь некий "отпечаток" (уникальность) пользователя, затем отправляешь его на сервер, и сервер уже решает, считать его или нет. Например, был ли уже этот пользователь в этот день или какой-то интервал времени, в течение которого повторные посещения уже не учитываются. Будет ли в этот "отпечаток" включён ip пользователя, или это вообще будет уникальный токен, выданный по логин+пароль, решать тебе.

    На клиенте можешь кешировать какие-то данные, например, последнее обращение к БД, и если оно было недавно, то не повторять его снова. В браузере это можно сделать, например, с помощью localStorage. Но это уже своего рода оптимизация, а она будет зависит от логики твоего счетчика (что именно считаешь).
    Ответ написан
    Комментировать
  • Как сделать так, чтобы после перезагрузки страницы данные не исчезали?

    vovka3003
    @vovka3003
    Фрилансер. Инженер систем безопасности.
    Перед уходом сохранять в LocalStorage (или SessionStorage), при загрузке подтягивать оттуда же...
    Ну или делать запрос, если нужны всегда свежие данные.
    Ответ написан
    3 комментария
  • Какие есть бесплатные базы данных?

    ValdikSS
    @ValdikSS
    В поисковике пробовали искать? Гугл выдаёт с пяток релевантных результатов на запрос "free mysql hosting".
    Ответ написан
  • Какие есть бесплатные базы данных?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    MySql, PostgreSql, Redis, MariaDB, MongoDB,... - выбирай любую.
    Ответ написан
  • Как реализуется личный кабинет?

    HardBot
    @HardBot
    back-end, front-end developer
    <?php
    // Подключение к базе данных
    $conn = mysqli_connect('localhost', 'username', 'password', 'database_name');
    
    // Проверка соединения
    if (!$conn) {
      die("Ошибка подключения: " . mysqli_connect_error());
    }
    
    // Получение данных из формы авторизации
    $username = $_POST['username'];
    $password = $_POST['password'];
    
    // Шифрование пароля
    $password = md5($password);
    
    // Проверка, существует ли пользователь с таким же именем и паролем
    $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $result = mysqli_query($conn, $sql);
    
    // Если пользователь найден, создаем сессию и перенаправляем его на страницу "Добро пожаловать"
    if (mysqli_num_rows($result) == 1) {
      session_start();
      $_SESSION['username'] = $username;
      header('location: welcome.php');
    } else {
      // Если пользователь не найден, выводим ошибку
      echo "Неверное имя пользователя или пароль";
    }
    
    // Закрытие соединения с базой данных
    mysqli_close($conn);
    ?>

    welcome.php
    <?php
    session_start();
    
    // Если пользователь не авторизован, перенаправляем его на страницу входа
    if (!isset($_SESSION['username'])) {
      header('location: login.html');
    }
    
    // Выводим приветственное сообщение для авторизованного пользователя
    echo "Добро пожаловать, " . $_SESSION['username'];
    
    // Закрытие сессии
    session_unset();
    session_destroy();
    ?>
    Ответ написан
  • Как захостить БД чтобы записывать данные в нее?

    @Drno
    Арендуешь vps
    Ставишь нужный софт
    Профит)
    Ответ написан
    2 комментария