首页
学习
活动
专区
圈层
工具
发布

面向对象的代码风格(上)

面向对象代码的形式 从面向对象代码的特性,在实际中我们可以得到几个典型的代码形式:一是名词化建模;二是充血模型和失血模型;三是高度易用性API。...在网络上,这两种模型的争论非常激烈,依我来看,失血模型是不符合“封装”这个面向对象特征的。...另一方面,失血模型是面向对象的一种有益补充,让面向对象编程方法,吸收结构化编程的优点。 最后,说说API易用性问题。...面向对象的API的学习,基本上只要看手册就行了,而那些不是类库的API,既要看例程学习使用顺序,又要查手册看参数列表含义。 第二个传统API学习的困难,在于参数的数量。...所以,在API易用性上,面向对象基本完胜过程式函数,除非这是一个非常明确的无状态逻辑,如很多数学运算。 感谢大家的阅读,如觉得此文对你有那么一丁点的作用,麻烦动动手指转发或分享至朋友圈。

1.5K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    面向API的AI:AI辅助SDK生成技术

    传统上,SDK 生成一直是一个手动且耗时的过程。然而,人工智能的最新进展为自动化 SDK 创建开启了新的可能性。 人工智能在 SDK 生成中的一个主要优点是它能够处理单调、重复的任务。...通过利用 API 副驾驶,这系列复杂的 API 交互被简化为结构化和可执行的格式。...一个相关的问题是“幻觉”,即 AI 生成语法正确的代码,但与底层逻辑或 API 文档不一致。例如,AI 可能会误解 API 端点或创建看似功能齐全但实际上完全不可用的函数。...由于 SDK 生成通常需要处理大型代码库,因此 AI 当前的令牌限制阻止它在一遍中生成完整的 SDK。 3. 安全问题 AI 模型是在大量现有代码上训练的,其中包括安全和不安全的示例。...但是,未来的一个重大发展是将面向工作流的规范(如 Arazzo)集成到 API 设计和使用中。

    1K10

    Python如何设计面向对象的类(上)

    Python是一门高级语言,支持面向对象设计,如何设计一个符合Python风格的面向对象的类,是一个比较复杂的问题,本文提供一个参考,表达一种思路,探究一层原理。...目标 期望实现的类具有以下基本行为: __repr__ 为repr()提供支持,返回便于开发者理解的对象字符串表示形式。 __str__ 为str()提供支持,返回便于用户理解的对象字符串表示形式。...__bytes__ 为bytes()提供支持,返回对象的二进制表示形式。 __format__ 为format()和str.format()提供支持,使用特殊的格式代码显示对象的字符串表示形式。...@classmethod的用法是:定义操作类,而不是操作实例的方法。常用来定义备选构造方法。 @staticmethod其实就是个普通函数,只不过刚好放在了类的定义体里。...但是,如果为不存在的实例属性赋值,会新建实例属性,类属性不会受到影响,self.typecode拿到的是实例属性的typecode。

    1.3K30

    面向接口编程的好处-介绍API数据接口的好处!

    可翻译为界面也可翻译为接口,翻译为接口的由来应该是从电器的插口而来(未做考证)。通俗说法:接口就是用来连接而开放的入口。大致有这些类型的接口:硬件接口、用户界面(UI)、软件接口、面向对象接口。   ...应用程序API接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大面向接口编程的好处,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。...应用程序接口是一组数量上千、极其复杂的函数和副程序,可让程序员做很多任务作面向接口编程的好处,譬如“读取文件”、“显示菜单”、“在视窗中显示网页”等等。...,数据平台提供各种针对不同类型的企业或创业者需要的数据,针对性比较强,可以逐一进入去根据自身需求,选择对应的数据api接口。   ...98数据致力于打造高质量API,除了自身的数据外,来自合作伙伴的各类API数据也是经过慎重的筛选,接口的质量和稳定性比较好,适合对接口质量和稳定性有较高要求的开发者。

    1.8K10

    面向未来的跨界开发技术(上)

    本文是我在“重庆前端交流会(渝 FE )”上的演讲,整理分享出来,希望能对更多人有帮助,以及激起更大范围的讨论。...“面向未来的跨界开发技术”是一个非常庞大的话题,为了能够稍微具体一点来讨论,我想分解为两部分来讲。 首先是“面向未来”。何谓面向未来,如何面相对来?...在《松本行弘的软件世界》中,他认为100年后的编程语言,存在无限种可能性,技术上是无法预测的(可能语音对话或者脑波输入?) 预测20年后的编程语言倒是可以试一试。...我从 PYPL 上找到了下图,图中显示了十几年来一些编程语言的“有名程度”的变化值。...JavaScript 代码”的方式更固化,风格上不讨人喜欢。

    2.7K10

    【Java】面向对象的特征之一:封装(上)

    封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开的接口和对象进行交互(对类进行包装,将一些细节隐藏起来,提供一些公开访问的东西就可以)。...3.访问限定符 访问限定符:管当前修饰的字段或方法的访问权限 访问限定符有哪些?...他们范围中的包的是什么? 4.包 1.什么是包? 包:为了更好的管理类,把多个类收集在一起,成为软件包。同一个类也可以根据不同属性再次进行组合。包的本质就是文件夹。...我们要使用这个类就要将他们的路径写出来。 推荐第一种,第二种写的有点长 推荐第一种:指定导入的类名,为什么? 2.如果在不同的包中有相同的类的情况: 如果遇到相同类不同包,java.util....*这样写法无法使用 ; 你使用的时候也不知道使用的是这个包的哪一个类 ; 也可以使用import static导入包中的静态的方法和字段 import static java.lang.Math.*

    38110

    Python 工匠:写好面向对象代码的原则(上)

    花下猫语:今天继续给大家分享一篇好文章,有助于 Python 进阶的。Python 是一门支持面向对象的语言,但它跟典型的面向对象语言不完全相同。如何在 Python 中写出良好的面向对象代码呢?...class Post: """HN(https://news.ycombinator.com/) 上的条目 :param title: 标题 :param link: 链接...这个脚本基于面向对象的方式编写(换句话说,就是定义了一些 class ?),可以满足我的需求。...在使用了一段时间之后,用户(还是我)觉得每次抓取到的内容有点不合口味。我其实只关注那些来自特定网站,比如 github 上的内容。...HNTopPostsSpider 类的代码,只需要不断在它的基础上创建新的子类就能完成新需求。

    1.2K20

    面向函数编程:关于函数式组件、dialog的api化

    对于大型应用程序,在使用函数式组件之后,你会看到Dom的渲染,更新会有重大改进 我们为什么要做dialog的api化这件事 dialog的api化等于是基于面向函数式编程的思维方式写代码,但是api化不等于实现函数式组件...首先是解决组件之前的依赖问题,组件间肯定是不能相互依赖的,因为不管是react还是vue,都应该遵循组件化的思想,那么在组件化思想中,非常重要的一点就是委托调用。...为什么要委托调用 即开发者A负责开发组件a,开发者B负责开发组件b,组件a与b之间在业务上构成父子关系,但是我们再设计组件的时候,需要把a,b设计成平行关系,即实现数据和业务的解绑和松耦合, 只有在这个前提下...回调事件回传开发者A,开发者A在callback中获取他想要 的response继续自己的业务开发。...也可能是传进来的已经实例化的对象的props 反正就是props // UserOnClose=props.onClose; //这个UserOnClose一定是外面定义的onClose来负责关闭后刷新页面等操作

    68920

    API Gateway Kong在Rainbond上的部署

    什么是Kong Kong是一个可扩展的开源API平台(也称为API网关,API中间件或微服务服务网格)。Kong最初是由Kong Inc....(以前称为Mashape)实现的,用于为其API Marketplace维护、管理和扩展超过15,000个微服务,这些微服务每月产生数十亿个请求。...技术上讲,Kong是在Nginx中运行的Lua应用程序,并且通过lua-nginx-module实现。...Kong应用怎么制作 在Rainbond上,可以通过环境变量进行配置: 可以通过在kong.conf文件中添加以下条目来包含目标文件: 对于更复杂的配置方案,例如添加整个新 server块,可以使用上述方法...前缀为的条目nginx_admin_将注入到server处理Kong的Admin API端口的block指令中。

    1.8K20

    类的优雅与对象的灵动:面向对象编程精粹(上)

    1:面向过程与面向对象的初步认识 在之前呢,我们有了解过,C语言是一门面向过程的编程语言,关注的是过程,分析求解出问题的的步骤,通过函数调用逐步解决问题.这就好比生活中我们去洗衣服,会经过如下步骤,每一步该干啥...而C++是基于C语言,是一门面向对象的编程语言,更侧重于对象,将一件事情拆分成不同的对象,靠对象之间的交互去完成这件事.还是拿洗衣服的例子来进行类比. 在洗衣服这件事中有几个对象呢?...PS: class的默认访问权限为private,struct的默认访问权限为public(因为struct为了兼容C语言) 访问限定符只在编译时有用,当数据映射到内存后,没有任何访问限定符上的区别.... 5.4:封装 面向对象有三大特性:封装、继承、多态 在前期,我们更多的是涉及封装的特性,继承与多态的特性等到后期博主在具体讲解,那么什么是封装呢?...好啦,家人们,关于类和对象(上)这块的相关细节知识,博主就讲到这里了,如果uu们觉得博主讲的不错的话,请动动你们滴滴给博主点个赞,你们滴鼓励将成为博主源源不断滴动力!

    14210

    面向低功耗AI芯片上的神经网络设计

    【GiantPandaCV导语】这篇文章为大家介绍了一下面向低功耗AI芯片上的神经网络设计,随着这几年神经网络和硬件(CPU,GPU,FPGA,ASIC)的迅猛发展,深度学习在包括互联网,自动驾驶,金融...感兴趣的同学可以了解一下有关如何面向AI芯片来设计神经网络。 一、目前算法和硬件co-design的一个大背景 从硬件方面来看,我们都知道,深度神经网络中的计算都是大量的稠密型运算。...然后在看看看算法和这些硬件是怎么结合的。 早期的代码都是跑在CPU上的,比如说,我们知道的LeNet,那会GPU并不像现在这么盛行。直到ImageNet的冠军Alex把网络跑到了GPU上。...其中TPUv1采用了大量的乘法单元,有256x256个8位乘法器。片上有28MB的缓存,能够存储网络的参数和输入。...参考资料 http://www.rle.mit.edu/eems/wp-content/uploads/2017/11/2017_pieee_dnn.pdf 干货 | 地平线:面向低功耗 AI 芯片上视觉任务的神经网络设计

    1.8K61

    面向价值编程:那些年在Coding质量上走过的路

    而对于引入的CodeReview里的实践规则来说,我认为重点是关注宏观上的设计。...即使厨房里的锅或者铲子放的位置有点乱,也不是难以接受——这就是宏观上的整洁,微观上的小糟糕;而如果我们厨房里叠着一个干净的床单,卧室里有一个锅,就算他们摆放得再整齐,这也违反了宏观的整洁,即使在微观上来说他们很整洁...而如今我们用FlinkSQL则完全不用关注这些底层的细节,我们只需关注数据从哪来,怎么做业务处理,然后落哪儿去。这就是老生常谈的声明式编程,而不是面向过程编程。...同样的思想,也体现在K8S的声明式API上,写好配置声明然后提交,就等资源创建就完事了。...但总有一些核心的代码、经常被大家使用库、框架需要干净整洁的代码与API设计,它们往往位于项目的底层,但却默默的支撑着在上面发展的业务。

    20310

    用API优先和API模拟打破软件交付关键路径上的依赖

    本文探讨了应该在哪些地方使用 API 模拟才能产生最大的影响,并提供了一个模型来估算采用 API 模拟和 API 优先的开发方法所能带来的回报率。...本文将探讨在哪些地方使用 API 模拟可以产生最有效的影响,并提供了一个模型用于估算 API 模拟和 API 优先开发模式的回报率。...2 转向 API 优先开发模式以及 API 模拟案例 企业软件行业正在从单体系统转向部署在私有云或公有云上的分布式微服务架构。...这种架构转变推动了 API 优先开发模式的发展,不同的开发团队通过 API 来定义业务契约。 在实现与特定 API 耦合的特性之前先定义好契约,让团队能够并行开发 API 的生产者和消费者。...5 在关键路径上使用 API 模拟 我们已经看到 API 模拟适用于有两个开发团队相互依赖的场景,对于需要多个团队一起开发新产品或新功能的项目,也同样适用。

    58020

    面向API开发者的智能聊天机器人解析

    一、技术背景:从工具到生态的演进智能聊天机器人的规模化落地,依赖于大模型 API 生态 + 云基础设施的双重成熟:OpenAI API 的技术突破:相较于早期的规则式机器人(需手动编写所有对话逻辑),OpenAI...的 API 提供了 “通用对话能力”—— 基于 GPT 系列预训练模型,支持零样本 / 少样本学习,无需针对每个场景单独训练,大幅降低开发门槛。...云雾平台的技术支撑:作为国内合规的云服务平台,其核心优势在于:低延迟接入:通过国内节点部署,API 调用延迟控制在 100-300ms,满足实时对话需求;高可用性:采用多区域容灾备份、负载均衡架构,服务可用性达...,微调阶段适配对话场景,确保回复的连贯性与相关性;API 参数优化:代码中engine="davinci"选择的是 GPT-3 系列中能力最强的模型(适用于复杂对话),若需平衡成本与效率,可选用curie...合规与隐私:数据脱敏:用户输入中的手机号、身份证号等敏感信息,需先脱敏(如替换为 “*”)再传入 API;内容审核:利用云雾平台内置的内容安全接口,对机器人回复进行二次审核,避免违规内容。

    33921

    在Ubuntu上快速搭建基于Beego的RESTful API

    最近在研究Go,打算基于Go做点Web API,于是经过初步调研,打算用Beego这个框架,然后再结合其中提供的ORM以及Swagger的集成,可以快速搭建一个RESTful API的网站 下面是具体做法...创建api项目并运行 直接使用bee工具创建一个简单的RESTful API项目是个不二的选择,假设我们的项目名字叫testApi,那么只需要执行: bee api testApi 那么程序就会创建对应的文件在目录...修改代码,实现ORMapping 如果我们来到testApi项目文件夹,会看到类似MVC的结构,不过由于Web API不需要真正的View, 所有view文件夹被Swagger替换。...下面我们要新建一个Student对象,并实现对Student增删改查的Web API。...并且可以通过调用API来完成对student表的CRUD操作。

    76510
    领券