建模杂谈系列226 流程与对象

news2024/11/16 1:26:29

说明

鲁迅说:我家门前门前有两棵树,一棵是枣树,另一棵也是枣树。

从编程语言的角度,可以分为两大类(面向过程或面向对象),可以参考这篇文章

文章的内容其实不多,我贴一下:
在这里插入图片描述
对于两者的比较,文章这么说:
在这里插入图片描述
我觉得首先从形态上看,最早的语言都是流程式的,例如PASCAL这些。后来,无论是C++, Java还是Python这些主流语言都走向了对象的方式。

所以从形态上,对象是更高级的。

之所以写这篇文章,是因为我发现我总是喜欢流程化的方式(用Python也一样可以流程化),所以我想稍微剖析一下原因,给一个结论,以及未来的调整方法。

内容

1 流程化

我的最核心工作是建模,这项工作本身就非常强调流程

从数据的获取、探索、清洗、变换、衍生、选择、建模、验证、部署以及迭代这些步骤来看,工作本身就是非常强调流程的,甚至可以抽象为流水线模式(Pipeline)。

而且每一个步骤,其实有很多的地方都需要调整。这些调整会占据很多的精力和时间,所以注意力就会完全被流程占据。很多复杂的算法,其实就只是处理一道流程。

所以从工作的分解上,流程级是合适的。

我喜欢尽量在可靠的底层上全部自主实现全部功能

我发现所遇到的工具限制都比较大,所以一直以「矩阵之上」作为算法的起点,而架构上基本就是以Docker、数据库这样的产品作为起点,其他的都会自主实现。

基于这样的技术定位,那么大部分的功能都要反复的开发和调试,所以也很自然的的走向流程化的路子。

2 架构

在数据的传输和处理上,都走微服务的方法。注意力也就集中在了每一个API上,这样就更加不会想到对象化上。但是在几个月前,其实也已经开始了新一波的对象化工作。

例如,数据库的一整套API交互功能都有,但是在使用的时候往往会很麻烦。我的机器是按照分布式连起来的,那么对于不同的主机,在访问不同服务的时候就应该根据自身所处的位置进行适当的连接:Local、Lan或者Wan。所以这就需要每个发起的请求的Worker根据主机的信息,选择一个合适的连接方法,这时候就很适合对象来做。

通过API进行的功能的分离与持久化(服务化),然后又通过对象把一些常用的操作整合起来。

通过微服务 --> 对象化的过程,抽象上是完成了分–> 合的过程。Devide & Conquer ,有分也有治,这才是全部。

所以,我想在算法、模型、程序设计等方面,还是需要再次对象化。

3 需求

从我自己的设计与开发进展来看,的确需要进行对象化转换

只有通过对象化,才能实现进一步的集成与应用。当然,进行对象化其实会对执行性能略有损耗,但那些都是小事了。

3.1 程序设计需求

有的时候程序出错了,调试起来很麻烦。

本质上,这是流程化思路的问题。因为所有的逻辑串成一条,每一个细节都要保证正确,有点像是一口气背一长段课文。

如果通过对象化来做,首先就要抽象化。把一个任务的相关属性先抽出来,然后再把若干长段分为若干小段,每个小段的结果也保存到一个属性中。

这样如果出错,至少知道流程走到哪错了,要调试也很容易。

还有就是类似之前自动找合适连接方式的问题,避免每一次都要重新走一遍逻辑。在改版的时候只要重写方法就可以了。

3.2 算法的要求

流程式的写法只适应”一部头“的任务,更多的是验证,而不是生产

从强化、迭代的角度考虑,一个任务可能不是单步的,需要游走;任务可能也不是单个空间下的,而是要遍历多个空间。任务甚至不是一个人,不是一个月的,要持久和通用。

很明显,我现在已经开始进入强化的研究和实现。

3.3 高度定制化的产品设计

我希望产品可以随着用户的不同,甚至使用场景或者习惯不同而自动适应

我选择Flask作为构造Web服务的基础就是希望有一天可以通过Jinja来实现动态的页面返回。很显然,这只有通过对象化的方式才可能实现。

4 计划

现在没有特别明确的计划,但接下来,会强迫自己尽可能将各种工程结果使用对象来实现,有意识的注意:

  • 1 通用属性、方法的抽象
  • 2 状态的定义与转换方法
  • 3 使用重写方式迭代

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/623702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spark入门 YARN模式(六)

一、背景 独立部署(Standalone)模式由 Spark 自身提供计算资源,无需其他框架提供资源。这 种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是你也要记住,Spark 主 要是计算框架,而不是资源调度…

CATIA软件各版本区别

之前有个朋友问catia v5r21和catia v5-6r 2011,有什么区别,是一样的吗? 众联亿诚才发现,很多朋友似乎看不懂CATIA各种版本各种型号,那么今天,众联亿诚就来详细解释一下,希望能帮助朋友们解答心…

苹果电脑磁盘诊断工具 SMART Utility for mac

SMART Utility for mac是一款Mac上磁盘诊断工具,能够自动检测磁盘的状态和错误情况,分析并提供错误报告,以直观的界面让用户可明确地知道自己的磁盘状况。SMART Utilitymac版支持普通硬盘HDD和固态硬盘SSD,能够显示出详细的磁盘信息&#xff…

版权中心改革之后,软著办理需要多少钱?

版权中心改革之后,软著办理需要多少钱? 众所周知版权中心2年改了3次,每次改革官费都会涨,最近一次是在4月份,官费涨了近一倍。 其实费用涨了还不算最坏的情况,主要是每次改革办理软著的难度都会增加很多。…

(antD)vue项目使用图标

(antD)vue项目使用图标 效果&#xff1a; <a-icon type"arrow-left" class"backBtn" v-if"cardDiv" click"backBtn" />.backBtn {color&#xff1a;#ccc;font-size: 20px;//图标大小 }

程序员爬虫Scrapy框架知识学习

Scrapy是一个Python编写的高级网络爬虫框架&#xff0c;它可以帮助开发者快速、高效地从网站上获取数据。以下是学习Scrapy框架的一些步骤和建议&#xff1a; 学习Python基础知识&#xff1a;Scrapy是用Python编写的&#xff0c;因此需要掌握Python的基础知识&#xff0c;包括语…

利用彩虹线课程中的知识来制作精美的渐变色块和彩虹字

彩虹字 像这样的效果,同样我们可以使用“渐变色”的技巧。来看下面如何操作 选中字体,然后鼠标右键选”设置型状格式“ 选择“渐变” 有两处决定了彩虹字的样式。 拖动的箭头,这个箭头代表“每一个段”显示的色彩,如我DEMO中的字体是“两段颜色”-蓝+黄组合出来的;角度,…

在本地环境搭建GPT项目

先看效果: 在本地环境搭建gpt项目 1.简介 忽略不能写 2.准备环境 Docker的介绍和安装 Docker是一个开源的容器化平台,它可以帮助开发者和运维人员轻松地构建、打包和部署应用程序。使用Docker,您可以将应用程序及其所有依赖项打包到一个称为容器的独立单元中,使其可…

创新与互动的科技盛宴:探索3DVR元宇宙赛博科技世界虚拟展

导语&#xff1a; 在现代科技迅猛发展的时代&#xff0c;3DVR元宇宙虚拟展厅为我们带来了一场前所未有的科技盛宴。特别是在赛博科技领域&#xff0c;它展现了一系列令人惊叹的优势、优点和实质性的作用&#xff0c;为客户带来了非凡的体验和无限的可能。 一&#xff0e;创新科…

在windows上用gpu训练paddleocr模型所有遇到的坑与解决办法

这里写自定义目录标题 1.首先拉取paddleocr源代码下载预训练模型2.开始训练更改yml配置文件 3.遇到的报错1.ModuleNotFoundError: No module named Polygon2.最难解决的No module named lanms3.ImportError: cannot import name _print_arguments from paddle.distributed.util…

利用scikit-plot可视化机器学习模型!

关注“Python专栏”微信公众号&#xff0c;回复暗号【面试大全】&#xff0c;立即领取面试题简历模板。 scikit-learn (sklearn)是Python环境下常见的机器学习库&#xff0c;包含了常见的分类、回归和聚类算法。在训练模型之后&#xff0c;常见的操作是对模型进行可视化&#…

这么坑?3年经验我要25K,结果只给15K····

2023找到一份满意的工作实在是太难了呀&#xff0c;面试了十几家公司&#xff0c;没有一个满意的offer 我的情况 大概介绍一下个人情况&#xff0c;女&#xff0c;本科&#xff0c;三年多测试工作经验&#xff0c;懂python&#xff0c;会写脚本&#xff0c;会selenium&#xf…

北漂5年终上岸,年薪40W并非遥不可及····

关于我&#xff0c;普通二本&#xff0c;非计算机专业&#xff0c;培训出身&#xff0c;北漂&#xff0c;五年多的工作经验&#xff0c;做过外包&#xff0c;中间有过频繁的跳槽经历&#xff0c;手工点点点为主&#xff0c;最近确认了新Offer&#xff0c;远程办公&#xff0c;涨…

C++ Release版软件 程序运行丢失MSVCR120D.dll的解决方法

软件在Debug模式下运行时正常的&#xff0c;但是切换到Release模式下就弹出错误提示&#xff1a;无法启动此程序&#xff0c;因为计算机中丢失MSVCR120D.dll。尝试重新安装该程序以解决此问题。 解决方法如下&#xff1a; 1、项目“属性”---->配置给为“Release”版本----&…

Python数据分析——教育平台的线上课程智能推荐策略(2020泰迪杯数据分析技能赛)

赛题背景&#xff1a;近年来&#xff0c;随着互联网与通信技术的高速发展&#xff0c;学习资源的建设与共享呈现出新的发展趋势&#xff0c;各种网课、慕课、直播课等层出不穷&#xff0c;各种在线教育平台和学习 应用纷纷涌现。尤其是 2020 年春季学期&#xff0c;受新冠疫情影…

SciencePub学术 | 网络通信类重点SCIEI征稿中

SciencePub学术 刊源推荐: 网络通信类重点SCI&EI征稿中&#xff01;稳定检索56年&#xff01;信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 网络通信类重点SCI&EI 【期刊简介】IF&#xff1a;1.0-1.5&#xff0c;JCR4区&#xff0c;中科院4区…

metasploit-framework(msf)——学习与实践

MSF是Metasploit Framework的缩写&#xff0c;是一款广泛使用的渗透测试工具&#xff0c;具有强大的攻击功能。它提供了一个模块化的平台&#xff0c;通过将各种攻击载荷、漏洞利用和辅助工具组装在一起&#xff0c;可用于模拟各种攻击&#xff0c;测试系统安全性&#xff0c;也…

【深度学习】日常笔记2

一直以来其实对调参这个词不太熟悉&#xff0c;后面知道了比如学习率就为超参数&#xff0c;是被调参的对象&#xff1a; ↑标量方程对向量的导数 大概就是↓ 在对矩阵求导时&#xff0c;我们需要使用矩阵微积分中的求导法则。对于一个标量函数 f(x)&#xff0c;它关于向量 x 的…

小程序项目—知识付费系统源码(多版本)

随着互联网的发展&#xff0c;知识付费成为了一种新的商业模式&#xff0c;越来越多的人开始通过知识付费来获取所需的知识和技能。为了更好地管理和运营知识付费系统&#xff0c;需要开发一个管理后台&#xff0c;本文将介绍知识付费系统管理后台的功能和实现。 产品介绍 &am…

云渲染对学生党有哪些好处和挑战?

云渲染是一种依托于云计算的云端服务&#xff0c;用户将本地任务提交到远程服务器&#xff0c;由远程的计算机集群资源进行运算操作&#xff0c;将上传的任务进行云端渲染后再返回本地。云渲染的优势是可以节省本地设备的性能和时间&#xff0c;提高渲染效率和质量。那么&#…