• Как использовать Инверсию Управления в JavaScript и в Reactjs для упрощения работы с кодом

    • Перевод
    • Tutorial

    Как использовать Инверсию Управления в JavaScript и в Reactjs для упрощения работы с кодом


    Инверсия Управления это довольно простой для понимания принцип программирования, который, при этом, может заметно улучшить ваш код. В данной статье будет показано как применять Инверсию Управления в JavaScript и в Reactjs.


    Если вы уже писали код который используется больше чем в одном месте, то вам знакома такая ситуация:


    1. Вы создаете многократно используемый фрагмент кода (это может быть функция, React компонент, React хук и тд) и делитесь им (для совместной работы или публикуя в опенсорс).
    2. Кто-то обращается к вам с просьбой добавить новый функционал. Ваш код не поддерживает предложенный функционал, но мог бы, если бы вы сделали небольшое изменение.
    3. Вы добавляете новый аргумент/проп/опцию в свой код и в связанную с ним логику для поддержания работы этого нового функционала.
    4. Повторите стадии 2 и 3 несколько раз (или много-много раз).
    5. Теперь ваш повторно используемый код тяжело использовать и поддерживать.

    Что именно делает код кошмаром для использования и поддержки? Есть несколько аспектов, которые могут сделать ваш код проблемным:

    Читать дальше →
    • +11
    • 8,3k
    • 6
  • Как я чуть не выкинул 150к на ветер или история установки приточной вентиляции в квартире

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


      Читать дальше →
    • Руководство Google по стилю в C++. Часть 9

      • Перевод
      Часть 1. Вступление

      Часть 8. Именование
      Часть 9. Комментарии
      Часть 10. Форматирование



      Эта статья является переводом части руководства Google по стилю в C++ на русский язык.
      Исходная статья (fork на github), обновляемый перевод.
      Читать дальше →
    • Intel Nervana NNP-T и NNP-I — специализированные чипы для AI



        Осознавая важность работ в области искусственного разума, Intel делает еще один шаг в этом направлении. Месяц назад на конференции Hot Chips 2019 компания официально представила два специализированных чипа, предназначенных для тренировки и инференса нейронных сетей. Чипы получили наименования соответственно Intel Nervana NNP-T (Neural Network Processor) и Intel Nervana NNP-I. Под катом вы найдете характеристики и схемы новых продуктов.
        Читать дальше →
      • Оптимизация производительности .NET (C#) приложений

          image

          Статей с подобным заголовком достаточно много, поэтому постараюсь избежать банальных тем. Надеюсь, что даже опытный разработчик найдёт здесь что-то полезное для себя. В данной статье будут рассмотрены только простые механизмы и подходы оптимизации, которые позволят применить их, затратив минимум усилий. И эти изменения не увеличат энтропию вашего кода. В статье не будет уделено внимания, что и когда нужно оптимизировать, эта статья скорее о подходе к написанию кода в целом.
          Читать дальше →
        • Кольская АЭС или стоя на реакторе

            Стоять на кожухе работающего реактора — интересный опыт. Всего в нескольких метрах под твоими ногами 1375 мегаватт тепловой мощности, это плохо представимые воображением почти два миллиона лошадиных сил. Но ядерный распад беззвучен, и ты слышишь только слабый гул вентиляции и чувствуешь ногами едва заметную вибрацию от циркуляционных насосов. И, в общем, это не страшно — ты знаешь, какое количество техники и людей следят за безопасностью процесса. Но, из интереса, все равно достаешь из кармана дозиметр и наблюдаешь неизменные нули на табло. В рамках Нефорума Арктика блогерам организовали экскурсию на Кольскую АЭС, самую северную сухопутную атомную станцию в Европе, и мне повезло там побывать.


            Читать дальше →
          • GPS трекер BOXY

              Привет, Хабр!

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

              • максимально компактный GPS трекер с возможностью отслеживать положение онлайн;
              • аккумулятора должно хватить на день или больше.



              В итоге, поиск компактного трекера привёл к написанию данного обзора.
              Читать дальше →
            • Аккордеон, faq, спойлер и другие раскрывающиеся виджеты

              Аккордеон и faq

              Создать аккордеон, faq, спойлер и подобное, можно при помощи Div и JavaScript.
              Но лучше: Details и Summary

              Поддерживается всеми современными браузерами и это семантически правильно оформленный код, при использовании которого будут плюсы:

              1. Людям с ограниченными возможностями проще будет пользоваться вашим сайтом! Их софт (скринридеры и подобное) прекрасно понимает html5 теги и будет правильно обрабатывать их и правильно информировать людей о содержимом.
              2. Улучшится связанность текста, и поисковики смогут более качественно индексировать сайт, так как будут лучше понимать, как связаны между собой видимый и скрытый текст.
              3. Будет доступно управление элементами с клавиатуры и других устройств.
              4. Уменьшается количество javascript кода, который нужно подгружать, что увеличивает скорость загрузки страницы, скорость обработки и корректность.
              5. Улучшаются показатели в Lighthouse, Google PageSpeed и других подобных инструментах.
              6. Работает при выключенном javascript.
              Читать дальше →
            • Бревно в глазу: какие уязвимости есть у систем видеонаблюдения

                image

                Найти кусочек земной поверхности, не попадающий в поле зрения какой-либо камеры, становится всё сложнее, если говорить о более-менее крупных городах. Кажется, ещё немного, и настанет то самое светлое будущее, в котором преступники не смогут скрыться от бдительного правосудия, а люди заживут счастливо и беззаботно, ведь ещё в 2009 году в 95% случаев Скотланд-Ярд использовал записи камер видеонаблюдения в качестве доказательства вины убийц. К сожалению, эта утопия далека от реальности. И не в последнюю очередь потому, что камеры наблюдения имеют уязвимости. Поговорим о том, какие уязвимости наиболее часто встречаются в системах видеонаблюдения, обсудим их причины и рассмотрим способы сделать эксплуатацию таких устройств безопаснее.
                Читать дальше →
              • Dependency Injection, JavaScript и ES6-модули

                  Ещё одна имплементация Dependency Injection в JavaScript — с ES6-модулями, с возможностью использовать один и тот же код в браузере, и в nodejs и не использовать транспиляторы.


                  image


                  Под катом — мой взгляд на DI, его место в современных web-приложениях, принципиальная реализация DI-контейнера, способного создавать объекты и на фронте, и на бэке, а также объяснение, при чём тут Майкл Джексон.

                  Читать дальше →
                • Манипуляция сознанием. Почему так просто?



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

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

                    Здесь приведено 14 распространенных манипуляций. Анализируя свою жизнь, я могу сказать, что ощущал в разное время воздействия каждой из них, а некоторые методы «промывки мозгов» по отношению ко мне были по-настоящему эффективны. Думаю, это всем хорошо знакомые атаки. Я упорядочил их в некий список и попытался описать механизмы и причины, почему они, несмотря на тривиальность, являются довольно эффективными.

                    Я не рассматриваю элементарные воздействия такие, как подкуп, шантаж и запугивание. В этой статье меня интересуют лишь атаки, заставляющие нас жить в иллюзии.

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

                    Это не статья по психологии и не статья по философии, хотя бы потому, что в этой статье не будет приведено ни одной ссылки.
                    Читать дальше →