• Руководство по оформлению HTML/CSS кода от Google

    • Translation

    От переводчика


    С удовольствием ознакомился с этими рекомендациями и теперь предлагаю вам перевод.

    Введение


    Это руководство описывает правила для оформления и форматирования HTML и CSS кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

    Это относится к рабочим версиям файлов использующих HTML, CSS и GSS

    Разрешается использовать любые инструменты для минификации компиляции или обфускации кода, при условии, что общее качество кода будет сохранено.
    Читать дальше →
  • Вы придумали идею IT-продукта, что дальше

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

      В этой статье я покажу несколько методик работы над бизнес-идеей – о чем стоит задуматься сразу, какие показатели рассчитать, какие работы спланировать в первую очередь чтобы проверить идею в короткие сроки и с минимальными расходами.
      Читать дальше →
    • Аллюр три креста, или Почему проекты так трудно закончить в срок

      Один крест (+) означал, что посыльный мог ехать к месту назначения шагом, два креста (++) означало рысь, три креста (+++) — незамедлительный галоп. Поэтому в армии галоп носил неофициальное название аллюр три креста, а позже это выражение вошло в русский язык, имея смыслом максимально быстрое выполнение поручения начальства. [Википедия]
      Tar pit (англ., дословно смоляная яма) — 1) неразрешимая проблема, 2) битумное озеро (место, где подземный битум выходит на поверхность, создавая участок природного асфальта). [Англо-русский словарь] Животные, попавшие в битум, не могут выбраться обратно, поэтому такие озера являются отличным местом для раскопок доисторических скелетов [Википедия].

      «Воображение представляет динозавров, мамонтов и саблезубых тигров, пытающихся высвободиться из смолы. Как бы ни был силен или ловок зверь, в конечном итоге ему уготована гибель. Такой смоляной ямой в последнее десятилетие было программирование больших систем...» [1, с.16] С этого яркого образа начинается классическая книга Фредерика Брукса, впервые увидевшая свет в далеком 1975 году. Другая классическая книга, опубликованная в столь же древнем 1987-м, начинается ничуть не лучше: «А в это время где-то гибнет проект» [2, с.23]. Идут годы, человечество вступает в новое тысячелетие, но и в 2014 году очередной бестселлер начинается все с той же вечной истории: «3 марта 2010 года Федеральное бюро расследований решило приостановить свой крупномасштабный и многообещающий план модернизации управления информацией… В бюро пытались обновить свою компьютерную систему уже более десяти лет, и, похоже, их постигла катастрофа» [3, с.14].

      Читать дальше →
    • TDDx2, BDD, DDD, FDD, MDD и PDD, или все, что вы хотите узнать о Driven Development

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



        • TDD — ну, это все знают, сначала пишем тесты, а потом остальной код.
        • BDD — что-то знакомое, вроде как, тоже тесты, но особенные.
        • TDD — снова? Так, стоп, тут речь уже не о тестах совсем. Но почему называется так же?
        • DDD — bound contexts, ubiquitous language, domain...
        • FDD — да сколько можно?
        • MDD — cерьезно, на основе диаграмм?
        • PDD — ...

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


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

        Читать дальше →
      • Пирамидальная сортировка (HeapSort)

        • Translation


        Перевод статьи подготовлен специально для студентов курса «Алгоритмы для разработчиков».




        Пирамидальная сортировка (или сортировка кучей, HeapSort) — это метод сортировки сравнением, основанный на такой структуре данных как двоичная куча. Она похожа на сортировку выбором, где мы сначала ищем максимальный элемент и помещаем его в конец. Далее мы повторяем ту же операцию для оставшихся элементов.

        Читать дальше →
        • +26
        • 5.6k
        • 6
      • Погружение в Move — язык программирования блокчейна Libra от Facebook

        • Translation
        Далее мы рассмотрим в деталях основные характеристики языка Move и в чем его ключевые различия с другим, уже популярным языком для смарт-контрактов — Solidity (на платформе Ethereum). Материал основан на изучении доступного он-лайн 26-страничного whitepaper-а.

        Введение


        Move — это исполняемый язык байт-кода, который используется для выполнения пользовательских транзакций и смарт-контрактов. Обратите внимание на два момента:

        1. В то время как Move является языком байт-кода, который может напрямую выполняться на виртуальной машине Move, Solidity (язык смарт-контрактов в Ethereum) — язык более высокого уровня, который сначала компилируется в байт-код перед выполнением в EVM (Ethereum Virtual Machine).
        2. Move можно использовать не только для реализации смарт-контрактов, но и для пользовательских транзакций (подробнее об этом будет дальше), в то время как Solidity — это язык только для смарт-контрактов.
        Читать дальше →
      • 8 простых UI приёмов чтобы сделать дизайн-прототип динамичным, не прибегая к анимации



          Материал этой статьи является следствием моих дизайн-экспериментов и выводов за последний год-полтора непрерывного дизайн гринда. Я неустанно собирал ui kit’ы, экспериментировал с контентом в плейсхолдерах, стилями, тенями текстами и состояниями, чтобы понять влияет ли это на конверсию. Иначе говоря, смогу ли я увеличить продажи дизайн-продуктов для Figma, если добавлю немного визуальной динамики в статичные дизайн-макеты, чтобы сделать темплейты интереснее и функциональнее.
          Читать дальше →
        • Практические рекомендации по разработке масштабных React-приложений. Планирование, действия, источники данных и API

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



          В экосистеме React существует множество хороших библиотек, с помощью которых можно управлять определёнными аспектами приложения. Мы довольно подробно остановимся на некоторых из них. Кроме того, здесь будут приведены некоторые практические рекомендации. Если проект должен хорошо масштабироваться — этим рекомендациям полезно будет следовать с самого начала работы над ним. В этой части перевода материала мы поговорим о планировании, о действиях, об источниках данных и об API. Первым шагом разработки крупномасштабных React-приложений, который мы рассмотрим, является планирование.

          Часть 1: Практические рекомендации по разработке масштабных React-приложений. Планирование, действия, источники данных и API

          Часть 2: Практические рекомендации по разработке крупномасштабных React-приложений. Часть 2: управление состоянием, маршрутизация

          Читать дальше →
          • +24
          • 9.8k
          • 6
        • Всё, что нужно для начала работы с Vue.js

          • Translation
          Скорее всего, вы, читая эти строки, уже слышали о JavaScript-фреймворке, который называется Vue. Если вы собирались его опробовать, но не очень хорошо представляли себе то, с чего вам стоит начать, значит — этот материал написан специально для вас. Его автор говорит, что хочет рассказать о том, почему ему очень нравится Vue. Кроме того, он собирается представить всем желающим 4 способа написания первого приложения на Vue.


          Читать дальше →
        • Чему я научился на своём горьком опыте (за 30 лет в разработке ПО)

          • Translation
          • Tutorial
          image

          Это циничная, клиническая коллекция того, чему я научился за 30 лет работы в разработке программного обеспечения. Повторюсь, некоторые вещи весьма циничны, а остальное — результат долгих наблюдений на разных местах работы.
          Читать дальше →
        • Как делать сайты в 2019 году

          • Translation
          • Tutorial

          Веб стремительно меняется, не отставай и ты!



          Я писал подобную статью в 2018 году, но веб меняется так быстро, что те гайдлайны уже безнадёжно устарели.


          Давайте-ка шаг за шагом разберём важнейшие принципы веб-дизайна в 2019 году.


          Обязательно дайте пользователю знать, что у сайта есть мобильное приложение


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


          Ну а кратчайший путь к этому — показать здоровенное модальное окно:



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


          Совет: Если у вас нет мобильного приложения, не беда! Просто запихните весь сайт в  webview с отключенной безопасностью и пишите, что это мобильное приложение!

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

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



          Несмотря на это хотелось бы отметить, что некоторые рекомендации, которые будут даны в этом материале, нацелены на React-приложения любого масштаба.
          Читать дальше →
        • Использование Typescript с React – руководство для новичков

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



          Потратив последние несколько месяцев на разработку приложений на React и библиотек с использованием Typescript, я решил поделиться некоторыми вещами, которые узнал за это время. В этом руководстве я расскажу вам про шаблоны, которые я использую для Typescript и React в 80% случаев.

          Стоит ли изучать Typescript для разработки приложений на React? Стоит, еще как стоит! Для себя я осознал на практике, что строгая типизация приводит к написанию гораздо более надежного кода, быстрой разработке, особенно в крупных проектах. Сначала вы, вероятно, будете разочарованы, но по мере работы вы обнаружите, что хотя бы минимальный шаблон действительно будет очень кстати.

          И если вы застряли на чем-то, помните, что вы всегда можете типизировать что- нибудь как any. Any – ваш новый друг. А теперь перейдем непосредственно к примерам.
          Читать дальше →
          • +25
          • 10.9k
          • 7
        • Что записано в this? Закулисье JavaScript-объектов

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


          Читать дальше →
          • +26
          • 14.2k
          • 8
        • Пришло время заменить GIF на AV1 видео

          • Translation


          Сейчас 2019 год, и нам пора бы принять решение относительно GIF (нет, речь не об этом решении! Здесь мы никогда не договоримся! — тут речь о произношении в английском, для нас это не актуально — прим. перев.). GIFы занимают огромное количество места (обычно по несколько мегабайт!) что, если вы веб-разработчик, полностью противоречит вашим желаниям! Как веб-разработчик, вы хотите минимизировать вещи, которые пользователям нужно скачать, чтобы сайт загружался быстро. По той же причине вы минимизируете JavaScript, оптимизируете PNG, JPEG, а иногда и конвертируете JPEG в WebP. Но что же делать со старичком GIFом?

          Читать дальше →
        • Делаем таблицу с бесконечной прокруткой без event listener

          • Translation

          Что ж оно так лагает-то?



          Если при рендеринге огромной таблицы с какой-нибудь transition анимацией не делать ничего дополнительно, то приложение будет лагать, а пользователь страдать.


          И что же делать?
        • Toolbox для исследователей — третий выпуск: поиск источников и работа с ними

            Работа над любым исследовательским проектом включает в себя поиск и изучение множества источников информации. Организация этого процесса — непростая задача. Сегодня мы расскажем об инструментах, которые призваны оптимизировать различные ее составляющие.



            Читать дальше →
          • Автополив цветов с удаленным управлением

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

            image

            Концепт


            При проектировании системы я отталкивался от следующих принципов:

            1. Дешево и сердито — я не хочу тратить много средств на систему, которая поливает 15 недорогих цветков. У меня не оранжерея.
            2. Автономность — она должна работать сама по расписанию, но это не исключает наличие ручного управления.
            3. Удобство — настройка полива происходит при помощи смартфона. Панельки это удобно, но не в этом случае.
            4. Гибкость — цветы в основном все разные с разными кашпо, поэтому поливать их необходимо с разной периодичностью и разным количеством воды.
            5. Удаленность — управлять можно с любой точки планеты, где есть интернет и смартфон.
            Читать дальше →
          • Курс лекций по JavaScript и Node.js в КПИ

              100 лекций по программированию в Киевском политехническом институте


              Товарищи инженеры, как и было обещано в анонсе, половина лекций (а это 51) уже доступны для просмотра на ютюбе и я продолжу их записывать в 2019 году. Часть из нужно будет перезаписать, потому, что в первых лекциях не самый лучший звук и потому, что очень простые темы у меня пока не очень хорошо получаются. Лучше вышли сложные и актуальные темы, которые мне и самому более интересно рассказывать. Я бы не сказал, что это курс для начинающих, скорее, это курс для тех, кто уже знает синтаксис. За это время поступило множество предложений, как улучшить способ подачи материала: делить на более короткие лекции, подготовить задачи для практического освоения, записывать семинары и ответы на вопросы студентов, добавить в программу разбор целого ряда спорных и холиварных тем. Но не все сразу, я и так посвящаю этому треть жизни.

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