Pull to refresh
20
0.5
Виктор Поморцев @SpiderEkb

Консультант направления по разработке

Send message

Тестирование (сначала компонентное, потом бизнес, потом нагрузочное, потом интеграционное) зинимает времени кратно больше разработки.

Я боюсь даже представить, насколько увеличится TTM если, как было сказано выше, сразу запустить в тесты сгенерированный ИИ код.

Тестирование - это же не просто "не упало при запуске". Это 100500 разных вариантов тесткейсов. Плюс контроль за эффективностью использования ресурсов (а это делается на копии промсреды, там один тест может несколько часов занимать). Плюс интегрционные тесты что ничего смежного не сломалось...

Это вполне себе реальная задача.

Набор А содержит порядка 8 000 строк. Набор Б - порядка 96 000 000 строк.

Даже с некоторой предподготовокой (создание и поддержка актуальности "витрин" где все строки хранятся в виде набора элементов) тупое решение "в лоб" через SQL запрос работает около 10-ти часов в режиме распараллеленной на 10 потоков (заданий) обработки (сервер IBM Power E980, 120 ядер Power9, 12Тб RAM, 400Тб SSD массив).

"Более другое решение" с использованием возможностей платформы (IBM i) и языка (RPG), в частности, прямой доступ к БД без использования SQL, тоже самое делает менее чем за полчаса.

Ну вот смотрите. Задача.

Есть два набора строк А и Б (строки лежат в таблицах БД). Каждая строка состоит из элементов ("слов"). Элемент может быть числовым (содержит только цифры) и нечисловым (цифры и буквы).

Нужно найти все возможные совпадения строк в наборах А и Б. Совпадение считается если:

  • Все уникальные элементы строки из набора А входят в строку из набора Б (но не наоборот!) без учета повторений (для любых элементов) и порядка следования (кроме числовых элементов)

  • Для числовых элементов должен учитываться порядок расположения их в строке.

Например строка из набора А "aaa bbbb cc dd aaa 11 23" считается совпадающей со строкой из набора Б "aaa dd cc bbbb eee 11 33 23 44", но не совпадающей со строкой из набора Б "aaa dd cc bbbb eee 33 23 11 44"

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

Поверьте, тут не про кодирование. Тут про алгоритм. А вот когда он придуман, закодировать его вообще не проблема.

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

Для формирования и формулирования требований в виде удобном и человеку и ИИ необходим заточенный под это дело специальный язык.

В таком случае акцент смещается на появление нового языка.

ИИ, который будет генерить исполняемый файл, по тем требованиям, которые ему опишет человек

И нового компилятора для него.

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

И собственно кодирование тут уже дело десятое. Сложно придумать что кодировать, а не как. И тут ИИ вряд ли поможет - интеллекта там нет на самом деле. Там есть огромный объем данных на основе которых принимается решение, но не более того.

И программирование сведется к разработке алгоритма и его формализации до уровня, с которого "ИИ" сможет перевести его на требуемый язык.

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

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

А где отбор идет парой сеньоров, которые берут человека чтобы потом с ним работать, скриптов, как правило, нет - там больше интересно понять как человек думает и получится с ним работать или нет.

Чем более формализован процесс найма, тем легче его обмануть.

Если реально интересно про эту систему - можно начать с книги Фрэнк Солтис "Основы AS/400" (AS/400 - историческое название IBM i - в запросах в гугле можно использовать и AS/400 и IBM i). Там история и концепции и много технических подробностей.

Дальше уже официальные ресурсы - IBM i Documentations

Для работы с сервером удобно иметь бесплатный пакет Access Client Solutions (там помимо терминала еще много чего есть полезного для работы со спул-файлами, для работы с БД, включая интерактивный SQL с демонстратором планов запроса). Он под Win/Mac/Linux работает.

Правда, IBM сейчас не дает его из РФ скачать, но кого когда это останавливало :-)

Климат - вещь очень субъективная. Я вот не могу без зимы. А жару так вообще плохо переношу. По мне так лучше -30, чем +30. Ну северный человек, чего уж..

Правда, зима должна быть зимой. Солнце, мороз, снег белый. А не непойми что.

Да не, поздно уже. Нежный предпенсионный возраст ("пенсионер по старому стилю" уже). Ну и якоря еще тут остались которые так просто не бросишь.

В целом, "кровавая банковщина" и тут дает неплохой и стабильный доход.

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

Если когда-то приходилось работать на советских БЭСМ-6 или Эльбрусе - вообще легко зайдет. Задания (job), joblog'и, spool файлы...

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

Поехать, что ли... 8 лет как пишу "кровавую лохматую банковщину" под IBM i... :-) Даже вкатываться не надо особо... Ну разве что в тонкости конкретного бизнеса.

Вы зан7имались профессиональной обработкой отснятого материала под полиграфию? Там много очень специфического что реализуется фотошопом и чего нет в других редакторах.

Еще раз. Для профессиональной обработки альтернативы фотошопу нет. Тот же гимп по возможностям чуть лучше пейнта виндового. Для профессионала не тянет.

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

Из последнего - Cisco Jabber. Нет и не будет (про Jabber4Linux не надо - он и половины не поддерживает из того что надо). А на него завязана вся внутренняя IP телефония.

Есть еще некоторые вещи типа того же GitExtensions - тоже чрез ж... только можно поставить.

Про софт типа фотошопа (с которым работают профессиональные фотографы и у которого нет аналогов именно в профессиональном плане) уже только ленивый не вспомнил.

Это да. Но это уже выбор на той стороне. Думаю, что можно и на линукс аналогичное развернуть.

Вот только как что понадобится - там нет, тут нет... Начинаешь искать - нужно подключать какой-нибудь ppa. А там облом - этот ppa не поддерживает jammy. Или еще веселее - была минт 21, были подключены jammy ppa. Сделал апгрейд на минт 22 - все ppa отвалились потому что 22 работает уже не с jammy а с nobble... И давай все с начала...

У нас RDP уже мало кто пользуется. Перешли на виртуальные рабочие места через VDI. А VMWare Horizon Client есть нативный и для винды и для линукса.

В третий раз повторяю - не надо доказывать очевидное. Я нигде не возражал против локов.

1
23 ...

Information

Rating
2,165-th
Location
Екатеринбург, Свердловская обл., Россия
Works in
Date of birth
Registered
Activity