Будущее склада

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

Будущее склада

Сообщение alex » Пт янв 23, 2009 1:43

Изменить размер шрифта ↓ВернутьИзменить размер шрифта ↑Говорю как разработчик проекта и его единственный программист.

Что можно сделать с существующим складом:

  • закончить окно редактирования пользователей,
  • добавить контактную информацию по поставщикам,
  • создание новых спецификаций путем копирования существующих,
  • привести в порядок функционирование меню главного окна,
  • везде где это возможно сделать всплывающие подсказки (Tooltip и WhatsThis),
  • исправить ляпы, опечатки и.т.д.
Под созданием новых спецификаций путем копирования я понимаю выбор вместо BOM-файла номера существующей спецификации.

Что нельзя сделать с существующим проектом:

  • сделать так, чтобы каждая позиция была составная,
  • древовидную структуру классификации позиций,
  • произвольную структуру заказа (т.е. изменить формат проект → заказ → изделие → спецификация),
  • резервирование позиций.

Под словом «нельзя» я имею в виду, что реализация данной переделки повлечет большие технические трудности. Такие, что проще написать заново. Сохранить внутреннюю логику функционирования программы при такой переделке тоже будет крайне трудно.

Какие принципиальные недостатки я (как разработчик) вижу в существующем проекте:

Плохо структурированный, запутанный программный код

Стркутура взаимодействия программных объектов под капотом проекта далека от идеала. Почти все объекты завязаны на главное окно, которое, в свою очередь, связано со всеми объектами. Как следствие - при изменении почти любого заголовочного файла нужно пересобирать весь проект (это долго). Положительной строной такого решения является то, что абсолютно из любой функции имеется доступ к главному окну (с помощью глобальной переменной), а через него к любому объекту программы. Это используется во многих местах. Но в реальности, это нехорошее решение. Теряется стройность в структуре взаимодействия объектов. Одна строчка, затерявшаяся в недрах функции кода конкретной реализации объекта может обратиться напрямую к главному окну в том месте, где программист этого никак не ждет. Разбираться в таком проекте трудно. Таких мест не очень много, но я не смог от них избавиться.

Кроме этого, многие места проекта, как я только недавно понял, сделаны не совсем технически правильно. Грамотное Qt-программирование подразумевает использование немного других механизмов и инструментов.

В коде очень мало комментариев.

Главное окно, построенное на вкладках

В целом, дизайн на вкладках для большого проекта неудачен. Невозможно посмотреть на экране одновременно два окна с интересующей информацией. Плюс к этому полное отсутствие «ссылочной интерактивности». Например, чтобы узнать сначала наличие, а потом закупки по одной позиции ее надо два раза искать фильтром на разных вкладках. По моему мнению нужно делать многооконный MDI интерфейс. Технически это нетрудно.

Неудачная структура таблиц базы данных

В БД нет одной главной таблицы. Текущее наличие определенной позиции на складе КАЖДЫЙ раз рассчитывается из таблицы прихода. Это ОЧЕНЬ затрудняет написание алгоритмов «замен», «аналогов», «алиасов», «дефицитов». Как мне сейчас думается, правильнее иметь главную таблицу «наличие на складе» и дальше работать от нее. Кроме этого, существующая техническая реализация механизма замен мне видиться не очень удачной.

В БД есть отдельные таблицы «Проект», «Заказ», «Изделие», «Спецификация». Невозможно без полной переделки перейти на произвольную древовидную структуру проектов. Стркутура базы данных и весь движок проекта не может рассматривать позиции на складе как составные.

* * *

Достоинства у проекта тоже, конечно, есть. Прежде всего он уже существует. У него развитая, хотя и специфическая, заточенная под нашу фирму, функциональность. Он стабилен.

В связи с этим у меня предложение: решить какие легко реализуемые доделки нужны этому проекту и начать вместе проектировать Склад 2.0.
alex
Пользователь
 
Сообщения: 33
Зарегистрирован: Вс янв 11, 2009 2:26

Сообщение Shuuura » Пт янв 23, 2009 10:49

Изменить размер шрифта ↓ВернутьИзменить размер шрифта ↑Проект в существующем виде, даже если внести предложенные изменения, использовать не могу, т.к не хватает функционала. Надо определится стоит ли вообще тратить время на мелкие доработки. С нетерпением жду когда начнется обсуждение Склад 2.0.
Предлагаю руководству inkommet расмотреть возможность выделить Склад 2.0 в отдельный комерческий проект (судя по проектам фирмы это близко к основной специфике). Возможно это ускорит развитие проекта. В текущем состоянии много аналогичных бесплатных или условно бесплатных проектов, перекрывающих Склад по функционалу.

PS. До сих пор ссылка на склад не работает. Не обновился DNS. Возможно проблеммы моего провайдера. Хожу через внешний анонимайзер.
Shuuura
Пользователь
 
Сообщения: 17
Зарегистрирован: Вс янв 11, 2009 9:56

Сообщение Serg » Пт янв 23, 2009 16:22

Изменить размер шрифта ↓ВернутьИзменить размер шрифта ↑Для чего требуется внести изменения в существующее ПО склада ?

1) Чтобы использовать уже готовый код для версии 2.0. Поэтому перечень изменений должен это учитывать. Это возможно не для всех перечисленных alex'ом пунктов. Поэтому предлагаю разработчику определиться самостоятельно.
2) Как уже отмечалось, склад делался под конкретных пользователей, а ныне ситуация изменилась. Следовательно, чтобы дать возможность нормально пользоваться складом, надо учесть хотя-бы минимальные требования новых пользователей, если это возможно. Если большинство считает, что для имеющейся версии это без коренных переделок невозможно, соглашусь.
3) Есть необходимость проведения в ближайшее время инвентаризации нашего склада, и нет никакой уверенности, что при нынешнем состоянии ПО мы это осилим.
4) Мы вряд-ли сможем безболенненно перейти на иной продукт, поэтому вынуждены использовать и развивать существующий.

Не планируется сделать проект коммерческим, поскольку не соответствует нынешним направлениям деятельности организации, тем более, что до статуса open source проект был "для внутреннего использования".

Пока ведется поиск заинтересованных лиц, которых не устраивает имеющееся на рынке ПО. Определяются степень их заинтересованности, возможности поддержки проекта, специфика требований и др.

Что касаемо функционала склада 2.0, то он видится шире, чем склад радиоэлектроных компонентов. На сегодняшний день есть вопросы от организаций с совершенно иной спецификой (и которые пока не могут ничего подобрать из имеющегося ПО), например:
- производство окон (вроде, все просто, но задачи и движение деталей от закупки к готовым изделиям точно такое же)
- лазерная резка (примерно все то же самое, исходные материалы - листы известных размеров и марок, результат - изделия, при больших объемах очень важны функции хранения и поиска уже имеющихся чертежей деталей, чтобы заново их не разрабатывать)
и др., но это уже другая тема...
Аватара пользователя
Serg
Администратор
 
Сообщения: 88
Зарегистрирован: Ср янв 14, 2009 13:50
Имя: Сергей Юрьевич


Вернуться в Склад

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1