Рубрики
Uncategorized

Эргономика кода: 5 тенденций, которые упростит разработку.

Английская версия / версия Française ICI прогнозы на разработку Dev Evolution на основе TRIZ TRI … Теги с DevOps, архитектурой, инструментов, программированием.

Свидетельствовать Упрощение (4 части серии)

Английская версия/ Версия Française ICI.

Прогнозы о развитии Dev, основанные на ТРИЗ

ТРИЗ Законы технических систем Evolution показать, что Развитие станет проще и склонны к идеалу. Вдохновленный этим методом инноваций, я считаю, что это упрощение будет проведено 2 основными способами, снизилась в 5 тенденциях.

Упрощение за счет уменьшения ошибок

  • эргономичная визуализация

  • абстракция

Упрощение за счет уменьшения задач

  • объединение

  • автоматизация

  • делегация

Я предлагаю подробно описать эти 5 тенденций и посмотреть, как они позволяют нам предвидеть эволюцию Dev. В качестве примера я прогнозирую эволюцию модульных тестов.

Эргономичная визуализация

Эргономичное дружелюбие

Linux бесплатный, открытый источник, быстрый и безопасный по сравнению с Windows или OSX, который еще гораздо больше популярна для обычных пользователей.

Это не совпадение. Windows и OSX являются гораздо более визуально эргомономичными, более удобными для пользователя и более совместимыми, чем Linux, используются в качестве командной строки или в качестве графического интерфейса. Их хорошо продуманный графический интерфейс пользователя просто делает их проще в использовании, что является реальным активом для принятия технологий, особенно для обычных пользователей.

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

Эргономичные ошибки

Кроме того, графический пользовательский интерфейс позволяет избежать ошибок, которые могут быть сделаны через код или через командную строку. Это связано с тем, что UI может легко ограничить возможные действия или варианты. Это видно, например, в приложениях No или Lowcode. В Bubble.io Если мы назначаем действие на кнопку, она выглядит так:

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

Эргономичная экономия

Удобные удобные интерфейсы также экономят время. Они могут даже сэкономить время для Devs, Хотя они могут обойтись без UI, потому что у них есть возможность изучать CLI или языки Отказ

Потому что это не точка: мы здесь пытаемся выяснить, каков самый эффективный способ освоить API, начиная с 0. Если вы Master Master Framework Cli Master, то я не сомневаюсь, что вы можете сделать все быстро.

Но Вы должны были узнать эти команды , который представляет собой значительную стоимость с точки зрения времени. И когда мы говорим об эргономике кода, мы пытаемся уменьшить эту стоимость. Оказывается, неизвестная API намного быстрее освоить, когда это визуально, чем когда он работает по коду или CLI.

Давайте возьмем пример настройки среды Dev. В настоящее время вы можете использовать первую командную строку для клонирования проекта Git, или начать создание стартового проекта. Затем вам нужно запустить другую команду, чтобы начать импорт модулей. Тогда еще один, чтобы служить проекту, в то же время возможная модификация WebPack или другой Bundler Config для соответствия нашим требованиям с точки зрения транспиляции, льгота, горячей перезагрузки и т. Д. В CodeSandox.io Все это визуально и требует 3 кликов. Проще говоря, мы экономьте время.

Это разработка работы, чтобы сделать эффективное UIS?

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

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

Тем не менее, В эпоху Возрождения не было никакого раздела между наукой или искусством. Люди пытались быть завершены, чтобы освоить оба. Поэтому я думаю, что Devs выиграет от попыток создать эффективное и хорошо продуманное МИС.

Абстракция

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

Объединение

В законах ТРИЗ эволюции технических систем существует несколько тенденций. Один из них касается слияния компонентов системы. Пожалуйста, обратитесь к «Использование разнородных элементов» или «Использование аналогичных элементов» тенденций на этом графике.

Многие инструменты DEV будут унифицировать, чтобы стать всей в одной среде программирования, вроде как вспышка лет назад (хотя сторона сервера отсутствовала), Метеор , Нереальный двигатель или Единство Отказ

Это объединит несколько инструментов, которые в настоящее время используются отдельно: Bundler, Module Manager, версию, транспортер, CLI и т. Д. Все будет интегрировано в редактор кода, чаще всего в виде опций, параметров и меню.

Опять же, мы уже можем увидеть это в CodeSandox.io Как и в Visual Studio Code, который интегрирует терминал, консоль отладки и всевозможные модули.

