• 11 советов для тех, кто использует Redux при разработке React-приложений

    • Translation
    Когда речь идёт о разработке React-приложений, то, в плане архитектуры кода, маленькие проекты часто бывают более гибкими, чем большие. Нет ничего плохого в том, чтобы создавать такие проекты с использованием практических рекомендаций, нацеленных на более крупные приложения. Но всё это, в случае с маленькими проектами, может оказаться попросту ненужным. Чем меньше приложение — тем «снисходительнее» оно относится к использованию в нём простых решений, возможно — неоптимальных, но не требующих больших затрат времени на их реализацию.



    Несмотря на это хотелось бы отметить, что некоторые рекомендации, которые будут даны в этом материале, нацелены на React-приложения любого масштаба.
    Читать дальше →
    • +20
    • 5.1k
    • 7
  • Рассказ о том, как команда фрилансеров пишет фулстек-приложения на JavaScript

    • Translation
    Автор материала, перевод которого мы сегодня публикуем, говорит, что GitHub-репозиторий, над которым работал он и ещё несколько фрилансеров, получил, по разным причинам, около 8200 звёзд за 3 дня. Этот репозиторий попал на первое место в HackerNews и в GitHub Trending, за него отдали голоса 20000 пользователей Reddit.



    В данном репозитории отражена методика разработки фулстек-приложений, которой посвящена эта статья.
    Читать дальше →
    • +21
    • 7.9k
    • 8
  • 19 концепций, которые нужно изучить для того, чтобы стать эффективным Angular-разработчиком

    • Translation
    TODO-приложение во фронтенд-разработке — это то же самое, что «Hello world» в обычном программировании. При создании TODO-приложений можно изучить выполнение CRUD-операций средствами того или иного фреймворка. Но часто подобные проекты лишь весьма поверхностно касаются того, что на самом деле умеет фреймворк.

    Если взглянуть на Angular, то возникает такое ощущение, что этот фреймворк постоянно меняется и обновляется. На самом же деле в том, что касается Angular, можно выделить некоторые идеи, которые остаются неизменными. В материале, перевод которого мы сегодня публикуем, приведён обзор базовых концепций Angular, которые нужно понять для того, чтобы правильно и эффективно пользоваться возможностями этого фреймворка.



    Для освоения Angular нужно очень много всего изучить. Многие разработчики застревают на начальных этапах освоения Angular. Происходит это из-за того, что они не знают о том, куда им двигаться, или не знают того, по каким ключевым словам им искать информацию, которая позволит им сделать шаг вперёд. Автор этого материала говорит, что ей, когда она начинала осваивать Angular 2+, хотелось бы, чтобы ей попалось бы руководство по данному фреймворку, похожее на это.
    Читать дальше →
  • История четырёхкратного ускорения React-приложения

    • Translation
    Почти 60% посетителей сайта покидают его в том случае, если его загрузка занимает более 3 секунд. 80% таких посетителей на сайт уже не возвращается. Это говорит о том, что успех веб-проекта не в последнюю очередь зависит от его скорости. Автор материала, перевод которого мы сегодня публикуем, хочет рассказать о методиках повышения производительности React-приложений.


    Результаты оптимизации приложения
    Читать дальше →
  • Обзор Python-пакета Datatable

    • Translation
    «Пять экзабайт информации создано человечеством с момента зарождения цивилизации до 2003 года, но столько же сейчас создаётся каждые два дня». Эрик Шмидт


    Datatable — это Python-библиотека для выполнения эффективной многопоточной обработки данных. Datatable поддерживает наборы данных, которые не помещаются в памяти.

    Если вы пишете на R, то вы, вероятно, уже используете пакет data.table. Data.table — это расширение R-пакета data.frame. Кроме того, без этого пакета не обойтись тем, кто пользуется R для быстрой агрегации больших наборов данных (речь идёт, в частности, о 100 Гб данных в RAM).

    Пакет data.table для R весьма гибок и производителен. Пользоваться им легко и удобно, программы, в которых он применяется, пишутся довольно быстро. Этот пакет широко известен в кругах R-программистов. Его загружают более 400 тысяч раз в месяц, он используется в почти 650 CRAN и Bioconductor-пакетах (источник).

    Какая от всего этого польза для тех, кто занимается анализом данных на Python? Всё дело в том, что существует Python-пакет datatable, являющийся аналогом data.table из мира R. Пакет datatable чётко ориентирован на обработку больших наборов данных. Он отличается высокой производительностью — как при работе с данными, которые полностью помещаются в оперативной памяти, так и при работе с данными, размер которых превышает объём доступной RAM. Он поддерживает и многопоточную обработку данных. В целом, пакет datatable вполне можно назвать младшим братом data.table.
    Читать дальше →
    • +33
    • 7.9k
    • 8
  • Что записано в this? Закулисье JavaScript-объектов

    • Translation
    JavaScript — это мультипарадигменный язык, поддерживающий объектно-ориентированное программирование и динамическую привязку методов — мощную концепцию, которая позволяет структуре JavaScript-кода меняться во время выполнения программы. Это даёт разработчикам серьёзные возможности, это делает язык гибким, но за всё надо платить. В данном случае платить приходится понятностью кода. Серьёзный вклад в эту цену вносит ключевое слово this, вокруг особенностей поведения которого собрано много такого, что способно запутать программиста.


    Читать дальше →
    • +23
    • 10k
    • 8
  • The one who resurrected Duke Nukem: interview with Randy Pitchford, magician from Gearbox

      RUVDS and Habr continue the series of interviews with interesting people in IT field. Last time we talked to Richard «Levelord» Gray, level designer of popular games Duke Nukem, American McGee’s Alice, Heavy Metal F.A.K.K.2, SiN, Serious Sam, author of well-known «You’re not supposed to be here» phrase.

      Today we welcome Randall Steward «Randy» Pitchford II, president, CEO and co-founder of Gearbox Software video game development company.

      Randy started in 3D Realms where contributed to Duke Nukem 3D Atomic Edition and Shadow Warrior. Then he founded Gearbox Software and made Half-Life: Opposing Force, which won D.I.C.E in 2000. Other Gearbox titles include Half-Life: Blue Shift, Half-Life: Decay, Counter-Strike: Condition Zero, James Bond 007: Nightfire, Tony Hawk's Pro Skater 3, Halo: Combat Evolved and of course Borderlands.

      The interview team also includes editor of Habr Nikolay Zemlyanskiy, Richard «Levelord» Gray, Randy’s wife Kristy Pitchford and Randy’s son Randy Jr.


      Read more →
    • Тот, кто воскресил Duke Nukem: интервью с Рэнди Питчфордом, волшебником из Gearbox

        RUVDS совместно с Хабром продолжают проект, состоящий из серии интервью с интересными, на наш взгляд людьми в IT-среде. В прошлый раз мы познакомились с Ричардом (Levelord) Греем, дизайнером Duke Nukem, American McGee’s Alice и многих других популярных игр.

        Сегодня представляем вашему вниманию интервью с Рэндаллом Стюардом «Рэнди» Питчфордом II. Рэнди — президент, исполнительный директор и сооснователь компании Gearbox Software.


        Краткая справка: Питчфорд некоторое время работал в 3D Realms, где внёс вклад в разработку Duke Nukem 3D Atomic Edition и Shadow Warrior.

        С Gearbox Software Питчфорд создал Half-Life: Opposing Force (за которую он получил награду от академии интерактивных искусств и наук, как за лучшую экшн-игру 2000 года на ПК), Half-Life: Blue Shift, Half-Life: Decay, Counter-Strike: Condition Zero, James Bond 007: Nightfire, Tony Hawk's Pro Skater 3 и Halo: Combat Evolved для ПК и конечно Borderlands.

        В интервью принимали участие редактор Хабра Николай Землянский, Ричард (Levelord) Грей, супруга Рэнди Кристи Питчфорд и его сын Рэнди младший.
        Читать дальше →
        • +40
        • 12.5k
        • 3
      • Рассказ о том, почему я до сих пор использую jQuery

        • Translation
        imageМногие, когда речь заходит о jQuery, говорят так: «Просто пользуйтесь обычным JavaScript. Библиотека jQuery вам не нужна». Что тут сказать? Я не нуждаюсь во многих вещах, но, несмотря на это, хорошо, когда они есть. Так и jQuery. Я в этой библиотеке не нуждаюсь, но её, определённо, приятно иметь под рукой.

        Сайты наподобие You might not need jQuery (YMNJQ) продвигают идею, в соответствии с которой от jQuery очень легко избавиться. Но самый первый пример на этом сайте демонстрирует вескую причину jQuery использовать. Там строка простого кода на jQuery заменяется на 10 строк обычного JS!
        Читать дальше →
      • Готовимся к 2020 году: 8 трендов клиентской JavaScript-разработки, о которых нужно знать

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

        Всё, что связано с JavaScript, очень быстро развивается. Это касается и того, что можно отнести к сфере веб-разработки. В наши дни те, в основе чьих проектов не лежат самые современные технологии, начинают особенно сильно ощущать разрыв между тем, чем они пользуются, и тем новым, что появляется едва ли не ежедневно. К таким технологиям можно отнести Webpack, React, Jest, Vue, Angular в их современном состоянии. В то время как «население» мира фронтенд-разработки, включающее в себя технических специалистов и программистов, постоянно растёт, этот мир стремится к стандартизации. Появление новых технологий и инструментов уже меняет ситуацию.



        Можно с изрядной долей уверенности говорить о том, что общим трендом развития фронтенд-технологий будет стандартизация разработки пользовательских интерфейсов. В частности, речь идёт о композиции, основанной на компонентах, о стремлении к модульности систем. Эта тенденция воздействует практически на всё — от стилизации до тестирования и даже до управления состоянием приложений. В этот тренд можно включить технологии, построенные вокруг веб-компонентов, ES-модулей, сюда же попадают соответствующие инструменты и многое другое.
        Читать дальше →
      • Рекомендации по написанию чистого кода на JavaScript

        • Translation
        Если вы заботитесь о самом коде, и о том, как он написан, а не заняты лишь тем, чтобы создавать работающие программы, это означает что вы стремитесь к тому, чтобы ваш код был чистым. Профессиональный разработчик пишет код не только в расчёте на компьютеры, но и в расчёте на себя самого, встретившего этот код в будущем, и в расчёте на других программистов. Код, который вы пишете, не исчезает навсегда в недрах компьютера. Он живёт, изменяется, и, если написан плохо, вполне может сильно расстроить того, кому придётся редактировать его после того, как вы его написали. Вполне возможно, что этим «кем-то» будете именно вы.



        Исходя из этих идей, чистый код можно определить как код, написанный так, что он сам себя объясняет. Этот код без труда смогут понять люди, его легко будет модифицировать или расширять.
        Читать дальше →
      • Node.js: управление памятью, доступной приложениям, выполняемым в контейнерах

        • Translation
        При запуске Node.js-приложений в контейнерах Docker традиционные настройки памяти не всегда работают так, как ожидается. Материал, перевод которого мы сегодня публикуем, посвящён поиску ответа на вопрос о том, почему это так. Здесь же будут приведены практические рекомендации по управлению памятью, доступной Node.js-приложениям, работающим в контейнерах.


        Читать дальше →
        • +35
        • 5.2k
        • 3
      • Wasmer: самая быстрая Go-библиотека для выполнения WebAssembly-кода

        • Translation
        WebAssembly (wasm) — это переносимый бинарный формат инструкций. Один и тот же код wasm-код может выполняться в любой среде. Для того чтобы поддержать данное утверждение, каждый язык, платформа и система должны быть в состоянии выполнять такой код, делая это как можно быстрее и безопаснее.

        Читать дальше →
        • +35
        • 4.4k
        • 7
      • Node.js-проекты, в которых лучше не использовать lock-файлы

        • Translation
        Автор материала, перевод которого мы сегодня публикуем, говорит, что одна из проблем, с которыми приходится сталкиваться программистам, заключается в том, что у них их код работает, а у кого-то другого выдаёт ошибки. Эта проблема, возможно, одна из самых распространённых, возникает из-за того, что в системах создателя и пользователя программы установлены разные зависимости, которые использует программа. Для борьбы с этим явлением в менеджерах пакетов yarn и npm существуют так называемые lock-файлы. Они содержат сведения о точных версиях зависимостей. Механизм это полезный, но если некто занимается разработкой пакета, который планируется опубликовать в npm, lock-файлы ему лучше не использовать. Этот материал посвящён рассказу о том, почему это так.


        Читать дальше →
      • API IntersectionObserver и ленивая загрузка изображений

        • Translation
        Использование ленивой загрузки изображений для улучшения производительности веб-проектов — востребованная техника оптимизации. Всё дело в том, что изображения — это «тяжёлые» ресурсы, которыми переполнены современные веб-сайты. Мы уже кое-что об этом публиковали. Здесь можно почитать о том, что дала ленивая загрузка сайту Walmart, и узнать о том, как пользоваться IntersectionObserver в React-проектах. Вот статья об оптимизация статических сайтов. Вот недавний материал о реализации ленивой загрузки средствами браузера.



        Сегодня мы представляем вашему вниманию перевод статьи, в которой использование API IntersectionObserver рассмотрено на примере простой веб-страницы. Этот материал рассчитан на начинающих программистов.
        Читать дальше →
      • История дизайна уровней Duke Nukem (с эскизами Левелорда)



          В преддверии 22-летия Duke Nukem вчера мы писали об истории игры. Сегодня поговорим о дизайне уровней официальных релизов основной серии игр Duke Nukem, не спин-офф и тем более не сторонних модификаций. По тексту тут и там разбросаны цитаты из нашего интервью с легендарным дизайнером Duke Nukem Ричардом Греем Levelord'ом, которое мы взяли у него специально для этого поста. Если вы заметили неточности или уверены, что мы пропустили что-то важное — пишите об этом в комментариях и мы добавим информацию в статью.
          Читать дальше →
        • You are supposed to be here! 22 года релизу легендарной игры Duke Nukem 3D

            «Фактура Дольфа Лундгрена, харизма Шварценегера и чувство юмора Брюса Уиллиса». Сочетание, конечно, убойное. Можно даже сказать — ядерное. Впрочем, нашего героя так и зовут — Ядерный Герцог. Он же — Дюк Нюкем. Брутальный блондин с мощными кулаками, исправно спасающий Землю от разных злобных тварей, большой ценитель женской красоты и автор «пацанских» изречений, уместных почти в любой жизненной ситуации. Особенно критической. В общем, личность примечательная.


            Неудивительно, что одноименная компьютерная игра, посвящённая Дюку, — одна из культовых в индустрии. Это не просто классика и легенда, это — целый культурный пласт. Игра Duke Nukem растащена на образы и цитаты, которые «проросли» в самых неожиданных местах — от популярных песен (вспомните хотя бы «Орбит без сахара» Сплина) до модных подиумов (тренд на пергидрольный блонд вы думаете откуда?). Ну а о популярности среди геймеров можно даже и не говорить отдельно: все и так понятно.

            В преддверии DukeCon — однодневного фестиваля, посвящённого игре Duke Nukem, — мы вспоминаем о том, как закалялась сталь. Точнее — как развивалась и менялась со временем эта игровая серия и что она подарила миру.
            Читать дальше →
          • Готовьтесь: Angular 8 уже близко

            • Translation
            Автор материала, перевод которого мы публикуем, предлагает поговорить об Angular 8. Здесь будут рассмотрены некоторые особенно горячие темы, поднятые на мероприятиях NgConf и Google I/O 2019. Поэтому, если вы интересуетесь Angular, но по каким-то причинам не видели докладов с этих мероприятий, полагаем, вам любопытно будет узнать о том, чего можно ждать от Angular 8.


            Читать дальше →
          • Лето: время апгрейда… себя

              Жизнь в мегаполисе требует много здоровья: организм вынужден побеждать смог, пыль, выхлопы, горячий асфальт, инфекции всех мастей, фастфуд, недосыпы и плохое настроение. Хочется глотнуть воздуха, остановиться, выдохнуть, посидеть с друзьями. Мы тут посидели немного и пришли к выводу, что не каждый опыт — правильный. А ведь нас предупреждали! Ну что, сперва по хардкору, а потом по пользе. Всё как мы любим.

              Сервер временно недоступен
              Читать дальше →
            • Детальный разбор новых возможностей React 16+, часть 1: общие сведения

              • Translation
              • Tutorial
              Сегодня мы представляем вам первую часть перевода этого большого материала. Он посвящён детальному разбору новых возможностей React, которые появились в этой библиотеке начиная с версии 16. Автор этого материала уже 5 лет занимается программированием. В прошлом он был дизайнером и пробовал себя в качестве иллюстратора. Он включил в статью комиксы, которые, по его мнению, помогут читателям лучше усвоить то, о чём тут идёт речь.
              image
              В оригинале эта статья называется «Reintroducing React: every React update since v16 demystified». Название намекает на то, что читателю, возможно, уже знакомому с React, предлагается снова познакомиться с этой библиотекой. Это повторное знакомство с React поможет ему упорядочить то, что он уже знает, и открыть для себя что-то новое.
              Читать дальше →
              • +23
              • 6.9k
              • 1