Atitit 软件项目的一整套解决方案(gui界面,中间,存储数据库,图像处理,全文搜索)attilax总结
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
语言层次越高,可读性一般越好,可移植性越好,不过性能也越差了。。当然如果使用同样的类库的话,只是写点胶水代码的话,差别到是相对来说不大了。
机器语言, 可以说彻底淘汰,唯一的优点就是性能,其他基本全是缺点。。
汇编语言,貌似也基本淘汰,比起机器语言,提升了很大的可读性。。
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搜索对这种大文字搜索性能很差。。。。
搜索主要分俩中一种是遍历搜索,扫描一遍。。小数据量下还可,大数据量当然就不行了
一种是索引搜索,就是做个目录,类似与分类,书籍目录,可以快速定位到需要的数据。。。
索引的实质,即是分类处理,就像我们数据的目录编排一样。。。
Atitit 软件项目的一整套解决方案(gui界面,中间,存储数据库,图像处理,全文搜索)attilax总结相关推荐
- GUI界面连接Mysql数据库
GUI界面连接Mysql数据库 GUI程序不仅界面美观,而且使用方便,各种软件的操作上也可统一,本实验通过Java来编写GUI程序.Java提供了编写GUI程序所需要的各种类,其中在本次实验中用到了j ...
- java swing漂亮界面框架_开源软件分享-漂亮的JavaFx GUI界面框架
虽然说Java目前主要的应用领域是服务端,GUI桌面端软件也有极少量的应用场景(桌面软件还是C#方便),所以今天给大家分享一款漂亮的JavaFx GUI界面框架BootstrapFX. Java Fx ...
- matlab利用GUI界面做简单的图像处理
学自"MATLAB GUI界面设计"微信公众号 https://mp.weixin.qq.com/s/iygmHVMevkKzo618Yy_d0Q 程序压缩包,有需要可以自行下载: ...
- Python爬虫实战——签名软件设计(二)GUI界面
Python爬虫实战 关于本文: 上一篇文章我们介绍了POST方法的使用,现在我们就说一下界面设计以及方法的调用 使用模块 from Tkinter import * import tkMessage ...
- 基于Java的GUI界面+SQL Server数据库课程信息管理系统
登陆窗口: package 课程管理系统; import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; ...
- Python实战之小说下载神器(完结)今天教你如何白拿一款代码版资源丰富的小说下载器GUI界面编程,海量资源免费看~(追书必备神器)
前言 这次的是一个系列内容 给大家讲解一下何一步一步实现一个完整的实战项目案例系列之 小说下载神器(完结)(GUI界面化程序) 小说的搜索功能.小说下载器的GUI界面 爱看小伙伴想要一款资源丰富,好用 ...
- Atitit 使用h5技术( html css js)制作桌面程序gui界面解决方案attilax总结
Atitit 使用h5技术( html css js)制作桌面程序gui界面解决方案attilax总结 1.1. 理解Atwood定律 1 1.2. H5做出个html的ui是很方便的,跨平台 2 1 ...
- Atitit 使用h5技术 html css js 制作桌面程序gui界面解决方案attilax总结
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Atit ...
- 基于MATLAB软件GUI界面的自制简单电子琴
基于MATLAB软件GUI界面的自制简单电子琴 概要: 本文基于MATLAB及其GUI界面设计了一个简单电子琴.利用MATLAB的GUI控件及相关算法,实现了一些简单的功能.这是作者大一暑期课程< ...
- 基于MATLAB软件GUI界面的可编程电音合成器软件
基于MATLAB软件GUI界面的可编程电音合成器软件 1 总体设计 1.1 设计思路 1.2 软件运行 2 软件功能说明 2.1 软件界面 2.1.1 菜单栏 2.1.2 工具栏 2.1.3 MySy ...
最新文章
- 快乐学习Pandas入门篇:Pandas基础
- 【编程】二叉搜索树的定义
- Jmock 原理简单说明
- 配置web项目session永不超时
- python求平行四边形面积_python 已知平行四边形三个点,求第四个点的案例
- SQL学习——小结练习(1)
- 巨杉数据库完成数亿元D轮融资,引领金融级分布式数据库发展
- Matlab仿真产生复高斯白噪声,验证包络服从瑞利分布,包络平方服从指数分布
- CSS初始化示例代码
- asp.net中用LinkButton取到gridview中当前行的ID值
- paip.System.out.println乱码解决
- 一起撸个简单粗暴的Tv应用主界面的网格布局控件(上)
- 学堂在线体育与社会作业答案(武汉体育学院)(学堂在线)网课搜题
- 计算机视觉论文-2021-06-01
- Arduino 连接JDY-08蓝牙模块
- STC单片机开发板介绍以及使用(51单片机介绍)
- 计算机学生的理想定位范文,我理想中的学校作文范文(通用3篇)
- 光滑曲线_光滑流形(4)
- icp许可证和edi许可证区别是什么?
- English--元音
热门文章
- python导入自己写的py_10万行代码10万年薪,利用python查看自己写了多少代码!
- 路由器截获微信消息_猫(Modem)和路由器有什么区别?
- android多屏互动方案,基于Android的DLNA多屏互动系统的设计与开发
- 5 添加数据获得id_D3库实践笔记之元素定位与数据绑定 |可视化系列33
- c语言形式参数若为b 4,4月全国计算机等级二级C笔试考试题目
- 数据结构详解之向量vector
- Python3优雅操作-时间处理与定时任务
- 005-统一沟通-部署-基础-环境作业
- 29.AngularJS 简介
- 一个比较完整的短信接口帮助类参考