6-я закон Evolution TRIZ — переход к сверхсистему , также указывает, что система станет частью ее суперсистемы, то есть ее среда.

Таким образом, среда программирования (система) будет интегрирована в облако (суперсистема). Там больше не будет никакого локального/дистанционного разделения. Все будет онлайн.

Мы уже можем увидеть это с Кодовые пространства из GitHub (все еще в бета-версии), которая является облачным IDE:

Автоматизация

Это, вероятно, самый важный момент. Благодаря автоматизации большинство конфигов можно избежать.

Нет больше env. конфигурация

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

Больше никаких версий команд

Использование командной строки может быть улучшена. Резервные копии могут быть частично автоматически Похоже на инкрементные резервные копии в синологии облако резервного копирования или Timemachine Apple:

На боковой заметке я хотел бы указать, что визуально версию может быть вдохновлена руководителями истории WordPress или Adobe Suite, но с добавленными возможностями разложения, объединения и других тонкостей Git. Есть много места для улучшения, но в то же время, такие инструменты, как Гит Кракен или Git Tower Предложить несколько улучшенным УВ.

Нет больше облачных конфигурации или утомительных развертываний

Как мягкий , который позволяет настроить или клонировать WordPress или другой системный проект одним щелчком мыши, Облака могут быть автоматизированы Отказ

** Webhosts могут технически обнаруживать приложения для котлов и файлов конфигурации, вывести все зависимости, автоматически загрузите их и устанавливать их. * * Ведь мы упомянули Посылка уже в состоянии сделать это для оформления Dev.

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

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

Больше никаких единичных тестов программирования

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

Эти тесты могут быть частично автоматически. Я обсудим этот случай более подробно в последней части этой статьи.

Но превыше всего: меньше, или нет вообще, код.

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

Здесь мы также можем ссылаться на нет или низкие кодовые платформы. Лучший пример на мой взгляд все еще Bubble.io который очень гибкий и не только ограничен созданием визитных веб-сайтов, так как многие могут подумать. Я приглашаю вас попробовать свои 5-миллиметровые учебные пособия, чтобы получить представление о своей гибкости.

Это описание/разделение двигателя является предпосылкой для эффективной автоматизации. Его можно найти, например, в СУБД, с SQL, который можно комбинировать с двигателями MyIsam или InnoDB.

На этом вопросе есть много, что я подхожу с абстракцией, В этой статье Отказ

Делегация

В настоящее время Devs позаботится практически все: архитектура, конфигурация, разработка среды, разработка, тестирование, отладки, версию, конфигурация сервера и онлайн-релизы. Как они могут освоить все? Можно ли стать специалистом во всех этих вопросах? Принимаем ли мы не быть специализированными во всем? Или мы можем внести изменения в оптимизацию этой ситуации?

Задачи Devs будут сокращены: что нельзя автоматизировать, будет упрощена. Что нельзя упростить, останется специалистам.

Я особенно думаю о облачном управлении, который я упомянул ранее: если Webhost предлагает реальный Развертывание одним щелчком мыши, адаптированная к наиболее распространенным архитектурам и структурам проекта, он выиграет много рыночной доли.

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

Пример: эволюция тестирования единицы

Давайте попробуем просмотреть этот пример, как эти 5 тенденций позволяют нам представить эволюцию тестирования подразделения.

Проблема

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

Возможности эволюции, основанные на 5 принципах

Тесты будут интегрированы в IDE, что сможет самопровержать проект ( объединение компонентов и делегация тесты на IDE), нажав кнопку, а не CLI ( абстракция , Визуализация ).

IDE автоматически проверит автоматически ( Automation ), для каждого компонента UI, все возможные события (кнопка нажатием, двойным щелчком, зависевшей, в то время как форма будет отправлена, сброс и т. Д.). Реакции на эти события будут проанализированы, и это выделит любые несоответствия или конфликты в заявке.

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

Результат тогда будет список этих несоответствий, отображение в интерфейсе ( визуализация ), что бы попросить нас принять решение о входе/выходе. Это было бы похоже на Gitkraken, когда он просит нас принять решение о конфликте слияния, но здесь выбор чаще всего будет произведен, хотя простые раскрывающиеся списки.

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

Спасибо, что читали меня так далеко.

Свидетельствовать Упрощение (4 части серии)

Оригинал: «https://dev.to/wanegain3/code-ergonomics-5-trends-that-will-simplify-dev-4b0f»