• Есть ли недостатки у транзакций?

    Настоящие транзакции надо сразу сбрасывать на диск, на примере innodb производительность падает приблизительно в 100-200 раз при такой настройке
    Ответ написан
    1 комментарий
  • Есть ли недостатки у транзакций?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Непосредственно от внедрения транзакций ничего медленнее работать не начинает.
    Замедление может быть от двух вещей:
    a) если транзакции используются бездумно, например транзакция не завершается в момент когда она должна быть завершена по бизнес логике - соответственно записи блокируются на лишнее время, другой поток не может их изменить.
    б) если выставлены жесткие настройки сохранения на диск
    А почему так происходит?

    Михаил: потому что запись на диск - дорогая процедура. Но вообще необходимость этого зависит от непосредственно бизнеслогики приложения и требуемой консистентности.
    Одно дело если у вас в транзакции финансовые данные, другое дело если вы условный чатик делаете.
    Ответ написан
    3 комментария
  • C++ или Golang?

    Adamos
    @Adamos
    Холиварная постановка вопроса. Вам-то зачем такой абстрактный ответ?
    Если вы лично не знаете ни того, ни другого, то для вас лучше Го - и заработает раньше, и наговнокодить на нем сложнее.
    Ответ написан
    4 комментария
  • Что выбрать Windows Forms или WPF?

    twobomb
    @twobomb
    Хочешь красиво, резиново и современно то конечно wpf. Если нужно быстро, просто и в стиле windows xp то windows form. Но лучше wpf там больше разных элементов, более гибкая настройка..
    Ответ написан
    3 комментария
  • C++ или Golang?

    @gaxetasok
    Веб-разработка на С++?
    В наше время???
    Зачем так извращаться???
    Если вы работаете в хайлоаде - я надеюсь туда не берут неопытных - вы сами решите что лучше. Возможно где то в специальном случае будет хорош С++. Но не в общем случае.

    Скажем хайлоад DropBox был написан на "медленном" Python
    Хайлоад Фейсбука и вКонтакта был написан на не менее медленном ПХП.

    Основные задержки в типовом приложении для веба - это передача по сети (между браузером и сервером) и работа с базой данных.

    Ни то ни то никакого отношения к языку программирования самого веб-приложения не имеют.
    Ответ написан
    Комментировать
  • C++ или Golang?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    Если руки прямые, то практически всё на плюсах будет быстрее. Кроме разработки - там и ноги поотстреливать можно, и писать долго, и знать нужно всё. А если вы не мастер сего языка - разницы не будет, можно хоть на Ноде писать
    Ответ написан
    5 комментариев
  • C++ или Golang?

    sim3x
    @sim3x
    на каком из них было бы производительней?
    на том, который показал меньшее время исполнения
    Ответ написан
    Комментировать
  • Как устроены хэш-таблицы?

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

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

    @Mercury13
    Программист на «си с крестами» и не только
    Раз мы изменяем наш вектор — то по неконстантной сцылке.

    void add (int n, std::vector<int>& vec){
        vec.push_back(n);
    }
    
    std::vector <int> myVec;
    add(5, myVec);
    Ответ написан
    Комментировать
  • Оправдано ли сегодня изучение C++?

    @fintank
    Не надо учить C++. Чем больше новых программистов на C++, тем меньше зарплата у старых!
    Язык наибольших возможностей. Любишь возможности - полюбишь C++.
    А если любишь не возможности, а только "результаты" и "деньги" - не полюбишь.
    Ответ написан
    Комментировать
  • Для чего нужны Генераторы (yield) в php?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    php.net/manual/ru/language.generators.syntax.php
    yield - возврат из функции с сохранением текущего итерационного состояния этой функции.
    При запросе следующего значения в цикле итерационном цикле - снова вызов этой функции с использованием сохранённого состояния, т.е. продолжение обработки данных с места возврата внутри этой функции.

    Можно провести некую аналогию с "курсором" и местом обработки данных в позиции курсора.
    Ответ написан
    3 комментария
  • Для чего нужны Генераторы (yield) в php?

    @Nc_Soft
    парсим большие csv
    <?php
    function getRows($file) {
        $handle = fopen($file, 'rb');
        if ($handle === false) {
            throw new Exception();
        }
        while (feof($handle) === false) {
            yield fgetcsv($handle);
        }
        fclose($handle);
    }
    
    foreach (getRows('data.csv') as $row) {
         print_r($row);
    }
    Ответ написан
    5 комментариев
  • Как определить бота на сайте?

    Я сам частенько писал ботов на AutoIt и вот чего я боялся -
    • Что с ботом заговорят
    • Что админ заметит, что между событиями всегда строго один и тот же интервал
    • Что админ заметит, что при щелчке на кнопку всегда попадает курсором в строго один и тотже пиксель
    • Что изменится пользовательский интерфейс и бот начнет вытворять непотребства (причём обычно достаточно таких изменений, которые не заметны глазу, например заменить id кнопки или изменить цвет с #aaaaaa на #aaaaab)
    • Что админы заметят, что у меня онлайн стремится к 24ч в сутки
    • Что админы заметят, что, даже если у меня онлайн не 24ч, то он не совпадает с обычным для моего часового пояса временем активности пользователя (я же не ставил бота пока сам сидел за компом, поэтому он обычно работал по ночам)
    • Что админы подкинут какую нибудь шутку (например, вылезет сообщение посреди экрана) и бот затупит и тем спалится (например начнет тупо тыкать в одно и тоже место)
    Ответ написан
    7 комментариев
  • Какую из дистрибутив Linux выбрать для программиста?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Вопрос выбора дистрибутива - это вопрос скорее не технический, а "политический", то есть при его выборе как правило вопросам техники уделяют минимальное внимание.

    Потому что на самом деле все имеющиеся дистрибутивы вертятся вокруг трех компонентов (потому что ядро и основной софт как правило всюду один и тот же).
    - Система инициализации, то есть то, каким образом стартует линух и кто отвечает за запуск процессов. Их обычно две - init и systemd, а также некоторые их производные
    - Система управления пакетами, то есть то, что ставит, удаляет, обновляет софт. Есть пакетные дистрибы (их большинство) и есть source-based, где все программы необходимо собирать из исходников (но пакеты все же есть)
    - Набор софта, готовый для установки в данный дистриб. Это не только официальные репы, но и всевозможные коммунити-зеркала, то есть чем более популярный дистриб, тем больше шансов на то, что нужный софт будет кем-то уже собран

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

    ЗЫ: Этот вопрос - один из самых часто встречающихся здесь. Да, это подсказка :) Да, поискать :)
    Ответ написан
    Комментировать
  • Какую из дистрибутив Linux выбрать для программиста?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Меньше всего заморочек с настройкой в убунту. Если софт портируют под линукс, в первую очередь под убунту/debian. Так что как ни крути для повседневной работы, это самый простой вариант. Если ты хочешь по минимуму заморачиваться с системой и просто работать на ней. Как вариант можно линукс-подсистему в windows 10 поставить.
    Ответ написан
    1 комментарий
  • Что такое git checkout?

    toxa82
    @toxa82
    Основная функция git checkout это перемещать указатель HEAD, т.е. то куда смотрит ваша локальная копия. Вы можете переместить его на вершину ветки: git checkout <branch> или на отдельный коммит: git checkout <sha>Ну а вспомогательные это создание веток:git checkout -b, отмена изменений в файле:git checkout -- <file>
    Ответ написан
    2 комментария
  • Webstorm vs VS Code 2019?

    @kuftachev
    Это как условное Renault и BMW, вроде бы и то, и то машина, но во втором ты садишься и все на своем месте, это совсем другое ощущение.

    Вот разница где-то такая, хотя ехать и на VS code можно.

    А вот как вспомогательный редактор, VS code божественный!
    Ответ написан
    Комментировать
  • Webstorm vs VS Code 2019?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Ой, ну это холиварная тема. На первый взгляд, webstorm из коробки может больше, чем VS Code. Но VS Code отлично допиливается расширениями, причем очень круто. Расширения пишутся тоже довольно легко, как к браузеру. Да и на мой взгляд, VS Code работает шустрее, чем webstorm, и жрет меньше памяти (я помню про electron) чем webstorm.
    Ответ написан
    1 комментарий
  • Webstorm vs VS Code 2019?

    Я считаю каждый работает на том, на чем привык работать и будет хвалить именно свой IDE или редактор кода. За свое время я работал со следующими IDE для написания JS кода и все они казались мне ничего:
    • Adobe Dreamweaver
    • Eclipse
    • Komodo IDE
    • Codelobster
    • NetBeans IDE
    • Visual Studio

    Но веб не стоял на месте, появлялись новые стандарты js, npm, ESLint, grunt, gulp, webpack и прочее. И из этой шестерки более менее успевал за модой только Visual Studio. Успевал это конечно очень образно говоря. Про остальные я вообще молчу.
    И когда я познакомился с WebStorm меня конечно сразу подкупила его функциональность, современность, следование тенденциям в веб-разработке. Так вот о чем я, VS Code конечно тоже хороший редактор, но главный его плюс это бесплатность. В плане функционала, современности и удобства пользования у WebStorm нет конкурентов. Но понять это можно только используя если не все, то хотя бы половину его возможностей. Многие его фичи открываются только любопытным людям.

    P.S. Многие говорят что у VS Code есть плагины, но все почему-то забывают что у WS они тоже есть.
    Ответ написан
    Комментировать
  • Webstorm vs VS Code 2019?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Я бы хотел прекратить платить каждый год за WebStorm и пользоваться бесплатным опенсорсным софтом, но...

    Простой пример: есть export class MyClass {} в файле MyClass.js, переименовываем класс, WebStorm предлагает заодно переименовать файл и исправляет все импорты. И таких мелочей, которые снимают с человека дурацкую ручную работу -- полно. В VS Code такого нет.
    Ответ написан
    6 комментариев