• О каких IT специалистах говорят, когда речь идет о дефиците кадров?

    opium
    @opium
    Просто люблю качественно работать
    А вы попробуйте нанять программиста сами увидите кто эти 50 человек которые приходят на собеседование))))
    Мы постоянно нанимаем и как то массово у нас они не растут, я каждый раз плачу кровью когда от нас уходит программист в другое место, жалею вообще об отмене рабства
    Ответ написан
    3 комментария
  • Зачем надо закрывать курсор при работе с БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дело в том что курсор может потреблять ресурсы. Например вы захотели взять первые 10 строк из 10000000 выборки но предварительно отсортировали. Выбрали 10 строк и не сделали финализирующие протокольные действия в Python. База данных будет удерживать в памяти алгоритмы и структуры данных для снапшота результата этого запроса до тех пор пока не придет явный CLOSE с вашей стороны либо интеллекуальный драйвер который еще и обладает логикой уборки мусора сам не догадается что Statement уже вышел из scope вашего использования и может быть удалён GC.

    Я был свидетелем ситуации когда крупное ent-приложение Java/Oracle переполняло память из-за неверной обработки Exception и плодила много незакрытых курсоров в БД. Java от этого не сильно страдала (GC всё убирал) но страдал Oracle. Потому что уборка происходила слишком поздно. Пофиксилось тогда переписыванием с try на try-with-resources.

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

    mr_T
    @mr_T
    Web-разработчик
    Если app-header опирается именно но роутер и только на роутер (то есть другие компоненты не будут непосредственно влиять на показ каких-то элементов), то можно сделать очень красиво и изящно через computed, что-то типа такого:
    computed: {
        headerTab() { return this.$route.path === '/result'; }
    }


    Если предполагается что-то более сложное, то можно аналогичным образом воспользоваться полем this.$route.meta (подробнее)

    Если же переменная должна зависеть от каких-то плохо предсказуемых внутренних состояний компонентов, то либо использовать подход с событиями, либо уже переходить к тяжёлой артиллерии - брать vuex и опираться на state. Но если вы думаете, что этот способ подходит для данной задачи, то я почти уверен, что вы делаете что-то не так :)
    Ответ написан
    3 комментария
  • Как заказчик сайта понимает, что сайт сделан на крутом фреймворке, а не на дерьмовой CMS?

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

    У вас немного не в ту степь вопрос. Вы пытаетесь спросить что-то типа: зачем за 100к мне пилить человеку сайт на yii если я могу отдать фрилансерам за 30к и 70к положить себе в карман?

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

    Если речь идет о каком-то простеньком сайте на 5 страниц, то человек выберет вордпресс, потом зайдет в админку и поймет что это вордпресс.

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

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

    alvvi
    @alvvi
    export default apathy;
    Ответ написан
    Комментировать
  • Что означает "сдвоенные знаки больше-меньше"?

    @Psq
    Информационная безопасность. Пентест.
    Это битовые операции
    Сначала вы 5 (101) сдвигаете на 2 бита вправо (остается 1)
    Затем эту единицу сдвигаете на 5 битов влево (получается 32)
    00000101 >> 2 = 00000001 (двоич)
    00000001 << 5 = 00100000 (двоич) = 32
    Ответ написан
    Комментировать