Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Основная статья: Код

Эволюция штрихкодов: четыре технологии на смену «расчёске»

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

QR-коды

QR-код — это штрихкод версии 2.0. Если стандартная линейная последовательность чёрных полос шифрует около 30 символов, то QR-код способен хранить более 7000 символов. В нём можно зашифровать эту статью (правда, без картинок и видео), и ещё останется немного свободного места.

Так как QR-коды позволяют кодировать больше информации, то сфера их применения довольно широка — от банального привлечения подписчиков в соцсети с помощью зашифрованных ссылок на городских стенах до создания персонализированных лекарств для конкретных пациентов с возможностью отслеживания их приёма.

QR-код, напечатанный лекарством на струйном принтере, с записанной в него информацией о пациенте, которую считывает смартфон

Благодаря QR-кодам могут стать обыденностью «покупки на ходу», когда потребители сканируют QR-коды на товарах с помощью мобильных устройств и автоматически оплачивают покупки с карты. В камеры многих современных смартфонов изначально встроена функция распознавания QR-кодов, а магазины стараются облегчить процесс покупки для увеличения прибыли. С другой стороны, QR-коды могут использоваться для идентификации не товаров, а покупателей — как, например, в магазинах Amazon Go без персонала.

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

Невидимые штрихкоды

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

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

RFID

RFID (Radio Frequency Identification) — радиочастотная идентификация, работающая на расстоянии за счёт электромагнитного поля. Не требует питания и контакта с оптическим считывателем. RFID-метки позволяют офлайн-объектам, таким как коробки и одежда, становиться частью IoT, передавая данные о своём расположении или реагируя на приближение смартфона.

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

Также RFID позволяет избежать ожидания на кассе. Например, в этом году «Декатлон» объявил о том, что в ответ на изменение поведения покупателей планирует внедрить систему «scan and go» на основе данной технологии в своих нидерландских магазинах. Сервис позволит клиентам сканировать и оплачивать товары на своих смартфонах, просто отключая RFID-метку.

NFC

NFC (near field communication) — это частный случай RFID, который отличает наличие высокочастотной ближней связи (работает на расстоянии до 10 см) и возможность считывать только одну NFC-метку за раз. Метки бывают активные и пассивные. Активные метки — например, в смартфонах — могут отправлять и получать информацию. Пассивные — только передавать. Эти особенности делают технологию идеальным вариантом для бесконтактных платежей и взаимодействия с интернетом вещей. Она полезна практически везде, где могут понадобиться дешёвые электронные метки.

Разные форматы UFC-меток

Работает всё очень просто: вам нужна NFC-метка и устройство, которое может с ней взаимодействовать, например, смартфон. Метка отправляет на телефон команду с просьбой сделать что-то, например, отправить платёж на кассе. Или показать подробную информацию о товаре, что, вероятно, в будущем станет нормой для любого магазина и супермаркета.

Что дальше?

Штрихкоды будут становиться эстетичнее и «вместительнее». Будет расширяться их способность взаимодействовать с мобильными устройствами. Тарелка, которая считывает с упаковки продукта и передаёт на фитнес-браслет данные по количеству употреблённых калорий — не такая уж невероятная фантазия.


10 дек 19, 20:20
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Нужны ли руки, чтобы кодить

Можно ли кодить с помощью голоса? Или силой мысли? А может, и программисты не нужны — их заменят нейросети? Разработчики поделились мыслями о том, что ждет профессию в будущем.

Алексей Ульенков, начальник отдела прикладных платформ «Райффайзенбанка»:

— Программирование возможно и без рук, и без программиста, но есть нюансы. Мы сейчас переживаем быстрый прогресс технологий, связанных с машинным обучением, и несколько лет назад стали появляться стартапы, работающие с кодогенерацией. Например, вы можете сверстать макет сайта или мобильного приложения, скормить его сетке и получить верстку. Когда я интересовался этими разработками, код на выходе выглядел так себе, но это изменится. Вероятно, рутинные задачи удастся переложить на такую кодогенерацию. Это уже не первый «подход к снаряду» — в индустрии уже много лет пытаются найти серебряную пулю, чтоб заменить постоянно дорожающих программистов. До сих пор особых успехов не наблюдалось, но есть ощущение, что в этот раз получится.

