Говоря о нескольких стилях программирования функциональных функций в процессе программирования JavaScript

Источник автора: https://ost.51cto.com/user/posts/16066420

заявление

Функции в программировании на JavaScript — очень интересный момент, функции JavaScript очень отличаются от других языков, таких как C и Java. Для студентов, которые переходят с других языков программирования, могут быть определенные «подводные камни», такие как разница между функцией function и => function. Заполнение функции функцией этого ключевого слова и т.д.

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

Заявление о тестовой среде

Инструмент тестирования: DevEco Studio 3.1.1 Release Версия сборки: 3.1.0.501
Тестовая платформа: виртуальная машина HarmonyOS Api9 x86
Язык тестирования: ArkTS (только тестовая часть грамматики JavaScript)

Введение

Из-за гибкости стиля программирования JavaScript. Простая функция суммы может быть выражена во многих различных стилях в JavaScript.
Редактор будет выражать его различными способами, такими как функциональное программирование, объектно-ориентированное программирование, объектно-ориентированное цепное программирование и декларативное программирование.
Следующий код предназначен только для эффекта бросания кирпича и привлечения нефрита, и он не представляет фактический код разработки, а также не представляет все текущие стили кодирования Я говорю только о некоторых, которые я знаю. В реальном процессе разработки каждый стиль кодирования также будет иметь больше подразделенных стилей.

процедурное программирование

код

// 过程式编程
function add(...is: number[]) {
  // 总和
  let sum = 0;
  // 求和
  for (let index = 0; index < is.length; index++) 
    sum += is[index];
  // 返回总和
  return sum;
}

/**
 * 使用样例
 * console.log(add(11, 22, 33));
 */

интерпретировать

Процедурное программирование — это самый простой, грубый и прямой метод программирования, и процедурное программирование поддерживается во всех основных языках программирования.

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

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

Однако с точки зрения реализации алгоритма автор настоятельно рекомендует использовать этот стиль кодирования. Это просто, надежно и экономит много мозгов программисту.

каррированное программирование

код

// 自动柯里化机,可以自动把函数转化为柯里化风格。
function curry(fn) {
  return function curried(...args) {
    if (args.length >= fn.length) {
      return fn.apply(this, args);
    } else {
      return function (...nextArgs) {
        return curried.apply(this, args.concat(nextArgs));
      }
    }
  }
}
// 获得转化后的函数
export const curriedAdd = curry(add2);

/**
 * 使用样例
 * console.log(curriedAdd(1)(2)); // 3
 * console.log(curriedAdd(1, 2)); // 3
 * console.log(curriedAdd(1)(2, 3)); // 3
 */

интерпретировать

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

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

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

Функции стиля объектно-ориентированного программирования

код

// 面向对象风格函数
export function count() {
  // 总和属性
  this._sum = 0;
  // 添加方法方法
  this.add = (i) => this._sum += i;
  // 返回总和方法
  this.get = () => this._sum;
  // 返回构造对象
  return this;
}
/*
// 使用样例
* a = count();
* console.log(a.add(10));
* console.log(a.add(20));
* a.add(30);
* console.log(a.get());
*/

интерпретировать

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

Функция объектно-ориентированного стиля, цепное программирование

код

//面向对象链式编程风格
// 构造函数
export function count2() {
  // 总和属性
  this._sum = 0;
  // 添加方法
  this.add = (is) => ((this._sum += is), this);
  // 求和方法
  this.get = () => this._sum
  // 返回构造对象
  return this;
}
/*使用样例
console.log(count().add(10).add(20).add(30).get());
*/

интерпретировать

Причина, по которой я отделяю его от объектно-ориентированного, заключается в том, что объектно-ориентированное программирование в стиле цепочки может в основном заменить программирование карри.

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

Итак, зачем использовать каррирование, если вы можете выбрать его?

Функции декларативного стиля

код

// 声明式风格函数
export function sum3(is, get) {
  let ans = 0;
  // 这里可以使用任何实现方式,可以使用异步等方式实现
  is.forEach(element => {
    ans += element;
  });
  // 无论用任何方式实现,最后所有运算结束后都使用get函数作为回调。
  get(ans)
}

интерпретировать

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

Подведем итог

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

Связанное расширение — разработка с низким кодом

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

Хотя разработка с низким кодом еще не угрожает роли традиционных разработчиков, нельзя отрицать, что тенденция движется к разработке с низким кодом (или без кода). По прогнозу американской исследовательской компании Gartner, к 2024 году около 65% проектов по разработке приложений будут разрабатываться с помощью low-code платформ. Разработчики не могут игнорировать эту тенденцию, и ожидается, что в ближайшие несколько лет методы работы разработчиков будут постепенно меняться.

В последние несколько лет я смутно сталкивался с low-code, и в настоящее время он относительно популярен, и многие крупные производители присоединялись к нему один за другим.

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

Ссылка: www.jnpfsoft.com/?csdn , если интересно, тоже испытайте.

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

рекомендация

отblog.csdn.net/Z__7Gk/article/details/132236867
рекомендация