Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Вязкость (программирование)

Из Википедии — свободной энциклопедии

Вя́зкость — отрицательное качество программного кода (или среды разработки), один из признаков плохого проектирования, выражающихся в пониженной податливости программной системы изменениям (англ. changeability).

Определение

О вязкости программного обеспечения говорят, когда внесение изменений, относящихся к некоторому аспекту программной системы, без нарушения заложенных в проект принципов связано с большими затратами времени и усилий[1][2]. Сниженные возможности изменения могут быть вызваны: сложностью выделения компонентов, затрагиваемых изменениями; непропорциональным объёмом необходимых модификаций в сравнении с объёмом изменений в требованиях к ПО; глубоким влиянием изменений на систему в целом[3].

В процессе разработки и сопровождения программного обеспечения вязкость ставит программистов перед выбором: сохранить ли первоначальные проектные решения при реализации нового требования или же нарушить их, используя «хакерские приёмы» и следуя путём «наименьшего сопротивления»[2]. Из-за нехватки времени и непонимания проекта первоначальный замысел нарушается всё чаще[1].

Вязкость может быть связана не только с самим программным обеспечением, но и со средой разработки. Неэффективная, медлительная среда разработки может мешать следованию правильному подходу и вынуждает прибегать к сомнительной практике. Факторы, влияющие на вязкость среды, могут включать в себя процесс разработки, процедуры повторного использования кода, организационные и правовые ограничения[2].

В языках программирования и других системах для нотации, исследователи Томас Грин и Мариан Петре выделяют вязкость в качестве одного из когнитивных измерений. При этом вязкость подразделяется на кумулятивную (англ. knock-on), отражающую степень, в которой одно изменение вызывает другие для восстановления согласованности кода, и повторительную (англ. repetitive), выражающуюся как «сопротивление изменениям». Так, при сравнении вязкости декларативных и процедурных языков программирования выяснилось, что Бейсик имеет низкую повторительную вязкость по сравнению с Прологом. С кумулятивной вязкостью ситуация оказалась обратной. Было показано, что вязкость вызывается целым набором разнонаправленных факторов, а сама вязкость относится как к используемой нотации (коду), так и к используемому инструментарию[4].

Близкие понятия

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

  • Жёсткость (англ. software rigidity — «закрепощённость») [5] программного обеспечения проявляется, когда в систему сложно вносить изменения сразу по многим направлениям.
  • Неустойчивость (англ. fragility — «хрупкость») [6] проявляется, когда незначительное изменение в одной части может вызвать несколько проблем в других частях, даже напрямую не связанных с изменённым компонентом[1].

См. также

Примечания

  1. 1 2 3 Amra and others, 2014.
  2. 1 2 3 Suryanarayana, Samarthyam, Sharma, 2014.
  3. Spinellis, 2006.
  4. Rinderle-Ma, S. and Sadiq, S. and Leymann, F. Business Process Management Workshops: BPM 2009 International Workshops, Ulm, Germany, September 7, 2009, Revised Papers. — Springer, 2010. — P. 480. — ISBN 9783642121852.
  5. Мартин, Ньюкирк, Косс, 2004, с. 151.
  6. Мартин, Ньюкирк, Косс, 2004, с. 152.

Литература

  • Роберт С. Мартин, Джеймс В. Ньюкирк, Роберт С. Косс. Быстрая разработка программ. Принципы, примеры, практика = Agile software development. Principles, Patterns, and Practices. — Вильямс, 2004. — 752 с. — ISBN 0-13-597444-5.
  • Suryanarayana, G. and Samarthyam, G. and Sharma, T. Refactoring for Software Design Smells: Managing Technical Debt. — Elsevier Science, 2014. — P. 14. — 258 p. — ISBN 9780128016466.
  • Spinellis, D. Code Quality: The Open Source Perspective. — Pearson Education, 2006. — P. 403. — 608 p. — ISBN 9780768685121.
  • Amra, N.K. and Bedoya, H. and Cairns, T. and Cruikshank, D. and Diedrich, R. and Eberhard, J. and Evans, M. and Florez, A. and Gantner, S. and Gorzinski, J. and others. Modernizing IBM i Applications from the Database up to the User Interface and Everything in Between. — IBM Redbooks, 2014. — P. 30. — 720 p. — ISBN 9780738439860.

Ссылки

Эта страница в последний раз была отредактирована 26 июля 2020 в 08:42.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).