Развитие подобных систем может выглядеть как угроза для разработчиков, но я бы посмотрел с другой стороны. Есть такое понятие — boilerplate code, то есть код, который нужен, но писать его неинтересно, и он приносит немного добавленной стоимости. Вот эту часть и возьмут на себя машины, а нам останутся интересные и творческие задачи. И с профессией все будет замечательно.

Пример:

Роман Скобцов, frontend-разработчик в «Ак Барс Цифровые Технологии» (инновационная лаборатория «Ак Барс Банка»):

— Еще пару лет назад появились кейсы, когда нейросеть смогла заменить программиста. Например, в 2017 году датский стартап Uizard Technologies презентовал нейросеть pix2code. Ее алгоритм позволяет автоматизировать верстку интерфейса программы или сайта. Скилл программиста не нужен — можно карандашом набросать изображения, а искусственный интеллект самостоятельно соберет по ним интерфейс и каркас приложения.

В среднесрочной перспективе будущее программирования — это голосовое управление. Например, в «Ак Барс Банке» голосовой помощник сам звонит клиентам и оформляет заявку на кредит. Настанет время, когда разработчик сможет лежать на диване и кодить с помощью голоса. 

Если совсем про космос — то это управление и программирование силой мысли. На выставке CES было продемонстрировано устройство, которое позволяет так управлять техникой. 

Программист передает нейронные импульсы, компьютер их получает и пишет код:

Дмитрий Микушин, ведущий инженер по приложениям для GPU и ML хостинг-провайдера REG.RU: 

— Стивен Хокинг, один из крупнейших физиков нашего времени, любил пошутить: «Что такое черная дыра? Это нечто, что появляется в черном носке». Из-за болезни большую часть жизни он взаимодействовал с миром, пользуясь лишь одним глазным сенсором. Борьба с недугами — это и новые возможности для здоровых людей. Так, машинное обучение позволяет настроить систему электродов для преобразования сигналов мозга в речь со скоростью 150 слов в минуту. Системы слежения за движениями глаз, аналогичные устройству профессора Хокинга, сегодня улавливают мельчайшие движения зрачка с частотой более 1000 кадров в секунду в реальном времени. Все эти технологии рано или поздно начнут приходить и в разработку.

Игорь Лобанов, руководитель команды разработки сервиса для планирования путешествий OneTwoTrip:

— Если у вас есть толковый джун, то вы сможете программировать голосом. До нейроинтерфейсов нам пока далеко, и я не слышал ни об одной успешной попытке заменить чем-то клавиатуру. Проекционные клавиатуры, дополненная реальность и VR пока не конкурируют по удобству с привычным нам способом вводить текст. У Apple есть патент на управление ноутбуком с помощью жестов над трекпадом. Интересно, реализуют ли они такую возможность когда-нибудь.

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

Ян Орещенков, СТО в CactusSoft:

— Нам давно известна технология Speech Recognition, а компьютер может распознавать команды, голос, текст. Поэтому в теории — да, писать код голосом вполне реально. Читал историю о слепом парне-программисте, который писал отличный код с помощью скрин-ридера и делал это чуть ли не быстрее ребят с обычными возможностями. Есть художники, которые рисуют ногами, зубами и чем угодно, и шахматисты, которые играют, не глядя на доску. Это значит, что люди постепенно развивают альтернативные методы в любой деятельности, и кодинг без клавиатуры — не исключение.

А что вы думаете о будущем разработки? Как считаете, какие сложности будут возникать при программировании силой мысли?

Пройти обучение

18 сен 19, 12:05
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Оформление кода PHP: стандарты и правила

Следование единым правилам упрощает работу программистов. Оформление кода PHP по одному стандарту помогает в командной работе и повышает уровень разработки. Понятие «качественный код» появилось не случайно, так же, как и анекдоты о неспособности спустя время прочитать даже собственный код. Понятный структурированный код сокращает время чтения, позволяет сразу приступить к поиску проблемы.

