Я читал статью на ibm.com/developerworks (сейчас не могу найти статью) о разработке масштабируемого программного обеспечения для облака.
Конечно, основная идея заключалась в отказе от состояния. Ничто больше не должно содержать состояние, и это было сделано за счет отсутствия данных о членах. Каждый метод должен получать свою дату с помощью переданных ему аргументов.
Одним из примеров было что-то вроде:
class NonScalableCircle {
int radius;
void setRadius(int radius){
this.radius = radius;
}
public integer getDiameter() {
return 2*radius;
}
}
Объяснение, почему это не было масштабируемым, заключалось в том, что вы должны сначала установить радиус, а затем вызвать диаметр. Таким образом, для работы есть приказ, потому что методы работают с одними и теми же данными.
Пример масштабирования был:
class ScalableCircle {
public integer getDiameter(int radius) {
return 2*radius;
}
}
И, конечно, это правда. Масштабирование без сохранения состояния намного лучше. Ничто больше не должно содержать состояние, и это было сделано за счет отсутствия данных о членах. Каждый метод должен получать свою дату с помощью переданных ему аргументов.
Одним из примеров было что-то вроде:
class NonScalableCircle {
int radius;
void setRadius(int radius){
this.radius = radius;
}
public integer getDiameter() {
return 2*radius;
}
}
Объяснение, почему это не было масштабируемым, заключалось в том, что вы должны сначала установить радиус, а затем вызвать диаметр. Таким образом, для работы есть приказ, потому что методы работают с одними и теми же данными.
Пример масштабирования был:
class ScalableCircle {
public integer getDiameter(int radius) {
return 2*radius;
}
}
И, конечно, это правда. Масштабирование без сохранения состояния намного лучше. Ничто больше не должно содержать состояние, и это было сделано за счет отсутствия данных о членах. Каждый метод должен получать свою дату с помощью переданных ему аргументов.
Одним из примеров было что-то вроде:
class NonScalableCircle {
int radius;
void setRadius(int radius){
this.radius = radius;
}
public integer getDiameter() {
return 2*radius;
}
}
Объяснение, почему это не было масштабируемым, заключалось в том, что вы должны сначала установить радиус, а затем вызвать диаметр. Таким образом, для работы есть приказ, потому что методы работают с одними и теми же данными.
Пример масштабирования был:
class ScalableCircle {
public integer getDiameter(int radius) {
return 2*radius;
}
}
И, конечно, это правда. Масштабирование без сохранения состояния намного лучше.
Пример масштабирования был:
class ScalableCircle {
public integer getDiameter(int radius) {
return 2*radius;
}
}
И, конечно, это правда. Масштабирование без сохранения состояния намного лучше.
Пример масштабирования был:
class ScalableCircle {
public integer getDiameter(int radius) {
return 2*radius;
}
}
И, конечно, это правда. Масштабирование без сохранения состояния намного лучше. Учитывая это, а также тот факт, что OBJECT = данные + поведение, мои вопросы:
Разве ООП просто не подходит для приложений с высокой степенью параллелизма? Неужели ООП умрет и будет заменено процедурным программированием?
Потому что, даже сейчас, многие разработчики используют модель анемической области и кодируют логику в сервисах. На самом деле ООП сделано не так много.