软件(产品)项目开发绪论

摘要

  • 软件开发概述
  • 软件开发项目实践
  • 无(低)代码编程
  • 开发操作系统环境模拟(虚拟技术)和容器化Docker

image-fenghe

关于软件开发

序章

前言

本文经作者实践总结,紧跟国内外最前沿、以新兴开源技术和思想或概念为主,带有流行时尚的新鲜气色。关注技术,聚焦国外技术在本土的应用或国内国产化进程。本指南主要从国际化和国产化两个方向作为线索,开展探索与发现。

本文并不会对同类产品进行比较,也不会推荐哪一款适合您,更不是某项技术具体的使用教程(超出本文范畴)。

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

Electron 教程

NW.js

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浏览器。

image-20210226111806000

安装方法(谷歌、火狐浏览器)

Windows安装不多讲,主要是Linux或基于Linux的OS下的安装。

相关截图基于Ubuntu和(或)国产UOS操作系统。

Chrome

  • 下载

打开自带UOS浏览器,在地址栏输入URL:https://www.baidu.com

进入百度搜索引擎页面,搜索栏输入‘chrome’,单击百度一下:

image-20210226112010150

点击第一个链接,也可以直接地址栏输入URL:https://www.google.cn/intl/zh-CN/chrome/

image-20210226112028052

点击【下载Chrmoe】

image-20210226112058136

接受并安装

image-20210226112122669

选择打开或保存都可以,确定。

image-20210226112146638

下载.deb版本

image-20210226112210980

image-20210226112231836

完成,点击文件夹图标

image-20210226112255052

  • 安装

双击相应的.deb文件安装包

image-20210226112537850

点击【安装】,提示授权,输入超级用户密码

image-20210226112604331

点击【认证】按钮,还有点傻,返回到原来界面,好像什么事情都没发生,再次点击【安装】

image-20210226112639556

完成

image-20210226112656120

  • 启动

点击启动器,选择网络应用

image-20210226112800156

找到Chrome

image-20210226112837753

运行,出现清爽UI

image-20210226112921764

OK

image-20210226112959186

在任务栏右键图标,选择驻留,把启动图标固定在任务栏中,方便下次启动。

image-20210226113015421

Firefox

  • 下载

打开自带UOS浏览器,在Firefox官网下载源码版本:

image-20210226113123757

解压到firefox文件夹。

image-20210226113143528

  • 运行

双击运行可执行文件

image-20210226113218102

在任务栏右键图标,选择驻留。

image-20210226113249790

把启动图标固定在任务栏中,方便启动。

image-20210226113307237

以后如果不需要,可以移除。

image-20210226113330025

操作方法:右键,移除驻留。

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.

image-20210226113753283

开发语言With Language: Dart

跨平台Cross-platform

开源Open source

  • What is Flutter

image-20210226113853737

image-20210226113914685

image-20210226113929074

  • Flutter VS Dart

image-20210226114039839

  • Flutter Architecture

image-20210226114113034

image-20210226114154958

image-20210226114211887

  • Widget

image-20210226114303115

image-20210226114321694

Tree

image-20210226114336657

  • How is Flutter/Dart “transformed” to a Native App

image-20210226114424071

PWA

桌面端和移动端的统合。浏览器的“超级小程序”。

App Shell 架构模型。

image-20210226114526710

浏览器能力清单

https://cdn.sspai.com/2020/06/12/1ef2177c153a7f7c78b6ab4267e0e959.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

API 接口管理

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 image 图片来源:官网

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

apidoc GitHub

RESTful web API Documentation Generator.

APIDOC可以根据代码注释生成WEB API文档,支持大部分主流开发语言,Java、javascript、php、erlang、perl、python、ruby等等,相对而言,web接口的注释维护起来更加方便,不需要额外再维护一份文档。APIDOC从注释生成静态html网页文档,不仅支持项目版本号,还支持API版本号。

来源:doban

API测试的工具

soapui支持做接口的功能测试、压力测试、安全测试、模拟测试。

mock(json-server)

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

AR.js

Image tracking, Location Based AR, Marker tracking. All on the Web.

360度全景环视(Surround View)

汽车 ADAS(智能型驾驶辅助系统)

VADAS公司3D环视算法 ADAS算法的方案商--VADAS(韩国)

http://vadas.co.kr/

海思3559A全景拼接指南

ADAS系列-s32v234的图像数据流 https://blog.csdn.net/weixin_41965270/article/details/87117564

OCamCalib

http://www.nextchip.com/

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

项目讲解-AVM 3D 全景泊车-畸变矫正(1) https://blog.csdn.net/xm961217/article/details/103767324?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control

车载环视拼接系统的设计与实现(三):鱼眼畸变校正算法 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

NVP6324图像处理以及IMX6方案参考 https://blog.csdn.net/bjgymtkj/article/details/83504240?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.control

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

360view

Surround View

nxp

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

https://d3js.org/

D3 Data-Driven Documents

ECharts

Apache ECharts 一个基于 JavaScript 的开源可视化图表库

5 分钟上手 ECharts

小程序

微信小程序

wechat miniprogram

阿里小程序

钉钉

支付宝

华为快应用

Serverless

低(无)代码开发

Power Platform

image-20210226114914065

image-20210226114929939

image-20210226115010039

image-20210226115038551

2020.6 落地中国,在华正式商用,由世纪互联运营。

图片来自:微软公司及中国世纪互联发布

块编程

见专题:块编程入门介绍

开发操作系统环境模拟(虚拟技术)和容器化Docker

开发操作系统环境模拟(虚拟技术)

虚拟机

FAQ

  • vbox ubuntu虚拟机中加载笔记本内置摄像头

C:\Program Files\Oracle\VirtualBox\VBoxManage.exe工具使用命令

  1. 显示可用摄像头:VBoxManage list webcams
  2. 显示可用虚拟机:VBoxManage list vms
  3. 加载WEBCAM:VBoxManage controlvm "<虚拟机list中的名字>" webcam attach
  4. 虚拟机中查看摄像头:ls /dev/video*
  5. 打开摄像头: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

Copyright © 德和居 2021 粤ICP备20069867号 在CC-BY-NC-SA 4.0协议下授权使用,除非另有说明 all right reserved,powered by Gitbook本文修订时间: 2021-05-15 22:10:24

results matching ""

    No results matching ""

    results matching ""

      No results matching ""