У Вас есть какие-либо хорошие примеры “архитектуры для пользы архитектуры”?

Подумайте об использовании строгого режима для раннего обнаружения ошибок - с ним ваш код приводит к

Uncaught TypeError: Невозможно создать свойство 'b' для строки 'abc'

[ 117]
'use strict';
const module = {};
module.exports = "abc";

module.exports.b = function() {
    console.log("b");
};

В неаккуратном режиме назначение свойства не будет выполнено в молчании .

Вместо этого экспортируйте строку и функцию отдельно.

module.exports = {
  fn: function() { console.log('b'); },
  str: 'abc'
};
8
задан 5 revs, 4 users 95% 28 May 2013 в 06:59
поделиться

11 ответов

Действительно хорошая притча появилась на дискуссионной группе Joel по этой теме несколько лет назад. Историю называют Почему я Платформы Ненависти.

7
ответ дан 5 December 2019 в 04:37
поделиться

Ах да!

В моем последнем задании, работающем над довольно крупным проектом, у нас была команда архитектуры, которые помещают на месте целую платформу, которую мы использовали. Они разработали пользовательский ORM (приблизительно 2000, Будьте в спящем режиме, не было так же повсеместно как сегодня), и пользовательская платформа RCP на основе Swing.

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

Платформа Swing была адом. Они пытались реализовать компонентную модель с чем-то походящим немного на иерархический контроллер. Это выглядело действительно хорошим на бумаге: у Вас может быть компонент, который может быть снова использован. Модель, представления и контроллер были ясно разделены. Но в действительности, платформа не обеспечила достаточно гибкости, таким образом, мы должны были сохранить ссылки на JComboBox для получения данных через уровни абстракции. Мы должны были записать 4-5 классов для каждого маленького кусочка UI. В некоторых случаях потребовались дни для добавления флажка на форме. Отладка была ужасна, поскольку технологический маршрут проходил 15-20 классов для каждой простой операции. Удивительно, действия были в порядке.

Худшая вещь, каждый компонент Swing был перенесен в уровень абстракции "в случае, если мы хотим изменить инструментарий UI"!

12
ответ дан 5 December 2019 в 04:37
поделиться

Я всегда думал Это Привет, Мировая реализация была хороша, также.

7
ответ дан 5 December 2019 в 04:37
поделиться

Мой друг работает в крупном масштабе DB, где все должно убывать от пользовательского класса "Любой"

/ дрожь

3
ответ дан 5 December 2019 в 04:37
поделиться

В каждом месте я работал в течение прошлых пяти лет!

Мои официальные должности содержали "архитектора" в течение прошлых шести лет, но, в сварливый день я - больше антиархитектора, в менее сварливые дни я - "минималистский архитектор".

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

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

6
ответ дан 5 December 2019 в 04:37
поделиться

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

5
ответ дан 5 December 2019 в 04:37
поделиться

Это недавно было на reddit с пользой "эй dawg" шутка.

Представление: RequestProcessorFactoryFactory

Обсуждение Reddit здесь

5
ответ дан 5 December 2019 в 04:37
поделиться

Если Вы не прочитали статью Joel об Астронавтах Архитектуры (Живой Сетчатый), я рекомендую это - это - хорошее чтение об этом предмете.

2
ответ дан 5 December 2019 в 04:37
поделиться

Моим фаворитом является "автоархитектура". В основном просто ряд правил, который, если Вы следуете за архитектурой, встает на свое место правильно....., по-видимому.

Таким образом, это приводит к каждому объекту, имеющему интерфейс независимо от того, были ли ему нужны абстракция и фабрика (не новый () для Вас!), поскольку Каждый сервис... вздыхает.

0
ответ дан 5 December 2019 в 04:37
поделиться

Нет.

Разве архитектура не должна быть зависима от требований?

0
ответ дан 5 December 2019 в 04:37
поделиться

Мой главный объект неприязни является "архитекторами", которые не понимают реляционных понятий и пытаются заставить вещи работать объектным способом, когда базы данных работают лучше основанным на наборе способом и должны быть разработаны, чтобы использоваться тот путь. (Базы данных не должны быть разработаны превращенными архитекторами объектно-ориентированных программистов, они должны быть разработаны специалистами по базе данных), И архитекторы, которые думают, что это Более "изящно", чтобы поместить несколько вещей в одну основную базовую таблицу (сверхобобщение) и затем закончиться с более чем 100 внешними ключами к той таблице и каждому запросу, ссылающемуся на него и главному кошмару производительности (а также смешной процесс для движения до удаляют запись).

0
ответ дан 5 December 2019 в 04:37
поделиться
Другие вопросы по тегам:

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