• программирование Вчера я писал код. Будучи плохим разработчиком я по несколько раз переписываю один и тот же блок, пока он не обретет структуру, которая бы легко воспринималась мной в любом состоянии. Занимался я тем, что реализовывал очередной кусок платформы, которая будет выделять ресурсы вроде подсетей, IP-адресов, серверов или виртуальных машин по запросу различных автотестов и платформ CI. Тот кусок заключался как раз в реализации простенького алгоритма с поиском свободных подсетей.

    И вот, часам к четырем дня на моем экране засверкал символами код, который мне очень понравился. Прям «сочный пэрсик», а не код =) И его форма подтолкнула меня вот на какие мысли.

    Эти маленькие блоки, которые я пытаюсь реализовать, по запросу отдают объекты. Сущности, с которыми дальше будут работать другие подсистемы. Но сами эти блоки не являются по своей природе готовыми объектами. Они являются неким алгоритмом действий, который на более высоком абстрактном уровне представляют собой объект.

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

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

Replies (1)

  • @jujuc, ты слишком абстрагируешь и притягиваешь "философию".
    есть данные и их преобразования, всё. Всё остальное — в основном, синтаксические удобства, сокращения — в том числе и "объекты". Выкинь из головы лишний гуманитарный мусор, и будет просветление, и чистый простой натуральный код.