Восемь общих правил

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

  1. Придумывайте понятные и читаемые названия. Избегайте русских слов в латинской транскрипции. Только английские слова, обозначающие суть.
  2. Делайте отступы на каждом уровне и отделяйте логические блоки пустой строкой.
  3. Сокращайте вложенность кода и убирайте дублирование.
  4. Контролируйте длину. Рекомендуем для функций не более 20 строк, для метода не более 50 строк, для класса не более 300 строк, для файла — не более 1000 строк. Также ограничивайте длину одной строки до видимого значения на экране. Мягкое ограничение составляет 120 символов.
  5. Комментируйте и документируйте код. Это позволит зафиксировать всю необходимую информацию.
  6. Используйте рефакторинг. Следуйте принципу «рефакторинг — раньше и рефакторинг — чаще». Советуем также прочитать книгу «Рефакторинг. Улучшение проекта существующего кода» Мартина Фаулера.
  7. Работайте в системе контроля версий, например, Git. Это бесплатно и удобно. Обучиться работать в ней можно за 11 занятий на видеокурсе «Git. Быстрый старт».
  8. Изучайте Open Source код. Вы сможете увидеть, как пишут ведущие разработчики и воспользоваться лучшими практиками в программировании.

Правила кода PHP

На конец 2017 г. действуют стандарты PHP программирования: PSR-2 и PSR-1. Они устанавливают правила синтаксиса, именования, оформления. Весь код должен быть написан единообразно. Это касается пробелов, отступов, скобок, строк.

Чтобы не запоминать все требования стандартов, можно работать в современной среде разработки — PhpStorm, NetBeans и подобных. Они позволяют автоматически форматировать текст в соответствии с правилами.

Отступы

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

Запомните: один отступ = четыре пробела.

Выделяем отступами тело конструкции, тело метода, блоки импорта, аргументы и подобное.

Правильно

<?php
switch ($expr) {
   case 1:
       echo `One`;
       break;
   case 2:
       echo `Two`;
       break;
   }
?>

Неправильно

<?php
 switch($expr)
{
          case1:
     echo `One`;
           break;
   case 2:
              echo `Two`;
   break;    }
?>

Пробелы

