Зміст
Частина 2
Пролог
Пройшло вже декілька дній з моменту публикації першого посту по даній темі. Ох і наслухався я про себе за цей час, ну, не так про себе, як про саму ідею. На жаль, все "Фу..." не пішло в коментарі. Хтось писав в скайп і джаббер, хтось в особистому співлкуванні. Підбиваючи підсумки: всі засумнівались і посміхались. Але... Багато хто так і не зрозумів, що я хочу донести, тобто неправильно зрозуміли суть задачі, яку я пробую вирішити, і зараз я це хотів би поправити. це швидше моя помилка.
Я не пробую створити універсальний засіб вирішення інженерних задач
Це в корені оманливе твердження, яке я отримав в коментарях до попереднього поста. Універсальне рішення - це наш мозгок Але найбільш цікавий момент тут в тому, що він не призначений напряму вирішувати задачі. Схему його роботи шивдше можна подати як: "навчитись рішати" -> "рішити". А в наш час ще й створити засіб для того, щоб задачу, яку ми навчились рішати - вирішував хтось іншй. Наприклад, арифметичні операції прекрасно виконує калькулятор.
До чого я веду?
Я веду до того, щоо я хочу сторити не фреймворк, який вирішує всі задачі (тобто не певну уіиверсальну нейромережу, і ніякий інший універсальний апарат розв'язання задач), - це уже не будет фреймворк, а "кнопка" "Зробити зашибісь". Я хочу створити фреймворк, що реалізує архітектуру (підхід, методологію) для проектування додатків, яку можна застосовувати при вирішенні всіх задач.
Наводжу приклад
практично всі великі комерційні комп'ютерні ігри створюються на об'єктно-оріентованих мовах програмування (в основному це С++). Спроба зробити гру, користуючисьь тільки структурним підходом призведе самі розумієте до чого.
Але тут такий цікавий факт. Маючи, наприклад, в своєму розпорядженні, грубо кажучи, функцію main (розглянемо варіант на С), ми можемо написати будь-який додаток:
// Do any task in the world
return 0;
}
Тобто, по суті, ось воно! =) Відсутність фреймворку, якихось архітектурних правил і обмежень і привело нас до ціли. Користуючись таким "фреймворком" можна зробити все.
Смішно, правда?
Дійсно, понаписував тут про терминаторів, про всяку фігню і дойшов до того, що фреймворки нафіг не потрібні. Не зовсім так.
Суть моїх починань в тому, що розвиваючи код, наведений вище таким чином, щоб він спрощував життя розробнику і при цьому не накладав на нього обмежень у вирішенні якої б то не було задачі, ми отримаємо те, що нам і потрібно. Ну, а, оскільки я, все ж таки згадував, що пробувати виконати реалізацію будемо на Python, то початком будет що? Правильно, - порожній Python-модуль.
Тобто, клжен раз додаючи рядок коду в фреймворк варто задумуватись і доводити, що такий підхід не змусить розробника, який знаходиться в здравому умі і світлій пам'яті, втикати костилі в програму.
Висновок
Справи з підкоренням світу йдуть досить погано, але, дякуючи впевненості Андрія Свєтлова в тому, що задача більш проста, якось до неї повернусь, може навіть напишу про прогрес тут.
Надіюсь, що вніс деяку ясність в ідею, викладену в попередній публікації, якщо не запутав вас ще більше :)
Коментарі
Дописати коментар