Lex Kravetski (lex_kravetski) wrote,
Lex Kravetski
lex_kravetski

Categories:

Подходы к решению задач

Продолжение предыдущего поста

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

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

Первый из них: описать проблему в наиболее абстрактных терминах и решить её в общем случае, включив заодно в решение кучу проблем, которые в данный момент решать не собирались. Благодаря этому подходу у нас сформировалась сильнейшая в мире научная школа, особенно это касается теоретических областей точных наук. Надо отметить, что на Западе данный подход тоже имеет место быть, но постоянно вытесняется коммерческим подходом: делать всё так, чтобы покупали, а как это работает – уже всё равно. Такой подход явно выражается например в разработке матричного исчисления, теории вероятности. Наиболее наглядный пример – xml. И тут надо заметить, что пришли к нему, хоть и на Западе, но далеко не сразу. То есть, путь до обобщения был весьма тернист.

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

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

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

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

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

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

Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 14 comments