一种基于结构化语言的表述的程式化业务流程图自动化生成项目完整代码的探究

1 篇文章 0 订阅
1 篇文章 0 订阅

今天来聊些什么。聊聊我们?我们今天做了什么?还是说我们喜欢什么,想要什么?还是聊我们平时生活幸不幸福?还是......谈谈我们的处境,我们的关系好点呢?

那就谈谈我们处在这个社会的立场,从一种外在的角度来论述。

从古代发展至今,我们走过了许许多多个春秋,见证了日异月殊、不可端倪、时移俗易、隔世之感的社会活动以及背后的演变规律。社会是什么,随着社会活动,发生了什么,我们是怎么生存下来的,怎么延续过来的。

我们存在于这个世界,首先外在世界,这个是最大的,其次是生活在其中的人或者说动物等等生命,还有客观的事物或者说与这个世界相互联结的映射反应,这是我们感知世界的通道,我们生活在其中,那么我们生活在这个世界,我们是出于一种什么样的关系来互相关联的呢?

那么要谈到一种叫做社会关系的学问,我们知道,我们脱离不了这个世界而存在,那么我们就得互相面对,简单的看来这只是人与人之间的关系,但是社会关系要比这个复杂,其实,人与人的关系只是其中一小块,也不能简单得下结论更大的社会关系由这种小的关系发展而来,由此得出人与人构建了整个社会,这么简单的来看或许太过于片面;其实整个社会关系不只是错综复杂,因为假如只从人的角度来看,社会关系的形成其实不那么难以理解和解释,但是你知道吗,如果整个社会关系只有人来决定或者只有所有人来决定,其实说错也不错,但是不完全对,因为即使是社会关系这种关系的形成不能只从局部来看,但关注点只在于人确实有理但是有所偏颇,关系的由来,假如从更高的视角来看,人们发展的社会关系只是这由来的一个关键的部分,不能是全部。很简单,就举个反例,一个文明的形成,依赖什么,水源,对,靠近河流,假如我们祖先没有一种类似天时地利人和的环境,人们就难以走到至今,其中也有人们之间的矛盾问题,就像沙漠中活不了大多数温室农作物,同理,我们文明走到至今也需要苛刻的条件。有时候,也许我们也是很渺小的,就连我们构建的社会关系可能也只是一个小小的部分而已。

我们所构筑的社会关系,其实包括经济关系、政治关系、法律关系、军事与宗教等等,其中经济关系也是生产关系,生产关系牵涉到生产力与生产资料所有制的问题,具体来讲在生产力水平较低的社会发展前期,人们主要靠的是手工劳力和技巧来获取自己想要的制造物、交易物等,这时候人们参与其中的生产关系便是指人们依靠自己所占据的社会地位、人脉关系等,依借一定的技术机械化水平、技术加工制造水平、开采探测水平等,形成一定社会财物拥有的水准,因为人与人需要参与到这种联结活动上来,人与人是互相作用的。后来生产力发展迅猛,随着财富分配的积累和不均,即使每个人都有一定劳力,但已经不是单纯看这个了,生产关系已从简单的一个人手工劳作迈向从看一个人的价值与贡献去看了,一个人的价值,也许因为是一个大企业家,也许是有名的作家,有名的演员等等,这个时候人与人之间的关系已经从简单的1=2-1分化成10000=2-1了,随着社会的进步和发展,人与人的价值差异只能越来越大,这也就是为什么现今社会畸变的缘故。

在我们国家,生产资料所有制是归属于集体的,也就是我们所有人的,但是在资本主义国家,生产资料所有制是归属于资本家所有的,然后贫穷的人必须得接受剥削,这也是马克思的资本论中提到的精髓之一,生产资料比如说土地、厂房、机械设备、工具、原料、建筑物、道路等。说白了就是只归谁单独拥有或者霸占(独占—中性词)。

这也就是为什么有时候大家都不做区分,好像你是你我是我大家都差不多一样的由来,因为大家差不了多少,如果差的太多了,比如财富差距或者地位相差太大,那么这种你好我好大家好的感觉应该渐渐陌生起来才对。

好了,聊了这么多,干脆我们回来。

既然这里是csdn,那么我们应该聊聊计算机软件咯?

等等,再插入一些话。

