• Краткий обзор Symfony. Актуальность. Стоит ли попробовать?

      Всем доброго! У нас запускается третий партнёрский курс — Разработчик PHP, где мы вместе с Авито подготовили программу, а теперь думаем стоит ли отдельно делать спецкурс по фреймворкам. Первым на рассмотрении оказался Symfony.

      Немного истории

      Symfony представляет собой один из самых популярных фреймворков для веб-разработки в мире.

      Он прошел длинный путь от полностью интегрированного full-stack фреймворка с бэк-офисом в Symfony 1.x к фреймворку, который стал развитием наработок Java-сообщества, и содержавшем в себе компоненты, вдохновленные JEE в версии Symfony2.

      Изначально Symfony2 требовал PHP 5.2.7, но PHP 5.3, только вышедший на тот момент, обладал новой объектно-ориентированной моделью, поэтому SensioLabs незамедлительно сделали эту версию обязательной. Уже после в Symfony использовали Composer, завершили документацию и полностью перевели её на английский.

      Практически сразу началась миграция крупных open-source проектов на Symfony: OroCRM, EzPublish, Drupal8, PHPBB, PrestaShop, Piwik и многие другие — часть полностью перешла на этот каркас, а некоторые использовали только отдельные программные компоненты. Стоит особо отметить Drupal8 — возможно, это не был самый первый проект, но точно одна из крупнейших CMS на рынке.

      Возможность использовать лишь отдельные программные компоненты Symfony позволила обогатить экосистему специализированными программными решениями. Это сместило в тень фреймворк Standard Edition, (так называемое “полное издание” или “мета-пакет”), который уже не мог быть ответом на насущные вопросы бизнеса. Поэтому в 2017 году создатель Symfony объявил, что версия 3.4 для него станет последней.


      Читать дальше →
      • –8
      • 2,6k
      • 8
    • Дебаты об отличном сервере приложений Java c Tomcat, Jboss, GlassFish, Jetty и Liberty Profile. Часть вторая

      • Перевод
      Всем доброго! Как и обещали, вторая часть перевода статьи по теме Java EE. Первую часть можно увидеть тут.

      ОПЕРАЦИЯ ПОД ПРИКРЫТИЕМ

      Надеемся, вы не только сейчас поняли, что бюджет равен 0, и вообще вас покорил WebLogic ;) До сих пор, мы рассматривали темы, значимые на начальных этапах, во время изучения серверов приложений. Теперь же посмотрим чуть глубже на каждый сервер, чтобы понять, отвечает ли он реальным задачам разработчика:

      • Настоящие показатели производительности;
      • Функционал и Соответствие Open Standards;
      • Администрирование и Управление/UI;
      • Стоимость $$$/Лицензия.

      Читайте дальше, уже скоро мы определим, какой сервер приложений лучший из лучших!

      Настоящие показатели производительности

      Знали ли вы, что Lamborghini Gallardo LP570-4 Superleggra 2011 г. выпуска разгоняется от 0 до 60 км/ч всего за 2.8 с, а Dodge Viper Hennessey Venom GT делает это за целых 2.9 с? Думаю, водителям Viper ооочень скучно ждать, пока их машина разгоняется до 60!


      Читать дальше →
    • Дебаты об Отличном Сервере Приложений Java c Tomcat, Jboss, GlassFish, Jetty и Liberty Profile

      • Перевод
      Всем доброго!
      Что ж у нас очередной новый курс Java Enterprise, а это значит, что есть то, чем мы с радостью поделимся с вами. Просьба особо не обращать внимания на версии и даты, т.к. суть от этого особо не меняется (или, если считаете, что меняется, то ждём комментарии).

      Вступление: Да начнутся дебаты…

      Какой тип сервера приложений Java вам стоит выбрать для следующего проекта? Зависит от того, какое приложение вы разрабатываете, какие у вас потребности, в какой организации работаете и многих других факторов. Без дебатов не обойтись. Поэтому навострите уши и слушайте внимательно.

      Что делает сервер приложений сервером приложений, мистер Лебовски?

      Что представляет собой сервер приложений — вопрос, вызывающий много споров в силу неточности определения. Википедия, как неоспоримый источник знаний, говорит следующее:
      Java Platform, Enterprise Edition, сокращенно Java EE (до версии 5.0 — Java 2 Enterprise Edition или J2EE) — набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий.
      Прости, Википедия, но в целях этой статьи, нам плевать на педантичные описания и полную имплементацию Java EE. Мы больше заботимся о нуждах и желаниях разработчиков.
      Большинство разработчиков работают над веб-приложениями и резко используют все навороченные особенности EE-спецификации. На самом деле, ныне доступные сервера, обладающие только базовым функционалом, являются наиболее используемыми, как показал наш Отчет Производительности Разработчиков:


      Читать дальше →
    • Стоимость операций в тактах ЦП

      • Перевод
      Всем доброго! Вот мы и добрались до тематики С++ на наших курсах и по нашей старой доброй традиции делимся тем, что мы нашли достаточно интересным при подготовке программы и то, что будем затрагивать во время обучения.

      Инфографика:



      Когда нам нужно оптимизировать код, мы должны отпрофилировать его и упростить. Однако, иногда имеет смысл просто узнать приблизительную стоимость некоторых популярных операций, чтобы не делать с самого начала неэффективных вещей (и, надеюсь, не профилировать программу позже).
      Читать дальше →
    • Как сделать свой блокчейн. Часть 1 — Создание, Хранение, Синхронизация, Отображение, Майнинг и Доказательная работа

      • Перевод
      Доброго всем! Мы тут потихоньку начали исследовать новое совсем для нас направление для обучения — блокчейны и нашли то, что оказалось интересным в рамках нашего курса по Python, в том числе. Чем, собственно, и хотим поделиться с вами.

      Читать дальше →
      • +16
      • 14,5k
      • 9
    • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

      Подробнее
      Реклама
    • Проектирование API на Java. Разработка приложений, построенных на базе SOA, с использованием технологий JAX-WS и JAX-RS

        Доброго всем! У нас открылся новый курс, в рамках, которого мы решили попробовать новый для нас формат — открытые уроки по разным темам, доступные для всех. В понедельник прошло первое занятие такого формата, запись которого мы вам представляем. Под катом доступно краткое изложение теории и ссылка на проект.

        Ссылка на видео
        Читать дальше →
      • Используйте DevOps, чтобы превратить ИТ в стратегическое оружие

        • Перевод
        Как обычно работая над материалами для курсов, часто встречаются вещи, которые вроде как и не нужны, потому что и так понятно, но написаны уж очень хорошо и ими сложно не поделиться. Вот и данная статья интересна тем, что в очередной раз показывает спектр задач охватываемых в DevOps

        Поехали…

        Работая вместе с соавторами над DevOps Cookbook, я начал лучше понимать, что является основным акцентом DevOps сообщества. Много внимания уделяется влиянию DevOps в рамках ИТ-подразделения. Гораздо меньше внимания уделяется влиянию DevOps в рамках всей компании. И практически никакого внимания не уделяется влиянию DevOps вне рамок компании, в частности взаимоотношению с другими компаниями и рынками, на которых они конкурируют.

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

        Но если ограничить DevOps евангелизм только ИТ организациями, будет упущена ценная польза от инвестиций в DevOps. Почему? Потому что уроки и принципы DevOps открывают нечто редкое для современных компаний. DevOps может превратить ИТ-процессы в устойчивое конкурентное преимущество компании. Это DevOps-послание необходимо распространить по всему бизнес отделу компании, вплоть до Генерального Директора и Совета Директоров.

        Чтобы понять, как DevOps может превратить ИТ-процессы в конкурентное преимущество, сначала нужно взглянуть на текущий контекст, в котором работают компании.
        Читать дальше →
      • Каков должен быть размер у Thread Pool?

          В нашей статье Stream API & ForkJoinPool мы уже рассказывали про возможности изменять размер пула потоков, который мы можем использовать в параллельных обработчиках, использующих Stream API или Fork Join. Надеюсь эта информация вам пригодилась, когда находясь на должности Senior Java Developer, вы смогли увеличить производительность разработанной вами системы, изменив размер пула по умолчанию. Так как наши курсы, в целом, заточены на переход ступеньку выше от джуниора и миддла выше, то часть программы строится исходя из основных вопросов задаваемых на собеседованиях. Один из из которых звучит так: «У вас есть приложение. И есть задача использующая Stream API или Fork Join, которая поддается распараллеливанию. При каких условиях вы можете счесть разумным изменить размер пула потоков заданный по умолчанию? Какой размер вы предложите в этом случае?»

          Можете попробовать ответить на этот вопрос сами, прежде чем читать дальше, чтобы проверить собственную готовность к подобному интервью на данный момент.

          Чтобы теоретические рассуждения подкрепить настоящими цифрами предлагаем погонять небольшой бенчмарк для стандартного метода Arrays.parallelSort(), реализующего разновидность алгоритма merge sort, и исполняемого на ForkJoinPool.commonPool(). Запустим этот алгоритм на одном и том же большом массиве с различными размерами commonPool и проанализируем результаты.


          Читать дальше →
        • Prometheus

          • Перевод
          Доброго всем. Делимся тут очень интересной статьёй, на которую натыкались в рамках подготовки нашего курса. Перевод идёт, как есть целиком (за исключением некоторых комментариев).

          Предыстория

          В двух словах — вступление о мониторинге и аппеляционности убеждений. Как многим известно, я сопровождаю Riemann — инструмент обработки потоков событий для мониторинга распределенных систем. В моей книге, посвященной мониторингу, я использовал Riemann, как основной инструмент для изучения новых подходов и паттернов мониторинга, и описал архитектуру whitebox-мониторинга (с выборочным blackbox-мониторингом), используя push модель.

          Чтобы понять, о чем я вообще веду речь, объясним некоторые концепции. Blackbox-мониторинг отвечает за проверку внешних характеристик сервисов или приложений: возможно ли подключиться к открытому порту сервиса, возвращаются ли корректные данные или код ответа. Примером blackbox-мониторинга может служить ICMP-запрос и подтверждение получения ответа.

          В свою очередь, whitebox-мониторинг сфокусирован на том, что происходит внутри сервиса или приложения. Приложение, обладающее соответствующим инструментарием, возвращает состояние самого себя или внутренних компонентов, результат выполнения транзакций или событий. Эти данные отвечают на вопрос “как работает приложение”, а не на вопрос “работает ли приложение”. Whitebox-мониторинг передает события, логи или метрики в специальный инструмент для мониторинга или предоставляет информацию наружу для последующего сбора инструментом мониторинга.
          Читать дальше →
          • +12
          • 5,7k
          • 5
        • JAVA 9. Что нового?

            Java — удивительно универсальный язык программирования. На сегодняшний день насчитывается около 6.5 млн разработчиков Java по всему миру. И все благодаря его утилитарности, простоте использования, безопасности и независимости платформы (он работает вне зависимости от того, какое оборудование или операционная система используются).

            Java была разработана в 1995 году компанией Sun Microsystems и изначально создавалась для интерактивного телевидения и программирования бытовых электронных устройств. Тем не менее, публичный релиз Java 1.0 выявил смену фокуса на интернет-использование, превратив его в один из самых популярных языков программирования.

            Очевидно, со времен 1.0 многое изменилось и вот наконец после множества переносов 21 сентября 2017 года состоялся релиз Java 9.

            Особенности предыдущей (8-й) версии благодаря своей универсальности предоставили разработчикам возможность создавать решения для самых разных секторов бизнеса, включая финтех, здравоохранение и другие индустрии. Среди ключевых нововведений Java 8 следует отметить лямбда-выражения, стримы и изменения в API.

            В свою очередь Java 9 также изобилует разнообразием обновлений “под капотом” и в API. Кроме очевидного проекта Jigsaw, на который возложена обязанность по внедрению модулярности в основные компоненты Java, новая версия может похвастаться ещё тремя важными фичами:

            1. Полная поддержка клиента HTTP 2.0: Вопрос в скорости, и HTTP 2.0 предоставляет более высокие результаты, колеблющиеся от 11.81% до 47.7% по сравнении с клиентом HTTP 1.1.
            2. Jshell: Новый инструмент командной строки. Если разработчик хочет автономно запустить несколько строк Java, то это можно выполнить без необходимости заворачивать все в отдельный метод или проект.
            3. Microbenchmark: Теперь производительность отдельных небольших частей кода можно измерить стандартизированным методом. Анализ JMH за наносекунды уникален для Java 9.


            Читать дальше →
          Самое читаемое