• Frontend-дизайн

    • Перевод
    Всем привет!

    Наш курс «Разработчик JavaScript» в целом посвящён фронту и инструментам для него, но, как оказалось, не все представляют, что же скрывается за фразой фронтэнд-дизайн. Мы нашли небольшой интересный материал, где автор пытается разъяснить, что же скрывается за этим.

    Поехали.



    Где-то между дизайном — миром персон, пикселей и полировки — и инжинирингом — миром логики, циклов и линукса — лежит frontend-дизайн. Frontend-дизайн включает в себя работу с HTML, CSS и презентационным кодом JavaScript для создания пользовательского интерфейса.

    Frontend-дизайнеры (которые также могут называться UI-разработчиками, client-side разработчиками, дизайн-инженерами, frontend-архитекторами, дизайнерами/разработчиками, прототипистами, единорогами или Бо Джексонами) живут в своего рода чистилище между мирами:

    • Они понимают принципы и лучшие практики UX, но не тратят время на проведение исследований, создание флоу и планирование сценариев;
    • Они обладают эстетическим вкусом, но не тратят время на поиски комбинаций шрифтов, сравнение цветовых палитр, создание иллюстраций и иконок;
    • Они пишут на JavaScript, но не тратят время на написание кода прикладного уровня, подключение middleware и отладку;
    • Они понимают важность backend-разработки, но не тратят время на написание backend-логики, запуск серверов, нагрузочное тестирование и тд.

    Конечно, у всех по-разному. Некоторые занимаются frontend-дизайном в дополнении к своей основной должности. Официально они могут считаться разработчиками (что делает их “full-stuck разработчиками”, как сейчас принято говорить), а могут быть и дизайнерами (что делаем их “full-stuck дизайнерами”, наверное?). Иногда, особенно когда компании начинают разрастаться, frontend-дизайном занимаются люди, которые неловко застряли в том или ином департаменте.
    Читать дальше →
  • Компактные строки в Java 9

    • Перевод
    И снова здрасьте! Мы открыли очередной набор в, теперь уже девятую, группу «Разработчик Java» (а десятая группа в планах, внезапно, стоит на 31.12) и подготовили для вас интересные материалы и открытый урок.

    Так что поехали.

    Хотите уменьшить количество памяти используемой вашим Java-приложением? Посмотрите, как можно улучшить производительность с помощью компактных строк, доступных в Java 9.

    Одним из решений по улучшению производительности, представленных в JVM (Oracle HotSpot, если быть точным), в качестве части Java SE 9, оказались компактные строки (compact strings). Их задача заключается в уменьшении размера String-объектов, что позволяет уменьшить общий объем (футпринт) памяти потребляемой приложением. В результате, это может уменьшить количество времени, затрачиваемого на сбор мусора.

    Читать дальше →
  • Открытый урок «Обзор возможностей Node.js»

      Всем привет!

      Хотим поделиться с вами нашим новым открытым вебинаром, который был проведён в рамках курса «Разработчик JavaScript». На вебинаре Александр Коржиков, преподаватель и создатель курса, рассказал и показал на примерах внутреннее устройство платформы, ее окружение, встроенные модули и базовые концепции, которые используются при разработке приложений.


      Как всегда ждём комментарии и вопросы тут или их можно будет зайти к Александру на день открытых дверей и поспрашивать там.
    • Открытый вебинар «Как не нужно писать на Python»

        Всем привет! В рамках нашего курса «Разработчик Python» мы провели ещё один открытый урок на тему «Как не нужно писать на Python». Занятие вёл преподаватель и создатель курса Станислав Ступников, имеющий большой опыт промышленной и научной разработки. Рассматривались антипаттерны программирования, bad practice и прочее зло, о котором нужно знать и которого следует избегать в процессе написания кода.

        Подробности смотрите в видео и кратком изложении. Внимание: некоторые примеры кода не рекомендуется запускать на своём компьютере!

        Читать дальше →
      • Открытый урок «Виртуальная лаборатория на Vagrant»

          Всем доброго дня!

          Провели на прошлой недели открытый вебинар в рамках нашего курса «Администратор Linux», где Леонид разбирал быструю настройку Vagrant-а, а так же возможности и нюансы совместного использования Vagrant и Git.


          Вопросы и комментарии, как всегда, ждём или тут, или их можно задать нашим преподавателям, зайдя на день открытых дверей.
        • Анализ процесса загрузки ядра Linux

          • Перевод
          Всем привет!

          Пока Леонид готовится к своему первому открытому уроку по нашему курсу «Администратор Linux», мы продолжаем рассказывать про загрузку ядра Linux-а.

          Поехали!

          Понимание работы системы, функционирующей без сбоев — подготовка к устранению неизбежных поломок

          Древнейшая шутка в области ПО с открытым исходным кодом — заявление, что “код документирует сам себя”. Опыт показывает, что чтение исходного кода похоже на прослушивание прогнозов погоды: разумные люди все равно выйдут на улицу и посмотрят на небо. Ниже приводятся советы для проверки и изучения загрузки систем Linux с помощью знакомых инструментов отладки. Анализ процесса загрузки системы, которая работает хорошо, готовит пользователей и разработчиков к устранению неизбежных сбоев.

          С одной стороны, процесс загрузки на удивление прост. Ядро операционной системы (kernel) запускается однопоточно и синхронно на одном ядре (core), что может показаться понятным даже жалкому человеческому уму. Но как запускается само ядро ОС? Какие функции выполняют initrd (диск в оперативной памяти для начальной инициализации) и загрузчики? И постойте, почему всегда горит светодиод в Ethernet-порте?

          Читать дальше →
        • Python 3 в Facebook

          • Перевод
          Всем привет!

          Запустили юбилейный пятый поток курса «Разработчик Python». Перед стартом каждого потока часто спрашивают какую версию мы используем в обучении (вообще обе и не только, как бы это странно не звучало, учитывая как называется курс, Python) и разные нюансы миграции с одной версии на другую. Сегодня мы хотим поделиться статьёй об опыте миграцию с 2 на 3 в Facebook, которую рассказывали на PyConf.

          Поехали.

          Переход на Python 3 стал значительно популярней за последние годы, но процесс еще далек от завершения. В инфраструктуре многих крупных компаний, использующих Python, остаются большие блоки кода на Python 2.7, и Facebook — не исключение. Джейсон Фрайд (Jason Fried) посетил PyCon 2018, чтобы рассказать об изменениях, произошедших в компании за последние 4 года — в самом начале Python 3 практически отсутствовал, но в итоге стал основной версией Python в компании. Джейсон помог достичь этой цели, и его доклад [видео на YouTube] — отличный источник идей для других организаций, которые хотят провести миграцию.

          Фрайд начал работать в Facebook в 2011 году и быстро понял, что нужно учить Python, если он хочет получать ревью кода быстрее. Чуть позже он понял, что стал основной движущей силой за переход на Python 3 в Facebook. Это никогда не входило в его планы, и случилось само собой по мере его работы с Python.

          Читать дальше →
          • +23
          • 4,9k
          • 9
        • Открытый вебинар «Игра «2048»

            Всем привет!

            Мы открыли новый курс — «Разработчик игр на C#» (который, в целом, больше, чем только разработка игр), а создатель и преподаватель курс Евгений Волосатов уже провёл первый открытый урок. На нём он показал на примере создания игры «2048» весь жизненный цикл создания программы: планирование, создание модуля логики игры, интерфейса пользователя, подбор музыкальных эффектов, перенос игры на Android или iPhone.



            Как всегда ждём вопросы и комментарии тут или их можно задать Евгению, зайдя на день открытых дверей.
          • Введение в процессы загрузки ядра и запуска системы Linux

            • Перевод
            Всем привет! Вот мы и открыли очередной, четвёртый по счёт уже, поток курса «Администратор Linux», который уверенно занимают свою нишу рядом с девопсерским курсом. Больше преподавателей, больше информации и стендов. Ну и как всегда больше интересной информации, которую подобрали преподаватели.

            Поехали.

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

            Понимать процессы загрузки ядра и запуска системы Linux, важно для настройки Linux и решения проблем запуска. В этой статье представлен обзор процесса загрузки ядра с использованием GRUB2 загрузчика и запуска, выполняемого системой инициализации systemd.

            На самом деле, есть два ряда событий, необходимых для приведения компьютера с Linux в рабочее состояние: загрузка ядра (boot) и запуск системы (startup). Процесс загрузки ядра начинается при включении компьютера и заканчивается с инициализацией ядра и запуском systemd. После этого начинается процесс запуска системы, и именно он доводит компьютер Linux до рабочего состояния.

            Читать дальше →
          • Худшая диаграмма на свете

            • Перевод
            Всем привет!

            А мы тут запускаем очередной поток курса «Разработчик JavaScript» и, по рекомендации преподавателей, готовим интересные материалы для чтения. Сегодня посмотрим на одну интересную заметку о визуализации вывода данных.

            Поехали.

            Круговая диаграмма — самый ужасный способ передачи информации, когда-либо изобретенный за всю историю визуализации данных.

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

            Давайте, я объясню, что с ней не так, и почему вам необходимо перестать использовать ее как можно скорее.

            Сперва, поговорим о том, зачем мы вообще используем диаграммы:

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

            Я покажу, как круговая диаграмма терпит неудачу по всем эти критериям. “Задача” круговой диаграммы — показать взаимоотношения частей и целого.

            Читать дальше →
          • Открытый вебинар «Индексы»

              Всем привет!

              В рамках нашего нового курса «Реляционные СУБД» создатель и преподаватель курса Алексей Цыкунов провёл открытый урок по типам индексов, об их преимуществах и недостатках. Разбиралось в каких случаях какие именно применяются, как они работают при операциях SELECT/INSRT/UPDATE/DELETE.


              Как всегда ждём вопросы и комментарии.
              • +12
              • 2,3k
              • 7
            • Реактивное программирование с JAX-RS

              • Перевод
              Всем привет!

              Последний в этом году курс «Разработчик Java Enterprise» успешно запущен и у нас остался последний материал по данной теме, которым мы хотим поделиться с вами, где разбирается использование асинхронного подхода и стейджинга для разработки отзывчивых реактивных приложений.

              Поехали.

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

              Почти все языки и фреймворки используют этот подход в своей экосистеме, и последние версии Java — не исключение. В этой статье я объясню как можно применить реактивное программирование, используя последнюю версию JAX-RS в Java EE 8 и функционал Java 8.

              Читать дальше →
              • +14
              • 1,4k
              • 1
            • Открытый вебинар «Cтранно рекурсивный шаблон»

                Всем привет!

                Дима Шебордаев — основатель нашего курса «Разработчик C++», провёл открытый урок о работе с техникой перевёрнутого наследования. На вебинаре разбирали статический полиморфизм, CRTP и многое другое в рамках сохранения производительности в данном методе.



                Как всегда ждём вопросы и комментарии тут или их можно задать напрямую Диме, зайдя на день открытых дверей.
              • DBMS-транзакции

                • Перевод
                Всем бобра! Мы активно расширяем наш, так сказать, ассортимент курсов, и вот рады представить новый: «Реляционные СУБД». Курс создан одним из ведущих преподавателей курса «Администратор Linux»Алексеем Цыкуновым. В остальном всё будет как обычно: полезности и открытые уроки, на которых Алексей будет делиться разными вещами, что не входят в сам курс.

                Поехали!
                Читать дальше →
              • Что нового в JPA 2.2

                • Перевод
                Всех с праздником!

                Так уж внезапно получилось, что старт второй группы «Разработчик Java Enterprise» совпал с 256-м днём в году. Совпадение? Не думаю.

                Ну и делимся предпоследней интересностью: что же нового привнёс JPA 2.2 — cтриминг результатов, улучшенное преобразование даты, новые аннотации — лишь несколько примеров полезных улучшений.

                Поехали!

                Java Persistence API (JPA) — основополагающая спецификация Java EE, которая широко используется в индустрии. Независимо от того, разрабатываете вы для платформы Java EE или для альтернативного фреймворка Java, JPA — ваш выбор для сохранения данных. JPA 2.1 улучшили спецификацию, позволив разработчикам решать такие задачи, как автоматическая генерация схемы базы данных и эффективная работа с процедурами, хранящимися в базе данных. Последняя версия, JPA 2.2, улучшает спецификацию на основе этих изменений.
                В этой статье я расскажу о новом функционале и приведу примеры, которые помогут начать с ним работать. В качестве образца я использую проект “Java EE 8 Playground”, который есть на GitHub. Пример приложения основан на спецификации Java EE 8 и использует фреймворк JavaServer Faces (JSF), Enterprise JavaBeans (EJB) и JPA для персистентности. Чтобы понять, о чем речь, вы должны быть знакомы с JPA.


                Читать дальше →
                • +21
                • 3,1k
                • 5
              • Простейшая реализация Entity Component System

                • Перевод
                Всем привет!

                У нас стартует четвёртый поток «Разработчик C++», один из самых активных курсов у нас, если судить по реальным встречам, где для того чтобы пообщаться с Димой Шебордаевым приходят далеко не только «крестоносцы» :) Ну и вообще в целом курс уже разросся до одного из крупнейших у нас, осталось неизменным то, что Дима проводит открытые уроки и мы подбираем интересные материалы перед стартом курса.

                Поехали!

                Вступление


                Entity Component System (ECS, «сущность-компонент-система») — сейчас на пике популярности в качестве архитектурной альтернативы, которая подчеркивает принцип Composition over inheritance. В этой статье я не буду вдаваться в подробности концепции, так как уже существует достаточно ресурсов на эту тему. Есть множество способов имплементации ECS, и, я но, чаще всего, выбирают довольно сложные, которые способны запутать новичков и требуют много времени.

                В этом посте я опишу очень простой способ имплементации ECS, функциональная версия которого почти не требует кода, но полностью следует концепции.

                Читать дальше →
              • Открытый урок Java Enterprise «CDI in action»

                  Всем доброго дня!

                  Наш прекрасный Виталий Иванов, преподаватель курса «Разработчик Java Enterprise» провёл на прошлой неделе вебинар на тему «CDI in action» — про с одну из ключевых спецификаций стека Java Enterprise — Contexts and Dependency Injection 2.0. На уроке в целом разбирались паттерны IoC и DI, а на примере референсной имплементации Weld провели знакомство с Managed Beans, способами их внедрения и определения контекста, плюс разобрали такие возможности спецификации, как перехватчики, декораторы и альтернативы.


                  Если есть какие-либо вопросы и комментарии, то их можно оставить тут или задать их Виталию напрямую, зайдя на день открытых дверей.
                • С облаков на землю: как создать production-grade Kubernetes в любых условиях

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

                  image
                  Читать дальше →
                • Java EE Concurrency API

                    Всем привет!

                    А мы тут плюшками балуемся запускаем второй поток курса «Разработчик Java Enterprise». Бессменный создатель и преподаватель курса — Виталий Иванов, написал вот по этому поводу статью даже, которая, как надеемся, покажется вам полезной :)

                    Так что поехали :)

                    Данная статья посвящена изучению API к спецификации JavaEE Concurrency (JSR 236), определяющий стандарт выполнения параллельных задач в JavaEE контейнере, используя концепцию управляемых ресурсов. Выход седьмой версии JavaEE сделал возможным запуск параллельных задач в Enterprise-контейнерах, предоставляя разработчику удобные средства и утилиты для работы с многозадачностью. До того самого момента, вся многозадачность отдавалась на откуп конкретной реализации используемого сервера приложений, самостоятельно принимающего решение об оптимизации выполнения задач. Нарушение этого принципа расценивалось как плохая практика построения архитектуры Enterprise-приложений. Вследствие чего, разработчику не рекомендовалось создавать новые потоки, а иногда и запрещалось подобное поведение на уровне контейнера.

                    Читать дальше →
                    • +15
                    • 3,4k
                    • 2
                  • Открытый урок «Aсинхронное программирование в Java»

                      Всем привет!

                      Делимся с вами очередным открытым уроком, который прошёл у нас в рамках курса «Разработчик Java». На нём преподаватель курса, Владимир Сонькин, рассказывал про асинхронное программирование почему оно позволяет делать код быстрым и эффективным, не используя сложные технологии распараллеливания. Также показывал примеры применения асинхронности для построения процессов обработки данных в бизнес-приложениях.



                      Как всегда ждём комментарии, вопрос, которые можно оставить тут или зайти на день открытых дверей.

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