想必大家曾经都很关注基建这类话题,确实近些年我们经济社会的发展很大功劳归于基建的开发,国内基建大致可以分为两类“硬基建和软基建”,硬基建顾名思义就是公路、桥梁、体育馆等社会公共服务,这也是很多省份城市在做的事情。而软基建了,目前在我国刚起步,像社会保障、医疗、教育、公共住房等,Ta很脆弱,潜力也得不到充分释放。近几年主动推进医疗、教育、公共住房等方面的建设,这样的作为旨在培养有益于社会稳定的中产阶层,从而避免重蹈欧洲经历长期社会暴力和战争的覆辙。

好了,回到计算机软件。

我们常说的软件=程序+数据+文档

而程序=数据结构+算法

这怎么理解呢?

我们在日常生活中做任何一件事情都是按照一定规则,一步步地进行的,例如,工厂生产一部机器,会先通过一道道的工序进行零件的加工,然后再将零件按一定的要求组装成一部完整的机器,这里的工序流程就是算法。在数值计算或非数值计算的过程中所采取的方法和步骤成为算法。算法就是解决某一类问题的方法和步骤。程序就是算法在计算机中的描述,可定义为"程序=数据结构+算法"。

也就是说,编写一个程序,先考虑好数据怎样存放,再考虑使用怎样的步骤处理程序,两者结合,就构成了程序,后续只需要再用计算机语言将算法描述出来,就可以形成计算机能运行的程序了。

算法并不会给出问题的精确求解,只是给出了得到解的方法和步骤。每一个算法都是由一系列的操作指令组成的,包括加、减、乘、除、判断、置换等,按顺序、分支、循环等结构组成。研究算法的目的就是研究怎样把各种类型的问题的求解过程分解成一些基本的操作。

算法写好之后,要检查其正确性和完整性,再根据算法编写出程序。程序设计的关键就在于设计出一个好的算法。因此,算法是程序设计的核心。

而数据结构中数组和链表是是使用频率最高的基础数据结构。数组作为数据存储结构有一定的缺陷。链表是是一种线性表,但是并不会按线性的顺序存储数据,而是在由一个个节点组成,节点一般包含存放数据的数据域和存放指针的指针域。

下图就是一种简单的链表

f5c1ef750e4b4188b2b0e7d98868660b.png

接着我们列举算法的描述方法:

描述一个算法可以用自然语言、流程图、N-S图、伪代码语言等。

结构化程序设计:

C语言属于一种高级编程语言,一个结构化程序就是用高级语言表示的结构化算法,”结构化程序设计“是指利用自顶向下、逐步求精的方法使程序设计方法程式化的一套设计标准,以此方法设计出的程序具有结构良好的特点。

1966年Bohra和Jacopini提出了顺序结构、选择结构、循环结构,使用这三种基本结构可以实现所有的功能,且能构成一个良好的算法。其组成的算法属于结构化算法,不存在无规律的转向,只在本基本程序结构内才允许存在分支和向前或向后的跳转。

现在,我们基于此,发挥一下想象力,做延伸,既然算法可以用自然语言、流程图、N-S图、伪代码语言等描述,那么我们平时经常接触的项目开发,比如项目背景(要来做什么,为什么需要),需求分析(项目的具体需求是什么),架构分析(技术架构),实现分析。其中,我们是否可以用基于某种结构化的语言描述方法,遵从流程结构图–结构化语言–机器识别–模块代码生成–模块整合–项目建立的方式来完全的构建一个全程自动化的项目呢,也就是说,当用这种语言完完全全地将具体的项目需求完整不落的描述齐,便可以接着往前走直到最后项目的生成运行与部署。那么假设存在这种语言,那这个流程结构图应该怎么表述才是最完善的,然后怎么转为结构化语言,再用流程图时怎么表述项目中的错综复杂的数据库之间的结合业务的关联关系,这样一种动态关系怎么结合到一般静态关系与基础关系的结构图中来?如果此关系具备完整的无限业务扩展性,就像一颗树不断长出分支一样,具体业务就是关系网中的一个环节,但此时业务的底层描述不再是平时人们口语的主观感受和意见看法,而是基于程序和数据的程式化表述。

那么此时分析一下技术栈:

后端分布式微服务,微前端或者ui组件前端封装组合。

