Словарик философствующего информатика: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 372:
=== [[Reuse: методология повторного использования]] ===
 
Переиспользование — применение готовых программных модулей (уже использованных в другой программе либо кем-то другим) при создании нового программного обеспечения. Доля переиспользуемых программных решений выказывает качество организации работы программистской артели, но вовсе не обязательно — качество самой работы. Различные средства модульности и объектности создавались прежде всего с целью облегчить переиспользование. Но обычно они этой цели не достигали.
Переиспользование — применение
готовых программных модулей (уже использованных в другой программе либо кем-то другим)
при создании нового программного обеспечения.
Процент переиспользуемых программных решений является
критерием качества организации работы (не путать с качеством самой
работы!) программистского коллектива.
Различные средства модульности и
объектности создавались прежде всего с целью облегчить
переиспользование.
 
Вспоминая историю науки и техники, можно заметить, что переиспользование всегда было основным орудием математиков: у них все доказывается на основе ранее доказанного. В технике его удалось достичь, лишь отойдя от индивидуальной подгонки каждой детали и введя строжайшие стандарты и допуски на размеры и характеристики деталей; но это возможно лишь при выпуске одинаковых деталей.
Вспоминая историю науки и техники, можно заметить, что переиспользование
всегда было основным орудием математиков: у них все доказывается на основе
ранее доказанного. В технике его удалось достичь, лишь отойдя от
индивидуальной подгонки каждой детали и введя строжайшие стандарты и
допуски на размеры и характеристики деталей; но это возможно лишь при
выпуске одинаковых деталей.
 
Именно благодаря применению переиспользования удается создавать действительно сложные системы. Но излишнее стремление к переиспользование часто приводит к следующим негативным последствиям:
действительно сложные системы.
 
Но излишнее стремление к переиспользование часто приводит к следующим негативным последствиям:
* программное обеспечение усложняется. Так, при проектировании учитывалось не столько назначение программного обеспечения и логика, сколько наличие нескольких готовых копмонент, которые, как казалось, могли сократить трудоемкость разработки;
* универсальные кирпичики оказываются недостаточно универсальными, то есть не в достаточной степени решающие частные задачи: не совсем те задачи, или те, но не достаточно быстро, точно, без учёта особенностей конкретного случая.
 
Иными словами словами:
* Использовать иногда оказывается труднее, чем переписать заново.
* Переиспользование отвлекает проектировщика от концептуальной целостности и может повлечь ошибки в архитектуре.
Строка 402 ⟶ 386 :
Серьёзное программирование — это всегда не массовое производство, а производство уникальных изделий.
 
Чем больше программирование будет ориентироваться на материальное массовое производство, забывая об этой специфике, и чем дольше оно будет игнорировать опыт математики как чистую теорию (забывая о том, что математика точно так же, как программирование, занимается построением идеальных понятий, рождаемых конкретизацией наших идей силой нашей мысли под контролем нашей логики), тем дольше переиспользование будет оставаться коварной ловушкой, в которую попадались слишком многие.
Чем больше программирование будет ориентироваться на
материальное массовое производство, забывая об этой специфике, и чем дольше оно будет
игнорировать опыт математики как чистую теорию (забывая о том, что
математика точно так же, как программирование, занимается построением
идеальных понятий, рождаемых конкретизацией наших идей силой нашей мысли
под контролем нашей логики), тем дольше переиспользование будет оставаться
коварной ловушкой, в которую попадались слишком многие.
 
Смотри также [[#Модульность|модульность]], [[#абстрагированиеАбстракция|Абстракция]], принцип неповторения ([[w:en:Don't_repeat_yourself|англ. Don’t repeat yourself]]).
 
=== [[Ортогональность]] ===