软件(产品)项目开发绪论
摘要
- 软件开发概述
- 软件开发项目实践
- 无(低)代码编程
- 开发操作系统环境模拟(虚拟技术)和容器化Docker
关于软件开发
序章
前言
本文经作者实践总结,紧跟国内外最前沿、以新兴开源技术和思想或概念为主,带有流行时尚的新鲜气色。关注技术,聚焦国外技术在本土的应用或国内国产化进程。本指南主要从国际化和国产化两个方向作为线索,开展探索与发现。
本文并不会对同类产品进行比较,也不会推荐哪一款适合您,更不是某项技术具体的使用教程(超出本文范畴)。
Cow say:“授之以鱼,不如授之以渔”。(I said: me too :-)
概述
本文作为《软件开发项目实践》文档的具体实施指南,记录各种项目实施关键技术、工具、方法最佳实践(Best Practices),用以指导软件项目开展,提供项目架构、编码等解决方案选型参考及查阅。
全文每一个部分都可剪裁,单独或与其它组合应用,灵活应对各种项目需求。各个章节(同级)划分并不遵循同一面或所谓章法,只是按专题归类组织。
跨平台开发和低(无)代码开发趋势正在形成。
关注网站前后端分离式开发,碎片化应用服务。
本文档适用于软件开发行业公司和团队使用,笔记仅供自用。
桌面客户端软件开发
(Desktop Application)
Microsoft Winform
无跨平台
IDE: Visual Studio 2019(系列)
Language: C#(CSharp)
WPF
运行环境:Windows
XML+C#+CSS
IDE: Visual Studio 2019(系列)
Language: C#(CSharp)
可以前后端分离开发。
QT(QtCreator)
跨平台
C++
Electron
使用 Electron 构建跨平台软件。
如果你可以建一个网站,你就可以建一个桌面应用程序。 Electron 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架,它负责比较难搞的部分,你只需把精力放在你的应用的核心上即可。
官网ELECTRON Electron 文档 electron-quick-start Github Clone to try a simple Electron app
NW.js
NW.js (previously known as node-webkit) lets you call all Node.js modules directly from DOM and enables a new way of writing applications with all Web technologies.
浏览器Browser
运行与调试代码用。当然也可用于探索Internet(本来)。
常用浏览器
主要使用:谷歌Chrome浏览器、火狐Firefox浏览器及微软Microsoft Edge(版本86之后支持PWA)
基于Chromium。
其中UOS 20自带浏览器为:UOS浏览器。
安装方法(谷歌、火狐浏览器)
Windows安装不多讲,主要是Linux或基于Linux的OS下的安装。
相关截图基于Ubuntu和(或)国产UOS操作系统。
Chrome
- 下载
打开自带UOS浏览器,在地址栏输入URL:https://www.baidu.com
进入百度搜索引擎页面,搜索栏输入‘chrome’,单击百度一下:
点击第一个链接,也可以直接地址栏输入URL:https://www.google.cn/intl/zh-CN/chrome/
点击【下载Chrmoe】
接受并安装
选择打开或保存都可以,确定。
下载.deb版本
完成,点击文件夹图标
- 安装
双击相应的.deb文件安装包
点击【安装】,提示授权,输入超级用户密码
点击【认证】按钮,还有点傻,返回到原来界面,好像什么事情都没发生,再次点击【安装】
完成
- 启动
点击启动器,选择网络应用
找到Chrome
运行,出现清爽UI
OK
在任务栏右键图标,选择驻留,把启动图标固定在任务栏中,方便下次启动。
Firefox
- 下载
打开自带UOS浏览器,在Firefox官网下载源码版本:
解压到firefox文件夹。
- 运行
双击运行可执行文件
在任务栏右键图标,选择驻留。
把启动图标固定在任务栏中,方便启动。
以后如果不需要,可以移除。
操作方法:右键,移除驻留。
Edge
- 下载
Microsoft网站
H5兼容性不好,不常用。
网站Web开发
主要讨论前后端分离开发。
DotNetCore(DoteNetFramework)
详细教程Demo参见《DotNetCore.docx》。
手机App开发
手机开发朝跨平台趋势发展,一码多端可以降低成本,提高效率。
Multi Platform
原生Native,Hybrid,H5
Flutter
Xamarin
Angular
Vue
注:PWA由于其特点及趋势,本人甚为喜欢,觉得有必要独立成章,故此处不再列出。
Flutter
理念:一码多端one code, many devices
核心功能:Build native apps.
开发语言With Language: Dart
跨平台Cross-platform
开源Open source
- What is Flutter
- Flutter VS Dart
- Flutter Architecture
- Widget
Tree
- How is Flutter/Dart “transformed” to a Native App
PWA
桌面端和移动端的统合。浏览器的“超级小程序”。
App Shell 架构模型。
浏览器能力清单
API 接口管理
图片来源:简书
常用的在线API管理工具
- Swagger
- Rap
- APIDOC
- Spring REST Docs
Swagger
一款RESTFUL接口的文档在线自动生成+功能测试功能软件,是一个规范和完整的框架,标准的,语言无关,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
| SwaggerUI是一个简单的Restful API 测试和文档工具 | Swagger Codegen可以用来生成代码和测试 | Swagger Editor可以用来设计接口 | | SwaggerHub是国外的一个非常有名的基于Swagger的一个在线平台,提供了API全生命周期管理的工具集,基本涵盖了解决思路中提到的全部功能。 官网地址:https://swaggerhub.com/
Rapapi.org
前后端协同开发神器--接口管理工具RAP Rapapi
图片来源:官网
RAP来自阿里巴巴,是一个可视化接口管理工具
RAP
前后端协同开发其实就是个对接接口的过程,双方把接口定义好就可以各自开始coding了,谁也不用等谁,开发完了再一起联调。RAP是阿里内部使用的一个WEB接口管理工具,完全满足企业级的API管理应用,除了定义接口形成文档约定,还有MOCK数据的功能,最重要的是已经开源。
原文链接:https://blog.csdn.net/Lamb_IT/article/details/81275660
Spring REST Docs
Spring REST Docs helps you to document RESTful services.
APIDOC
RESTful web API Documentation Generator.
APIDOC可以根据代码注释生成WEB API文档,支持大部分主流开发语言,Java、javascript、php、erlang、perl、python、ruby等等,相对而言,web接口的注释维护起来更加方便,不需要额外再维护一份文档。APIDOC从注释生成静态html网页文档,不仅支持项目版本号,还支持API版本号。
来源:doban
API测试的工具
- postman https://www.getpostman.com
- apipost https://www.apipost.cn/
- soapui https://www.soapui.org/
soapui支持做接口的功能测试、压力测试、安全测试、模拟测试。
mock(json-server)
Get a full fake REST API with zero coding in less than 30 seconds (seriously)
WebAR
ar.js很棒的一处是结合three.js进行3D渲染。
AR.js-Augmented Reality on the Web
Image tracking, Location Based AR, Marker tracking. All on the Web.
360度全景环视(Surround View)
汽车 ADAS(智能型驾驶辅助系统)
VADAS公司3D环视算法 ADAS算法的方案商--VADAS(韩国)
海思3559A全景拼接指南
ADAS系列-s32v234的图像数据流 https://blog.csdn.net/weixin_41965270/article/details/87117564
OCamCalib
NXP S32V234视频处理器开发方案
S32v234介绍 https://www.pianshen.com/article/5760456571/
S32V是NXP用于ADAS开发的一款Soc,S32V234-EVB2-QSG开发板是NXP官方做的一款实验开发板。
S32V234--S32V234-EVB2-QSG开发板启动 https://worthsen.blog.csdn.net/article/details/82254866
车载环视拼接系统的设计与实现(三):鱼眼畸变校正算法 https://blog.csdn.net/w77AYU/article/details/79358751?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-8.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-8.control
AVM+APA算法,VADAS算法,(360全景+自动泊车算法)
Application Brief: Automotive Vision Systems https://www.nxp.com.cn/docs/en/supporting-information/VISIONAPP_BRIEF.pdf
环视: 多摄像头环视和感测泊车辅助系统可以采集车辆四周的图像,并以虚拟3D视图的形式在屏幕上显示。 https://www.nxp.com.cn/applications/automotive/adas-and-highly-automated-driving/surround-view-:SURROUND-VIEW-PARK-ASSIST-SYSTEM
全景影像(360°环视)系统发展历程 https://www.cnblogs.com/senior-engineer/p/11588998.html
NEXTCHIP模拟高清AVM环视算法ADAS芯片APACHE4**ISP+RX
VADAS公司3D环视算法 自动泊车 自动校准(Calibration)颜色平衡(Color balancing)
NEXTCHIP品牌下360全景芯片,N4和NVP6324的区别 https://blog.csdn.net/bjgymtkj/article/details/84771392?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-11&spm=1001.2101.3001.4242
全新视角ADAS,APACHE4/APACHE5/APACHE6,带你走进ADAS技术前沿 https://blog.csdn.net/guanyumingtong/article/details/104573895?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-6&spm=1001.2101.3001.4242
ADAS芯片,APACHE4,APACHE5,NEXTCHIP品牌 https://blog.csdn.net/bjgymtkj/article/details/104424263
Mileview米乐视
http://www.mileview.cn/gongan/48-6.html
http://www.mileview.cn/360duquanjinghuanshi143/143-124.html
Surround View
Multi-camera surround view and sense park assist systems capture and display onscreen the area surrounding the car from a virtual 3D view.
https://blog.csdn.net/real_myth/article/details/52174339
d3js
D3 Data-Driven Documents
ECharts
Apache ECharts 一个基于 JavaScript 的开源可视化图表库
小程序
微信小程序
wechat miniprogram
阿里小程序
钉钉
支付宝
华为快应用
Serverless
低(无)代码开发
Power Platform
2020.6 落地中国,在华正式商用,由世纪互联运营。
图片来自:微软公司及中国世纪互联发布
块编程
见专题:块编程入门介绍。
开发操作系统环境模拟(虚拟技术)和容器化Docker
开发操作系统环境模拟(虚拟技术)
虚拟机
VMware Workstation Pro 12 (15)
FAQ
- vbox ubuntu虚拟机中加载笔记本内置摄像头
C:\Program Files\Oracle\VirtualBox\VBoxManage.exe工具使用命令
- 显示可用摄像头:VBoxManage list webcams
- 显示可用虚拟机:VBoxManage list vms
- 加载WEBCAM:VBoxManage controlvm "<虚拟机list中的名字>" webcam attach
- 虚拟机中查看摄像头:ls /dev/video*
- 打开摄像头:cheese
可能显示不了,要安装扩展:Oracle VM VirtualBox Extension Pack
https://www.virtualbox.org/wiki/Downloads
或者Ubuntu18.04LTS中PyCharm写代码OpenCV
import cv2
import numpy as np
cap = cv2.VideoCapture(0) # 0 the number of cameras (index)
success, img = cap.read()
cv2.imshow('Image', img)
cv2.waitkey(1)
参见:https://www.cnblogs.com/rayfloyd/p/11613844.html
容器化Docker
Docker