前端具体来说:

高度自动化封装的crud组件,易使用,易改写代码,易组合嵌套,易扩展。扩展:自定义新的组件和样式。易使用:开箱即用,依赖最少。易改写代码:上手修改代码快,效果优。易组合嵌套:父子孙级更多级等满足组件的不断相互嵌套,支持全局变量,支持父子级传参等。能够完整满足所有业务功能开发的组件。

后续......

 

 

我认为纯粹的逻辑推理与思考是在确定好所有已知条件下,基于逻辑推导,一步步推演出最终结果的过程。但是这个推导的方向和准确性如何证明是正确的,有时候你会发现一直往下走,根本走不出去,其实这时候你是进入了一个迷宫里面(Into The Maze),怎么调整方位和方向永远都走不下去,只能往之前走过的位置不断调整,往回追溯,这样还是不能走出一条明路出来,其实最开始的假设在于有这样一条明路,但是这也只是假设,需要尝试,然后就需要引入概率这种数学计算,但是没人能够证明原来的路就是对的,对与不对是难以预先知道的,假如真的知道就不会去闯迷宫了,所以一开始选择的规划路径是很重要的,有时候甚至是最重要的,如果从最开始选择规划路径之前,先不走,再多多考虑相关的一些方向,比如寻迹的方法,前提条件,有什么好的主意,有什么好的计划,有什么好的决策和理论依据,有什么奇思妙想,现实依据和脑洞都可以事先想想,不一定一上来就埋头前进,一百个人做一道选择题,每个人的技巧都不一样,一百个人做一道需要写出过程的数学演算解答题所写出的数学卷子答案,看似写的八九不离十,即使写出来的过程真的差不了多少甚至一模一样,可是不同的人思维的过程和怎么理解的真的不太一样,甚至思考方式和出发点根本不一样,虽然这可能只是少数案例。

比方说来一道真正纯粹的逻辑推理题目。

内容:
1、在一条街上,有5座房子,喷了5种颜色。
2、每个房里住着不同国籍的人。
3、每个人喝不同的饮料,抽不同品牌的香烟,养不同的宠物。

已知条件:
1、英国人住红色房子
2、瑞典人养狗
3、丹麦人喝茶
4、绿色房子在白色房子左面
5、绿色房子主人喝咖啡
6、抽Pall Mall香烟的人养鸟
7、黄色房子主人抽Dunhill香烟
8、住在中间房子的人喝牛奶
9、挪威人住第一间房
10、抽混合烟的人住在养猫的人隔壁
11、养马的人住在抽Dunhill香烟的人隔壁
12、抽Blue Master的人喝啤酒
13、德国人抽Prince香烟
14、挪威人住蓝色房子隔壁
15、抽混合烟的人有一个喝水的邻居

问题:谁养鱼?

 

有的人可能一开始入题时就以自己熟悉的方式作答,比如随机寻找某一个已经条件的点,从该点出发,来不断推演出可能的条件,再根据推演出来的条件继续推演出剩余的结果,直到可能集逐渐减少,直到答案逐渐明晰,但是以这种方式进行推导可能会存在缺陷,也就是说可能逻辑本身就有问题,这样某个逻辑出现错误了还继续推演,即使真的正确能说明什么,况且人的大脑算力是有限的,人在现实生活中就已经承受自己难以接受的压力,更加没有心思或者说状态来应付其他事情,每个人都有自己的烦心事。即使所有逻辑都无误,但是由于走的路径不是最佳,往往不是最佳,那么这是很难走到终点的,甚至永远走不对,所以回到原问题,这样一种最原始与复杂的推导方式能否在开始的时候事先想好完全策略,应该怎么做更好,是不是什么都不管一上来就进去闯。

解决一种数学问题的方法应该有很多才对,即使真的没有好的算法,但是起码你有工具,你可以不用一字一句的顺推或者逆推计算来演算过程,你可以用画表格画导图的方式将思维逻辑互相之间的关系表述出来,因为它其实也就只是一种关系而已,除非题目不正确,所以好的思维方式是,在完成已知关系条件推导的前提下,还可以继续往更深入的层面进行演进推导,自己给自己出题,具有不断的延伸能力,扩展能力,能够结合并解决实际问题,这才是一个懂得变通的ai。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值