• Профессионально ли отказывать клиентам дорабатывать чужие проекты?

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

    opium
    @opium
    Просто люблю качественно работать
    Данный вопрос к профессионализму не имеет никакого отношения
    Ответ написан
    Комментировать
  • JWT как убивать сессии?

    sarapinit
    @sarapinit
    Точу водой камень
    JWT не предполагает что его можно убить, предусмотрено только истечение токена по времени которое в нём зашито.
    Если вы хотите сами управлять временем жизни токена то вам нужен ReferenceToken.
    В этом сценарии вы даете клиенту только уникальный id токена. Полный токен хранится в вашей БД по этому ключу и вы можете полностью управлять его временем жизни.
    https://openiddict.github.io/openiddict-documentat...
    Ответ написан
    6 комментариев
  • Какие проекты написать для портфолио на Java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Коллективный блог напишите.
    Ответ написан
    1 комментарий
  • Зачем frontend девелоперу такой большой опыт?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вы путаете причину и следствие. Фронты очень востребованы рынком, поэтому и вакансий много, и зарплаты высокие, а порог входа при этом очень низкий. Из-за сочетания этих факторов соискателей огромное количество, но 99.9% из них - профаны. Для их отсеивания как раз и выставляется требование к подтверждённому опыту. То есть работодатель в среднем случае не ждёт от фронта особых знаний, но хочет ещё до собеседования иметь уверенность, что эти знания точно есть.
    Ответ написан
    10 комментариев
  • Меня уволили. Что мне думать?

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

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Сложный? Сейчас?!
    5dbf9c5664851438289708.jpeg
    Вам бы в 70-е или хотя бы 90-е попробовать.

    но когда уборщица и охранник получают как минимум в 2 раза больше , это очень странно!

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

    никто учить не хочет и не собирается

    Бизнес - это не школа. Бизнесу нужно деньги зарабатывать, а не учить вас.

    В итоге , надо 2-3 года вкалывать , что бы перестать работать за еду. Что не так с IT?

    Например в медицине этот срок 6-9 лет.
    Ответ написан
    17 комментариев
  • Берут ли на Java стек людей с других языков?

    @techkuz
    Нужно устроиться в компанию, где пишут на PHP и Java. Устроиться хотя бы на PHP миддла. Потом постепенно подтягивать java, начинать брать таски и плавно перейти в рамках одной организации
    Ответ написан
    Комментировать
  • Как использовать async\await во Vue?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    А then то зачем?

    example: async() => {
      console.log('start');
      for (let i in this.orders) {
          await this.getOrder();
          console.log('loaded ' + i);
      }
      console.log('finish');
    }




    UPD

    Важно: в определении методов нельзя использовать стрелочную функцию, если вам нужен доступ к this. Освежите знания по стрелкам, контекстам.
    Ответ написан
    Комментировать
  • Как и зачем Vue.js связан с Laravel?

    Fragster
    @Fragster
    помогло? отметь решением!
    Если ларавел используется только как бэкэнд - использовать именно его vue не обязательно, можно положить его в отдельную папку и не использовать его фронт возможности вообще. Если делается MPA приложение с первичным рендером на сервере с помощью php и использованием vue только как часть страницы (например сложные формы, корзины там всякие), то использовать mix достаточно удобно.
    Ответ написан
    Комментировать
  • Возможет ли отрицательный хешкод и расширение капасити при плохом хешкоде? А также как соотносится хешкод с адресом?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Во-первых, важно определиться с тем, что генерируемый по умолчанию хэш не соответствует требованиям к хорошему хэшу. Поэтому метод hashCode всегда надо переопределять в своих классах. Во-вторых, важно понимать, что способ генерации хэшкода по умолчанию не оговорен в спецификаций Java, а потому может отличать в разных реализациях виртуальной машины или даже в разных версиях одной и той же реализации. Я дальше буду писать про HotSpot.

    Несмотря на то, что в документации написано, что генерируемый по умолчанию хэш - "this is typically implemented by converting the internal address of the object into an integer", этот internal address не имеет никакого отношения к положению объекта в памяти. Попробуем разобраться откуда он берётся. Для этого заглянем в исходный код Object. Как видно, hashCode() - это нативный метод, а значит придётся покопаться в сишном коде. Находим его определение:
    JVM_ENTRY(jint, JVM_IHashCode(JNIEnv* env, jobject handle))
      JVMWrapper("JVM_IHashCode");
      // as implemented in the classic virtual machine; return 0 if object is NULL
      return handle == NULL ? 0 : ObjectSynchronizer::FastHashCode (THREAD, JNIHandles::resolve_non_null(handle)) ;
    JVM_END

    Ага, хэшкод генерирует функция ObjectSynchronizer::FastHashCode(). Посмотрим, что в ней. Интересная часть:
    mark = monitor->header();
    ...
    hash = mark->hash();
    if (hash == 0) {
      hash = get_next_hash(Self, obj);
    ...
    }
    ...
    return hash;

    Функция пытается получить хэш из заголовка объекта, а если его там нет, то генерирует вызовом get_next_hash. В этой функции определяются несколько методов генерации хэша. В HotSpot шестой и седьмой версии использовался первый - генерация случайного числа. Вообще ни разу не internal address! С восьмой версии используется пятый - "Marsaglia's xor-shift scheme with thread-specific state". Почитать про этот алгоритм можно здесь. Если отбросить нюансы, опять случайное число, не internal address.

    Если я переопределю хешкод и он иногда ( или всегда, например -1) будет выдавать отрицательные целые, что будет? Очевидно это число как-то преобразуется под капотом? потому что должен выдаваться номер бакета?

    Заглядываем в исходный код HashMap
    if ((p = tab[i = (n - 1) & hash]) == null)
      tab[i] = newNode(hash, key, value, null);

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

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

    P.S. Виртуальная машина Zing генерирует хэшкоды по умолчанию на основе адреса объекта в памяти.
    Ответ написан
    4 комментария
  • Максимально эффективная методика изучения программирования?

    Adamos
    @Adamos
    Методика наиболее эффективного обучения:
    1. Закрой Тостер
    2. Открой учебник
    3. Пиши код
    4. Закрой Тостер!
    Ответ написан
    4 комментария
  • Получить css свойство элемента vue?

    profesor08
    @profesor08
    Ответ написан
    Комментировать
  • Что лучше делать чтоб в будущем устроиться в офис?

    @Lord_Dantes
    Советую изучить русский язык и поменять лексикон на более приемлемый
    ---
    Не ну я типо тоже могу сказать здарова чувак типо тд но в офисе на собеседование это не проканает. Лол много лайков, не обижайся(((
    Ответ написан
    Комментировать
  • Зачем нужно ООП?

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

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Может дать понимание как работает железо - как устроена память, что происходит с регистрами при операциях, что такое прерывания, стек, и прочее...
    ООП - это совершенно другой уровень абстракции. Как раз чтобы абстрагироваться от железа и работать с некими абстрактными сущностями - объектами, не задумываясь особо о том как это будет реализовано в железе.
    Ответ написан
    Комментировать
  • Зачем нужен Optional и почему над null нельзя выполнить те же действия?

    @koperagen
    Вы и так можете проверить проверить ссылку на null, без каких-то дополнительных методов и сущностей. Optional здесь явным образом сообщает, что результат метода может существовать (значение), либо не существовать (null) и не даёт получить значение, не сделав выбор, как обработать ситуацию с его отсутствием. Кроме обычного get() есть ещё методы getOrElse(), позволяющий указать значение по умолчанию, getOrNull().

    Ещё бывает удобно сначала выполнить цепочку преобразований над Optional при помощи метода map(), а в конце получить значение любым удобным способом и дальше работать с "чистым" объектом ожидаемого типа.

    В kotlinе (раз язык не принципиален) на помощь с борьбой с NPE приходят nullable типы. Каждый класс порождает два типа, к примеру для класса Person это будет Person и Person?. В сигнатурах методов можно явно указать, какой из типов допустим. Если Person?, то компилятор вынудит вас обработать случай с приходом null. Так же вы не сможете вернуть из метода null, если объявили в качестве результата тип Person. Программа просто не скомпилируется. Все ради того, чтобы null не приходил из неожиданных мест, обрабатывался и не ронял программу.
    Ответ написан
    Комментировать
  • Как выглядит рабочий процесс при разработке (сайта) на Node.JS с ES6 модулями?

    @McBernar
    Ну камон. Hot reload. Если сами не хотите разбираться — посмотрите пару роликов на ютубе по стартовой настройке вебпака.
    Ответ написан
    4 комментария
  • Как выглядит рабочий процесс при разработке (сайта) на Node.JS с ES6 модулями?

    @abberati
    frontend-разработчик
    Webpack devserver делает пункты 2,4,5 сам в автоматическом режиме.
    Ответ написан
    Комментировать
  • Наказание за поиск уязвимостей?

    Jump
    @Jump
    Системный администратор со стажем.
    Наказание за поиск уязвимостей?
    Нет такого.
    Просто зачастую поиск уязвимостей практически не отличим от попыток взлома.
    Ответ написан
    Комментировать