• JDK 9/JEP 280: конкатенация строк никогда больше не будет прежней

    • Перевод
    И снова здравствуйте. Как мы уже писали, на следующей неделе стартует новая группа обучения по курсу «Разработчик Java», по устоявшейся традиции делимся с вами переводом интересного материала по теме.

    Начиная с JDK 9 конкатенация строк претерпела значительные изменения.

    JEP 280 («Indify String Concatenation») был реализован в рамках JDK 9 и, в соответствии с разделом «Summary»: «Изменяет статическую последовательность байт-кода конкатенации строк, сгенерированную javac, для использования вызовов invokedynamic к функциям библиотеки JDK». Влияние, которое это оказывает на конкатенацию строк в Java, легче всего заметить, посмотрев на javap-вывод классов, использующих конкатенацию строк, которые скомпилированы в JDK до JDK 9 и после JDK 9.


    Читать дальше →
  • Топ-7 Сценариев Использования Data Science в Финансах

    • Перевод
    Доброе утро! Сегодняшнюю публикацию мы хотим посвятить запуску курса «Data Scientist», который стартует уже 26 марта. Поехали!

    За последние годы наука о данных и машинное обучение стали существенно лучше справляться с основными финансовыми задачами. Это показывает, что компании хотят знать больше о технологических преимуществах и том, как они меняют бизнес-стратегии.

    Чтобы рассказать вам об этом, мы подготовили список юзкейсов науки о данных, которые сильнее всего повлияли на финансовый сектор. Они охватывают самые разные сферы бизнеса: от управления данными до торговых стратегий. Всех их объединяет огромный потенциал улучшить финансовые решения.


    Читать дальше →
    • –3
    • 3,5k
    • 1
  • Как система типов улучшает ваш код на JavaScript

    • Перевод
    Вот так не успеешь обернуться, а месяц уже стремится к своему завершению. Считанные дни остаются до запуска нового потока по курсу «Разработчик JavaScript», по традиции перед запуском курса делимся с вами переводом полезного материала.

    Vanilla JavaScript не типизирован по своей натуре. Можно даже назвать его «умным», поскольку он способен вычислить, что является числом, а что строкой.

    Это упрощает запуск JavaScript кода в браузере или при работе Node.js. Однако он уязвим для многочисленных ошибок во время исполнения (рантайм), которые могут испортить ваш пользовательский опыт использования.



    Если с вами когда-либо случалось то, что будет описано далее, то вы только выиграете, если будете применять систему типов.
    Читать дальше →
  • Лямбды: от C++11 до C++20. Часть 1

    • Перевод
    Добрый день, друзья. Сегодня мы подготовили для вас перевод первой части статьи «Лямбды: от C++11 до C++20». Публикация данного материала приурочена к запуску курса «Разработчик C++», который стартует уже завтра.

    Лямбда-выражения являются одним из наиболее мощных дополнений в C++11 и продолжают развиваться с каждым новым стандартом языка. В этой статье мы пройдемся по их истории и посмотрим на эволюцию этой важной части современного C++.



    Вторая часть доступна по ссылке:
    Lambdas: From C++11 to C++20, Part 2
    Читать дальше →
    • +23
    • 6,7k
    • 7
  • Headless тестирование в браузере. Плюсы и минусы

    • Перевод
    И снова здравствуйте. Данная публикация приурочена к запуску курса «Автоматизация веб-тестирования», который стартует уже на этой неделе. Приятного прочтения!

    Что такое Headless тестирование?

    Headless тестирование представляет собой запуск в браузере теста на работоспособность каких-либо составляющих UI без отображения этого самого UI. Такое тестирование запускает скрипты в браузере, но не запускает и не показывает сам по себе UI.



    Почему вам может понадобиться использовать Headless-браузеры? У этого подхода есть множество плюсов и минусов. Использование headless браузера может быть не очень полезным для серфинга в сети, но для автоматизации задач и тестирования он незаменим.
    Читать дальше →
    • +13
    • 5,3k
    • 7
  • Знакомство с Тестированием в Python. Ч. 3

    • Перевод
    Друзья, у нас для вас отличные новости. Во-первых на улице наконец-то светит солнышко, а это значит, что весна начинает полноправно вступать в свои права. Вторая новость более профильная — уже 20 марта стартует первое занятие в новом потоке по курсу «Разработчик Python», в связи с этим мы публикуем заключительную часть статьи «Знакомство с Тестированием в Python», предыдущие части которой можно прочитать здесь и здесь.

    Тестирование в Нескольких Средах

    До сих пор вы проводили тесты для одной версии Python с помощью виртуальной среды с определенным набором зависимостей. Но всегда может возникнуть потребность проверить работу приложения на нескольких версиях Python или нескольких версиях пакета. Tox — приложение, автоматизирующее тестирование в нескольких средах.


    Читать дальше →
  • Сравнение фреймворков для глубокого обучения: TensorFlow, PyTorch, Keras, MXNet, Microsoft Cognitive Toolkit, Caffe, etc

    • Перевод
    Всем привет. В этот пятничный день делимся с вами первой публикацией посвященной запуску курса «Data Scientist». Приятного прочтения.

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



    Следующий список фреймворков для глубокого обучения может стать подспорьем в процессе выбора подходящего средства для решения конкретных задач, с которыми вы сталкиваетесь в процессе работы над проектом. Вы сможете сравнить плюсы и минусы различных решений, оценить их пределы возможностей и узнать о лучших вариантах использования для каждого решения!
    Читать дальше →
  • Java Challengers #4: Сравнение объектов с equals() и hashCode()

    • Перевод

    Java Challengers #4: Сравнение объектов с equals() и hashCode()


    В преддверии запуска нового потока по курсу "Разработчик Java" мы продолжаем перевод серии статей Java Challengers, предыдущие части которых можно прочитать по ссылкам ниже:



    Поехали!


    В этой статье вы узнаете, как связаны между собой методы equals() и hashCode() и как они используются при сравнении объектов.


    equals-hashcode

    Читать дальше →
  • Что такое Strict Aliasing и почему нас должно это волновать? Часть 2

    • Перевод
    (ИЛИ каламбур типизации, неопределенное поведение и выравнивание, о мой Бог!)

    Друзья, до запуска нового потока по курсу «Разработчик С++», остается совсем немного времени. Пришло время опубликовать перевод второй части материала, в которой рассказывается о том, что такое каламбур типизации.

    Что такое каламбур типизации?

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



    Иногда мы хотим обойти систему типов и интерпретировать объект как другой тип. Переинтерпретация сегмента памяти в качестве другого типа называется каламбуром типизации (type punning). Каламбуры типизации полезны для задач, которым требуется доступ к базовому представлению объекта для просмотра, транспортировки или манипулирования предоставленными данными. Типичные области, в которых мы можем встретить использование каламбуров типизации: компиляторы, сериализация, сетевой код и т.д.
    Читать дальше →
  • Паттерны и анти-паттерны CI/CD. Часть 3

    • Перевод
    И снова здравствуйте. Сегодня хотим поделиться с вами переводом третьей части статьи «Паттерны и анти-паттерны CI/CD», предыдущие части которой можно прочитать здесь и здесь. Напомним, данная серия публикаций приурочена к запуску нового потока по курсу «DevOps практики и инструменты», набор на который закроется уже в ближайшие дни.

    1.3.5.1 Недостатки Сквозного Тестирования

    “Любое преимущество от общения с настоящей системой затмевается необходимостью искоренять недетерминизм” Мартин Фаулер (Martin Fowler).

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



    Сквозное Тестирование часто кажется привлекательным из-за субъективных преимуществ сквозных тестов:

    1. Сквозной тест максимизирует System Under Tests, что предполагает высокую степень покрытия тестами;
    2. Сквозной тест использует саму систему в качестве тестового клиента, что предполагает низкие затраты на тестовую инфраструктуру.
    Читать дальше →
    • +11
    • 3,9k
    • 2

Самое читаемое