Ставятся:

  • между for ( foreach/  while / catch) и (
  • после ;
  • между ) и {
  • перед =>
  • после =>
  • между try и {
  • между } и catch

Не ставятся:

  1. После имени метода.
  2. В списке аргументов перед запятыми.
  3. Между ( и именем функции или метода.

Пустая строка

Вставляется:

  1. После каждого логического блока.
  2. После определения пространства имен.
  3. После блока импорта. Каждая строка блока должна начинаться с use.

Правильно

<?php
      namespace Vendor\Package;

     use FooClass;
     use BarClass as Bar;
     use OtherVendor\OtherPackage\BazClass;

    // …
?>

Неправильно

<?php
      namespace Vendor\Package;

     use FooClass; use BarClass as Bar;
     use OtherVendor\OtherPackage\BazClass;

    // …
?>

Круглые скобки

  1. Не выносим на отдельные строки.
  2. Не ставим пробелы внутри: после ( и перед ).
  3. Ставим пробелы до скобок и после.
  4. Внутри перечисление отделяем пробелами.

Фигурные скобки

  1. Открывающая фигурная скобка выносится на новую строку перед телом метода, для классов.
  2. Открывающая фигурная скобка не выносится на отдельную строку в конструкциях и замыканиях.
  3. Закрывающая скобка } в конструкциях, имени метода, определении метода, классах пишется с новой строки и отделяется одним отступом.

Аргументы

Оформляются двумя способами: в одну строку через запятую или в столбик. Аргументы на одной строке пишутся через запятую внутри круглых скобок. Пробел ставится только после запятой.

Правильно

<?php
    Foo: :bar($arg1, $arg2, $arg3);
?>

Неправильно

<?php
    Foo: :bar($arg1   , $arg2,$arg3);
?>

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

Правильно

<?php
    $foo ->bar(
        $firstArgument,
        $secondArgument,
        $thirdArgument
    );
?>

Неправильно

<?php
    $foo ->bar(
        $firstArgument,
        $secondArgument,
        $thirdArgument);
?>

Конструкция switch case

Конструкцию делим на три уровня: switch, case, echo/break. Каждый уровень начинается с отступа. Таким образом, наш код визуально выглядит состоящим из трех столбцов.

Если в конструкции не используется break, поставьте // no break.

Правильно

<?php
    switch ($expr) {
        case 0:
            echo `First case, with a break`;
            break;
        case 1:
            echo `Second case, with fall through`;
            // no break
        case 2:
        case 3:
        case 4:
            echo `Third case, return instead of break`;
            return;
        default:
            echo `Default case`;
            break;
    }
?>

Неправильно

<?php
    switch ($expr) {
        case 0:
            echo `First case, with a break`;
            break;
        case 1:
            echo `Second case, with fall through`;
        case 2:
        case 3:
        case 4:
            echo `Third case, return instead of break`;
            return;
        default:
            echo `Default case`;
            break;
    }
?>

Конструкция try catch

Тело try  и тело catch отделяются одним отступом. Пробелы нужно поставить:

  • между try и {
  • между } и catch
  • между catch и (
  • между ) и {

Catch и скобку } ставим на одну строку.

Правильно

<?php
   try {
        // тело try
        } catch (FirstExceptionType $i) {
        // тело catch
    } catch (OtherExceptionType $i) {
        // тело catch
    }
?>

Неправильно

<?php
try {
     // тело try
        } 
catch (FirstExceptionType $i) 
{
        // тело catch
 } catch (OtherExceptionType $i) {
        // тело catch     }
?>

Конструкция if, elseif, else

Операторы и открывающую фигурную скобку пишем на одной строке. Закрывающую фигурную скобку оператора пишем на той же строке, что и оператор. Заключительную фигурную скобку пишем на отдельной строке. Оператор else if пишем как единое слово - elseif. Тело оператора отделяем отступом.

Правильно

<?php
    if ($a == $b) {
        echo `A равно B`;
    } elseif ($a == $c) {
        echo `A равно C`;
    } else {
        echo `A ничему не равно`;
    }
?>

Неправильно

<?php
    if ($a == $b) {
        echo `A равно B`;
    } else if ($a == $c)
 {
        echo `A равно C`;
    } else 
{
        echo `A ничему не равно`;
    }
?>

Комментарии в коде

Чистый код должен быть правильно закомментирован. К сожалению, встречаются две крайности: подробное комментирование каждой строки и полное отсутствие комментариев. И то, и другое мешает в работе. Избыточное комментирование снижает восприятие кода, отвлекает от понимания его сути. Писать очевидные вещи — тратить свое и чужое время. Иногда из-за слишком подробных комментариев объем кода увеличивается в несколько раз. Закончив с кодом, посмотрите критически. Очевидные и банальные комментарии удалите.

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

Больше информации о комментариях вы найдете в статье «Почему комментарии в коде — зло». А если вы считаете, что код - не место для шуток, предлагаю подборку самых забавных комментариев программистов.

Чек-лист «Инспекция кода»

Предлагаем чек-лист для самостоятельной проверки чистоты кода. Если вы будете инспектировать чужой код, помните, что программист — творческая профессия. А творческие люди обычно тяжело воспринимают критику. Будьте лояльней.

Итак,

  • Легко ли воспринимать код визуально?
  • Присутствуют ли комментарии? насколько они необходимы?
  • Соответствует ли код стандартам PSR-1 и PSR-2? Краткая выжимка стандартов приведена в разделе “Правила кода PHP”.
  • Используете ли вы систему документирования phpDoc или подобную?
  • Нужно ли делать перерыв в чтении, чтобы разобраться в написанном?
  • Проведен ли рефакторинг?
  • Есть ли дублирование в блоках, функциях и пр.?
  • Понятны ли названия переменных, имена методов и пр.?
  • Какова длина строк, методов, функций, классов, файла?
  • Вы искали ошибки и баги?
  • Как можно еще улучшить код?
  • Можно ли сделать его короче?
  • Можно ли сделать его эффективней?

Желательно провести тестирование. Руководствуйтесь тремя принципами:

  1. Тесты должны быть полными.
  2. Тесты должны соответствовать установленным требованиям.
  3. Тесты должны проводиться на нужном уровне тестирования.

Дополнительную информацию по тестированию вы найдете в материале «Тестирование кода для чайников».

Заключение

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

Старайтесь следовать принятым правилам, рекомендациям и стандартам. Думайте о тех, кто будет работать с ним после вас. Всегда пробуйте сделать код короче и эффективней. Напишите так, чтобы это понимал не только Бог.

Пройти обучение

29 мар 18, 14:00
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Показаны все темы: 3

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru