Что такое абстрагирование в химии

Абстрагирование

Исследования

Методы эмпирического и теоретического

¨ индукция и дедукция

¨ моделирование и использование приборов

¨ исторический и логический методы научного познания

Понятие «абстрагирование» произошло от понятия «абстракция» (лат. abstractio — отвлечение). Абстрагироваться — это значит мысленно отвлечься от несущественных, частных свойств и связей предмета, с тем чтобы выделить существенные его признаки. Понятие «абстрактное» противопоставляется понятию «конкретное».

Абстрагирование носит в умственной деятельности человека наиболее универсальный характер, ибо каждый шаг мысли связан с этим процессом или с использованием его результата. Сущность этого метода — в мысленном отвлечении от несущественных свойств, связей, отношений предметов и в одновременном выделении, фиксировании одной или нескольких интересующих исследователя сторон этих предметов.

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

Процесс абстрагирования это совокупность операций, ведущих к олучению результата (абстракции).

Примеры абстракции: шар, дом, море, дерево, дорога, воздух, газ, жидкость и т.п.

Процесс абстрагирования имеет сложный, двухступенчатый характер.

Первая ступень — отделение существенного от несущественного, вычле-наиболее важного в интересующих исследователя явлениях. Именно осуществляется оценка различных сторон явления, различных факторов и т.п., идет подготовка абстракции (отвлечения), которая включает:

а) установление того, что является общим для многих предметов определенного класса;

б) установление независимости или слабой зависимости изучаемых
явлений от определенных факторов, которой можно пренебречь, и др.

Вторая ступень состоит в реализации возможности абстрагирования установленной ранее. Это и есть в собственном смысле абстрагирование или отвлечение: некоторый объект А1 замещается другим, менее богатым свойствами объектом А2, выступающим в качестве «модели» первого.

Абстрагирование может применяться как к реальным, так и абстрактным объектам, т.е. к таким, которые сами уже являются результатом предшествующего абстрагирования. Следовательно, это процесс многоступенчатый (в том смысле, что абстрагирование может применяться к объекту многократно). Переходя от одного уровня абстрагирования к другому, мы получаем абстракции все возрастающей степени общности.

Например, постепенно отвлекаясь от все большего числа конкретных свойств определенного человека, можно получить подобный ряд абстракций:

мужчина ® человек ® живое существо ® материальный объект.

При этом познание как бы отходит, удаляется от действительности, взятой в ее целостности, конкретности и богатстве. Однако такой подход есть непременное условие познания глубинных, внутренних связей этой действительности.

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

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

Под абстракцией отождествления понимается образование понятия путем объединения в их особый класс, отождествления предметов, связанных отношениями типа равенства. При этом обязательным является отвлечение от ряда индивидуальных свойств таких предметов.

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

Между абстракцией отождествления и изолирующей абстракцией есть пределенная общность, поскольку в обоих случаях производится, по существу, изоляция некоторых свойств объектов.

Сущность абстракции конструктивизации состоит в отвлечении от зыбкости и неопределенности границ реальных объектов, в «огрублении» действительности. Это позволяет сформулировать по отношению к этой «огрубленной» действительности некоторые законы, понять ее «в первом приближении» с тем, чтобы двинуться в познании дальше, глубже. В результате такого движения исходное упрощение действительности снимается, мы обнаруживаем в ней новые, более точные границы, стороны, этапы и т.п.

Абстракция актуальной бесконечности — это одна из основных абстракций математики и логики. Сущность ее состоит в отвлечении от незавершенности (и незавершимости) процесса образования бесконечного множества, от невозможности задать его полным списком всех элементов. Такое множество просто рассматривается как данное, как существующее.

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

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Источник

Абстрагирование

Абстра́кция, или абстра́кт, (от лат. abstractio — «отвлечение», введённого Боэцием как перевод греческого термина, употреблявшегося Аристотелем) — мысленное отвлечение, обособление от тех или иных сторон, свойств или связей предметов или явлений для выделения существенных признаков.

Слово «Абстракция» используется в двух смыслах:

Абстрактное понятие — мысленная конструкция, представляющая собой некий концепт, или идею, способную олицетворять некие предметы или явления реального мира, но при этом отвлеченная от конкретных их воплощений. Абстрактные конструкции могут и не иметь прямых аналогов в физическом мире, что характерно, например, для математики (вообще, вероятно, являющейся наиболее абстрактной наукой).

Абстрагирование — это форма познания, представляющая собой мысленное выделение существенных свойств и связей предмета и отвлечение от других его свойств и связей, признаваемых «частными», несущественными. Это теоретическое обобщение позволяет отразить основные закономерности исследуемых объектов или явлений, изучать их, а так же прогнозировать новые, неизвестные закономерности. В качестве абстрактных объектов выступают целостные образования, составляющие непосредственное содержание человеческого мышления — понятия, суждения, умозаключения, законы, математические структуры и др.

Потребность в абстракции определяется ситуацией, когда становятся явными отличия между характером интеллектуальной проблемы и бытием объекта в его конкретности. В такой ситуации человек пользуется, например, возможностью восприятия и описания горы как геометрической формы, а движущегося человека — в качестве некой совокупности механических рычагов.

Некоторые типы абстракции, по видам несущественного:

Понятие «абстрактное» противопоставляется конкретному (конкретное мышление — абстрактное мышление).

Абстрактное мышление подразумевает оперирование абстракциями («человек вообще», «число три», «дерево», и т. д.), что можно считать более развитым уровнем мыслительной деятельности по сравнению с конкретным мышлением, всегда имеющим дело с конкретными объектами и процессами («брат Вася», «три банана», «дуб во дворе», и т. д.). Способность к абстрактному мышлению является одной из отличительных черт человека, которая, судя по всему, сформировалась одновременно с языковыми навыками и во многом благодаря языку (так, нельзя было бы даже мысленно оперировать числом «три вообще», не имея для него определенного языкового знака — «три», поскольку в окружающем нас мире такого абстрактного, ни к чему не привязанного понятия попросту не существует: это всегда «три человека», «три дерева», «три банана» и т. п.).

В европейской философии и логике абстрагирование трактуется, как правило, как способ поэтапного продуцирования понятий, которые образуют все более общие изображения реальности (иерархию абстракций). Наиболее развитой системой абстракций обладает математика. Степень отвлечённости обсуждаемого понятия называется Уровень абстракции. Например, в зависимости от целей и задач, можно рассуждать об одном и том же объекте на разных уровнях абстракции: от конкретного Петра Ивановича, например, можно абстрагироваться до сантехника вообще, можно — до технаря, до мужчины, до млекопитающего, до живого существа, до единицы, и т. п.

Определение через абстракцию — способ описания (выделения, «абстрагирования») не воспринимаемых чувственно («абстрактных») свойств предметов путём задания на предметной области некоторого отношения типа равенства (тождества, эквивалентности). Такое отношение, обладающее свойствами рефлексивности, симметричности и транзитивности, индуцирует разбиение предметной области на непересекающиеся классы (классы абстракции, или классы эквивалентности), причём элементы, принадлежащие одному и тому же классу, неотличимы по определяемому таким образом свойству.

Источник

Основные методы познания, используемые в химии

Методы познания в химии — таблица с примерами

Метод познания — это комплекс операций и приемов теоретического и практического освоения действительности.

Классическая схема метода познания предполагает наличие 5 основных звеньев. Кратко их можно обозначить так:

Методы познания в химии подчиняются общим для всех наук тенденциям, но имеют и свои особенности, связанные с изучением веществ и химических явлений.

Описание и характеристика основных концепций

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

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

Кроме того, в химии используются следующие методы:

Для химиков крайне важны анализ — метод, позволяющий выяснять состав разных веществ, синтез — получение новых веществ.

В химии различают 2 уровня познания: теоретический, эмпирический. К теоретическому, к примеру, относят абстрагирование, индукцию, моделирование. К эмпирическому — измерение, наблюдение, эксперимент, синтез, анализ.

Правила техники безопасности при работе в кабинете химии

В кабинете химии ученикам запрещено:

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

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

Источник

Статья. Метод абстрагирования в обучении химии.

Предмет:Химия
Категория материала:Статьи
Автор:Чигинева Елена Викторовна это Вы?
Тип материала:Документ Microsoft Word (doc)
Размер:42.00 Kb

МУНИЦИПАЛЬНОЕ КАЗЕННОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ОТКРЫТАЯ СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ (СМЕННАЯ) ШКОЛА № 1

МЕТОД АБСТРАГИРОВАНИЯ В ОБУЧЕНИИ ХИМИИ.

Использование инновационных технологий для развития

познавательной активности учащихся в процессе обучения

Из опыта работы учителя МКОУ ОСШ № 1 Чигиневой Е.В.

Практика показывает, что некоторые темы при изучении химии лучше изучать, отрываясь от конкретных примеров, сразу прибегая к обобщениям и абстрактным понятиям.

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

Термин «абстрагирование» имеет латинские корни и образован при помощи приставки ab – «от» и слова traho – переводится как «тянуть», «влечь». Вот и получается, что разговор идёт об отвлечении. В энциклопедиях и словарях можно встретить разъяснение слова как метод исследования, научного познания, процесс отвлечения какого-либо предмета от его несущественных признаков. Для прояснения ситуации достаточно обратиться к истокам.

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

Я работаю в открытой школе, куда попадают дети из разных школ города и из других городов и даже республик. Наблюдения показывают, что если дети из разных школ и регионов имеют одни и те же проблемы по одним и тем же темам. Если учащиеся выучили понятие «доля» на примере массовой доли растворенного вещества, они не воспринимают затем никакие другие доли в других системах: с большим трудом усваивают долю примесей, долю металлов в сплаве, долю выхода, долю элемента в молекуле и т.п. При упоминании словосочетания «массовая доля», в лучшем случае, твердят на автомате – «масса вещества на массу раствора». В условии каждой задачи ищут массу раствора. Или, запомнив однажды гидроксид алюминия в разряде «Основания», даже называя его амфотерным, при изучении темы «амфотерность», учащиеся испытывают огромные трудности при составлении алюминатов и подобных солей амфотерных металлов.

Есть темы, которые лучше сразу изучать отвлекаясь от конкретики, используя абстрактные понятия. Поэтому, вместе с понятием ДОЛЯ, мы изучаем такие важные категории, как СИСТЕМА и ЧАСТЬ, которые встречаются в других естественных и гуманитарных науках. Формула массовой ДОЛИ для нас – масса ЧАСТИ, деленная на массу СИСТЕМЫ. (Слайд 2)

Опубликован разработанный мною урок с применением данной технологии «Система. Часть. Доля» для 8 класса. К уроку прилагается презентация с анимацией.

Одной из самых сложных тем для учащихся является «Амфотерность и амфотерные элементы». Для того, что бы эта тема легче усвоилась в свое время, мы в 8 классе делим простые вещества на Металлы, Неметаллы и Полуметаллы. (Слайд 8) И только позже спускаемся от общего к частному и начинаем называть их амфотерными металлами, когда уже усвоено промежуточное положение этих элементов между металлами и неметаллами. По этой же причине при заучивании кислот даю, как пример слабой кислоты, формулы орто- и метаалюминевой кислоты, цинковой кислоты, и в упражнениях по закреплению свойств щелочей и кислот, приводим примеры взаимодействия этих кислот со щелочами. (Слайд 9)

Еще одним примером спуска в когнитивном процессе является сокращение чисел вместо поиска общего кратного. Это пример упрощения расчетов для экономии времени на уроке. Я уверена, попроси сейчас 100 человек на улице найти общее кратное для 2 и 5, или 3 и 4 – никто не найдет. Обучение поиску общего кратного – это задача учителей математики. Наша задача – обучить методу электронного баланса, который и без поиска общего кратного достаточно сложная, трудоемкая и длительная операция. Если количества принятых и отданных электронов не сокращается – то мы расставляем множители крест-накрест, а если сокращаются, то расставляем крест-накрест числа, полученные после сокращения. (Слайд 10,11)

Так же мы поступаем при определении индексов по валентности, мы не ищем общее кратное, а спускаем валентости крест-накрест, превращая в индексы. Если валентности сокращаются, то расставляем в индексы цифры, полученные после сокращения.

Источник

Причуды абстракций

Что такое абстрагирование в химии. Смотреть фото Что такое абстрагирование в химии. Смотреть картинку Что такое абстрагирование в химии. Картинка про Что такое абстрагирование в химии. Фото Что такое абстрагирование в химии

Что такое абстракция?

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

В европейской философии и логике абстрагирование трактуется как способ поэтапного продуцирования понятий, которые образуют всё более общие модели — иерархию абстракций. Наиболее развитой системой абстракций обладает математика. Степень отвлечённости обсуждаемого понятия называется уровнем абстракции. В зависимости от целей и задач, можно рассуждать об одном и том же объекте на разных уровнях абстракции.

Гради Буч определяет понятие абстракции значительно проще, но смысл тот же:
Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других объектов.

Зачем нужна абстракция?

Абстракции выполняют защитную функцию и помогают нам не сойти с ума от переизбытка информации. Представьте, как бы нам жилось, если при письме шариковой ручкой пришлось бы думать о том, что миллиарды молекул чернил взаимодействуют с молекулами бумаги, чтобы получилась буква. Другими словами, не тратя время на ненужные подробности, мы можем ухватить самую суть — взглянуть на проблему «сверху».
Что такое абстрагирование в химии. Смотреть фото Что такое абстрагирование в химии. Смотреть картинку Что такое абстрагирование в химии. Картинка про Что такое абстрагирование в химии. Фото Что такое абстрагирование в химии
Если бы не фотография с высоты птичьего полета, можно ли было бы себе представить насколько правильно спроектирована Барселона? Кстати, про пример с шариковой ручкой, читать бы тоже не получилось — начертания одной и той же буквы на письме отличаются даже у одного человека.

Абстрактное мышление — это механизм, который позволяет нам перерабатывать и усваивать кучу новых сведений. Если бы не было абстракции, то единственный вариант для нас — это остаться очень примитивными существами.
Что такое абстрагирование в химии. Смотреть фото Что такое абстрагирование в химии. Смотреть картинку Что такое абстрагирование в химии. Картинка про Что такое абстрагирование в химии. Фото Что такое абстрагирование в химии
В Бразилии живет племя небольшое племя индейцев Пираха. Представители этой народности обладают крайне скудным абстрактным мышлением. Их алфавит состоит из трех гласных и восьми согласных. У них нет слов, обозначающих цифры, вместо цифр у них два понятия — несколько и много. У них нет цветов — только понятия светлый и темный, времени и истории — они живут только сегодняшним днем и помнят только то. что помнит старейший из ныне живущих; нет — религии, ремесел, искусства. У них еще много чего нет в нашем привычном понимании. И это все потому, что не развито абстрактное мышление. Правда, справедливости ради, стоит отметить, что при этом они себя ощущают абсолютно счастливыми людьми!

Итак, абстрагирование нам нужно как способ познания и описания окружающего мира, для обмена информацией друг с другом. Абстракции позволяют провести декомпозицию предметной области на набор понятий и связей между ними.
Что такое абстрагирование в химии. Смотреть фото Что такое абстрагирование в химии. Смотреть картинку Что такое абстрагирование в химии. Картинка про Что такое абстрагирование в химии. Фото Что такое абстрагирование в химии
На картинке изображен Legoland в Лондоне. Несмотря на то, что все предметы собраны из детского конструктора, мы без труда узнаем в них дома, окна, двери, городские кварталы, людей.

Барьеры и побочные эффекты абстракций

Чтобы понять ключевые свойства абстракций проведем аналогию с построением проекций на плоскость.
Что такое абстрагирование в химии. Смотреть фото Что такое абстрагирование в химии. Смотреть картинку Что такое абстрагирование в химии. Картинка про Что такое абстрагирование в химии. Фото Что такое абстрагирование в химии
Предположим, что у нас есть три фигуры: шар, цилиндр и параллелепипед, при этом ось симметрии цилиндра, проходящая через центры окружностей в основании, параллельна какой-нибудь оси симметрии параллелепипеда. Очевидно, что можно выбрать две плоскости для построения проекций таким образом, что шар и цилиндр спроецируются в окружности, а цилиндр и параллелепипед — в прямоугольники.

Проекция в нашем примере иллюстрирует абстракцию объекта — геометрической фигуры. Что мы видим — на одной плоскости не отличишь проекции шара и цилиндра, а на другой — цилиндра и параллелепипеда. Этот эффект называется барьером абстракции. Абстракция представляет не весь объект целиком, а только лишь его существенный набор характеристик.Нужно быть готовым к тому, что некоторые очень непохожие друг на друга объекты, могут стать неразличимыми. Если это неудобно, то нужно выбирать другой набор абстракций.

С другой стороны, как мы видим из примера, цилиндр, может проецироваться и в окружность, и в прямоугольник — объекты с различными геометрическими свойствами, отличными от тех, что есть у цилиндра. Наличие у абстракции собственных свойств, отличных от свойств абстрагируемого объекта, называется побочным эффектом абстракции.

На самой первой картинке изображены две фигуры, собранные из щепок, так что при определенном освещении они отбрасывают «человеческие тени». Мне, например, кажется, что там один силуэт мужской, а другой — женский. Это тоже побочный эффект абстракций. Теперь мы можем классифицировать все фигуры по их тени.

Примеры абстракций

Сфера примененияАбстракцияКомментарий
Целые числаЧисло из кольца Zp, где p = 2^разрядность (8, 16, 32, 64 бита)Данная абстракция позволяет представить целые числа только из отрезка –p/2+1 до p/2. Побочный эффект – проблема переполнения.
Вещественные числаЧисла с плавающей точкойВещественных чисел несчетное число, а чисел с плавающей точкой — всего лишь конечное. Это значит, что несчетное количество вещественных чисел представлены одним числом с плавающей точкой. Побочный эффект – ошибка округления, из-за который два числа нельзя сравнивать с помощью операции сравнения, а лишь по модулю некоторого маленького epsilon |a-b| a == b, или a/b*1000 может сильно отличаться от a*1000/b. Появилась даже целая дисциплина в математике – численные методы, которая изучает как организовать вычисления с плавающей точкой так, чтобы результаты не сильно отличались от вычислений с вещественными числами.
ДеньгиЧисла с плавающей точкойПогрешность округления чисел с плавающей точкой делает, если не невозможным их использование для финансовых операций, то, по крайней мере, сильно усложняет жизнь. В любом случае, я бы сначала подумал в сторону написания отдельного класса для денежных единиц.
ИзображениеМашинная графикаМашинная графика развивается семимильными шагами, чтобы сделать изображение на экране компьютера все более реалистичным.
Программное обеспечениеПроцедураПроцедура является базовым элементом декомпозиции в процедурном программировании. Побочный эффект — процедура жестко заданная последовательность команд, которую невозможно изменить без переписывания самой процедуры.
Программное обеспечениеКлассО классах будем говорить ниже.
Предметная областьАбстракция сущности и связи между сущностямиПобочный эффект — отражает представление, заблуждения, предубеждения и т.д. о предметной области конкретного субъекта.
Бизнес-логикаПроцедураКак уже говорилось выше — побочный эффект процедуры — жесткая последовательность команд. Бизнес-логика же подвержена изменениям, как правило содержит много исключений, о которых пользователи обычно забывают рассказать. Попытка представить бизнес-операцию в виде процедуры часто делает терпит неудачу.
Программное обеспечениеПоток для распараллеливания операцийМногопоточное программирование получилось настолько сложным для восприятия, что немного людей в нем разбирается.
Квадрат — это прямоугольник, у которого все стороны равны.Класс квадрат нельзя наследовать от прямоугольника.Классы — это абстракции. У них есть свои собственные свойства, которые отличаются от математических объектов и которые делают невозможным наследование.

Классы

Гради Буч так определяет ООП:
Объектно-ориентированное программирование — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.

В этом определении самый важный момент — это иерархия наследования. Потому что именно наследование отличает ООП от всех других методологий.

Два основных принципа человеческого мышления — это группировка и обобщение. Классы — это, по сути, абстракции механизмов группировки и обобщения человеческого мозга. Естественно, со своими побочными эффектами и барьером. При этом группировка достигается тем, что похожим объектам сопоставляется один класс, а обобщение в ООП достигается за счет иерархии классов. Иерархии классов реализуются через полиморфизм.

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

Главный побочный эффект классов — они отражают опыт, стереотипы, предубеждения того программиста, который их написал. Отсюда следует, что разные люди получат разный набор классов для одной и той же задачи. Более того, один и тот же человек, решая одну и туже задачу, но в разные моменты времени, получит разный набор классов, просто потому что его жизненный опыт меняется.

Второй побочный эффект, который стоит отметить — чужой код всегда менее понятный, чем свой собственный.

Что такое абстрагирование в химии. Смотреть фото Что такое абстрагирование в химии. Смотреть картинку Что такое абстрагирование в химии. Картинка про Что такое абстрагирование в химии. Фото Что такое абстрагирование в химии
Разберемся почему так происходит. Когда человек пишет код, для него естественнее двигаться снизу вверх — от более низкоуровневых компонент к более высокоуровневым. Сначала написали один класс, потом второй, который зависит от первого, затем третий, который зависти от первого и второго, четвертый — от третьего и т.д.

Когда же человек пытается понять чужой код, он как раз двигается наоборот — сверху вниз. То есть сначала понимает общую суть, затем разбивает на компоненты, потом пытается понять суть каждого компонента и т.д. Часто эти движения мысли снизу вверх и сверху вниз у разных людей не совпадают. Естественно, что изучающему чужой код было бы легче, если разбиение кода на компоненты совпадало с его собственными убеждениями, как надо делать. Если это не так, придется затрачивать определенные усилия, чтобы понять ход мыслей разработчика. Поэтому, когда кто-то говорит, что здесь «полный хардкод», но если я перепишу, то будет все проще и понятнее. Это всегда 100% правда… Но только для него, для остальных ценность переписывания уже не так очевидна.

Кстати, если ничего не предпринимать специально, то при разработке снизу вверх, код становится сильно связанным между собой, то есть не повторно используемым. Чтобы побороть этот эффект надо следовать принципу инверсии зависимостей (The Dependency Inversion Principle).

Проиллюстрируем как проявляется описанный побочный эффект на простом примере. Многие жители крупных городов закупаются в крупных супермаркетах. Предположим, что жена отправляет мужа за покупками и, чтобы он не забыл, как обычно, чего-нибудь, составляет список «для тех кто в танке».
Постараемся проследить ход ее мыслей:
— Так чего я сегодня буду готовить на ужин?
— Надо приготовить чего-нибудь вкусненькое, чтобы побаловать ребенка.
— Так, нужна будет мука, молоко.
— Кажется в миксере сели батарейки.
— Стоп! Ребенку нужны витамины. Морковь. Буду делать морковный сок. и мандарины. Скоро же Новый год!
— А хлеб дома есть? Нет, кажется, нет.Значит, надо купить!
— Еще надо купить масло.
— Забыла про ребенка — витамины. Купить яблоки.
— Чего-то ручка плохо пишет. Наверное скоро кончатся чернила. Надо купить!
— Так, ребенку надо купить сока.
— А еще игрушку — пусть порадуется.
— Картошка у нас есть на борщ? На борщ хватит, но на неделю нет. Значит тоже надо купить.
— Чуть не забыла учительница просила принести две тетради.
— К борщу нужна сметана.
— Вроде сахар кончился.
— Ребенок любит виноград.
— И еще надо купить бутилированной воды.

Когда приходит муж в магазин то, что он обнаруживает? Указанные в списке товары оказываются в разных частях магазина. Обычно список длинный, поэтому запомнить что-либо, что было уже куплено достаточно трудно. На это накладывается, что какие-то отделы временно закрыты — идет выгрузка товаров, какого-то товара нет в продаже, плюс толчея, зимняя одежда. Более опытные товарищи ходят с карандашом или ручкой с очень озабоченным видом и постоянно смотрят в свой список. Но, в итоге, все равно, что-нибудь да забудешь купить. По своему опыту могу сказать, что это «что-нибудь» окажется самым важным, из-за чего вообще и стоило ехать в магазин.

Еще одно важное наблюдение — невозможно по самим абстракциям определить насколько удачными они получились. Это можно сделать, только если мы попытаемся их использовать на практике. И тут уж выясняется, что одни абстракции лучше подходят для задачи, а другие — хуже. А если еще немного изменить исходные условия, то и прежний «хороший» набор абстракций уже может не работать. Например, второй список покупок из примера перестанет работать, если прийти с ним в другой магазин с иным порядком выкладки товаров. Он станет ничем не лучше, чем первый.
Отсюда вывод — невозможно придумать набор классов, который подойдет на все случаи жизни. В статье The Open-Closed Principle это называется стратегическая замкнутость.

Естественный вопрос, а как сразу создавать хорошие абстракции. Увы, но на этот счет нет точного ответа. Зато со временем выработался набор практик, который говорит, как надо поступать, и обещает, что в этом случае будет хороший результат. К таким практикам относится рефакторинг, стандарты кодирования, code review, объектная гимнастика и т.д. Цель данных практик — направить ход мыслей группы разработчиков в одном направлении, тогда шансов, что чужой код будет понятнее, станет больше. Отношение к каждой из практик у отдельно взятого человека зависит лишь от приобретенного им опыта использования практики. Часто слова «Это не работает» надо интерпретировать как «Я пробовал — у меня не получилось». Нет никаких объективных аргументов «ЗА», равно как и «ПРОТИВ».

Так зачем нужно тогда ООП?

Проведем параллели между естественным языком и ООП

естественный языкООП
Словокласс
ПравилаСинтаксис
ЖанрАрхитектура
литературные приемыпаттерны

ООП — это инструмент, который создавался с прицелом на большие по размеру программы. Но, это всего лишь один из инструментов, который потребуется, чтобы написать крупный проект.

Меня всегда удивляют, статьи в стиле Почему я люблю X или Почему я не люблю X. Все прекрасно понимают, что X — инструмент. Ведь нет же таких статей про лопату. Хотя, кто знает, ведь ООП существует несколько десятилетий, а лопата несколько тысяч, и быть может где-нибудь в в каменном веке шли жестокие холивары на тему, что лучше лопатка мамонта или мотыга из камня?

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *