什么是系统,什么是算法 -- lemon OA 系统学习总结

一、对于模块划分的理解

  对于一个大型(这里还只是一个中型系统)系统来说,代码的编写不是一日而就的,层次的明细也不是一眼就能看清楚的。

  在这种情况下,需要想好,最好是由上而下地想好。

  能够模块式地划分最好,这样在开发时,也能够很好地进行任务分配(这对于做项目经理比较有用)。还有一个好处,进行功能隔离,这样可以单独进行测试,把某一个模块做得很细。

  操作系统的编写,也是各个模块进行划分,虽然各个模块间的关联特别严重,但是通过中间层,通过接口,最终依然能够实现模块编写。

  为什么?我有一个公式:

系统 = 算法的组合
模块 = 算法

为什么得出上面的公式呢?

算法的特征:
    1. 为解决某一特定问题而设计;
    2. 输入数据较为单一;
    3. 操作模式较为单一。

模块的特征是什么?

模块的特征:
    1. 为解决某一特定问题而设计;
    2. 输入数据较为单一;
    3. 操作模式较为单一。

所以,设计系统就想好各个模块如何进行组合。

设计系统 = 理清+设计 各个模块的组合调用关系

设计模块的思路就是要完成某一特定功能而做的工作

模块设计:
    1. 明确特定问题的逻辑;
    2.设计输入接口;
    3.设计输出接口;
    4.设计内部算法逻辑。

写代码,不是写伪代码,伪代码是没有上下文的,可是写代码需要考虑上下文之间的关系。

做一个系统的几个步骤:

    1. 理清并设计 各个模块之间的组合和调用关系。
    2. 第二步其实不是编码,因为第一部还是伪代码,不过伪代码的粒度是各个模块。
    紧接着第一步的是继续技术选型,选择代码的运行环境(linux,windows,mac),模块之间的调用组合,是通过spring这样的中间层框架,配置文件,还是操作系统服务,或者通过网络rpc进行调用。
    并且每一个模块应该用什么成型的技术组件来做,还是自己从零开始设计算法。都是需要在这一步进行考虑的。

    并且在这一步,就是把系统架构好。
    如何进行架构,就是特定的操作系统,特定的IDE,利用特定的编程语言把这些模块给创建好。

写到这里,我在想变量是用来干什么的,

在大型系统中,从较高的维度(对!我说的就是进行升维),

变量的作用永远只有两个:
    一、存储;
    二、传递。

模块之间相互调用的数据,虽然数据结构复杂,数据量庞大。
但是如果抽象成变量,也是一样的道理,就是这两个功能,从来没变过。

问题又来了,对于设计软件系统,我还是觉得有点乱,该怎么做呢?

我想起了维特根斯坦的一句话,关于语言的,

 人与人之间之所以不能相互理解,其实是由于语言的差异。而一个人所说的语言,反映了这个人的大脑里装的内容。

回到软件设计上来,就是(这是我自己的话),

 我们能不能设计出一个软件,其实就是我们能不能充分理解我们的问题,充分了解它的需求。当我们和问题,合而为一体的时候,我们便可以和问题进行沟通。虽然问题是死的,人是活的。但是,我们和问题,在精神上已经有了共同的语言。

 模块是我们在较高维度思考用的语言,算法(模块内)是我们在较低维度思考用的语言。

所以,在这里我想到了一个结论,对算法下个定义:

    

算法是一种语言
一种解决特定问题的,领域特定语言。

当我们无法设计良好的算法时,
其实是由于我们还没有对问题有良好的理解。

当我们能够描述问题的解决步骤时,
我们可以开始编码了,编代码的逻辑基础就是问题步骤可描述。

当我们充分理解问题的本质时,
我们就可以用“更精妙的算法,甚至于数学公式”来解决问题。

算法不是万能的
算法就是为了解决特定问题而存在,这就是算法的宿命。

所以,通过我这么一扯淡,《算法导论》上的精妙绝伦的算法到底什么呢?

就是在充分理解某一问题之后,的一种新的描述语言。
对,算法不高深,算法只是一种描述方式。
算法是一种新的语言。
了解问题,思考问题。
和问题进行对话,我们就可以设计自己的算法了。

哦,原来我是在讲算法。

我真的懂了吗,现在的我,就是用这种眼光来看世界的。

时间: 2024-08-26 23:05:09

什么是系统,什么是算法 -- lemon OA 系统学习总结的相关文章

免费oa系统选择需谨慎

免费oa系统选择需谨慎 企业在进行oa系统选型的时候,很多都曾考虑过免费oa系统软件.只要在百度中搜索关键词,就可以找出很多免费oa系统软件下载的网页,功能齐全,安全免费等等字样充斥在眼前.那么免费oa系统真的如这些网页中说的那么好吗?免费oa系统是真的一无是处?还是有一定价值可言?想尝试免费oa系统软件的时候,又需要注意哪些呢? 想要让这些问题变得清晰,了解oa系统的开发成本,也许我们就能够得出一些答案了. 我们在选择oa办公系统时,其成本不仅仅是oa系统本身的购买成本,还包括对于企业员工的培

OA系统是什么,为什么要用OA系统呢?

OA系统即是办公自动化(OA),是面向组织的日常运作和管理,员工及管理者使用频率最高的应用系统,自1985年国 内召开第一次办公自动化规划会议以来,OA系统在应用内容的深度与广度.IT技术运用等方面都有了新的变化和发展,并成为组织不可缺的核心应用系统. 随着人们对OA系统的熟悉程度加深,传统OA系统如公文传递,人事,协作等功能已经不能满足企业日常办公需要,很多企业管理者对OA系统提出了新的要求,金融危机下,很多公司为了控制费用预算,希望把传统的费用报销流程整合到OA系统审批流程里,且希望有效管理

中小企业该按人数还是需求来选择OA系统?

中小企业主在选择OA办公管理软件的时候,不知道该选择怎样的办公系统,纯粹就是怀着"同行都在用,自己不用的话跟他们的业务就会相差很多"的心态来决定要上OA办公管理软件.我们来回想一下,你选择OA系统的时候是不是存在着下面这三个错误的想法: OA选型应该按照企业规模吗        一些用户OA选型喜欢按照自己的企业规模来定,而企业规模通常以企业人数来衡量.不少OA商为此也将OA系统用户数或者并发用户数纳入OA系统的定价指标.有些OA商还按照企业规模将OA产品分为中小型企业OA.大型集团型

企业OA系统架构改造案例摘录(Raid加速技术+Docker+MariaDB+Keepalived)

某某企业OA系统架构改造   背景: 随着企业业务的不断发展,OA系统数据量不断增多,数据检索量不断增大,对后端数据库的访问压力越来越大,OA单系统架构已经无法满足当前业务量的需求,急需一套全新的架构来支撑不断增加业务数据量,同时保证系统运行不间断和高可用性,以适应当前企业发展要求. OA新系统架构实现: 新OA系统架构采用3台(一台为立旧服务器,两台(DELL R430)新采购服务器)服务器为架构模型,将WEB源程序和数据库进行分离,减少因多个应用对单一服务器的负载,提升OA系统整体性能,同时

OA系统市场发展状况深度解析

互联网时代企业办公愈加现代化,OA系统亦开始为越来越多的人所熟知,并普遍应用于企业办公管理.那么,就目前的发展状况来看,OA办公系统市场发展状况又如何呢? 第一.纵观整个OA系统领域不难发现, OA系统从早期由厂商定义概念产品正在向市场所需转变.过去20年,国内有超过2000多家软件企业曾经涉足OA系统软件行业,但在它们当中没有形成具有领导能力的品牌,虽然存在一些主流厂商,但是它们并没有在行业中成为佼佼者,由于不断有新的公司出现,主流厂商面临的竞争力是非常大的,所以即便在经历了惨烈搏杀之后也没有

办公OA系统与故障报修系统的区别

近期青鸟报修云客服经常接到酒店方电话,需要在青鸟报修云报修功能基础上增加物料附件并转交给审批人的定制需求,在这里给大家讲清楚报修系统与OA系统功能区别. 报修系统: 故障报修系统一般是指报修人将故障通过二维码扫码提交给故障处理人,注重的是报修效率,如果增加报修节点审核会大大降低企业的报修效率.所以青鸟报修云作为专业的故障报修系统不支持审批流程开发定制,专注于故障报修. OA系统: 企业OA办公系统注重的是流程审批功能,不同职能部门参与某件事无的审批,注重的是多人协同办公.很显然酒店方应该需要的是

asp.net oa系统开发方案

思道OA开发版 2016下载地址http://www.345oa.com/develop/ 思道OA基于Microsoft .NET/ASP.NET 4.0开发,数据库SQL Server,开发工具Visual Studio 2013. 思道OA提供开放的二次开发系统架构.Web开发的全套环境,是开发管理应用系统的理想平台. 思道OA提供单点登录技术,可于第三方系统集成,提供相关接口.案例源码. 思道OA介绍 1. 基于.NET平台    思道OA是国内最早发布的基于.NET平台的企业OA办公解

2017年免费OA系统选型综合分析

2017年免费OA系统选型综合分析 2017年免费OA系统行业呈现出一片活力.繁荣的景象.在这一年里,免费OA办公系统遍地开花,各说各的好,各有各的理.乱花丛中如何慧眼识英雄,明辨高与低,找出最适合自己的那个"高帅富"? 近日,小编整理了国内免费OA市场中的八大厂商,针对这些免费OA厂商的介绍进行综合分析,看看哪个免费OA厂商值得企业选择使用,成为2017年免费OA系统中的佼佼者. 一:点晴OA 从2010年点晴OA系统出现至今年,点晴OA系统始终都是免费开放给企业用户使用的.点晴OA

OA系统信用盘新增三个极速彩版本定制化视觉服务的使用

AI应用开发实战 - 定制化视觉服务的使用 OA系统信用盘新增三个极速彩版    下载地址  QQ2952777280 OA系统信用盘新增三个极速彩版本程序源码参数说明: 运行环境:php5.2+mysql 源码类别:时时彩(彩票)现金网系统/两面盘 界面语言:繁体中文 源码授权:无加密文件及认证授权,永久性可直接使用. 版本支持:PC/WAP网页版 编程语言:PHP 零.定制化视觉服务简介 有的时候,在构建应用的过程中,在缺少强大计算资源与高性能算法的情况下,我们不一定需要自己从零开始训练模型