Что включает программирование электронной коммерции? [закрытый]

Это решение, которое я использую.

function Enum() {
    this._enums = [];
    this._lookups = {};
}

Enum.prototype.getEnums = function() {
    return _enums;
}

Enum.prototype.forEach = function(callback){
    var length = this._enums.length;
    for (var i = 0; i < length; ++i){
        callback(this._enums[i]);
    }
}

Enum.prototype.addEnum = function(e) {
    this._enums.push(e);
}

Enum.prototype.getByName = function(name) {
    return this[name];
}

Enum.prototype.getByValue = function(field, value) {
    var lookup = this._lookups[field];
    if(lookup) {
        return lookup[value];
    } else {
        this._lookups[field] = ( lookup = {});
        var k = this._enums.length - 1;
        for(; k >= 0; --k) {
            var m = this._enums[k];
            var j = m[field];
            lookup[j] = m;
            if(j == value) {
                return m;
            }
        }
    }
    return null;
}

function defineEnum(definition) {
    var k;
    var e = new Enum();
    for(k in definition) {
        var j = definition[k];
        e[k] = j;
        e.addEnum(j)
    }
    return e;
}

И вы определяете свои перечисления следующим образом:

var COLORS = defineEnum({
    RED : {
        value : 1,
        string : 'red'
    },
    GREEN : {
        value : 2,
        string : 'green'
    },
    BLUE : {
        value : 3,
        string : 'blue'
    }
});

И вот как вы получаете доступ к своим перечислениям:

COLORS.BLUE.string
COLORS.BLUE.value
COLORS.getByName('BLUE').string
COLORS.getByValue('value', 1).string

COLORS.forEach(function(e){
    // do what you want with e
});

Я обычно использую последние 2 метода для отображения перечисления из объектов сообщений.

Некоторые преимущества этого подхода:

  • Легко объявлять перечисления
  • Легко получить доступ к вашим перечислениям
  • Ваши перечисления могут быть сложных типов
  • У класса Enum есть некоторое ассоциативное кеширование, если вы часто используете getByValue

Некоторые недостатки:

  • Некоторое грязное управление памятью происходит там, так как я держу ссылки перечисления
  • Все еще нет безопасности типа
10
задан Carson Myers 23 June 2009 в 22:19
поделиться

2 ответа

В электронной коммерции есть одно громкое слово «Безопасность».

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

Теперь многое уходит в создание решения электронной коммерции с нуля.

  • Списки продуктов
    • Добавление / удаление предметов
    • Сортировать по размеру / форме / цене / цвету / ...
    • Поиск
      • Фильтрация результатов
  • Корзина (сложнее, чем кажется)
    • База данных или сеанс?
    • Добавление / удаление элементов
    • Касса
    • Интеграция с платежным API
  • Отчетность
  • Инвентарь
  • Безопасность
    • XSS
    • SQL-инъекции
10
ответ дан 3 December 2019 в 20:06
поделиться

Я бы предположил, что электронная коммерция - это гораздо больше, чем конкретная технология. ECom больше о том, как построена база данных и какие функции требуются. Есть хорошая книга, которую я прочитал 10 лет (очень давно) назад, она посвящена электронной коммерции с помощью asp classic. Но есть много новых, использующих более новые технологии здесь .

Большой ключ - это то, как вы структурируете свои данные, продукты, варианты, заказы, детали заказа, данные кредитной карты / пользователя и т. Д. различные способы обработки транзакций. Как работать с конвейерами заказов. Когда предлагать переход с текущей страницы, а когда нет. Как давать рекомендации по продукту. Работа с налоговыми API и API доставки. Вы можете подумать о загрузке DashCommerce (приложение .net) или чего-то подобного, которое соответствует вашим предпочтительным технологиям, чтобы увидеть, как они все настроили. Установите что-нибудь. Настройте его, чтобы ощутить трудности с управлением данными. ... также почувствовать боль навигации по корзине покупок (добавление продуктов в корзину, обновление корзины, оформление заказа, создание учетной записи или анонимное оформление заказа).

Быть разработчиком коммерции обычно означает знать, как работать с Verisign (теперь PayPal) или аналогичной системой обработки платежей. Как перехватить мошеннические транзакции и правильно с ними бороться. Как работать в среде с высоким уровнем транзакций (кеширование, многоуровневые архитектуры, очереди, веб-сервисы). Перекрестные ссылки на продукты на основе истории пользователей / профилей для максимизации транзакций (подумайте о конфетах на кассе продуктового магазина). Знание того, как безопасно работать с конфиденциальными данными, что обычно означает методы шифрования, настройку DMZ, работу с прокси-серверами и т. Д. Обратите внимание на использование некоторой формы механизма правил для конвейеров заказов, чтобы ваши бизнес-правила были отделены от ваших логика приложения. Узнайте о схемах купонов, скидок и т. Д. Часто рекламные кампании активно используются для получения дополнительного дохода.

Электронная торговля может быть большой темой!

настройка DMZ, работа с прокси-серверами и т. д. Обратите внимание на использование некоторой формы механизма правил для конвейеров заказов, чтобы ваши бизнес-правила были отделены от логики вашего приложения. Узнайте о схемах купонов, скидок и т. Д. Часто рекламные кампании активно используются для получения дополнительного дохода.

Электронная торговля может быть большой темой!

настройка DMZ, работа с прокси-серверами и т. д. Обратите внимание на использование некоторой формы механизма правил для конвейеров заказов, чтобы ваши бизнес-правила были отделены от логики вашего приложения. Узнайте о схемах купонов, скидок и т. Д. Часто рекламные кампании активно используются для получения дополнительного дохода.

Электронная торговля может быть большой темой!

6
ответ дан 3 December 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: