当前位置: 首页 > news >正文

Delphi.cz采访​Embarcadero​捷克共和国办事处经理:理查德·库巴特 - 第一部分

Embarcadero捷克办事处主任理查德·库巴特(Richard Kubát,55 岁)接受了我的采访。

Radek Červinka (RČ):库巴特先生您好,感谢您抽出时间访问 delphi.cz。

一开始:我在某处听说您是一名程序员,从大型机开始,后来才开始销售软件。

理查德·库巴特(RK):

你好。是的,我是一名程序员。大学毕业后,我于1979年加入了数学机器研究所,几乎在该机构工作的整整10年里,我一直在与计算机打交道。他们不是当时所谓的大厅。它们更像是较小的计算机;他们只占了一个小房间。但起初我不得不使用 32 KB 的 RAM 和穿孔磁带而不是磁盘。我非常喜欢它,在八进制系统中,我像鞭子一样数数。汇编程序的调试或调试是通过用繁文缛节密封胶带上的孔并使用特殊的手冲孔打出其他孔来完成的。

然后是第一批硬盘——两个汽车车轮大小的巨型磁带,但那是进步!当时,我从布拉格捷克技术大学电气工程系的 Ing. Karel Müller, CSc. 博士那里获得了第一台 Pascal 编译器,并用它编写了一个用于设计印刷电路图案的支持技术系统。这就是我对帕斯卡的热爱开始的地方。

研究所的设备逐渐得到改进,但无论如何,当我在布尔什维克时代购买了一台 AT 型个人电脑(还有人知道它叫什么吗?),带有 LIM 512K 型的额外扩展内存(还记得吗?),在与当局进行了可怕的分析之后,我是 VUMS 中个人电脑的第一个所有者。来自沃科维采 VUMS 大楼众所周知的十楼的大胡子科学家过去常常来看我的电脑,对我说:“你为什么要在这么愚蠢的事情上浪费这么多钱;毕竟,你可以为此拥有一辆新的斯柯达 120?我以年轻的骄傲回答他们:“但这种愚蠢总有一天会让你失去所有的工作!

我离开了VUMS,加入了新成立的Apro合作社,我原本想成为一名应用程序程序员,但命运让我进入了外国谈判代表和业务经理的位置。自从我1990年开始代表Borland以来,就没有时间进行编程了。

RČ: 那么今天呢?你难道不想编写一些东西吗?我想很多曾经编程的人即使在今天也有这种感觉。

RK:是的,编程仍然让我着迷,最重要的是,我想重返与物质的斗争,但我将不再能够以编程为生。成为一名开发人员适合更年轻、更敏捷和更具掠夺性的人,他们能够吸收许多标准、语言和技术,并且经常适应新事物。老年人已经更加保守 - 让我们面对现实:甚至更加懒惰 - 这对进步没有多大帮助。然而,我仍然关注开发世界中正在发生的事情,阅读文章和博客,尝试跟上我的知识并仍然享受它。但程序员列车已经在远处鸣响,你无能为力。

理查德·库巴特

雷:我明白了。那么让我们谈谈现在吧。很长一段时间以来,人们都说 Delphi = Borland,但现在这已经不是事实了(请参阅右栏,了解 Embarcadero 是谁以及它如何进入 Delphi)。但我更感兴趣的是客户如何接受这种变化以及他们是否已经考虑到了这一点?

RK:好问题,但很难回答。Borland品牌自上世纪80年代末以来一直出现在我们的市场上。自从1990年我开始担任其在我国领土的官方代表以来,这个名字就足以“烧”进很多人的大脑。更改公司名称通常会适得其反,最终 Borland 也经历了这一过程:我指的是 Borland - Inprise - Inprise/Borland - Borland/Inprise - Borland.com 时期 - 然后再次回到 Borland。从我的角度来看,这是非常不幸的。Borland 开发工具部门的撤资进一步引起了客户的困惑。首先该部门被称为“Devco”,然后该团队选择了“CodeGear”这个名称,最后该团队被 Embarcadero 收购。目前,Embarcadero 正在更改徽标,并有目的地取消将工具分为名为“CodeGear”(用于开发工具)和“DatabaseGear”(用于数据库工具)的组。它成为一家拥有主导 All-Access 的一系列产品的公司 - 所有这些产品都被称为 Embarcadero。

因此,毫不奇怪,在所有这些变化之后,客户常常不知道我们的名字是什么 - 这对我们没有多大帮助。此外,“Borland”的发音很好,但“Embarcadero”对于斯拉夫人来说却是一个绕口令,因为斯拉夫人经常会结结巴巴地结巴。但往往它甚至达不到这个称号。他只是用 google 搜索 Delphi 或 InterBase 供应商,没有研究公司名称,然后打电话给我们说:“我想从你们那里购买 Borland 的升级版。”

Embarcadero 不喜欢我们仍然被称为“Borland s.r.o.”,但我们是与 Borland Software Corporation 的合资企业,而且我们在销售 Borland 工具方面仍然非常成功,所以我并不急于改变名称姓名。我觉得合资企业有某种优先权。但另一方面,我也明白,这对于以供应商Delphi和InterBase的名义澄清整个情况没有多大帮助。我想将这两个办公室彼此分开,我也计划这样做,但从经济上和“政治上”(考虑到最近 Micro Focus 收购了 Borland)来看,目前的安排对我们来说更有利。在公司内部,我们有两个或多或少独立的部门来照顾 Embarcadero 和 Borland 客户。我本人负责 Embarcadero,而对于 Borland 集团,我只担任董事/所有者并负责管理财务 - Borland 部门负责其余的事情。

例如:Embarcadero DelphiEmbarcadero C++BuilderEmbarcadero RAD StudioEmbarcadero InterBaseEmbarcadero JBuilder ...但这些产品目前仍由“Borland s.r.o.”(即一家捷克本地公司)销售。唷!

RČ:我希望它能及时平息。就我个人而言,我完全理解我们州对分裂的犹豫。

Borland和微软之间的嫉妒又如何呢?我曾经感受到他们之间的紧张关系(例如,参见安德斯·海尔斯伯格行动)。但近年来,在我看来,争论已经结束了。这只是我的感觉,还是已经解决了关系甚至某种合作?我问这个问题是因为 Case Study MS 中也有一个 Delphi Prism 案例研究,听起来非常积极,这让我个人感到惊讶。你怎么看?

RK:Borland公司的创始人Philippe Kahn为了提高Borland的形象而将穿着熨烫西装的比尔·盖茨推入游泳池的日子已经过去了。早期,Borland 试图在商业应用领域与微软竞争,这是一场漫长而持久的战争,其症状多种多样——互相压价、集思广益等。那个时间已经过去了。微软在操作系统领域占据主导地位,并且理所当然地欢迎任何Windows支持。这就是为什么今天Embarcadero工具开发人员和 Windows 开发团队之间建立了丰富而牢固的关系- 这对双方来说都更有生产力。此外,开发人员工具并不是微软的主要收入来源。平台和 Office 更有可能携带资金。安德斯偶尔会在内河码头会议上发表自己的贡献,在那里他仍然可以见到老朋友。

Delphi Prism在 MS 案例研究中占有一席之地,可能是因为它支持 .NET 3.5 和 4.0 平台的最新功能,并且与其他 .NET 语言和开发环境相比添加了一些额外的功能。将Delphi 程序员引入.NET 平台是Microsoft 的一项战略性业务考虑。全世界有数以百万计的人。而且Delphi Prism也不是市场上的新人:它实际上是RemObjects产品的第三个版本,因此它是一个成熟稳定的作品;没有1.0版本。它在 Visual Studio Shell 下运行 - 那么为什么不支持它呢?

RČ:这仍然是一种奇怪的感觉,但就我而言,Delphi Prism - 就像 Delphi for PHP 一样,并不完全是Embarcadero的作品,而是与上述公司 RemObjects 合作创建的。我个人认为,不要每次都不惜成本去开发自己的解决方案,而是与已经拥有高质量解决方案的国外公司合作开发产品,这是一个合理的解决方案。

RK:没什么可补充的。也许只是因为 Delphi for .NET 的概念在 2007 年版本之前一直是 Studio 产品的一部分,但并未被开发社区完全接受。Borland 的初衷主要是为开发人员提供从 Win32 到 .NET 架构的直接过渡;看来.NET的受欢迎程度会迅速上升,一切都服从这个需求。随着时间的推移,对 Win32 和 .NET 兼容性的要求并不多,同时,为 .NET 开发的应用程序的大部分性能和结构都落在了兼容性的祭坛上。因此,团队决定走另一条路,采用一个与 Win32 的 Delphi 语言不太兼容的工具,但它快速、稳定,提供其他 .NET 工具提供的一切以及更多功能,并将其包含在内在 RAD 研究中。在 Mono 平台以及 Linux 和 Mac OS X 上移植 Delphi Prism 应用程序成为可能。客户的反馈向我们表明,这是对优秀骑师的赌注。Delphi for PHP 产品的情况有所不同。Qadram 的产品吸引了 Embarcadero,因为它基于 Delphi 构建,提供了熟悉的开发环境,但支持另一种非常流行的语言。第一个版本有些原始,但目前正在准备对其进行广泛更新的新版本(已经是第三个版本),目的是使该产品更接近经典的 Delphi 工具。如果您有兴趣,请查看 Delphi for PHP 首席开发人员José Leon的博客。谁知道呢,也许有一天我们会看到 Delphi for PHP 包含在 RAD Studio 中。

RČ:嗯,我向自己保证不再使用 PHP,但除此之外我个人认为 Mono 是一个很好的举措。但德尔福棱镜在国内外的实际销售情况如何呢?

RK:Delphi Prism 是客户主要购买的RAD Studio工具套件(包括 Delphi、Delphi Prism 和 C++Builder)的一部分。我们不太了解客户如何使用 RAD Studio 的各个组件。独立的德尔福棱镜几乎在世界各地都畅销,但欧洲除外,欧洲的销量较低。我不知道原因,但我相信欧洲可能在 .NET 平台上完成的项目较少 - 毕竟这是我们自己的研究表明的。或者旧大陆的客户对 C# 以外的任何东西都不信任。捷克共和国和斯洛伐克在这方面都不例外。

不过,自己购买过Delphi Prism的当地客户对此非常满意。我知道这一点是因为有几个人写信给我们说 Delphi Prism 是一款出色的产品。这种情况并不常见——人们会毫不犹豫地批评,但通常很少表扬。所以我们会牢记每一个赞美。

RČ:这是事实,我也很欣赏每一个赞美,也许是我们的心态让我们更多地批评和咒骂——不幸的是。

但回来了。在欧洲和亚洲,Embarcadero 销售的开发工具比数据库工具多得多,而在美国则相反。即使考虑到目前发布的 Delphi 路线图,其中已经确认下一个版本将允许 Mac OS X 的交叉编译,我仍然有一种感觉,Embarcadero 正试图提高销量。由于 Apple 在美国比在欧洲更受欢迎,因此对我来说,Mac OS X 优先于 64 位似乎是合乎逻辑的(尽管这两项创新正在同时进行)。

RK:数据库工具在这里销售较少,主要是因为 Embarcadero 最近才带着它们进入欧洲市场。在我们国家,管理者也经常用“五个拿着斧头的伐木工比一个拿着电锯的伐木工更快地完成工作,但更便宜”的理念,用仍然相对便宜的劳动力来取代对产品的投资。例如,我需要一个 Embarcadero 工具和一个管理员来管理三个不同的数据库,这一事实的主要优点就在这种想法中消失了 - 相反,部署了三个管理员和三个完全不同且功能较弱的工具,但主要是免费的。它可能会更便宜,这是主要标准。在美洲大陆和西欧,劳动力更昂贵,更值得投资工具——在这里Embarcadero具有明显的竞争优势。而且,数据库的“健康”状况还没有给我们的计算机科学家带来太多麻烦。“数据库负责处理数据,那又怎样呢?” 同时,通过参与数据库维护领域的合同,我们知道数据库在大多数情况下都被忽视,充满了不必要的表格和数据,效率低下,没有人真正了解它们的结构,没有文档或企业数据字典。似乎没有人介意。这只会改变随着时间的发展,第一次崩溃和节省人力的压力。

与欧洲和亚洲相比,美国开发工具的地位较弱,这可能反映在有助于增加对美国客户的销售计划的决策上。所以你的推理可能是正确的,但我无法了解内河码头管理层的负责人。我想 iPhone 现象也是罪魁祸首——我最近没有见过 Embarcadero USA 员工拥有 iPhone 以外的手机。不过,我认为 Mac 在这里也变得非常流行,我的许多朋友和熟人已经扔掉了他们的经典笔记本电脑,买不起新的 Mac。因此,我相信预计在夏末推出的支持 Mac OS X 的 RAD Studio 新版本也将有助于提高我们地区的销量。如果企业要强大、稳定和高效,就必须销售并盈利。这可能就是为什么首先支持 OS X,然后才支持 64 位计算,根据 Embarcadero 技术专家和产品经理的博客,这是一个更难解决的难题。如果将来支持其他处理器,正如最新的“Delphi 路线图”(ARM)提到的那样,那么延长新编译器处理时间的决定肯定是正确的。

RČ:只是为了完整性:虽然每个版本都有一个驱动程序(即在下一个版本中它是 Mac OS X),但开发也在 Delphi 的其他部分(RTL、VCL 或 IDE)中进行,此外还开发其他子项目( 64 位,另一个平台)。

宣布的 Linux 未来编译也与此相关。我不明白,Kylix 在商业版和开放版中有多成功?您预计会对这个版本产生浓厚的兴趣吗?

RK:Kylix 对 Borland 抱有很高的期望,但该项目最终不得不停止。这项投资没有得到回报,主要是因为 Linux 社区使用不同的商业模式,并且事先不想为许可证支付任何费用。这就是为什么我们的商业版 Kylix 在专业版中销售了数百个许可证,在企业版中销售了多达一百个更昂贵且功能更齐全的许可证。然而,如果我没记错的话,有超过一万个下载的“开放”版本。我们知道许多开发人员至今仍在使用 Kylix。但这需要有一点黑客精神并摆弄安装;每个 Linux 发行版都略有不同,发行版来来去去,很难跟上所有这些频繁的变化。

RČ:告诉我一些有关的事情。我在 Linux 中编写了一个大型开源 GUI 项目,但它确实不好玩(但这主要不应该归咎于 Kylix)。

RK:嗯,当新的 Delphi 交叉编译到 Linux 时,我会对兴趣的增长感到惊讶——我希望这会是一个惊喜。多层应用程序服务器端的 Linux 支持可以吸引更多客户。但我已经太老了,无法相信客户会仅仅因为 Linux 支持就从我们这里抢走许可证。毕竟,Delphi 主要在 Windows 下运行,而且它也不是免费的。这是Linux人们可能对交叉编译的可能性嗤之以鼻的两个关键论点,因为对于他们中的顽固分子来说,Windows是一个难以逾越的道德障碍。现在我很高兴自己犯了错误,但我看到了 64 位编译器的发布带来了更多的商业潜力。

RČ:事实上,为 Apache 编写如此优雅的模块的可能性在其他任何东西中都是不可能的。这并不是 Kylix 所做的唯一服务器事情,尤其是在版本 3 中他很擅长。

相关文章:

Delphi.cz采访​Embarcadero​捷克共和国办事处经理:理查德·库巴特 - 第一部分

Embarcadero捷克办事处主任理查德库巴特(Richard Kubt,55 岁)接受了我的采访。 Radek Červinka (RČ):库巴特先生您好,感谢您抽出时间访问 delphi.cz。 一开始:我在某处听说您是一名程序员,从…...

AI投资或成科技裁员罪魁祸首

最近的科技裁员让许多人对这个行业的稳定性产生了疑问。然而,仔细观察发现,这些裁员并不是经济困境的迹象,而是科技公司为了重新调整优先事项并投资未来而进行的战略举措。科技行业正投入数十亿美元用于人工智能(AI)&a…...

解读BEVFormer,新一代自动驾驶视觉工作的基石

文章出处 BEVFormer这篇文章很有划时代的意义,改变了许多视觉领域工作的pipeline[2203.17270] BEVFormer: Learning Birds-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers (arxiv.org)https://arxiv.org/abs/2203.17270 BEV …...

【React教程】(1) React简介、React核心概念、React初始化

目录 ReactReact 介绍React 特点React 的发展历史React 与 Vue 的对比技术层面开发团队社区Native APP 开发 相关资源链接 EcmaScript 6 补充React 核心概念组件化虚拟 DOM 起步初始化及安装依赖Hello World React React 介绍 React 是一个用于构建用户界面的渐进式 JavaScrip…...

云计算中的弹性是什么?

云弹性是指当客户需求增加或减少时,自动从数据中心配置和取消配置资源。这使得云资源(包括计算、存储和内存资源)能够根据需求变化快速重新分配。CPU/处理、内存、输入/输出带宽和存储容量等计算资源可以根据需要增加或减少,而不会影响系统性能。 它旨在…...

Vue3基础:pnpm是什么?npm和pnpm的区别?如何使用pnpm?

pnpm 是一个流行的 JavaScript 包管理器,类似于 npm 和 yarn。它是 performant npm 的缩写,意在表明它是一个更高效的 npm 替代品。pnpm 的主要特点和优势包括: 高效的存储空间使用 pnpm 使用称为“内容寻址存储”的机制来存储 npm 包。这意…...

