Быть или не быть? Вот в чем вопрос
Когда тебя просят сделать что то быстро ты уже начинаешь продумывать самую простую структуру у себя в голове. Однако при создании данного шедевра часто находятся трудности о которых не подумал ранее или просто о возможности их возникновения не знал.
Как же быть ведь все надо сделать быстро, но если произойдет сбой то начальство сотрет вас в порошок.
Что же выбрать хорошо структурированную программу или быстро наметанную софтинку?
Пример из жизни
Два года назад моя знакомая начала заниматься малым предпринимательством, она решила открыть свой магазин элитной косметики и парфюмерии. Бутик работал приносил доход, но не малый был и расход.По её словам некоторый товар просто исчезал. Учет велся так сказать по «Блокнотику», что не давало статистик или вообще какой либо возможности слежения за количеством товара и его продажей в целом. Лишь когда бутик переехал в новый торговый центр хозяйка поняла, что так дело дальше не пойдет. Проведя пару часов в поисковике она узнала о таких программах как «1С: Предприятие»,«1С: Бухгалтерия» и т. п.
Узнав то что она собирается купить себе одну из них, вместе с сопутствующим оборудованием, я решил для себя написать небольшую систему учета товара и продаж в магазине. Ведь интересно сделать свой маленький 1С :)
С чего начать?
Быстрая планировка системы:
- Во первых — на каком(-их) языках будет работать? Мой выбор остановился на C#+Apache(PHP&MySQL);
- Во вторых — в каких условиях она сможет работать? Конечно надо рассчитывать на самый минимум(Dial-Up e t.c.), но я предпочел средний 3G модем;
- Ну и в третьих — каким образом будет производить ввод данных? Я хотел сделать её максимально универсальной, и предпочел ввод с клавиатуры, но поискав в гугле, обнаружил, что многие сканеры штрих-кодов действуют как обычная USB — клавиатура.
Итак, приступим к созданию…
Создание базы
Раз мы будем работать с большим количеством однотипных строковых данных, нам нужно подготовить MySQL базу. Ну это труда не составило выявил самые нужные поля для таблички codes: id, name, code, count.
Так как вывод мы будем производить в формате понятным как для php так и для MS Exel, это csv в кодировке ASCII, все база так же работала в этой кодировке.
P.S. Все весомые изменения в базе данных делались с помощью PhpMyAdmin
Создание интерфейса для программы-клиента
Так как я не знаток в Delphi, C#, C++, e t.c. Я воспользовался визуальным конструктором программ Hiasm, ныне проект не развивается, однако последний релиз является рабочим и самым удачным.
Использовался компонент «Http_get» при его выполнении параметры предаются к php-скрипту на сервере который в свою очередь выполняет ряд функций, таких как:
- Вычитание кол-ва проданного товара из всего и UPDATE этого в таблице
- Статистика продаж за день, месяц, квартал, год, и т.д.
- Использование карт скидок, купонов, и т.п.
- Проверка статуса продавца — Offline | Online
Вообщем схема в SDK данной программы выглядела так:

Интерфейс программы-клиента:

Вывод
Эта статья лишь первая часть, если вам понравиться, я напишу поэтапно как все происходило и чем закончилось.