365 (СИ) - Либрем Альма. Страница 16
Структура наследования напоминала дерево — и какая-то из его ветвей вела не туда, куда следовало. Впервые за последние две недели он взялся за работу действительно серьёзно, ни на что не отвлекаясь; оно того стоило — запереться в кабинете, изолировавшись от постороннего шума, и отвлечься от всех жизненных неприятностей работой.
Что-то упорно не складывалось. Игорь смотрел на тонкую линию связи между старыми, уже существующими блоками закрытого кода и новыми планируемыми функциями и понимал, что этого будет мало. Даже если они реализуют всё а таком виде без фатальных ошибок, то рано или поздно неработоспособность будущего приложения даст о себе знать.
К сожалению, рано.
Он перевёл взгляд на тяжеленую структуру. Даже после того, как они вышвырнули оттуда целый кусок ежедневного обновления, а видоизменения вместо даты привязали к рандомайзеру и сошлись на комбинации из элементов — теперь это была уже проблема дизайнеров, как толково всё собрать, — всё равно оставалась целая куча звеньев, которые следовало выбросить к чертям собачьим.
Игорь раздражённо зашипел, глядя на строки бесполезного труда. Ему казалось, что элементы будут составлять ещё много-много недель, а когда придёт время всё соединять воедино, он уже сумеет найти какое-то красивое решение, но это изначально было очень наивно. Если не выдать результат до следующей пятницы, то он так и останется в этой точке — сдвигаться было некуда. Соединять элементы по блокам?
Не подойдёт.
Если бы они работали по старому доброму вотерфолу, то он бы оттянул это ещё дальше. Но сейчас, когда тестировщики уже висели на голове и интересовались, когда поток работы доберётся и до них, когда кто-то уже вздумал запилить юнит-тестирование, а у них не было цельной структуры…
Может быть, следовало заняться этой проблемой чуть раньше. Но когда? Игорь и так понимал, что выделяемого им года слишком мало для того, чтобы оправдать ожидания.
Зато как красиво сначала предлагали забрать в главный офис, туда, дать возможность карьерного роста… Согласились на свою голову.
Где-то здесь, в бесконечных перечнях блоков, было что-то, что он не дописал. Красивая связка, промежуточный контейнер, который теперь будет некому дать.
Игорь прежде не особенно уважал карандаши да бумагу — он предпочитал всё сразу переводить в код. Но с каждым днём проекты становились всё сложнее, и так просто воплотить свои идеи без предварительного плана больше не удавалось. Наверное, именно в тот момент он понял, насколько удобно иногда бывало накидать предварительную структуру.
И очень зря он раздал задания до того, как придумал это связующее. Теперь столько всего следовало подкручивать под уже готовые части…
Это должен быть аккуратный кусочек кода, несколько классов (абы не несколько десятков), которые потом станут расширяться и вылезут в полноценную систему… Более продуманный рандомайзер, возможно, часть, что будет продумывать сборку…
Он застыл с карандашом в руках, поймав наконец-то столь желанную идею за хвост.
Сочетаемость элементов. Не надо никакого дополнительного связующего звена; им нужно что-то вроде базы данных и блока по принятию решения. Не ежедневно новая линия взаимодействия с пользователем, не триста шестьдесят пять вариантов поведения, а крохотная сеть связей с нечёткой логикой, что поможет по подлавливаемым параметрам определить-таки, что нужно пользователю!
В дверь тихонько постучали. Он не поднял головы, не отреагировал даже, когда кто-то вошёл в кабинет.
На столе внезапно оказались стакан с водой и какие-то бутерброды.
— Ты безвылазно сидишь тут уже часов пять, — промолвил мягкий женский голос, и Игорь, посмотрев на часы, понял, что провалился слишком надолго. — Надеюсь, я не помешала.
— Как ты думаешь, — протянул он, — если отказаться от рандомизированных комбинаций и от подстройки соответствующих паттернов, а сойтись на маленькой сети, что будет провязывать элементы друг с другом и вызывать нужные в зависимости от соответствующей системы? И вшить эту систему таким образом, чтобы она основывалась на предпочтениях пользователя и менялась в зависимости от активности его взаимодействия с интерфейсом? Сначала что-то вроде демонстрации всех вариантов, сочетания элементов, а после анализ активности с ведением статистики и динамическая переработка индивидуально для пользователя, с помощью программы? Не искусственный интеллект, конечно, но действительно интерактивное взаимодействие, как от нас и хотели. Только не основанное на случайностях, а более продуманное.
— Да, но эту статистику придётся не только очень хорошо спрятать, а и ограничить в использовании ресурсов, чтобы она не была слишком трудоёмкой. И определить места, где логичнее всего было бы вести подсчёт. В таком случае, возможно, есть шанс определять всё без вреда для производительности, — кивнула Саша. — В целом, мне кажется, это очень хорошая идея. Возможно, она реализуется не так просто, как то, что мы думали раньше.
Игорь кивнул.
Он отлично знал, что его коллеги не согласятся на такой кусок дополнительной работы. Но красивое, аккуратное дополнение так и просилось на свободу, даже если ради него ему придётся вспомнить всё давно забытое и выходящее за пределы обыкновенных технологий, ставших на фирме уже привычными, прогнать Регину с её страстью к подстраховке, избавиться от всех программистских предрассудков и сидеть, крутить это весь год, день в день.
Об отпуске точно можно забыть.
— Я вряд ли уложусь в год в одни руки, — наконец-то признал он, поднимая взгляд на Сашу. — Ты что-нибудь в этом понимаешь, правда?
— Да, насколько это возможно, — пожала плечами она. — Хорошо. Давай займёмся этим.
— Ты должна осознавать, — отметил Игорь, — что эта работа потребует не день и не два. И о том, чтобы отдыхать, можно попросту забыть, наверное. Это куда сложнее, чем то, что мы планировали раньше, и я не могу дать гарантии, что всё получится.
— Но если получится — это ведь будет именно то, что просил заказчик? Не костыли? — Александра сама потянулась к стакану с водой. — В таком случае, я готова рискнуть. Я пришла сюда не для того, чтобы сидеть, сложа руки, или просто складывать кубики чужих кодов.
Игорь улыбнулся. Глаза у неё горели точно так же ярко, как и у него самого.
— Они меня прибьют, когда узнают об этой идее, — почти самодовольно произнёс он. — Но я не могу сказать, что чувствую себя очень огорчённым.
— Самое приятное в работе — это её сложность, — довольно флегматично отозвалась Саша. — Но, мне кажется, за это надо будет садиться уже сегодня?
— Завтра на митинге переопределю планы, — покачал головой Игорь. — И если придётся это дело выносить на голосование, я рассчитываю на твою поддержку.
Она кивнула, но не ушла. Игорь чувствовал какое-то лёгкое напряжение, хотя не мог понять, что именно было его причиной.
— Ты что-то хотела? — осторожно уточнил он. — А то я как влез вчера утром во всё это, так и забыл о существовании реального мира.
— Нет, всё в порядке, — Саша, кажется, растеряла все остатки собственной решимости. — Мне просто хотелось поблагодарить за то, что ты тогда меня подвёз.
— Да ладно, пустяки, — улыбнулся Игорь. — Ты же сейчас тоже поддерживаешь мою неадекватную идею. Как там Магнус? — последний вопрос сорвался с языка быстрее, чем Игорь успел подумать о том, как он вообще звучит со стороны.
— Скучает, — призналась Саша. — Ты ему, кажется, очень понравился. Даже неожиданно. Ему никогда не нравились гости, он прогонял их прямо с порога.
— Я обязуюсь подвести тебя и сегодня, — вскинулся Игорь. — Повидаю кота… Если ты не против, конечно.
— Нет, не против, — она легонько подвинула к нему стакан с водой. Игорь потянулся за ним — но, совершенно случайно, к слову, сжал скорее не ледяное стекло, а её ладонь. Саша не отпрянула, даже не отвернулась — какой, однако, хороший знак.
— Заодно обсудим направления в работе, — вдохновлённо промолвил Игорь.