• Нужен ли красный диплом?

    @d-sem
    Имеет смысл для удовлетворения эго, а также для продолжения образования - иногда помогает проходить конкурс в аспирантуру. Плюс на защите оглашают средний балл и если он 5.0, то очень сложно защититься на хорошо.

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

    Если есть возможность поправить на диплом с отличием - лучше поправить. Лишним не будет.
    Ответ написан
    Комментировать
  • Нужен ли красный диплом?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Пересдавайте, конечно, с красным-то всегда лучше.
    Главное - не слушать недоучек, которые сейчас налетят и будут балаболить, что они и без диплома поднялись хорошо.
    Ответ написан
    1 комментарий
  • Возможно ли как то использовать константы в пути import'a?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Только динамический import() поддерживает использование переменных, при этом в бандл попадают все файлы соответствующие паттерну.

    Если же мы говорим именно о константах, то на этапе компиляции webpack всё равно не знает, что у вас там лежит в config. Он не запускает ваш код - он его собирает.
    Если конфиг-файл у вас статический, то вы можете подключить его в сам конфиг вэбпака и сделать там, например, алиас вида:
    `~static/i18n/CONFIG_LANG.json`:  path.resolve(`./static/i18n/${config.lang}.json`)
    и в коде, соответственно, писать:
    import default_locale from `~static/i18n/CONFIG_LANG.json`

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

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    1. for (let i = 0; i < 50; ...
      от 0 и до, но не включая, 50. Поменяйте 0 и < 50, чтобы это исправить.
    2. out += i + ' ';  // добавляется всегда, в любом случае
      if ( i % 2 != 0) continue; // проверка уже потом
      поменяйте порядок: сначала проверка, потом добавление
    3. document.querySelector('.out-2').innerHTML = out;
      срабатывает в каждой итерации цикла. А надо 1 раз, когда цикл отыграл все повторы. Вынесите эту строку из цикла.


    spoiler

    2..50 через один, по чётным — это 2 * (1..25) подряд.
    document.querySelector('.b-2').addEventListener('click', () => {
      document.querySelector('.out-2').innerText = Array(25) // создали массив из 25 пустых слотов
        .fill() // заполнили их undefined, чтобы можно было..
        .map((n, i) => 2 * (i + 1)) // каждый заменить на (его индекс + 1) * 2
        .join(' '); // и склеить в строку через пробел
    })
    все эти методы массива можно посмотреть на MDN.


    Ответ написан
    1 комментарий
  • Как организовать работу с mongodb и докером на локалке и сервере?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Ни в коем случае не пушить туда-сюда.
    • В идеальном случае ваш проект должен поддерживать миграции:
    • Каждая ревизия кода, которая нарушает совместимость с БД относительно предыдущей, должна содержать скрипт миграции. В этом скрипте создаётся структура, модифицируются старые данные, переименовываются поля и т.д. Иногда такие скрипты делают двунаправленными, чтобы поддерживать обратные миграции.
    • В БД нужно хранить версию или номер ревизии, которой соответствует текущее состояние БД.
    • При запуске приложения нужно проверять версию и выполнять цепочку миграций, необходимых для приведения версии к требуемому состоянию.

    Так вы можете добиться того, чтобы продуктовая БД была отдельно, тестовая отдельно, девелоперская отдельно. Очень плохая идея работать на девелоперской машине с данными из продовой базы. Так происходят утечки перс-данных.

    Монга - это schema less БД, которая толерантно относится структуре коллекций и не валится при запросе несуществущих полей. Нужно стараться писать код максимально толерантно к отсутствию наполнения БД.

    В любом случае у вас в БД есть обычно:
    1. структура (в случае монги, как я уже сказал, это не так важно)
    2. справочники
    3. пользовательские данные
    4. производные данные (кэш), которые можно безболезненно удалить, а затем они перегенерятся сами по мере запросов.

    Нужно писать код так, чтобы он всю структуру и технические справочники, отсутствующие в предоставленной БД и необходимые для работы, умел инициализировать сам. Или, на худой конец, сделайте команду или скрипт init_db.

    Если какие-то тестовые данные нужны для тестов или отладки, то можно сделать скрипт, который заполнит БД ими. Это называется фикстуры.

    Никогда не храните код в БД. Всякие хранимые процедуры и прочее в БД - это зло. Код должен быть в системе контроля версий, а БД к этому не приспособлены. Если уж нужны хранимки, то храните их в системе контроля версий и заливайте их в БД при инициализации или миграциями.
    Ответ написан
    2 комментария
  • Какие плюсы и минусы есть в плане производительности, SEO и т.д. если делать статичный landing page сайт на React.js/Vue.js?

    @McBernar
    Удобно работать с компонентами, удобно работать с js, одной консольной командой разворачиваешь настроенный проект со всеми es-фичами.

    Для SEO реакт/вью до сих пор очень плохо работают. Туда либо SSR прикручивают, либо генерируют html-статику в том же next/nuxt.
    Ответ написан
    Комментировать
  • Какие области IT сильно связаны с алгоритмикой и математикой?

    @majstar_Zubr
    C++, C#, gamedev
    Разработка низкоуровневых библиотек, драйверов и интегрированных решений для высоких нагрузок.
    Такая деятельность финансируется из бюджета либо корпораций, либо каких-то фондов, либо просто donations (на текущий момент).
    Ответ написан
    Комментировать
  • Как работает конструкция type t = {...}[keyof T]?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Обычное обращение по ключу, как в javascript, что тут непонятного?
    const foo = {
      bar: 1
    };
    foo['bar'] // 1
    const baz = {
      qux: 2
    }['qux']; // 2
    тайпскрит в работе с типами тут ничем не отличается:
    type user = {
        id: number,
        name: string,
    };
    type id = user['id']; // number
    type userKeys = keyof user; // 'id' | 'name'
    type userTypes = user[keyof user]; // number | string
    тип never же просто не учитывается:
    number | string | never - то же самое что number | string.
    Ответ написан
    1 комментарий
  • Как вывести координаты элемента?

    duboloms
    @duboloms
    Люблю есть дубы с кетчупом. Веб-разработчик.
    elem.getBoundingClientRect();

    Почитай тут
    Ответ написан
    Комментировать