您的位置:首页 > 产品设计 > UI/UE

Atitit 软件项目的一整套解决方案(gui界面,中间,存储数据库,图像处理,全文搜索)attilax总结

2017-02-12 14:48 1346 查看
Atitit 软件项目的一整套解决方案(gui界面,中间,存储数据库,图像处理,全文搜索)attilax总结

 

1.1. 项目的常见构成模块(界面ui gui
,数据存储数据库,图像处理等) 2

1.2. 常见的界面ui模式gui cli 3

1.3. Gui的发展
native方案(swing qt winform)>>xml方案(wpf
javafx qml qss),私有h5》》dsl方案h5
4

1.4. 编程语言 5

1.5. 软件的运行模式:编译运行与直接源码运行(解释执行) 5

1.6. 数据库存储 6

1.7. 图像编程处理的四大金刚halcon matlab opencv photoshop 7

1.8. 全文检索 8

 

1.1. 项目的常见构成模块(界面ui gui
,数据存储数据库,图像处理等)

做出一款软件项目的常见要素有。。

依赖类库::通用的半成品软件。。代码包等。。站在巨人的肩膀上,君子善假于物也

语言::特点的环境使用特定的语言。。现在的混合编程模型是趋势,也需要混合多种编程语言来完成软件(一般一个通用语言GPL和多款DSL领域特定语言)

运行环境::一般是桌面   web
手机等,,还分为原生   h5  hybrid混合模式等。。

软件架构: cs bs web hybrid
跨架构是趋势,即是一个软件可以运行在web模式下,也可以运行在桌面gui模式,或者混合模式,一般是web优先,然后套一个本地shell

跨平台操作系统: 一般可以跨越linux win
等操作系统。。甚至安卓 ios等。。

 

 

 

1.2. 常见的界面ui模式gui cli

 

Gui模式一般俩中实现,一个基于dom模型,一个基于像素级别,性能高,但是事件模型需要自己实现,繁琐。。

普通软件大部分是属于dom模型。。一部分游戏也用像素模型,特别是比较需求性能的

1.3. Gui的发展
native方案(swing qt winform)>>xml方案(wpf
javafx qml qss),私有h5》》dsl方案h5

 

效果图

 

native方案大概如图

 JButton btn2=new JButton();  btn.setText("按钮文字")

 

native方案的缺点,受限于通用语言的语法限制,语法噪音太多,啰嗦,可读性较差。。面对嵌套层次结构界面设计可读性很差

 

 

xml方案,比如javafx fxml方案。。

<Buttonfx text="按钮文字" />   

可以看到简洁很多了,解决了可读性问题,语法噪音问题,层次结构问题。但是,私有的,不是标准化的。。

第三阶段,H5阶段(html5)

<button  >按钮文字</button>标准化的问题。。

主要解决了标准化的问题。。至此阶段,gui
界面方面的dsl已经发展比较好了。。

 

1.4. 编程语言 

编程语言分类:命令式java c# js,函数式sql , 逻辑式语言等。。

 

按照是否编译,可以分为编译型语言和脚本语言。。脚本语言一般更加简化。。

按照通用与专用,可分为GPL 通用语言 Generalized
Programming Language 通用编程语言和dsl领域特定语言

按照代际划分,有一代汇编类,二代native本地编译语言(c c++),三代vm类型语言(java
c# ) ,脚本语言也有时称为三代半语言,常用的js py php,4gl一般就是dsl了,常用的dsl有h5(html)
sql等。。

 

 

编程语言的发展 从机器语言,汇编语言到本地native语言(c c++)
到vm语言(java  c#)
再到脚本语言(js php python等)
再到dsl

语言层次越高,可读性一般越好,可移植性越好,不过性能也越差了。。当然如果使用同样的类库的话,只是写点胶水代码的话,差别到是相对来说不大了。

 

机器语言, 可以说彻底淘汰,唯一的优点就是性能,其他基本全是缺点。。

汇编语言,貌似也基本淘汰,比起机器语言,提升了很大的可读性。。

native语言(c c++)
相对汇编语言可读性又大幅提升,性能方面不如汇编,但比vm语言要高。。。缺点是开发效率,以及可移植性仍然需要提升。。很多图像库貌似都是使用此开发。。依赖于性能的应用大有所为。

vm语言(java  c#)  改进了native语言的问题,增加一个vm层隔离开了os。目前的业界高层应用开发主力

脚本语言 带来更高的生产力。但目前ide的问题,大型复杂企业级开发还难当重任,目前貌似在轻复杂度代码领域比较大发展。

Dsl语言 ,领域特定语言。。比如H5做界面。。Sql做数据库查询。Matlab
halcon使用的语言,用来做图像处理。。

更高的开发效率,特别对于特定领域,图像处理,界面,数据库查询等大有优势。。正则表达式,用来文本搜索等。

Dsl语言本身性能很差,但是它是调用类库的,类库使用底层语言书写的,所以对性能不影响。

 

 

1.5. 软件的运行模式:编译运行与直接源码运行(解释执行)

1.6. 数据库存储

数据库相当于一个高级的excel。。。

 

表头定义

 

 

数据显示与维护

 

 

1.7. 图像编程处理的四大金刚halcon matlab opencv photoshop

 

图像方面的编程处理也是非常的与广泛了,比如人脸识别,指纹识别,二维码扫描等,条码,拍照识别等。。

 

opencv

 编辑

OpenCV的全称是:Open Source Computer Vision
Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库

halcon 

 

HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境

MATLAB是美国MathWorks公司出品的商业数学与图像处理软件,

 

Photoshop::知名的图像处理软件了。。公开只提供gui接口。。用来测试,调试,验证一些图像处理的很有用。。直接通过gui接口调用ps也是某些情况下的很好选择。。

 

当然一些非常频繁的图像处理都已经有成熟的类库,算法库等,可以直接几行代码调用,较为方便的集成到自己的软件当中。。

 

1.8. 全文检索

全文检索一般处理文章搜索的大量文字搜索,数据库默认的like搜索对这种大文字搜索性能很差。。。。

 

搜索主要分俩中一种是遍历搜索,扫描一遍。。小数据量下还可,大数据量当然就不行了

一种是索引搜索,就是做个目录,类似与分类,书籍目录,可以快速定位到需要的数据。。。

 

索引的实质,即是分类处理,就像我们数据的目录编排一样。。。

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