vue中父组件直接调用子组件方法(通过ref)

目录 1、vue2 中,父组件调用子组件的方法 2、vue3 中,父组件调用子组件的方法 1、vue2 中,父组件调用子组件的方法 在Vue 2中,父组件可以通过使用ref属性来引用子组件的实例,然后通过该实例调用子组件的方法。 首先…...

Gunicorn性能优化:提升Python Web应用的服务效率

在Python Web开发中,Gunicorn作为WSGI HTTP服务器,常常作为Web应用(如Django或Flask)与反向代理或负载均衡器之间的桥梁。为了充分发挥其性能,本文将提供一些实用的Gunicorn配置建议。 Gunicorn架构 Gunicorn采用了预…...

如何使用ssh key免密码登录服务器?

以下是使用密钥对免密码登录服务器的具体指令操作步骤: 步骤一:生成密钥对 在本地电脑上打开终端或命令提示符,运行以下命令生成密钥对: ssh-keygen -t rsa -C "your_emailexample.com" 该命令会提示您选择保存密钥…...

macos Android平台签名证书(.keystore)

一、申请appid的使用说明(有appid的请忽略申请appid) 创建应用 申请的appid在源码视图填写后会自动生成一个对应的包名 ⚠️注意:申请appid的时候应用名称和项目名称保持一致。 二、 Android如何使用自用证书进行打包 1.找到安装jdk的路径…...

Kotlin快速入门系列2

Kotlin的基本数据类型 Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是,字符不属于数值类型,是一个独立的数据类型。 Java和kotlin数据类型对照如下: Java基本数据类型 Kotlin对象数据类型 数据类…...

单片机之keil软件环境搭建

简介 Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。     目前软件对中文的支持不友好,不建议安装网上的一些汉化包…...

数学公式OCR识别php 对接mathpix api 使用公式编译器

数学公式OCR识别php 对接mathpix api 一、注册账号官网网址:https://mathpix.com 二、该产品支持多端使用注意说明(每月10次) 三、api 对接第一步创建create keyphp对接api这里先封装两个请求函数,get 和post ,通过官方…...

MySQL原理(二)存储引擎(1)概述

一、存储引擎介绍 1、概念: (1)MySQL中的数据用各种不下同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎…...

微信小程序canvas画布如何解决在for循环绘制图像显示不全的问题

如下所示&#xff0c;在for循环中绘制图像&#xff0c;由于onload函数加载图像是异步执行&#xff0c;会导致显示不全所有图片的问题。 for(var a0;a<2;a){ var img canvas.createImage()img.src product_image[items[a]]img.onload ()>{ctx.drawImage(el,0,h,i…...

Python计算机二级/Python期末考试 刷题(一)

收集了一些经典Python计算机二级和Python期末考试题库 整理不易&#xff0c;大家点赞收藏支持一下 祝大家计算机二级和期末考试都高分过 目录 一、填空 二、选择 三、程序设计 一、填空 1.序列元素的编号称为索引&#xff0c;索引值从【1】开始&#xff0c;访问序列元素时将…...

最新GPT4.0使用教程,AI绘画-Midjourney绘画,GPT语音对话使用,DALL-E3文生图+思维导图一站式解决

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画&#xff0c;文档对话总结DALL-E3文生图&#xff0c;相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚至也可以和…...

【JavaScript】两种方法实现继承

JS继承-ES6-基于 class 实现继承 mdn 类 阮一峰 ES6-class mdn-super ES6中推出了class类,是用来创建对象的模板。 class可以看作是一个语法糖,它的绝大部分功能&#xff0c;ES5 都可以做到&#xff0c;新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已…...

张维迎《博弈与社会》笔记(3)导论:一些经济学的基础知识

这篇的主要内容介绍了经济学的基础知识吧。 经济学、社会学、心理学的区别 经济学与社会学的区别与共同点 经济学一般是从个人的行为出发解释社会现象&#xff08;from micro to macro&#xff09;。社会学的传统方法则是从社会的角度来解释个人的行为&#xff08;from macro…...

随机生成UI不重叠

注释 简单的随机生成UI且不发生重叠&#xff0c;可以修改算法进行更深入的探索 using System.Collections; using System.Collections.Generic; using UnityEngine;public class CellInfo {/// <summary>/// 物体位置/// </summary>public Vector2 pos;/// <s…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...