• Как сделать graphql запрос из nestjs?

    E1ON
    @E1ON Куратор тега JavaScript
    Programming, Gamedev, VR
    Комментировать
  • Какое реальное количество одновременных соединений на домен разрешено?

    @acwartz
    Тут должна быть ваша реклама.
    6 на домен, 20 на веб-сокеты
    // Default to allow up to 6 connections per host. Experiment and tuning may
    // try other values (greater than 0).  Too large may cause many problems, such
    // as home routers blocking the connections!?!?  See http://crbug.com/12066.
    //
    // WebSocket connections are long-lived, and should be treated differently
    // than normal other connections. Use a limit of 255, so the limit for wss will
    // be the same as the limit for ws. Also note that Firefox uses a limit of 200.
    // See http://crbug.com/486800
    int g_max_sockets_per_group[] = {
        6,   // NORMAL_SOCKET_POOL
        255  // WEBSOCKET_SOCKET_POOL
    };

    Источник

    У менеджера пулов есть методы позволяющие менять эти значения, только нигде кроме юнит-тестов они не используются.
    Ответ написан
    6 комментариев
  • Трудовой договор на испытательный срок?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Для мидла очевидное решение - отказаться, но среди джунов огромная конкуренция, работу найти очень сложно. Поэтому отказывайтесь только если есть другие предложения.
    Ответ написан
    Комментировать
  • ООП в JS отличается сильно от ООП компилируемых языков?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    3 принципа ООП - это миф, притом очень вредный.
    Инкапсуляция, наследование и полиморфизм относятся к ООП примерно как кухонный комбайн к варке блюд, их конечно можно использовать вместе, но и друг без друга они живут прекрасно.

    ООП - это про высокоуровневые абстракции представленные в виде объектов, а так же про взаимодействие этих объектов, путем вызова методов. Все. Никаких 3 принципов тут нет. И это примерно одинаково, что в JS, что в C#, что в Java, что в C++, а разница в реализации тут не существенна, Вы о ней знаете, только потому что абстракции текут.

    Инкапсуляция - это сокрытие сложности. Опять же все. Забудьте весь бред про приватные поля и тому подобное. Это не более чем частный случай. И замыкания - это тоже частный случай инкапсуляции. А еще, когда из модуля Вы экспортируете не все подряд (привет ReasonML), а только высокоуровневые штуки, оставляя все остальное недоступным извне. А еще когда некоторое API (REST/GraphQL/RPC/etc.) отгораживает Вас от прямого общения с базой данных - это тоже инкапсуляция.

    Полиморфизм - это возможность некоторой сущности работать с разными типами данных и возможно адаптироваться под них. А еще полиморфизм разный бывает. Помимо полиморфизма подтипов, который чаще всего и приписывают к ООП, бывают и другие. Например очень распространен параметрический полиморфизм, в большинстве языков представленный дженериками. А еще бывает ad-hoc полиморфизм (перегрузки).
    Но даже если рассматривать только полиморфизм подтипов (это когда между типами есть иерархия, то есть отношения подтип-надтип, и мы в переменную/аргумент/поле надтипа можем присвоить значение подтипа), то и тут нет не слова про ООП. Яркий пример - TypeScript, где есть тип unknown, являющийся надтипом любого другого типа и в который можно присвоить значение любого типа, а так же есть тип never, являющийся подтипом любого другого типа и который можно присвоить в любой другой тип.
    Ну и касательно JS, в нем вообще все полиморфно, ибо динамическая типизация.

    Наследование - это вообще частный случай полиморфизма подтипов, отдельно выделяют пожалуй лишь потому, что он не только про типы (как полиморфизм), а еще и про реализации, которые наследуются. И опять же, ничего тут про ООП нет. Наследование вполне может жить и без ООП,
    например во вполне себе структурно-процедурном Си
    #include <stdio.h>
    
    struct Parent
    {
        int a;
        int b;
    };
    
    struct Child
    {
        struct Parent __super;
        int c;
    };
    
    void f(struct Parent* v)
    {
        printf("a: %d\nb: %d\n", v->a, v->b);
    }
    
    int main()
    {
        struct Child v = {{10, 20}, 30};
        f((struct Parent*)&v);
        printf("c: %d\n", v.c);
        return 0;
    }


    P.S. JS вполне себе компилируемый язык, у v8 даже ассемблерный код попросить можно, который он накомпилит с Вашего JS.
    Ответ написан
    1 комментарий
  • Имеет ли смысл смена специальности?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Да не помогут вам такие вопросы.
    Вы же понимаете, что карьера - вещь сугубо индивидуальная. Не всегда даже зависит от знаний и наличии вакансий. Куча случайностей могут вам помочь или наоборот подставить.

    Реальный опыт - ну почитайте биографии известных людей. В каждой биографии можно найти и тяжелое и сложное. И можно запомнить, что истории пишут победители - те, у кого ничего не получилось, вам врядли что-то напишут, а таких большинство.

    В результате вы узнаете парочку кулстори. И?

    Вам нужна мотивация? Ну уже ж не маленький.

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

    Профессионал это не полубог, и даже не гений.
    Это просто тот, кто прилагал усилия к выполнению работы и к повышению своей собственной квалификации в течение продолжительного времени. А это время может прерваться по разным причинам (недостаток мотивации; устал, уныл; здоровье; внешние факторы).

    Если есть вакансия, которая вас устраивает по деньгам - идешь и работаешь.
    А планировать себе карьеру на 10-20-30 лет вперед могут только оракулы.
    Ответ написан
    Комментировать
  • Актуален ли bootstrap в 2021?

    Актуален ли bootstrap сейчас?

    Последний коммит 4 дня назад.

    какие достойные замены имеются?

    Tailwind из нового
    Ответ написан
    Комментировать
  • Кнопка "ответить" к своему собственному коментарию - это баг или фича?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Это инженерный компромисс. Наличие кнопки не делает никому хуже, при этом позволяет не усложнять код лишними условиями.
    Ответ написан
    9 комментариев
  • Зачем нужны интерфейсы при реализации внедрения зависимостей?

    sanya_misharin
    @sanya_misharin
    Это делается для того чтобы твой класс в который ты внедряешь зависимость, он не был привязан к реализации
    Например у тебя есть класс, который хочет что то кешировать, ты в него внедряешь кеш интерфейс, но от того какой ты будешь использовать кеш класс не зависит, это все должно делаться в настройках, сегодня ты кешируешь в файл, завтра в редис и так далее

    Это все называется полиморфизмом
    Ответ написан
    Комментировать
  • Соглашаться ли получать меньше на испытательном сроке?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Практика встречается в основном при найме джунов/стажеров.
    Крайне редко при найме мидлов.
    Практически никогда при найме специалистов.

    30% многовато, обычно 10-20%. Но если условия испытательного четко оговорены, в компании вы уверены - можно на такое пойти.
    Многие говорят, что такое бывает только в говнокомпаниях которые готовы только кидать - нет, такое бывает в компаниях разного уровня, и далеко не означает намерение кинуть.
    Многие говорят про законодательство РФ - не единым РФ живет рунет, не одними только штатными сотрудниками работают айтишники, не одна только ЗП входит в условия работы, есть еще и страховка, бесплатные курсы, возможно и другие бонусы, которые могут не давать на время испытательного срока, и которые по сумме могут быть заметны на фоне ЗП.

    В твоем случае - поищи отзывы о компании и прими решение сам. Если не понравится - уйдешь через 3 месяца, получив опыт.
    Ответ написан
    Комментировать
  • Соглашаться ли получать меньше на испытательном сроке?

    @mrasny
    Конечно это не самая хорошая практика и все такое. Но люди, которые пишут "Нет, не соглашайся", вы хоть раз на работу устраивались? Вы думаете вы один такой на должность? Работодатель скорее скажет вам "ну ок, гуляй" и все. Такой вот выпендреж уместен, если вы огого какой специалист и уверены, что вас компания хочет в любых условиях. А если вы средне-статистический спец, то будете сидеть дома, жаловаться на работу и писать на форумах какие все наниматели дураки
    Ответ написан
  • В чем превосходство Typescript?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Как бы это странно не звучало, но одно из главных преимуществ TypeScript - это ускорение разработки в несколько раз. Да, когда еще ничего нет - разработка незначительно замедлится, так как помимо логики нужно описать еще и типы. Но это только в начале. И это не только возможность писать большую часть кода с помощью автодополнения. Поддержка существующего кода занимает в десятки раз больше времени, чем его начальное написание. Стоит ли вложить несколько лишних часов на старте, чтоб сэкономить в последствии месяцы? Как по мне стоит.

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

    Ну и отвчечу на некоторые Ваши сомнения:
    TSLint в VSCode прям жутко тугой
    TSLint официально deprecated, вместо него стоит использовать плагин к eslint, заодно можете мой конфиг попробовать.

    Типы? Есть JSDOC
    JSDoc в плане типов не умеет и 10% того, что умеет TypeScript. Кроме того, никто в здравом уме не пишет JSDoc на приватную логику, а значит проверки типов там не будет. JSDoc не гарантирует корректность рефакторинга, а вот благодаря TypeScript я, опять таки, точно не забуду обновить JSDoc.

    многие библиотеки nodejs не имеют типов
    может лет 5 назад так и было, но сейчас встретить библиотеку без типов - скорее исключение. Если библиотека популярная, но не предоставляет типов, скорее всего их уже написал кто-то другой, достаточно просто установить одноименный модуль из npm скоупа types и все будет работать само.

    Поддержка браузерами скомпилированного кода? Да какбы почти весь JS имеет поддержку 95%+, тот же Babel уже забыл когда использовал.
    Вообще это не основная задача компилятора TypeScript, а опциональная возможность. И babel + preset-env с ней справляются гораздо лучше. И никто не мешает использовать их вместе. А еще думаю вопрос времени, когда кто-то напишет оптимизатор кода использующий информацию о типах из TS.

    Примерно в каждой второй есть инстансы, на которые смотришь - и чешешь репу - а как называется тип этой переменной в @types/?
    import {someObject} from 'some-library';
    
    type TypeFromValue = typeof someObject;
    const valueCopy: TypeFromValue = {
        ...someObject,
        type: 'overrides',
        with: 'type check',
    };
    и кстати, вот пример того что JSDoc типы не умеют.

    //@ts-check
    и почти везде останется бесполезный any.

    P.S. удачи такие типы на JSDoc описывать
    P.P.S. Еще прелести современного TypeScript невозможные у...
    Ответ написан
    8 комментариев
  • Как игнорировать файлы из git репозитория?

    DevMan
    @DevMan
    невозможно игнорировать то, что уже под контролем.
    можно локально убрать файл из контроля, добавить его в игнор, и у всех, кто после этого склонирует он будет в игноре.
    Ответ написан
    Комментировать
  • Почему обучение продвигается так медленно?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    А вы ждали мгновенного результата? Месяц - это очень мало. За месяц даже учебник для начинающих нормально не изучить. На тренировку мозга требуются существенно больше времени. Стартовый уровень, достаточный для найма, нарабатывается полгода-год. Пара-тройка лет практики в окружении профессионалов нужна, чтобы вырасти в мидлы. И процесс не останавливается никогда, чем больше вы тренируетесь, тем больший спектр задач можете решать и тем проще это вам даётся. Продолжайте стараться, всё придётся при должном упорстве.
    Ответ написан
    8 комментариев
  • Переработка в маленьких IT-компаниях?

    glaphire
    @glaphire
    PHP developer
    У меня в самой первой компании, где были мелкие дешевые заказы и аутсорс, было четкое разделение на работу бекендера и фронтендера (разве что js иногда приходилось дописывать или править), а в крупной компании на энтерпрайз проекте приходилось фуллстечить, поэтому закономерность весьма условная. Лучше при поиске работы четко проговорить, что хотите работать только с бекендом, потому что много где пытаются добавить работу с джс фреймворком и версткой, чтобы сэкономить на поиске отдельных фронтендеров
    Ответ написан
    Комментировать
  • Переработка в маленьких IT-компаниях?

    @Vitsliputsli
    Все компании разные, в том числе и крупные. И в крупной компании фронт и бек могут быть совмещены, например если попадете в команду разрабатывающую внутренний и маленький компонент. Легче и нудно будет зависеть от компании, а зачастую даже от команды внутри компании. Другое дело, что в крупных компаниях скорее всего не будете клепать сайтики, это будет совсем другое направление, и требования к беку там будут совсем иные, чем те, к которым вы привыкли.
    Ответ написан
    Комментировать
  • Переработка в маленьких IT-компаниях?

    Adamos
    @Adamos
    Если вы считаете "нормальным бэкендом" узкого специалиста, который работает исключительно с сервером, а на фронте при сложении 2 и 2 получает 22 - вам нужно искать крупную компанию, где вы будете винтиком.
    Правда, искренне не понимаю, зачем. Вам страшно заниматься разнообразной работой?
    Ответ написан
    2 комментария
  • Как понять достоин ли ты более лучшей зар.платы или ещё не дорос и не надо высовываться даже?

    @Vitsliputsli
    Как понять достоин ли ты более лучшей зар.платы или ещё не дорос и не надо высовываться даже?

    Сходить на собеседование, иных вариантов просто нет. Пока вы сидите и мечтаете, новая хорошо оплачиваемая работа сама к вам не придет.
    Работать с api, писать свой api - это must have для разработчика, но насколько качественно вы это делаете? Насколько хорошо вы знаете указанный стек? (вопрос риторический, собеседования помогут на него ответить). Symfony и Laravel это неплохо. Clickhouse - очень интересно, вы его знаете, понимаете? Сами формировали работу с ним? Или просто используете, и для вас это непрозрачно?
    Английский - это проблема многих русскоязычных, в большинстве случаев умения читать техническую документацию достаточно, во всяком случае на первых парах.
    С удаленкой сложнее, после карантина работодатели стали более лояльны в этом плане, появилось больше вакансий, но сейчас опять смотрят с подозрением, т.к. производительность все же ниже для большинства.
    Вопросы на собеседованиях помогут вам ориентироваться в том что нужно сейчас, зачастую бывают вопросы которые считают дико важными, а чтобы изучить их вам понадобится 1-6 часов. Пробуйте.
    Ответ написан
    Комментировать
  • Стоит ли учить WordPress в 2021 году?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Парень, тебе вообще нет смысла что-либо учить в ИТ.

    Ты два года назад спрашивал что учить.
    Ты год назад хотел что-то учить (Angular 8 — какие ресурсы для обучения посоветуете?)

    Зачем ты снова спрашиваешь, все равно ничего не будешь делать, если для тебя даже посмотреть 240 часов видяшек за год - нереальная проблема.
    За два года люди из джунов становятся мидами, а ты до сих даже не определился что учить.
    Ответ написан
  • Не могу определиться с фреймворками .NET и Java?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    разработчику в Java EE для работы нужно знать огромное количество фреймворков

    95% вакансий на рынке требуют только Spring. Правда, саму экосистему спринга можно изучать десять лет.
    Ответ написан
    Комментировать
  • Можно ли развить IT стартап без знания кодирования и как?

    @caballero
    Программист
    стартап это прежде всего бизнес а не "сайт-платформа"
    сделать сайт самое простое нанял айтишнегов и сделали, а вот продвинть раскруть и заставить приносить прибыль это уже никакого отношения к кодированию не имеет
    Ответ написан
    Комментировать