Реализация крутая, только непонятно, как это может помочь «устранению неопределенностей» в моем случае?
Поэтому, принципиально, для меня ничего не меняется. Концепцию вынашиваю «вручную», а реализацию – «вножную», то бишь, либо сам программирую, если не слишком сложно, либо прошу совета у Интернета-2.0, т.е., у ИИ-сервисов.
Сейчас вот стоит задача написать вторую версию, с нуля, своей обучающей программы на C++ / WTL. Там я собираюсь имитировать командную работу на принципах итерационно-модульного программирования (упрощенного аналога Гита). Заодно, разобраться с архитектурой приложения, провести рефакторинг и оптимизацию кода. И, опять же, пока не вижу, чем бы мне мог помочь ИИ.
Большинство разработчиков предпочитают веб, а не десктоп, поэтому, и на «Хабре» особых идей на эту тему не почерпнуть.
Мне не пришлось профессионально работать с «восьмеркой» («1С8х»), но 100%-но собственная конфигурация на «семерке» («1С77») кормила меня двадцать лет и еще столько бы, если бы фирму не закрыли бы по политическим мотивам.
Думаю, что я бы не прошел ваш техсобес даже по разработке на старой платформе «1С». Просто потому, что всегда шел нестандартным путем. Например:
Я полностью отказался от стандартного механизма проведения в «7.7» и реализовал его самостоятельно на подчиненных справочниках. Как показал опыт, решение оказалось очень удачным.
Я полностью отказался от использования объектов «Документ», «ЖурналДокументов», «ЖурналРасчетов» (хотя, я программировал, в том числе, «зарплату»), «Регистры» и некоторые другие. Все документы и механизм проведения у меня были реализованы в иерархических справочниках. Что позволило спокойно хранить всю историю начислений заработной платы, в одной базе, в течении всех двадцати лет, без падения производительности в работе.
Зато я очень ценю объект «Справочник», а его автору я бы поставил памятник при жизни. За реализацию групп в справочниках, чего, в учетных системах не делал никто. В 1С82, в «толстом» клиенте («обычное» приложение) еще были, более менее, нормальные справочники, но, чем выше была версия платформы, тем хуже с ними было работать.
Я отказался от собственного движка базы данных «1С77», вместо него использовал встроенный движок «Visual FoxPro», который подключался непосредственно к dbf/cdx-файлам «семерки» как к DDE-серверу. Само, скомпилированное, в ехе-шник, приложение VFP выступало как DDE-клиент. Идея оказалась – супер! Не знаю никого, кто бы её еще использовал. Это дало мне увеличение производительности в 15-раз!
Сама платформа крутилась на дешевом терминал-сервере с двумя гектарами памяти, что обеспечивало одновременное количество сессий до двадцати. Этого вполне хватало для фирмы. Кстати, на всех клиентских компьютерах было по четыре гектара памяти.
Помимо стандартных, использовал собственные внешние компоненты, написанные на С++, которые мне значительно улучшали жизнь.
Используемые учетные конфигурации (плюс собственная система учета рабочего времени на базе нетбуков, китайских считывателей RFID-карт доступа сотрудников и собственного драйвера на С++) помогли мне выдержать три государственности: Украину, ЛНР и РФ. На типовых конфах я бы такого эффекта не достиг бы.
Мы пробовали, с главбухшей, вести параллельный учет «зарплаты» в «1С8х:ЗУП», но, получалось плохо. Эта система более жесткая и менее удобная. Да, в итоге я получил в ней нужные нам результаты, но очень большой ценой. Если бы там пришлось работать профессионально, то предпочел бы использовать «восьмерку» только для внешней отчетности, а весь учет вести в «семерке» плюс экспорт / импорт в собственном варианте «КД» («Конвертация данных»).
Очевидно, что я бы не прошел ни по каким бы вашим фильтрам. К счастью, от меня требовали только результат, а не способ его достижения.
Тем не менее, если бы начинать все заново, сейчас, я бы пошел по пути глубокого освоения платформы «1С8х» и выполнению всех формальных требований на техсобесах. Однако, про себя бы всегда имел в виду, что стандартный путь в разработке не всегда – самый оптимальный. Главное, только, не говорить об этом вслух :) .
Основная идея децентрализации — не позволять власти
Дальне можно не читать, пока не будет ответа: «Кто именно будет «не позволять»?». Если даже таковой найдется, то это будет та же «власть», только вид сбоку.
На самом деле, надо исходить не из этого, а из Концепции Развития – как Смысла всего Сущего в этом Мире.
Не будет Развития, не будет нашего Мира! Всё просто!
А источником развития, как утверждают классики, являются «антагонистические противоречия». У вас есть другая идея? Я, вот, раньше думал, что их могут заменить «тотальные конкурсы». Этакая мировая «конкусократия». Ну, или, хотя бы, в пределах одной страны, как «Социализм-1.0 в СССР-1.0».
Однако, как мы видим, в пределах одной страны, даже «Цифровой Коммунизм» (идея и книга Сергея Хапрова) не слишком торопится реализовываться, поэтому, либо мировой «Цифровой Коммунизм» либо никакой. Разве что только, иначе, в случае реализации «Социализма-2.0 в СССР-2.0».
Другими словами, пока альтернативы «антагонистическим противоречиям» нет. Соответственно будут существовать силы (достаточно с одной стороны – Империи «Бабла»), стремящиеся уничтожить противоположную сторону. Что мы и наблюдаем бесконечно.
Поэтому никакого «Мира, Дружбы, Жвачки» на глобальном уровне, только на локальном. Отсюда следует, что ни Власть, ни Иерархия никуда в этом Мире не денутся и будут существовать столько, сколько будет существовать сам Мир.. Есть даже гипотеза, что на планете Фаэтон (ныне пояс астероидов между Марсом и Юпитером) тоже когда-то была Разумная Цивилизация, но «антагонистические противоречия» привели ее самоуничтожению.
Потом Солнце подостыло, жизнь возникла на Марсе, еще больше остыло, на Марсе – жизнь исчезла, но появилась на Земле. Если погибнет Земля, в результате мировых «антагонистических противоречий», через какое-то время жизнь возникнет на Венере и т.д. В любом случае, развитие на уровне Вселенной не остановится.
Как видим Миром управляют не законы (Природы), а Принципы. Таким образом, всё и проще и сложнее одновременно.
То, что Мир принципиально непознаваем на своих пространственно-временных границах. Чем ближе мы будем придвигаться к этим границам, тем сильнее будет Неопределенность в Познании. Только и всего. А: «В остальном, прекрасная Маркиза, всё хорошо, всё хорошо!». То бишь, вдали от этих границ всё вполне познаваемо и определенно.
Как следствие, пора уже вводить в рассмотрение «Концептуальную Логику» с ее принципом эквивалентной замены большого количество «ближней» неопределенности малым количеством «дальней» неопределенности. На этой базе, можно даже «Научную Религию» создать, в которой «большое количество ближней неопределенности» (присущее всем религиям: «Там где начинается религия – заканчивается логика») вполне можно заменить «малым (аксиоматически недоказуемым) количеством дальней неопределенности».
P.S. Кстати, это вполне может служить базой, для концепции существования «Мультвселенных», разделённых принципиальным барьером неопределенности, блокирующем любое взаимодействие между ними,
А насчёт экспериментов, так с ИИ их проще делать во много раз.
У меня эксперименты на уровне выбора концепции, не уверен, что ИИ-сервисы с этим справляются хорошо, по крайней мере, бесплатные. Все их советы мне пришлось игнорировать, как малополезные. Например, прошу, сделайте синтаксическое слогоделение французских фраз, соответствующее их фонетическому слогоделению. Не-а-а, отвечает французский Мистраль! Не могу! Обратитесь к профессиональным лингвистам либо платным сервисам. Ага, щ-щас! Побежал вприпрыжку искать «профессиональных лингвистов». Ладно, говорю, сделай слогоделение фраз, как можешь. Французский ИИ делает синтаксическое слогоделение, ориентированное на письменные переносы (А кому это вообще нужно в компьютерный век? Сейчас, русские переносы, в электронных документах, никто не делает, а для иностранного текста – тем более!). Потом, просто тупо сравниваю синтаксическое (ориентированное на переносы) слогоделение с фонетическим и удаляю из первого «лишние» разделители. Тысячу фраз, для обучающих материалов, можно пробежать, таким образом, за пару часов.
Попробуйте дать Claude Opus на Арене свою задачу хорошо описанную, только оставьте нейросети манёвр для действий, разъяснений, может быть уточнений даже, а не пишите сразу сделай так-то.
Вы бы пример какой-нибудь, нетривиальный, привели бы. Заодно и статейку бы написали сюда. Чуть выше я приводил ссылку на свой проект по минималистскому графическому интерфейсу для консольного загрузчика. Задача была нетривиальная, я не знал, как ее решать, но бесплатный ИИ помог, результат мне понравился. Задача была конкретная, поэтому с описанием ее ТЗ для ИИ проблем не возникло. Но, я вообще-то, имел в виду задачи менее определенные, с не вполне ясными целями, разве, что: «Хочу, чтобы было красиво!».
Кстати, а почему в Германии так мало красивых женщин? Henrieke – редкое исключение и то, наверное, потому, что имеет, «хайли лайкли», русские корни. Говорят, в средние века, их очень не любили, считали колдуньями, со всеми вытекающими из действий «святой инквизиции». Это так или миф?
Вы его скорее всего как-то не так спрашиваете или используете.
Так в этом то и весь прикол, чтобы «так» спрашивать либо использовать, нужно знать, что ты хочешь. А хочется на уровне: «Пойди туда, не знаю куда, принеси то, не знаю, что!».
Поэтому, чтобы пользоваться платными ИИ-моделями, нужно, как минимум, иметь хорошо структурированные желания и цели. Если у вас это есть, то здорово! Вам – крупно повезло! А, вот, допустим, эксперименты с бесплатными вызывают, иногда, удивление.
Например, для анализа структуры html-дерева естественно использовать «красивое» представление с помощью функции Питона BeautifulSoup.prettify(). Но, эта функция делает отступы только в один пробел и не удаляет лидирующие пробелы в конечных (текстовых) значениях, что приводит к искажению формата данных при их дальнейшем анализе.
Ладно, просим бесплатный ИИ решить эту проблему. И что он делает? Сначала предлагает перейти на несуществующие версии BS4, потом тупую замену пробелов на табуляторы, потом сложные преобразования с перегрузкой данных во внешние файлы и т.д. и т.п. Ну, глупость явная. Тогда, как проблема решается на раз-два, с помощью вставки переводов строк, до и после угловых скобок, удаления лишних строк и крайних разделителей в них. Затем, простенький алгоритм по подсчету левых угловых скобок с плюсом и правых с минусом, позволяет вставить в качестве отступов для вложенных уровней дерева – табуляторы и убрать лидирующие пробелы в тексте. Всё! Дешево и сердито! Но посмотрите, на Гитхабе, варианты функции prettify(). Народ изгаляется на уровне бесплатного ИИ, все сложно и некрасиво, хотя, ребята, результата добиваются.
Далее, как мне спросить ИИ, в каком конечном виде я хочу получить структурированные текстовые данные из онлайн словаря? Всё зависит от их дальнейшего использования. Это могут быть данные для разноцветных двуязычных субтитров обучающего видео, содержимое для html-книг либо данные для моей обучающей программы. Соответственно, это должен быть некий обобщенный формат, из которого относительно легко должен быть осуществлен переход к любому конечному представлению. И чем мне здесь может помочь ИИ, если я сам этого, пока, точно не знаю? Только, какие-то смутные представления, которые постепенно проявляются в процессе экспериментов.
Я даже не уверен, что мне, здесь, даже платные модели помогли бы. Хотя, демонстрируемый пример – тривиален, по своей сути.
А как появление вайбкодинга повлияло на ваши рабочие процессы и пет-проекты? Чувствуете ли вы инфляцию навыков?
Благодаря вайбингу (бесплатному) я смог, скажем, написать: «Минималистский графический интерфейс, на C++ / WTL, для консольного загрузчика» ( https://habr.com/ru/articles/955838/ ) и, с удовольствием, им пользуюсь.
В платных ИИ-сервисах, нужды пока нет. Во-первых, у меня нет столько задач для этого, а, во-вторых, решаемые проблемы, обычно, находятся не на техническом уровне, а, скорее, на концептуальном. Например, в последней задаче, я решил извлечь иерархически структурированный текст из онлайн-словаря. Если не беспокоиться о структуре, то реализовать это просто, и подобную работу я уже не раз делал. Но, сейчас захотелось сохранить, по максимуму, структуру словарных статей.
Так вот, главная проблема оказалась, а в каком именно формате эти данные извлекать и сохранять? Это может быть преобразованное html-дерево, json-формат или, там, какой-нибудь собственный текстовый формат. Пока, склоняюсь к последнему варианту, но, до конца еще не определился.
Потом, какой алгоритм извлечения данных использовать? То ли с помощью стандартных библиотек Питона, типа BS4, то ли собственные «велосипеды»? Опять же, пока, склоняюсь к собственному варианту. Поскольку, общение с ИИ – мало что дает, когда сам толком не знаешь, каким должен быть ИКР («идеальный конечный результат»)?
Вот так и экспериментирую с алгоритмами. Методом «научного втыка» постепенно выхожу на приемлемый для себя вариант, однако остаются еще нюансы, связанные с нечеткой структурой обрабатываемых данных. Из-за этой «нечеткости», ИИ не дает мне хороших решений, а какие-нибудь я и сам уже давным-давно делал.
Ну, а «инфляция навыков», она происходит постоянно. Вся наша жизнь состоит из коротких треков. Главное, вовремя сообразить, когда из старого, хорошо работающего трека, успеть перескочить в новый, но, неизведанный, пока у первого срок действия еще не закончился.
Общее представление получил. Но, только лишь укрепился в собственном мнении, что мой метод итерационно-модульного программирования для C++ / WTL более прост концептуально и, теоретически, годится для командной работы, также. Но, последнее надо будет еще проверить экспериментально, путем имитации командной работы по созданию с нуля моей второй версии обучающей программы (первая – мне доставила много головной боли, в процессе реализации). Однако, это уже будет темой отдельной статьи.
Потому что руки смысла слов не понимают. Если хотите задействовать мышечную память для ассоциативного запоминания (это когда вы смысл поняли не до конца), надо писать от руки.
Ну, почему? Как по мне, то набор руками, очень даже – ничего! Я ведь писал эту программу для себя, с целью выучить язык. Процесс идет, особенно, с учетом того, что: «Я уже в том возрасте, когда можно говорить, что я уже не в том возрасте!». Другое дела, что много времени уходит на подготовку обучающих данных.
Если вы имеет в виду, что:
для производства «сырного продукта» необязательно иметь в наличии какие-либо молочные продукты
в смысле:
Существующие учебники, не построенные на принципах сопоставитики, не предназначены ни для двоечника из Парижа, ни для отличника из Красноярска
то, с вами можно поспорить. У всех то, ведь, «различные представления о прекрасном». Например, мне, допустим, интересны двуязычные учебники, а вместо «самоучитель + аудио», я хотел бы иметь «самоучитель + видео». Вот, скажем, пример, в html-формате, французского учебника грамматики на английском языке:
При этом мы выигрываем дважды, осваиваем язык как таковой и, заодно, изучаем его грамматику, которая, часто выглядит более естественной и простой, по сравнению с её описанием, например, на русском языке, где, иногда, «за деревьями не видно леса».
Что касается "проговаривая вслух озвученные фразы", то непонятно, что вы имели ввиду.
Да, повтор за диктором. В моей обучающей программе, работа со звуком интерактивная, но, можно просто включить режим «Видео» и смотреть двуязычный текст и слушать его озвучку. Но, это же можно делать и вне программы, просто просматривая, несколько раз, любимый видосик, вроде:
Опять же: увидев слона один раз, вам не надо будет по-отдельности запоминать странные формы его хобота, хвоста и пр. Полное, целостное, невербальное понимание смысла слова, фразы врезается в память навечно.
Хочется верить, но где примеры? Вот, вариант запомнить «навечно» для прикольных фраз:
я быстро понял, что вручную такие схемы рисовать — это боль. Даже если у тебя всего пара десятков квадратиков и стрелочек с подписями, это всё разрастается и становится неуправляемым.
Да, я тоже с подобным столкнулся. Поэтому, быстро наваял скрипт на Питоне, который по заданным параметрам строит нужные диаграммы, например, для будущей статьи на «Хабре» по поводу модульной архитектуры моего приложения. Вот пример, такой блок-схемы:
Git для пет-проектов нужен не потому что «так принято», а потому что он избавляет от ручного копирования папок.
А разве это проблема? «Shift+F5» и папка скопирована!
С ним можно спокойно экспериментировать в ветках и возвращаться к рабочей версии за секунду.
А как он интегрируется с инструментами разработки? VS C++ / Python / «1С» или, там, расширения для «Хрома»? Управление Гитом – через командную строку, только? Какая там база данных используется?
Ну и бэкап на Гитхабе бесплатный — если ноут упадёт - код не пропадёт.
Если санкции против РФ введут на Гитхабе (говорят, одно время даже вводили), что тогда? Вот я довольно долго пользовался сайтом codeproject.com, но, сейчас там авария на их серверах, многие ценные архивы утеряны. Кое-что сохранилось на моем компьютере, а у них, уже, нет.
И потом, кто вам мешает хранить важную информацию на флэшках или внешних носителях? Всяко надежней будет облачных сервисов.
А когда привыкнете, потом в команде не придётся учиться с нуля.
Вы бы хоть пару ключевых картинок демонстрирующих работу Гит, для абсолютных новичков, типа меня, показали бы. А то все слова, слова. Я, конечно, могу и сам всё найти, но пока смысла не увижу – буду лениться. Понятная картинка могла бы поспособствовать этому. Как говориться: «Лучше один раз потрогать, чем сто раз увидеть».
А командная работа меня не греет. Всегда программировал один. Вместе, будет только лишняя конкуренция и никому не нужные конфликты, особенно, с моими «представлениями о прекрасном», которые, несколько, отличаются от новомодных и общепринятых.
Если перенести всё это без очистки, новая система захлебнётся в шумах.
Не захлебнется!
Не уверен, что вы правильно расставляете акценты.
Миграция — это не переезд, а реновация. Нельзя переехать в новую квартиру со старыми тараканами. Задача аналитика — убедить заказчика выкинуть хлам до переезда, а не надеяться, что новая система сама «переварит» мусор.
Похоже, вы сами не занимались переносом данных из одной системы в другую. Слишком уж поверхностные суждения, причем со точки зрения: «советы постороннего».
Хорошо, убедили вы заказчика, разрешил он вам «выкинуть хлам до переезда», а кто всем этим будет заниматься? Именно «очисткой» данных и собственно их «переносом» («миграцией») из одной системы в другую?
Судя по контексту статьи этим должен заниматься «аудит» (т.е., привлечение некой внешней фирмы) и команда программистов, тоже, скорее, внешних, Для «внутренних» программистов, то бишь, сотрудников искомой фирмы, аудит не нужен, они сами в курсе всех проблем по старой системе. Другое дело, если они не знают новую систему, тогда могут не справится. Однако и «внешние» программисты почти наверняка будут не курсе по старой системе, особенно, если она не стандартная, скажем, самописная конфигурация для «1С77», которую надо выгрузить в типовую конфу на «1С8х».
Поэтому, все эти сентенции:
Запустите скрипты
Выгрузите списки «подозрительных» записей и передайте их владельцам данных
Пропишите алгоритмы: как объединять дубликаты
Выгрузка «истории» в «архивное хранилище»
выглядят, скажем мягко, несерьезно.
Во-первых, почему вы решили, что у фирмы есть лишнй бюджет на перевнедрение работающей системы? Если денег много, что проще внедрить новую систему с нуля, т.е., просто ввести туда начальные остатки и актуальные справочники, которые можно распечатать на бумагу в старой системе. А потом, просто вводить текущие документы. Если же, нужно перенести исторические данные, то это всегда отдельный большой вопрос, который нужно решать не так, как вы предлагаете. Попутно возникает вопрос о переобучении персонала.
Во-вторых, почему вы думает, что главное это «лишние» данные, а код для переноса – нечто второстепенное?
На самом деле, всё, как раз, наоборот. «Старые» данные в хорошей базе данных не проблема. А если они не корректны, то виновата сама система, соответственно ее программист, который позволил вводить дубликаты и не использовал надежную валидацию и контроль ошибок. Конечно, в этом случае, исходные данные нужно корректировать в рамках старой системы, безотносительно, от переезда их в новую.
Далее, ключевым моментом в переносе данных являются технология, алгоритмы и инструменты для их миграции. Это самая сложная работа, особенно, для несовместимого программного обеспечения. Всё остальное это «мелочи по сравнению с Мировой Революцией». Причем, настолько, что иной раз дешевле напрячь «девочек», которые введут всю новую информацию с «бумаги» во внедряемую программу.
Для «восьмерки» («1С8х») существует типовая конфигурация «КД» («Конвертация данных»). Она позволяет, более-менее, автоматизировано переносить данные из одной типовой конфы, в другую. Но, если исходная, либо целевая конфигурация не вполне типовая (например, программист «1С» прикасался к ней своими шаловливыми ручками), то сразу же возникнут «нюансы».
Третий момент, нередко, фирмы поручают всю работу одному своему программисту, который «и швец и жнец и на дуде игрец», естественно за одну зарплату.
Например, в свое время, меня взяли в производственную фирму с условием внедрить подходящую систему учета для предприятия. Дали денег, я купил все более-менее подходящие программы учета, которые были на рынке, тогда. Но, ни одна из них не «взлетела». Ибо фирма «1С» вообще ваяет конфы по принципу: «Нам с ними не работать!». Что делать? «Взялся за гуж – не говори, что не дюж!». Пришлось, в срочном порядке, в режиме «нон-стоп» (12 часов в день без выходных и праздников) писать свою конфигурацию. К счастью, на предыдущей работе у меня уже были трехлетние (не законченные) наработки, которые мне очень сильно помогли. Через три месяца первый прототип конфигурации заработал. Там даже нормальных отчетов не было, только генерация текстовой информации вместо них.
Потом встал вопрос о наполнении моей «системы» данными. Данные были в районном вычислительном центре, который вел учет для нас. Работали они тоже на самописке, но на «FoxPro». Причем, наши данные они нам отдавать не хотели, так как лишались клиента. Пришлось напрячь госструктуры – отдали, но, естественно, это были почти бесполезные dbf-файлы с непонятной структурой.
Однако, делать нечего, структуру большей части этих данных я выяснил. Потом, их надо было перенести в мою программу. Написал собственные обработки – перенес. Потом, «вылизывание» этих дынных вместе с девочками-бухгалтерами. Совместно – «вылизали».
Система официально вошла в строй. Районным вычислительным центром мы пользоваться перестали. Однако, еще полгода работал в авральном режиме, все появляющиеся проблемы надо было решать в режиме реального времени. Более-менее, расслабился только через два года. В данном случае это была 100%-но собственная конфигурация по учету и расчету заработной платы плюс собственная система учета рабочего времени на базе нетбуков, китайских считывателей RFID-карт доступа сотрудников и собственного драйвера на С++ для нее.
После чего приступил к разработке собственной конфигурации «Учет ресурсов», которую уже начал внедрять. Однако, пришла новая главбухша и перевнедрила ее на типовую конфигурацию «ПУБ» («Производство, Услуги и Бухгалтерия» для Украины). Просто, она хорошо знала «ПУБ», а мою конфу не знала, хотя типовая была, на мой взгляд, менее удобной. Зато мою «Зарплату» перевнедрить не смогла, даже на ее старом предприятии, три программиста ваяли собственный вариант из «ЗиК» («Зарплата и Кадры»), два года, т.е., типовые «зарплаты» не годились от слова «совсем».
Поскольку я живу в ЛНР, то когда появилась непризнанная Республика, учет весь надо было переделывать и мою «Зарплату» и производственный учет от главбухши.
Однако, самое сложное началось, когда ЛНР вошла в состав России. Поскольку, лишних «денюх» у фирмы не было, нужно было искать самое дешевое решение. С «Зарплатой» проблем не возникло, я довольно быстро адаптировал ее алгоритмы к российскому законодательству. А для производственного учета выбрал конфу «ПУБ» для РФ.
Несмотря, на похожие названия украинская «ПУБ» (относительно просто адаптированная под ЛНР) оказалась слабо совместимой с российской «ПУБ». Прежде всего, из-за разных Планов Счетов. А российского плана счетов у нас никто не знал, даже новый главбух. Вот и как переносить остатки и документы при такой неопределенности?
Я сделал встроенный, в конфигурацию, конвертер, в котором бухгалтера могли устанавливать соответствие между разными Планами Счетов. После чего можно было запустить обработку, которая делает автоматом перегрузку данных из старой конфы в новую. Причем, этот процесс можно было повторять неоднократно, перезаписывая «неправильные» документы «правильными».
Все это, конечно, было очень сложно, но других вариантов у меня не было. Как бы то, ни было, процесс по переходу из одной государственности в другую шел успешно. Жаль только, что на взлете фирму «подстрелили», т.е., ликвидировали по политическим мотивам (вроде, как не слишком выгодной она была).
Т.е., я хочу сказать, что все эти разговоры «вообще»: о «миграции», «скриптах», «дубликатах», «архивах» и тому подобное, выглядят нелепо с точки зрения реального опыта.
Например, данные по заработной плате у меня хранились в рабочей системе более, чем за двадцать лет. И совершенно не мешали! Потому, что были «правильно» организованны. А собственный движок базы данных «1С77» я заменил движком «Visual FoxPro», которые подключался к dbf / cdx-файлам «семерки» напрямую. При этом «1С77» был DDE-сервером, а VFP – DDE-клиентом, что увеличило производительность базы данных в 15 раз, вполне достаточную для предприятия. А сама конфа «крутилась» на терминал-сервере фирмы.
А если бы мы пошли по вашей схеме, то фирму, наверняка, ликвидировали бы значительно раньше.
Ну, хорошо! Посмотрим на это дело вашими глазами. Вот вы говорите: «Git держит все эти ваши копии проекта и итерации в одной базе данных». В какой? Хотя, лучше спросить: Зачем мне хранить итерации проекта в базе данных? Что это мне дает? Я понимаю, базе можно послать любой запрос и она даст «любой» ответ. Но, это будут только куски кода или весь проект целиком? В первом случае мне это неудобно, ибо привык воспринимать файлы с программами целиком. А, во втором – бессмысленно, я и так вижу свои итерации в отдельных каталогах.
Потом, как это влияет на оформление кода и как происходит взаимодействие с инструментами разработки? Т.е., добавляются ли метаданные в код? Меняется ли мой стиль оформления, поскольку, судя, по опенсорсу на Гитхабе, все используют «неправильную» стилизацию программного текста. Точнее, она мне просто не нравится. Ни в С++, ни в Питоне. Поэтому, предпочитаю собственное оформление.
В том же VS C++ как нужно устанавливать взаимодействие с Гитом? А в Питоне, особенно, когда я не использую никакие IDE для него? Как там с компиляцией и запуском на выполнение?
А есть еще расширения под старые версии Хрома, поскольку только там можно обходить современные ограничения для доступа к сайтам (классика: затруднение работы блокировшиков рекламы, загрузи данных с сайтов и т.п.). Как туда «прилепить» Гит? И нужно ли, когда сами скрипты, например, по обходу капчи, помещаются на экране целиком?
Далее, вот я сейчас экспериментирую с модульной структурой проекта. По сути, использую собственную концепцию. На первое место здесь встают вопросы архитектуры приложения, что сильно влияет на сам процесс программирования. Это уже не просто версии, откаты и «накаты», это постоянные изменения всей структуры проекта. Поможет ли мне здесь Гит? Не уверен, скорее, он просто будет путаться под ногами, мешая программированию.
Да, вы можете сказать, что на все вопросы дают ответы Ютуб, Интернет-1.0 или Интренет-2.0 (то бишь, ИИ-сервисы) плюс документация. Согласен, дают! Но, какой у меня стимул изучать все это? Только потому, что:
Профессиональное владение Git-ом сильно упрощает процесс управления кодом проекта, независимо от количества программистов вовлечённых в проект.
Возможно, но у меня и так нет сложностей в «процессе управления кодом проекта». Все отлично управляется и без Гита! А вот, если такие сложности возникнут, то тогда – да, появится стимул смотреть в его сторону. Как, например, появился интерес начать осваивать Питон, не потому, что он «моден», а потому, что для подготовки и обработки данных, в которых появилась острая необходимость, он гораздо лучше, того же С++.
А так, я не отрицаю пользы систем контроля версий. Но, в этом Мире есть много хороших инструментов, однако, если можно ограничиться минимумом из них, то зачем осваивать максимум? Впрок? Только, может и не пригодится. Я много что делал впрок в молодости, но, пригодились только считанные проценты.
Спасибо, за оценку! В том-то и ограничение у ИИ, что ему важно быстро дать результат, не важно, какой. А человеку надо, чтобы решение было хорошим и «красивым», если не сейчас, то в будущем.
Со стороны выглядит как "свой велосипед на квадратных колесах"
И что из этого следует? Устыдиться и бежать бегом делать «как все»? Тогда будет похоже на манипулирование. Достаточно сказать «фи» или «фу» и всё, товарищ начинает плясать под твою дудку. Классная, между прочим, идея. Иногда работает.
Однако, на серьезных людей такая аргументация не действует. А другой, похоже, у вас нет.
Проект – один, итерации разные. В каждой из них есть doc-файл, с описанием изменений. Просматриваю эти файлы и выбираю нужную итерацию либо для рефакторинга, либо как прототип для другого проекта.
Как по мне – вполне нормально. Вы можете использовать Гит, кто вам мешает? А мне нравится мой вариант. Я, ведь, таким образом, написал уже не одну программу, но, необходимости что-либо менять здесь – не вижу.
Кроме того, для каждой итерации скомпилированы бинарники. Иногда, проще запустить и посмотреть их, чем читать текст в описаниях.
Специально посмотрел пару книг. Да, тире там длиннее, чем «среднее», но, короче, чем длинное, в варианте ИИ. Поэтому, в книгах оно смотрится «норм». А в компьютерных текстах я предпочитаю стандартный «вордовский» вариант.
Реализация крутая, только непонятно, как это может помочь «устранению неопределенностей» в моем случае?
Поэтому, принципиально, для меня ничего не меняется. Концепцию вынашиваю «вручную», а реализацию – «вножную», то бишь, либо сам программирую, если не слишком сложно, либо прошу совета у Интернета-2.0, т.е., у ИИ-сервисов.
Сейчас вот стоит задача написать вторую версию, с нуля, своей обучающей программы на C++ / WTL. Там я собираюсь имитировать командную работу на принципах итерационно-модульного программирования (упрощенного аналога Гита). Заодно, разобраться с архитектурой приложения, провести рефакторинг и оптимизацию кода. И, опять же, пока не вижу, чем бы мне мог помочь ИИ.
Большинство разработчиков предпочитают веб, а не десктоп, поэтому, и на «Хабре» особых идей на эту тему не почерпнуть.
Мне не пришлось профессионально работать с «восьмеркой» («1С8х»), но 100%-но собственная конфигурация на «семерке» («1С77») кормила меня двадцать лет и еще столько бы, если бы фирму не закрыли бы по политическим мотивам.
Думаю, что я бы не прошел ваш техсобес даже по разработке на старой платформе «1С». Просто потому, что всегда шел нестандартным путем. Например:
Я полностью отказался от стандартного механизма проведения в «7.7» и реализовал его самостоятельно на подчиненных справочниках. Как показал опыт, решение оказалось очень удачным.
Я полностью отказался от использования объектов «Документ», «ЖурналДокументов», «ЖурналРасчетов» (хотя, я программировал, в том числе, «зарплату»), «Регистры» и некоторые другие. Все документы и механизм проведения у меня были реализованы в иерархических справочниках. Что позволило спокойно хранить всю историю начислений заработной платы, в одной базе, в течении всех двадцати лет, без падения производительности в работе.
Зато я очень ценю объект «Справочник», а его автору я бы поставил памятник при жизни. За реализацию групп в справочниках, чего, в учетных системах не делал никто. В 1С82, в «толстом» клиенте («обычное» приложение) еще были, более менее, нормальные справочники, но, чем выше была версия платформы, тем хуже с ними было работать.
Я отказался от собственного движка базы данных «1С77», вместо него использовал встроенный движок «Visual FoxPro», который подключался непосредственно к dbf/cdx-файлам «семерки» как к DDE-серверу. Само, скомпилированное, в ехе-шник, приложение VFP выступало как DDE-клиент. Идея оказалась – супер! Не знаю никого, кто бы её еще использовал. Это дало мне увеличение производительности в 15-раз!
Сама платформа крутилась на дешевом терминал-сервере с двумя гектарами памяти, что обеспечивало одновременное количество сессий до двадцати. Этого вполне хватало для фирмы. Кстати, на всех клиентских компьютерах было по четыре гектара памяти.
Помимо стандартных, использовал собственные внешние компоненты, написанные на С++, которые мне значительно улучшали жизнь.
Используемые учетные конфигурации (плюс собственная система учета рабочего времени на базе нетбуков, китайских считывателей RFID-карт доступа сотрудников и собственного драйвера на С++) помогли мне выдержать три государственности: Украину, ЛНР и РФ. На типовых конфах я бы такого эффекта не достиг бы.
Мы пробовали, с главбухшей, вести параллельный учет «зарплаты» в «1С8х:ЗУП», но, получалось плохо. Эта система более жесткая и менее удобная. Да, в итоге я получил в ней нужные нам результаты, но очень большой ценой. Если бы там пришлось работать профессионально, то предпочел бы использовать «восьмерку» только для внешней отчетности, а весь учет вести в «семерке» плюс экспорт / импорт в собственном варианте «КД» («Конвертация данных»).
Очевидно, что я бы не прошел ни по каким бы вашим фильтрам. К счастью, от меня требовали только результат, а не способ его достижения.
Тем не менее, если бы начинать все заново, сейчас, я бы пошел по пути глубокого освоения платформы «1С8х» и выполнению всех формальных требований на техсобесах. Однако, про себя бы всегда имел в виду, что стандартный путь в разработке не всегда – самый оптимальный. Главное, только, не говорить об этом вслух :) .
Дальне можно не читать, пока не будет ответа: «Кто именно будет «не позволять»?». Если даже таковой найдется, то это будет та же «власть», только вид сбоку.
На самом деле, надо исходить не из этого, а из Концепции Развития – как Смысла всего Сущего в этом Мире.
Не будет Развития, не будет нашего Мира! Всё просто!
А источником развития, как утверждают классики, являются «антагонистические противоречия». У вас есть другая идея? Я, вот, раньше думал, что их могут заменить «тотальные конкурсы». Этакая мировая «конкусократия». Ну, или, хотя бы, в пределах одной страны, как «Социализм-1.0 в СССР-1.0».
Однако, как мы видим, в пределах одной страны, даже «Цифровой Коммунизм» (идея и книга Сергея Хапрова) не слишком торопится реализовываться, поэтому, либо мировой «Цифровой Коммунизм» либо никакой. Разве что только, иначе, в случае реализации «Социализма-2.0 в СССР-2.0».
Другими словами, пока альтернативы «антагонистическим противоречиям» нет. Соответственно будут существовать силы (достаточно с одной стороны – Империи «Бабла»), стремящиеся уничтожить противоположную сторону. Что мы и наблюдаем бесконечно.
Поэтому никакого «Мира, Дружбы, Жвачки» на глобальном уровне, только на локальном. Отсюда следует, что ни Власть, ни Иерархия никуда в этом Мире не денутся и будут существовать столько, сколько будет существовать сам Мир.. Есть даже гипотеза, что на планете Фаэтон (ныне пояс астероидов между Марсом и Юпитером) тоже когда-то была Разумная Цивилизация, но «антагонистические противоречия» привели ее самоуничтожению.
Потом Солнце подостыло, жизнь возникла на Марсе, еще больше остыло, на Марсе – жизнь исчезла, но появилась на Земле. Если погибнет Земля, в результате мировых «антагонистических противоречий», через какое-то время жизнь возникнет на Венере и т.д. В любом случае, развитие на уровне Вселенной не остановится.
Как видим Миром управляют не законы (Природы), а Принципы. Таким образом, всё и проще и сложнее одновременно.
То, что Мир принципиально непознаваем на своих пространственно-временных границах. Чем ближе мы будем придвигаться к этим границам, тем сильнее будет Неопределенность в Познании. Только и всего. А: «В остальном, прекрасная Маркиза, всё хорошо, всё хорошо!». То бишь, вдали от этих границ всё вполне познаваемо и определенно.
Как следствие, пора уже вводить в рассмотрение «Концептуальную Логику» с ее принципом эквивалентной замены большого количество «ближней» неопределенности малым количеством «дальней» неопределенности. На этой базе, можно даже «Научную Религию» создать, в которой «большое количество ближней неопределенности» (присущее всем религиям: «Там где начинается религия – заканчивается логика») вполне можно заменить «малым (аксиоматически недоказуемым) количеством дальней неопределенности».
P.S. Кстати, это вполне может служить базой, для концепции существования «Мультвселенных», разделённых принципиальным барьером неопределенности, блокирующем любое взаимодействие между ними,
У меня эксперименты на уровне выбора концепции, не уверен, что ИИ-сервисы с этим справляются хорошо, по крайней мере, бесплатные. Все их советы мне пришлось игнорировать, как малополезные. Например, прошу, сделайте синтаксическое слогоделение французских фраз, соответствующее их фонетическому слогоделению. Не-а-а, отвечает французский Мистраль! Не могу! Обратитесь к профессиональным лингвистам либо платным сервисам. Ага, щ-щас! Побежал вприпрыжку искать «профессиональных лингвистов». Ладно, говорю, сделай слогоделение фраз, как можешь. Французский ИИ делает синтаксическое слогоделение, ориентированное на письменные переносы (А кому это вообще нужно в компьютерный век? Сейчас, русские переносы, в электронных документах, никто не делает, а для иностранного текста – тем более!). Потом, просто тупо сравниваю синтаксическое (ориентированное на переносы) слогоделение с фонетическим и удаляю из первого «лишние» разделители. Тысячу фраз, для обучающих материалов, можно пробежать, таким образом, за пару часов.
Вы бы пример какой-нибудь, нетривиальный, привели бы. Заодно и статейку бы написали сюда. Чуть выше я приводил ссылку на свой проект по минималистскому графическому интерфейсу для консольного загрузчика. Задача была нетривиальная, я не знал, как ее решать, но бесплатный ИИ помог, результат мне понравился. Задача была конкретная, поэтому с описанием ее ТЗ для ИИ проблем не возникло. Но, я вообще-то, имел в виду задачи менее определенные, с не вполне ясными целями, разве, что: «Хочу, чтобы было красиво!».
Какой скучный текст! Почему бы его не разбавить хотя бы симпатичными картинками? Например:
https://my.mail.ru/mail/emmerald/video/_myvideo/13.html
Кстати, а почему в Германии так мало красивых женщин? Henrieke – редкое исключение и то, наверное, потому, что имеет, «хайли лайкли», русские корни. Говорят, в средние века, их очень не любили, считали колдуньями, со всеми вытекающими из действий «святой инквизиции». Это так или миф?
Так в этом то и весь прикол, чтобы «так» спрашивать либо использовать, нужно знать, что ты хочешь. А хочется на уровне: «Пойди туда, не знаю куда, принеси то, не знаю, что!».
Поэтому, чтобы пользоваться платными ИИ-моделями, нужно, как минимум, иметь хорошо структурированные желания и цели. Если у вас это есть, то здорово! Вам – крупно повезло! А, вот, допустим, эксперименты с бесплатными вызывают, иногда, удивление.
Например, для анализа структуры html-дерева естественно использовать «красивое» представление с помощью функции Питона BeautifulSoup.prettify(). Но, эта функция делает отступы только в один пробел и не удаляет лидирующие пробелы в конечных (текстовых) значениях, что приводит к искажению формата данных при их дальнейшем анализе.
Ладно, просим бесплатный ИИ решить эту проблему. И что он делает? Сначала предлагает перейти на несуществующие версии BS4, потом тупую замену пробелов на табуляторы, потом сложные преобразования с перегрузкой данных во внешние файлы и т.д. и т.п. Ну, глупость явная. Тогда, как проблема решается на раз-два, с помощью вставки переводов строк, до и после угловых скобок, удаления лишних строк и крайних разделителей в них. Затем, простенький алгоритм по подсчету левых угловых скобок с плюсом и правых с минусом, позволяет вставить в качестве отступов для вложенных уровней дерева – табуляторы и убрать лидирующие пробелы в тексте. Всё! Дешево и сердито! Но посмотрите, на Гитхабе, варианты функции prettify(). Народ изгаляется на уровне бесплатного ИИ, все сложно и некрасиво, хотя, ребята, результата добиваются.
Далее, как мне спросить ИИ, в каком конечном виде я хочу получить структурированные текстовые данные из онлайн словаря? Всё зависит от их дальнейшего использования. Это могут быть данные для разноцветных двуязычных субтитров обучающего видео, содержимое для html-книг либо данные для моей обучающей программы. Соответственно, это должен быть некий обобщенный формат, из которого относительно легко должен быть осуществлен переход к любому конечному представлению. И чем мне здесь может помочь ИИ, если я сам этого, пока, точно не знаю? Только, какие-то смутные представления, которые постепенно проявляются в процессе экспериментов.
Я даже не уверен, что мне, здесь, даже платные модели помогли бы. Хотя, демонстрируемый пример – тривиален, по своей сути.
Благодаря вайбингу (бесплатному) я смог, скажем, написать: «Минималистский графический интерфейс, на C++ / WTL, для консольного загрузчика» ( https://habr.com/ru/articles/955838/ ) и, с удовольствием, им пользуюсь.
В платных ИИ-сервисах, нужды пока нет. Во-первых, у меня нет столько задач для этого, а, во-вторых, решаемые проблемы, обычно, находятся не на техническом уровне, а, скорее, на концептуальном. Например, в последней задаче, я решил извлечь иерархически структурированный текст из онлайн-словаря. Если не беспокоиться о структуре, то реализовать это просто, и подобную работу я уже не раз делал. Но, сейчас захотелось сохранить, по максимуму, структуру словарных статей.
Так вот, главная проблема оказалась, а в каком именно формате эти данные извлекать и сохранять? Это может быть преобразованное html-дерево, json-формат или, там, какой-нибудь собственный текстовый формат. Пока, склоняюсь к последнему варианту, но, до конца еще не определился.
Потом, какой алгоритм извлечения данных использовать? То ли с помощью стандартных библиотек Питона, типа BS4, то ли собственные «велосипеды»? Опять же, пока, склоняюсь к собственному варианту. Поскольку, общение с ИИ – мало что дает, когда сам толком не знаешь, каким должен быть ИКР («идеальный конечный результат»)?
Вот так и экспериментирую с алгоритмами. Методом «научного втыка» постепенно выхожу на приемлемый для себя вариант, однако остаются еще нюансы, связанные с нечеткой структурой обрабатываемых данных. Из-за этой «нечеткости», ИИ не дает мне хороших решений, а какие-нибудь я и сам уже давным-давно делал.
Ну, а «инфляция навыков», она происходит постоянно. Вся наша жизнь состоит из коротких треков. Главное, вовремя сообразить, когда из старого, хорошо работающего трека, успеть перескочить в новый, но, неизведанный, пока у первого срок действия еще не закончился.
Посмотрел, пару классных видео:
Git — Простым Языком на Понятном Примере :
https://youtu.be/cG-8NnH4x94
Лучший Гайд по Git Для Начинающих За 15 Минут :
https://youtu.be/XuFaQSW79rM
Общее представление получил. Но, только лишь укрепился в собственном мнении, что мой метод итерационно-модульного программирования для C++ / WTL более прост концептуально и, теоретически, годится для командной работы, также. Но, последнее надо будет еще проверить экспериментально, путем имитации командной работы по созданию с нуля моей второй версии обучающей программы (первая – мне доставила много головной боли, в процессе реализации). Однако, это уже будет темой отдельной статьи.
Ладно, посмотрю на досуге, какой-нибудь Ютуб. Всё равно, из чужих объяснений я не могу уловить особого смысла в Гите.
Ну, почему? Как по мне, то набор руками, очень даже – ничего! Я ведь писал эту программу для себя, с целью выучить язык. Процесс идет, особенно, с учетом того, что: «Я уже в том возрасте, когда можно говорить, что я уже не в том возрасте!». Другое дела, что много времени уходит на подготовку обучающих данных.
Если вы имеет в виду, что:
в смысле:
то, с вами можно поспорить. У всех то, ведь, «различные представления о прекрасном». Например, мне, допустим, интересны двуязычные учебники, а вместо «самоучитель + аудио», я хотел бы иметь «самоучитель + видео». Вот, скажем, пример, в html-формате, французского учебника грамматики на английском языке:
При этом мы выигрываем дважды, осваиваем язык как таковой и, заодно, изучаем его грамматику, которая, часто выглядит более естественной и простой, по сравнению с её описанием, например, на русском языке, где, иногда, «за деревьями не видно леса».
Да, повтор за диктором. В моей обучающей программе, работа со звуком интерактивная, но, можно просто включить режим «Видео» и смотреть двуязычный текст и слушать его озвучку. Но, это же можно делать и вне программы, просто просматривая, несколько раз, любимый видосик, вроде:
Хочется верить, но где примеры? Вот, вариант запомнить «навечно» для прикольных фраз:
Да, я тоже с подобным столкнулся. Поэтому, быстро наваял скрипт на Питоне, который по заданным параметрам строит нужные диаграммы, например, для будущей статьи на «Хабре» по поводу модульной архитектуры моего приложения. Вот пример, такой блок-схемы:
А разве это проблема? «Shift+F5» и папка скопирована!
А как он интегрируется с инструментами разработки? VS C++ / Python / «1С» или, там, расширения для «Хрома»? Управление Гитом – через командную строку, только? Какая там база данных используется?
Если санкции против РФ введут на Гитхабе (говорят, одно время даже вводили), что тогда? Вот я довольно долго пользовался сайтом codeproject.com, но, сейчас там авария на их серверах, многие ценные архивы утеряны. Кое-что сохранилось на моем компьютере, а у них, уже, нет.
И потом, кто вам мешает хранить важную информацию на флэшках или внешних носителях? Всяко надежней будет облачных сервисов.
Вы бы хоть пару ключевых картинок демонстрирующих работу Гит, для абсолютных новичков, типа меня, показали бы. А то все слова, слова. Я, конечно, могу и сам всё найти, но пока смысла не увижу – буду лениться. Понятная картинка могла бы поспособствовать этому. Как говориться: «Лучше один раз потрогать, чем сто раз увидеть».
А командная работа меня не греет. Всегда программировал один. Вместе, будет только лишняя конкуренция и никому не нужные конфликты, особенно, с моими «представлениями о прекрасном», которые, несколько, отличаются от новомодных и общепринятых.
А почему бы не учить слова в контексте, например, набирая руками и проговаривая вслух озвученные фразы?
Не захлебнется!
Не уверен, что вы правильно расставляете акценты.
Похоже, вы сами не занимались переносом данных из одной системы в другую. Слишком уж поверхностные суждения, причем со точки зрения: «советы постороннего».
Хорошо, убедили вы заказчика, разрешил он вам «выкинуть хлам до переезда», а кто всем этим будет заниматься? Именно «очисткой» данных и собственно их «переносом» («миграцией») из одной системы в другую?
Судя по контексту статьи этим должен заниматься «аудит» (т.е., привлечение некой внешней фирмы) и команда программистов, тоже, скорее, внешних, Для «внутренних» программистов, то бишь, сотрудников искомой фирмы, аудит не нужен, они сами в курсе всех проблем по старой системе. Другое дело, если они не знают новую систему, тогда могут не справится. Однако и «внешние» программисты почти наверняка будут не курсе по старой системе, особенно, если она не стандартная, скажем, самописная конфигурация для «1С77», которую надо выгрузить в типовую конфу на «1С8х».
Поэтому, все эти сентенции:
Запустите скрипты
Выгрузите списки «подозрительных» записей и передайте их владельцам данных
Пропишите алгоритмы: как объединять дубликаты
Выгрузка «истории» в «архивное хранилище»
выглядят, скажем мягко, несерьезно.
Во-первых, почему вы решили, что у фирмы есть лишнй бюджет на перевнедрение работающей системы? Если денег много, что проще внедрить новую систему с нуля, т.е., просто ввести туда начальные остатки и актуальные справочники, которые можно распечатать на бумагу в старой системе. А потом, просто вводить текущие документы. Если же, нужно перенести исторические данные, то это всегда отдельный большой вопрос, который нужно решать не так, как вы предлагаете. Попутно возникает вопрос о переобучении персонала.
Во-вторых, почему вы думает, что главное это «лишние» данные, а код для переноса – нечто второстепенное?
На самом деле, всё, как раз, наоборот. «Старые» данные в хорошей базе данных не проблема. А если они не корректны, то виновата сама система, соответственно ее программист, который позволил вводить дубликаты и не использовал надежную валидацию и контроль ошибок. Конечно, в этом случае, исходные данные нужно корректировать в рамках старой системы, безотносительно, от переезда их в новую.
Далее, ключевым моментом в переносе данных являются технология, алгоритмы и инструменты для их миграции. Это самая сложная работа, особенно, для несовместимого программного обеспечения. Всё остальное это «мелочи по сравнению с Мировой Революцией». Причем, настолько, что иной раз дешевле напрячь «девочек», которые введут всю новую информацию с «бумаги» во внедряемую программу.
Для «восьмерки» («1С8х») существует типовая конфигурация «КД» («Конвертация данных»). Она позволяет, более-менее, автоматизировано переносить данные из одной типовой конфы, в другую. Но, если исходная, либо целевая конфигурация не вполне типовая (например, программист «1С» прикасался к ней своими шаловливыми ручками), то сразу же возникнут «нюансы».
Третий момент, нередко, фирмы поручают всю работу одному своему программисту, который «и швец и жнец и на дуде игрец», естественно за одну зарплату.
Например, в свое время, меня взяли в производственную фирму с условием внедрить подходящую систему учета для предприятия. Дали денег, я купил все более-менее подходящие программы учета, которые были на рынке, тогда. Но, ни одна из них не «взлетела». Ибо фирма «1С» вообще ваяет конфы по принципу: «Нам с ними не работать!». Что делать? «Взялся за гуж – не говори, что не дюж!». Пришлось, в срочном порядке, в режиме «нон-стоп» (12 часов в день без выходных и праздников) писать свою конфигурацию. К счастью, на предыдущей работе у меня уже были трехлетние (не законченные) наработки, которые мне очень сильно помогли. Через три месяца первый прототип конфигурации заработал. Там даже нормальных отчетов не было, только генерация текстовой информации вместо них.
Потом встал вопрос о наполнении моей «системы» данными. Данные были в районном вычислительном центре, который вел учет для нас. Работали они тоже на самописке, но на «FoxPro». Причем, наши данные они нам отдавать не хотели, так как лишались клиента. Пришлось напрячь госструктуры – отдали, но, естественно, это были почти бесполезные dbf-файлы с непонятной структурой.
Однако, делать нечего, структуру большей части этих данных я выяснил. Потом, их надо было перенести в мою программу. Написал собственные обработки – перенес. Потом, «вылизывание» этих дынных вместе с девочками-бухгалтерами. Совместно – «вылизали».
Система официально вошла в строй. Районным вычислительным центром мы пользоваться перестали. Однако, еще полгода работал в авральном режиме, все появляющиеся проблемы надо было решать в режиме реального времени. Более-менее, расслабился только через два года. В данном случае это была 100%-но собственная конфигурация по учету и расчету заработной платы плюс собственная система учета рабочего времени на базе нетбуков, китайских считывателей RFID-карт доступа сотрудников и собственного драйвера на С++ для нее.
После чего приступил к разработке собственной конфигурации «Учет ресурсов», которую уже начал внедрять. Однако, пришла новая главбухша и перевнедрила ее на типовую конфигурацию «ПУБ» («Производство, Услуги и Бухгалтерия» для Украины). Просто, она хорошо знала «ПУБ», а мою конфу не знала, хотя типовая была, на мой взгляд, менее удобной. Зато мою «Зарплату» перевнедрить не смогла, даже на ее старом предприятии, три программиста ваяли собственный вариант из «ЗиК» («Зарплата и Кадры»), два года, т.е., типовые «зарплаты» не годились от слова «совсем».
Поскольку я живу в ЛНР, то когда появилась непризнанная Республика, учет весь надо было переделывать и мою «Зарплату» и производственный учет от главбухши.
Однако, самое сложное началось, когда ЛНР вошла в состав России. Поскольку, лишних «денюх» у фирмы не было, нужно было искать самое дешевое решение. С «Зарплатой» проблем не возникло, я довольно быстро адаптировал ее алгоритмы к российскому законодательству. А для производственного учета выбрал конфу «ПУБ» для РФ.
Несмотря, на похожие названия украинская «ПУБ» (относительно просто адаптированная под ЛНР) оказалась слабо совместимой с российской «ПУБ». Прежде всего, из-за разных Планов Счетов. А российского плана счетов у нас никто не знал, даже новый главбух. Вот и как переносить остатки и документы при такой неопределенности?
Я сделал встроенный, в конфигурацию, конвертер, в котором бухгалтера могли устанавливать соответствие между разными Планами Счетов. После чего можно было запустить обработку, которая делает автоматом перегрузку данных из старой конфы в новую. Причем, этот процесс можно было повторять неоднократно, перезаписывая «неправильные» документы «правильными».
Все это, конечно, было очень сложно, но других вариантов у меня не было. Как бы то, ни было, процесс по переходу из одной государственности в другую шел успешно. Жаль только, что на взлете фирму «подстрелили», т.е., ликвидировали по политическим мотивам (вроде, как не слишком выгодной она была).
Т.е., я хочу сказать, что все эти разговоры «вообще»: о «миграции», «скриптах», «дубликатах», «архивах» и тому подобное, выглядят нелепо с точки зрения реального опыта.
Например, данные по заработной плате у меня хранились в рабочей системе более, чем за двадцать лет. И совершенно не мешали! Потому, что были «правильно» организованны. А собственный движок базы данных «1С77» я заменил движком «Visual FoxPro», которые подключался к dbf / cdx-файлам «семерки» напрямую. При этом «1С77» был DDE-сервером, а VFP – DDE-клиентом, что увеличило производительность базы данных в 15 раз, вполне достаточную для предприятия. А сама конфа «крутилась» на терминал-сервере фирмы.
А если бы мы пошли по вашей схеме, то фирму, наверняка, ликвидировали бы значительно раньше.
Ну, хорошо! Посмотрим на это дело вашими глазами. Вот вы говорите: «Git держит все эти ваши копии проекта и итерации в одной базе данных». В какой? Хотя, лучше спросить: Зачем мне хранить итерации проекта в базе данных? Что это мне дает? Я понимаю, базе можно послать любой запрос и она даст «любой» ответ. Но, это будут только куски кода или весь проект целиком? В первом случае мне это неудобно, ибо привык воспринимать файлы с программами целиком. А, во втором – бессмысленно, я и так вижу свои итерации в отдельных каталогах.
Потом, как это влияет на оформление кода и как происходит взаимодействие с инструментами разработки? Т.е., добавляются ли метаданные в код? Меняется ли мой стиль оформления, поскольку, судя, по опенсорсу на Гитхабе, все используют «неправильную» стилизацию программного текста. Точнее, она мне просто не нравится. Ни в С++, ни в Питоне. Поэтому, предпочитаю собственное оформление.
В том же VS C++ как нужно устанавливать взаимодействие с Гитом? А в Питоне, особенно, когда я не использую никакие IDE для него? Как там с компиляцией и запуском на выполнение?
А есть еще расширения под старые версии Хрома, поскольку только там можно обходить современные ограничения для доступа к сайтам (классика: затруднение работы блокировшиков рекламы, загрузи данных с сайтов и т.п.). Как туда «прилепить» Гит? И нужно ли, когда сами скрипты, например, по обходу капчи, помещаются на экране целиком?
Далее, вот я сейчас экспериментирую с модульной структурой проекта. По сути, использую собственную концепцию. На первое место здесь встают вопросы архитектуры приложения, что сильно влияет на сам процесс программирования. Это уже не просто версии, откаты и «накаты», это постоянные изменения всей структуры проекта. Поможет ли мне здесь Гит? Не уверен, скорее, он просто будет путаться под ногами, мешая программированию.
Да, вы можете сказать, что на все вопросы дают ответы Ютуб, Интернет-1.0 или Интренет-2.0 (то бишь, ИИ-сервисы) плюс документация. Согласен, дают! Но, какой у меня стимул изучать все это? Только потому, что:
Возможно, но у меня и так нет сложностей в «процессе управления кодом проекта». Все отлично управляется и без Гита! А вот, если такие сложности возникнут, то тогда – да, появится стимул смотреть в его сторону. Как, например, появился интерес начать осваивать Питон, не потому, что он «моден», а потому, что для подготовки и обработки данных, в которых появилась острая необходимость, он гораздо лучше, того же С++.
А так, я не отрицаю пользы систем контроля версий. Но, в этом Мире есть много хороших инструментов, однако, если можно ограничиться минимумом из них, то зачем осваивать максимум? Впрок? Только, может и не пригодится. Я много что делал впрок в молодости, но, пригодились только считанные проценты.
Спасибо, за оценку! В том-то и ограничение у ИИ, что ему важно быстро дать результат, не важно, какой. А человеку надо, чтобы решение было хорошим и «красивым», если не сейчас, то в будущем.
И что из этого следует? Устыдиться и бежать бегом делать «как все»? Тогда будет похоже на манипулирование. Достаточно сказать «фи» или «фу» и всё, товарищ начинает плясать под твою дудку. Классная, между прочим, идея. Иногда работает.
Однако, на серьезных людей такая аргументация не действует. А другой, похоже, у вас нет.
Проект – один, итерации разные. В каждой из них есть doc-файл, с описанием изменений. Просматриваю эти файлы и выбираю нужную итерацию либо для рефакторинга, либо как прототип для другого проекта.
Как по мне – вполне нормально. Вы можете использовать Гит, кто вам мешает? А мне нравится мой вариант. Я, ведь, таким образом, написал уже не одну программу, но, необходимости что-либо менять здесь – не вижу.
Кроме того, для каждой итерации скомпилированы бинарники. Иногда, проще запустить и посмотреть их, чем читать текст в описаниях.
Специально посмотрел пару книг. Да, тире там длиннее, чем «среднее», но, короче, чем длинное, в варианте ИИ. Поэтому, в книгах оно смотрится «норм». А в компьютерных текстах я предпочитаю стандартный «вордовский» вариант.