开源进销存系统架构


本文小节
功能定位 数据结构 网络架构 用户界面 代码组织

本产品满足中小服装鞋饰企业货品与账务联网管理,具有款式复杂多变处理、市场行情灵活变动的应用需求功能。

功能定位

中小型实体企业无外乎制造及经销两种最主要模式。至于研发,也是围绕这个实体模式为中心的服务。如果不是一开始就有准备上市融资的巨大计划,这个规模的企业,不需要过多的管理部门和岗位,IT部门,作为纯管理性部门,不是非设不可。

没有过多管理部门的企业,其经营活动,也就不会有复杂的审批与确认流程。因此本软件设计定位,以记账为主,流程非常简化,以进销存业务为核心,只有单据审核,或者单据本身的导出导入转换。

数据结构

鉴于上述功能定位,中小企业无需过多管理部门,也没有复杂审批流程。互联网总流量是一个恒定常数,几家大平台吸引了99%,那么千万中小企业根本没有来自互联网的巨大流量可以记录和分析,因此,NoSQL型数据库完全不应考虑。

数据结构设计紧凑的情况,比随意设计的数据结构,优势不是硬盘存储空间这么廉价的东西。主要优势在于可以让数据拥有者有更直接和快速的理解,一览无余。如果老板需要数据时,还要经过多个程序员加班加点,最后才能呈现,对中小企业是不可接受的。

考虑到数据紧凑型设计,再加上并发必要性的考虑,以及存储过程(函数)可以使用代码代替的情况下,传统数据库中,我们选择了最轻量的sqlite,跨平台也毫无问题。

在32位系统时代,我们使用access数据库,应付年销售2个亿的业务规模,并没有什么明显的压力。现在如今64位机大内存时代,sqlite性能和空间支持中小企业百亿年销售也没问题。

网络架构

没有专职IT,局域网的搭建和时不时的故障排查,对非发烧友的普通用户,相当困难。因此本系统不考虑局域网API设计。对极少量需要信任互通的情况,使用目录共享的方式使用即可。

公网的架构,目前流行的方式就是购买租用云主机。但租用云主机后,开放端口对普通用户,又是一个挑战。本系统采用主呼方式,借助数据中转服务,既避免了开放端口的麻烦,对经济和预算有限或数据保密性要求高的企业,还可以不用购买云主机,将后台主机服务器放在公司自己看管。

用户界面

所谓的B/S和C/S区别,几乎尽人皆知。事实上B/S仍然是C/S架构,只不过C端借助于浏览器实现而已。曾经以为的B/S最大优势是分发优势,是迭代升级优势。然而事实是,HTML标准永远在更新,浏览器也一直在更新,结果不仅给用户带来界面不稳定的感觉,而且开发者的成本也会更高。

基于浏览器的系统界面,如果有硬件接口或系统底层调用,相当困难。C++的Qt库,兼容C语言,无论什么硬件软件的交互,毫无阻力,非常方便。美观性上来说,QtQuick一样有移动端的流行界面效果。

代码组织

由于软件开发期早,没有团队,代码组织比较随意,后期希望有感兴趣的朋友,一起加入,重构系统。

系统主机后台、电脑桌面端、以及移动前端,源代码均全部开放,因此,本站只提供几个主要平台安装包,其它平台安装包请自行编译,或者联系站长 单独提供。源代码获取地址:https://github.com/bailisoft/,或者https://gitee.com/bailisoft/,欢迎有兴趣的朋友们参与完善。



留言交流