自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1146)
  • 资源 (3)
  • 收藏
  • 关注

原创 2024年软件推荐清单-每一款都能提升你的工作效率

还有大量可通过 Ollama 使用的 LLM。它还创建了一个简单的系统,以进一步扩展软件的可用性,包括用 Lua 编程语言编写的插件。从最基本的层面上讲,IDE 是一个文本编辑器,上面堆放了一堆额外的东西,使软件能够理解各种编程语言以及如何呈现它们。Warp 是一款基于 Rust 的现代终端,内置 AI,因此你和你的团队可以更快地构建出色的软件.超快的 Neovim 配置提供可靠的默认值和漂亮的用户界面,增强你的 Neovim 体验。我在日常生活中遇到的所有事情,以及想要记住的事情,最终都会被保存在我的。

2024-07-22 11:09:57 2

原创 四大能力三项原则为K8s集群的安全性保驾护航

通过这些设置,名为dev-team的角色就可以访问属于apps API组的部署资源,并执行get操作来检查资源的信息和状态。Akamai Guardicore Segmentation则正是填补这一技术空白的微分段解决方案,以高度适应Kubernetes集群的拓展能力、非侵入性特点,精细化监测Kubernetes集群等基础架构的安全状况,并及时将攻击行为扼杀于风险扩散早期。机密的创建与使用敏感信息的Pod无关,相反,我们需要将敏感信息安全地存储在单独的etcd存储库中,并在Pod需要时将其提供给容器。

2024-07-22 10:29:59

原创 十倍提升API性能的方式

在讲解方法之前,先对API做个简单的介绍。API,Application Programming Interface,翻译为:应用程序接口,它是一种允许两个软件组件使用一组定义和协议相互通信的机制。比如,手机上的天气预报软件,它通过 API 与远程气象系统“交互”,获取天气相关数据,最后再将数据展示在手机上。如下图:软件A通过API与软件B进行交互。缓存连接池异步N+1问题分页JSON序列化压缩payload精简log等。

2024-07-22 09:51:36 829

原创 利用主数据改进数据分析的重要性

绘制一个强大的仪表板当然是一项伟大的工作,但如果您使用正确的数据,最终结果会更好!“给我一个足够长的杠杆和一个支点,我就能撬动整个世界”这是阿基米德的名言。如果我们想把它转化为现代数据科学世界,它应该是“给我一个强大的主数据,我就能构建所有可能的分析”。在接触数据科学时,许多人专注于数据分析、数据可视化和数据收集,而忘记了整个数据科学的一个基本组成部分:主数据。您可以获得公司的所有数据,但是如果主数据质量不高,成功的可能性就很低。您最终可能会得到错误的结果,甚至更糟的是,使用不可靠的数据。

2024-07-22 09:34:04 161

原创 使用 Springboot + Nginx 的 http_secure_link_module 实现图片防盗链在 Vue 展示

本次方案通过引入 Nginx 的 http_secure_link_module 模块实现了图片防盗链功能,增强了图片资源的安全性。在配置方面,我们使用 Yaml 文件来管理关键配置信息,包括图片域名和 Nginx 的安全链接密钥。通过在 ImageController 类中读取这些配置,生成带有令牌和过期时间的图片 URL。在 Vue 端,我们根据配置的域名来完整地构建图片的访问地址。整个方案具有良好的灵活性和可扩展性,能够根据实际业务需求进行调整和优化,有效保护图片资源的合法访问和使用。

2024-07-21 10:06:09 122

原创 云音乐服务端大规模自动化升级实践

Sidecar 模式是一种常见的微服务架构模式,它通过在主应用程序旁边部署一个辅助应用程序(称为 Sidecar),来扩展主应用程序的功能。Sidecar 模式允许您在应用程序旁边添加更多功能,而无需额外第三方组件配置或修改应用程序代码。此文中,我们取更为广义的Sidecar定义,将JavaAgent等作为一个辅助应用程序看待,也被视为Sidecar模式的一种实现方式。Sidecar 模式优势&特点可扩展性:通过添加 Sidecar 应用程序,可以轻松地扩展主应用程序的功能。

2024-07-21 09:51:46 736

原创 多模态AI:概念、用例、优势、挑战及发展未来

在少数情况下,模型是“原生多模态”的——专门为处理多种数据类型而构建的——Embedding通过一个称为“早期融合”(Early Fusion)的过程同时发生,该过程将来自每种模态的原始数据组合、对齐和处理,使它们都具有相同(或相似)的数学表示。然而,这种方法的实现并不容易,这就是为什么目前存在的许多多模态系统都需要在后期通过一个称为“后期融合”(Late Fusion)——即在每种类型的数据分别进行分析和编码之后——的过程合并来自多个模态的信息。多模态AI系统可以处理比单模式AI系统更广泛的任务。

2024-07-21 09:44:47 80

原创 Java的JSON转换,解析复杂嵌套式的JSON数据

/ {"success":"0"," msgid":"1000001"," msg":"appkey错误或不存在"}String jsonString = "{\"name\":\"张三\",\"age\":18}";String jsonString = "{\"name\":\"张三\",\"age\":18}";String jsonStr= "{\"name\":\"张三\",\"age\":18}";String jsonStr= "{\"name\":\"张三\",\"age\":18}";

2024-07-20 14:52:27 518

原创 分布式 Data Warebase - 让数据涌现智能

通过 Data(数据) - Information(信息) - Knowledge(知识) - Wisdom(智慧)四层金字塔结构,DIKW 模型提供了一个理解它们之间关系的框架。以一个例子来解释 DIKW 模型中的概念:从数据到信息到知识再到智慧,这是智能逐渐升级的过程。这个过程中对数据的理解越来越深入,提取的概念越来越抽象,体现的智能也越来越高级。接下来,本文将详细阐述如何让机器理解数据,从中挖掘智能。首先从数据层讲起,对机器而言,数据就是一堆0和1。机器表达数据的语言是比特。机器虽然能够存储数据,但并

2024-07-20 10:28:29 92

原创 了解垃圾收集算法实现细节

这里对上面的知识点进行简单的总结。安全区域解决何时可以开始垃圾收集(必须 Stop the world 的行为)。记忆集解决 GC Roots 扫描范围问题。写屏障解决卡表维护问题。

2024-07-20 10:21:34 921

原创 分布式系统:分布式架构服务调用

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服 务的输出和输入功能,可以和Spring框架无缝集成。2. Apache Common HttpClient HttpClient 是Apache Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本。和传统的单体架构相比,分布式多了一个远程服务之间的通信,不管是 soa 还是微服务,他们本 质上都是对于业务服务的提炼和复用。

2024-07-20 10:15:12 647

原创 跨域及三种常见解决方案

跨域是浏览器受同源(协议、域名、端口)策略的限制,不允许不同源的站点之间进行某些操作(如发送ajax请求,操作dom,读取cookie),如果不进行特殊配置是不能操作成功的,并且控制台会报如下跨域错误:两个常见的例子:前后端分离的项目联调时,客户端和服务端ip不一致一般前端本地服务启动在localhost:8080上,服务端接口部署在联调服务器上,此时向联调服务器发送请求的话就会发生跨域大型项目中可能需要多个服务,不同职责的服务部署在不同的端口上,甚至多个服务器上在当前网站页面上请求其他服务器或者其他端口

2024-07-19 14:03:46 92

原创 SpringBoot项目Jar包加密,防止反编译

- 加密的配置文件,多个包用逗号分开 -->6. 有密码启动方式,java -javaagent:xxx-encrypted.jar='-pwd= 密码' -jar xxx-encrypted.jar。只需要在启动类的pom.xml文件中加如下插件即可,需要注意的是,改插件时要放到spring-boot-maven-plugin插件后面,否则不起作用。java -javaagent:xxx-encrypted.jar='-pwd=密码' -jar xxx-encrypted.jar。

2024-07-19 13:47:50 623

原创 高并发系统技术实战经验总结

选择适合当前现状的,而不是追求最好的。合适也就是适应当前业务的要求是首位的,不要追求完美与过度设计。针对合适原则,我们有几个考虑方向,人力资源、业务需求、公司资源几个角度考虑。比如当前开发人员只有2个,那么能用单体就用单体架构,微服务都不需要用。业务需求就是满足低频次的数据写入和读取,那么直接读数据库就好,缓存也不需要。

2024-07-19 13:40:21 992

原创 设计一个限流器:四种限流算法详解

限流器是一种用于控制流量的设备或机制,通常用于计算机网络、软件系统或其他数据传输过程中。限流器的主要目的是防止系统超负荷,确保资源分配合理,提高系统的稳定性和性能。网络流量控制: 限制网络流量,防止过度拥塞,确保网络的正常运行。这可以通过设置带宽限制、流量速率限制或连接数限制来实现。API访问控制: 对于Web服务或API,限流器可以用于控制每个用户或每个应用程序的请求频率,以防止滥用或恶意攻击。数据库访问控制: 在数据库系统中,限流器可以用于限制对数据库的并发查询或事务数量,以防止数据库过载。

2024-07-19 11:55:00 845

原创 Python 中窗口操作的完整指南

本指南深入探讨了如何利用 Python 中的各种库来操纵窗口和执行窗口操作。通过 pygetwindow 库,分享了如何获取窗口列表、将窗口置顶、最大化、最小化以及移动到指定位置。pyautogui 库能够获取屏幕分辨率、鼠标位置,并模拟鼠标移动、点击和键盘输入。使用 win32gui 和 win32api 库,了解了如何获取窗口句柄、设置窗口大小、位置、置顶,最大化、最小化,并获取窗口的缩放比例。

2024-07-19 11:39:51 379

原创 Docker容器化部署zookeeper+kafka集群详细步骤

背景介绍:为了测试使用kafka connect插件读取Oracle数据库日志从而达到实时获取Oracle数据库数据变化的目的,而搭建的三个节点的zookeeper+kafka集群,顺便将自己的步骤记录下来加深印象也希望能对大家有些许的帮助。至此,已经完成所有操作,可以通过kafka来进行一些测试了。以上应该有很多可以更加简便的操作或者不对的地方,如有发现还行大家指正,不胜感激。

2024-07-19 10:43:29 953

原创 Firecrawl 把任意网站变为 API 接口

firecrawl 是一种 API 服务,它获取 URL、对其进行抓取并将其转换为干净的 markdown 或结构化数据。我们会抓取所有可访问的子页面并为您提供每个子页面的干净数据。无需站点地图。目前 Firecrawl 开源 3周 的时间,已经有了 7.9K 的 star 数,可以说是一个优秀的项目了。

2024-07-19 10:18:28 580

原创 使用 TiDE 进行时间序列预测

时间序列预测一直是数据科学领域的一个热门研究课题,广泛应用于能源、金融、交通等诸多行业。传统的统计模型如ARIMA、GARCH等因其简单高效而被广泛使用。而近年来,随着深度学习的兴起,基于神经网络的预测模型也备受关注,表现出了强大的预测能力。其中,Transformer模型因其出色的捕捉长期依赖关系的能力,一度被认为是解决时间序列预测问题的利器。但最新研究发现,这些基于Transformer的模型在长期预测任务中,性能并不如人意,反而被一些简单的线性模型超越。

2024-07-19 09:54:40 9

原创 绝不可错过的开源瑰宝

该平台提供了一系列工具和功能,包括邮件模板设计、批量发送、邮件跟踪、自动回复等,以提高邮件营销的效率和效果。依赖管理:确保你的项目环境中安装了必要的依赖库,如 Node.js、Next.js 和 Material-UI,并定期更新这些依赖以保持系统的安全和性能。开源项目管理:对于维护多个贡献者的开源项目,PR-Agent 可以帮助项目维护者更好地管理和合并外部贡献,保持项目的持续改进和更新。CI/CD 集成:与 CI/CD 管道集成,实现 PR 的自动测试、构建和部署,确保每次合并代码都是稳定且高质量的。

2024-07-18 09:49:59 303

原创 基于 PyTorch 的人脸关键点检测

在我们的案例中,我们将使用人脸分类器,你需要下载预训练的分类器XML文件并将其保存到你的工作目录中。同样,在最后一层中,输出通道数应为68 * 2 = 136,以便模型预测每张人脸的68个关键点的(x,y)坐标。在本教程中,我们将使用官方的DLib数据集,其中包含6666张尺寸不同的图像。此外,labels_ibug_300W_train.xml(随数据集提供)包含每张人脸的68个关键点的坐标。在输入图像中检测到的人脸将被裁剪、调整大小为(224,224)并输入到我们训练好的神经网络中以预测其中的关键点。

2024-07-18 09:31:20 699

原创 软件架构风格

将业务逻辑中频繁变化的部分(用户级别、折扣规则、机器学习流程)定义为。

2024-07-17 16:41:41 155

原创 IdsUtils数字ID混淆工具

数字ID混淆器,用于前后端数据通信时候的处理。

2024-07-17 11:48:40 319

原创 微服务开发详解

微服务架构是一种软件开发模式,它将一个复杂的应用程序拆分为多个个独立的、小型的、可复用的服务,每个服务负责一个特定的业务功能。微服务架构有许多优点,例如提高系统的可扩展性、可维护性、可测试性和故障容忍性。但是,微服务架构也有很多问题需要注意,例如如何设计合理的划分服务接口、如何在服务间实现高效通信、如何保证数据一致性等。因此要想成功地使用微服务架构,我们需要遵循一些最佳实践。以下是一些微服务架构的最佳实践,我将尽我所了解的知识给大家进行讲解。本文大纲如下,图片。

2024-07-17 11:22:08 757

原创 K8S 中的 CRI、OCI、CRI shim、containerd

我们以 K8S 创建容器的过程为例,来引申出各个概念。

2024-07-17 10:01:50 353

原创 Kubernetes常见的五大错误及修复方法

调试Kubernetes极具挑战性,但有了正确的知识和工具,开发人员可以有效地识别和解决常见问题。通过了解配置问题、映像提取错误、节点问题以及ConfigMaps和secrets的重要性,开发人员可以为更健壮、更可靠的Kubernetes部署做出贡献。像build这样的工具在交互式调试方面提供了有效支持,进一步弥合了开发和操作之间的差距。随着Kubernetes的不断发展,了解新工具和最佳实践对于成功的应用程序管理和部署至关重要。

2024-07-17 09:55:55 340

原创 多个微信小程序一个用户体系,同一个UnionID

【代码】多个微信小程序一个用户体系,同一个UnionID。

2024-07-16 17:50:41 7

原创 AI生成音乐—从作曲到编曲的全流程体验

本文详细探讨了AI生成音乐的全流程体验,从数据准备、模型训练、音乐生成到编曲和混音。通过实例代码,我们展示了如何利用AI技术生成高质量的音乐作品。尽管AI生成音乐面临诸多挑战,但其发展潜力巨大,未来有望为音乐创作带来更多创新和可能性。

2024-07-16 09:44:33 1055

原创 借助HuggingFace轻松实施一个端到端项目

模型选择和设置:选择和配置一个Hugging Face预训练模型进行情绪分析,确保它满足你的要求。使用FastAPI进行API开发:使用FastAPI创建API端点,实现与情绪分析模型的轻松交互。Docker容器化:使用Docker容器化应用程序,以确保可移植性和跨不同环境的无缝部署。

2024-07-16 09:20:12 695

原创 实战指南:四种调整 Spring Bean 初始化顺序的方案

那好嘛,那自定义呗代码在 META-INF 的 spring.factories 加上配置解释该自定义类MyBeanInit分别继承了和,重写其内部方法提前注册或修改 Bean 定义,在所有其他运行之前执行,允许我们注册或修改初始化应用上下文,在应用上下文刷新之前调用,可以动态地为应用上下文添加属性、或其他配置。在方法中,使用 BeanDefinitionBuilder 创建了两个 AbstractBeanDefinition 实例,分别对应和。

2024-07-15 10:37:12 880

原创 软件架构中的九种耦合形式

没有任何软件系统可以摆脱依赖关系,或者保证即使依赖组件发生变化也不会产生任何影响。软件架构师总是要处理相互连接的组件之间的依赖程度,并尽量减少甚至消除这种影响。耦合是任意架构构件之间的依赖程度。在不同抽象层次上,存在着不同类型的耦合。耦合不仅发生在源代码层面,还发生在基础架构以及其他方面。软件架构师需要了解这些类型,以便在设计这些组件时做出正确决定。我们将根据 ISAQB 软件架构认证课程来了解这些耦合类型。

2024-07-15 10:32:33 450

原创 微服务循环依赖引发惨案

微服务直接不能形成环形调用,否则非常容易出现死锁状态。微服务之间的耦合性非常强,这严重违反了微服务的初衷;这种情况往往是服务之间的调用没有约束导致的,为了方便取到或更新数据,服务之间可以随意的调用,以”微服务“为设计目标的系统会逐渐演变成一个分布式大单体。

2024-07-15 10:21:05 1029

原创 AI Agent满级进化样样精通,昆仑万维等发布通用Agent新框架

近日,昆仑万维携手北京智源人工智能研究院、新加坡南洋理工大学、北京大学等顶尖名校机构,联合提出了迄今为止第一个既能玩多种商业游戏又能操作各种软件应用的AI框架——Cradle。在这个全新的通用计算机控制框架加持下,AI Agent无需训练便能像人一样直接控制键盘鼠标,不依赖任何内部API,实现任意开闭源软件交互。目前,Cradle的论文、项目、代码均已开源。论文地址:https://arxiv.org/abs/2403.03186项目主页:https://baai-agents.github.io/Crad

2024-07-14 16:46:34 7

原创 MongoDB在AI和大数据中的应用

通过本文的讲解,我们深入探讨了MongoDB在AI和大数据中的应用,包括在机器学习中的应用、大数据处理、AI与大数据结合的实践例子以及面临的挑战和解决办法。通过结合代码示例,我们展示了如何使用MongoDB高效地存储和处理大规模数据,并在实际应用中实现推荐系统等功能。

2024-07-14 16:36:19 6

原创 springboot集成mapstruct快速入门指南

这里以成员变量的参数名为依据,如果有嵌套比如 Car 里面有个 CarType 类型的成员变量 carType,其 type 属性 来映射 CarDTO 中的 type 字符串,我们使用 type.type 来获取属性值。这也是其性能比较好的原因之一。MapStruct 就是这样的一个属性映射工具,只需要定义一个 Mapper 接口,MapStruct就会自动实现这个映射接口,避免了复杂繁琐的映射实现。输出结果 {"make":"make","seatCount":1,"type":"type"}

2024-07-13 14:50:15 792

原创 拆解 LangChain 的大模型记忆方案

本文主要聊了安装记忆的基本原理、快速给LLM安装记忆、ConversationBufferMemory、MessagesPlaceholder的使用、对话链ConversationChain的使用和原理。

2024-07-13 14:25:49 776

原创 项目技术研发规范

6)注意,上线不是终点。上线后的一段时间(至少一周内),一定要持续观察自己负责的功能是否正常运行、持续接受用户反馈、通过数据分析来观察新功能的效果,期间有任何问题都需要即时修复处理,并且准备好下一期的改进迭代。4)开发时,遵循团队内部的研发规范,尽量参考现有项目代码的写法,尤其是不要使用和原项目不一致的格式、命名、写法,避免特立独行。5)开发过程中,有任何不明确的地方,不要凭空猜测,及时去联系项目的其他成员或负责人确认。2)上线后,一定要在群内及时同步上线信息,周知相关的成员,如果遇到问题第一时间反馈。

2024-07-13 14:17:50 854

原创 2024年云中AI工程的三大关键趋势

在过去的 20 年,创新为我们造就了众多转折点,于这些转折点处,全新的职业类别得以应运而生。回想一下,2006 年亚马逊网络服务推出后,云端架构师与开发者的职位便顺势出现;伴随 iPhone 和 Android 的兴起,移动开发者成为了崭新的职业角色;当我们积累了充足的数据和计算能力,足以让神经网络运行时,机器学习工程师这一职业就此产生;而后,上述三种趋势相互交汇融合,数据科学家的职业开始引人注目。这些新职业的诞生均是对新兴技术的直接回应,它们不但改变了工作的方式,还塑造了全新的行业标准与需求。

2024-07-13 14:13:44 3

原创 强大的分布式锁框架——Lock4j

*** 自定义分布式锁执行器*/@Component@Overridereturnnull;@Override。/*** 自定义分布式锁key生成器*/@Component/*** 自定义抢占锁失败执行策略*/@Component@Override默认的锁获取失败策略为。

2024-07-12 14:44:51 481

原创 Springboot如何通过配置来决定使用的Web容器

在Spring Boot开发中,选择适合的Web容器至关重要,因为它直接影响到应用的性能和行为。通过Spring Boot的条件配置功能,我们可以根据配置文件中的属性值来灵活地选择Web容器。本文将探讨如何利用Spring Boot的条件配置功能来选择不同的Web容器。

2024-07-12 09:21:22 774

Elasticsearch 8.14.0 搭建自己的全文搜索引擎

Elasticsearch 是一个基于 Lucene 的开源、分布式、RESTful 搜索和分析引擎,它允许你快速地进行全文搜索、实时分析大量数据。Elasticsearch 广泛应用于各种场景,如维基百科、Stack Overflow、Github 等网站的搜索功能。一、环境准备 安装Java环境:Elasticsearch需要Java环境来运行。确保您的机器上安装了Java,并且JAVA_HOME环境变量已正确设置。Elasticsearch 8.14.0 推荐使用的Java版本可以在Elasticsearch的官方文档中找到。 下载Elasticsearch安装包:从Elasticsearch的官方网站下载最新版本的安装包(Elasticsearch 8.14.0)。下载链接通常位于Elasticsearch的下载页面。 二、安装Elasticsearch 解压安装包:将下载的安装包解压到指定目录。 配置Elasticsearch(可选):根据您的需求修改Elasticsearch的配置文件(elasticsearch.yml),例如设置集群名称、节点名称、网络绑定地址等。如果您

2024-07-03

使用Rust搭建Web开发环境

使用Rust搭建Web开发环境是一个涉及多个步骤的过程,以下是一个清晰的介绍,包含了必要的步骤和参考信息: 一、Rust语言简介 Rust是一种系统编程语言,由Mozilla公司的Graydon Hoare在2006年发起。它的设计目标在于解决内存安全等问题,同时提供低级别系统编程的能力。Rust 1.0在2015年正式发布,并因其高性能、可靠性和内存安全等特性而广受关注。 二、Rust在Web开发中的优势 性能:Rust具有出色的性能,能够胜任对性能要求特别高的Web服务。 内存安全:Rust通过丰富的类型系统和所有权模型保证了内存安全和线程安全,使得在编译时就能够消除许多类别的错误。 并发与多线程:Rust的独特所有权系统使得其能够高效地使用多线程并发,这在Web开发中尤为重要。

2024-06-26

Elasticsearch原理解析与性能调优

Elasticsearch 是一个高度可扩展的开源全文搜索和分析引擎,它允许你快速地、近乎实时地存储、搜索和分析大量数据。它通常用于为复杂的搜索功能提供支持,如用于网站内搜索、日志聚合系统以及数据分析应用。Elasticsearch 是 Elastic Stack(以前称为 ELK Stack)的一部分,该栈还包括 Logstash(数据收集和转换工具)和 Kibana(可视化界面)。

2024-06-24

Docker 镜像配置详解

Docker 镜像是一个轻量级、可执行的独立软件包,它包含了运行应用程序所需的所有内容:代码、运行时、库、环境变量和配置文件。Docker 镜像用于创建 Docker 容器。一个容器是从镜像创建的运行实例,它可以运行在 Docker 主机上。镜像:是一个只读的Docker 容器模板,包含启动容器所需要的所有文件系统结构和内容。 简单来讲,镜像是一个特殊的文件系统,它提供了与容器运行时所需的程序,软件库、资源、配置等静态数据,镜像不包含任何动态数据,镜像内容在构建后不会被改变。

2024-06-24

C 语言文件读写操作及完整代码示例

在 C 语言中,文件读写操作是通过标准库中的函数实现的。这些函数主要包括用于打开文件的 fopen(),用于读取和写入文件的 fread() 和 fwrite(),以及用于关闭文件的 fclose()。 在这个示例中,我们首先打开一个 文件用于写入(如果文件不存在,则会创建一个新文件)。我们使用 fprintf() 函数将一个字符串写入文件,然后关闭文件。接着,我们再次打开同一个文件,这次是用于读取,并使用 fgets() 函数逐行读取文件内容,并将其打印到控制台上。最后,我们关闭文件。 请注意,文件读写操作可能会遇到错误,例如文件不存在、权限不足等。在实际应用中,应该添加适当的错误处理代码来处理这些情况。此外,写入文件时要注意不要超过文件的大小限制,并且在读取文件时要注意缓冲区的大小,以避免缓冲区溢出。

2024-06-04

MySQL5.7安装配置详细教程

MySQL 5.7 是一个流行的开源关系数据库管理系统。以下是在不同操作系统中安装和配置 MySQL 5.7 的简单介绍: Windows 系统: 下载: 访问 MySQL 官方网站下载页面。 下载适合 Windows 平台的 MySQL 5.7 Community Server 版本的安装包。 安装: 运行下载的 .msi 安装包。 按照安装向导的提示进行操作,包括选择安装路径、设置 root 用户密码等。 配置: 安装完成后,MySQL 服务会被自动添加到 Windows 服务中。 可以通过 MySQL 命令行工具或 MySQL Workbench 图形界面工具进行进一步配置。 环境变量(可选): 将 MySQL 的 bin 目录添加到系统环境变量 PATH 中,以便在命令行中直接运行 MySQL 命令。

2024-06-04

数据库(MySQL)课程设计

数据库课程设计是一项综合性的实践活动,旨在通过设计和实现一个具体的数据库应用系统,让学生深入理解数据库原理,掌握数据库设计和应用开发技术。针对MySQL数据库的课程设计,通常会包括以下几个阶段: 1. **需求分析**: - 调研特定应用场景或业务需求,明确数据库需要支持的功能和数据。 - 确定系统的用户角色和权限需求。 - 编写需求分析文档,详细描述系统的需求和约束。 2. **概念结构设计**(ER模型设计): - 利用实体-关系(ER)模型来抽象化数据需求。 - 绘制ER图,定义实体、实体属性、实体之间的关系。 - 确定实体的键和关系的类型(1:1, 1:N, M:N)。 3. **逻辑结构设计**: - 将ER图转换为数据库模式,通常是关系模型。 - 定义表格结构,包括表名、字段名、字段类型、主键、外键等。 - 使用规范化理论优化数据库设计,减少数据冗余。 4. **物理结构设计**: - 根据逻辑结构设计,考虑MySQL的特性和存储引擎(如InnoDB或MyISAM),设计物理存储结构。 - 创建索引以提高查询

2024-06-04

轻松构建springboot springcloud脚手架项目

轻松构建 Spring Boot和Spring Cloud微服务脚手架项目能够快速启动和运行,提供了一套完整的开发框架和工具。Spring Boot简化了配置和部署过程,而Spring Cloud提供了一系列用于构建分布式系统的工具和库。这些脚手架项目可以自动化生成项目结构和配置文件,使得开发人员能够更加专注于业务逻辑的实现,而不必花费太多时间在繁琐的配置上。同时,这些脚手架项目也支持多种云平台和部署方式,方便开发人员快速部署和扩展应用。

2024-05-30

C++编程入门教程,C++的缺省参数、函数重载,引用 和 内联函数

C++的命名空间的一些知识点以及关于C++的缺省参数、函数重载,引用 和 内联函数。也相信大家都掌握的不错,接下来博主将会带领大家继续学习有关C++比较重要的知识点——类和对象(拷贝构造函数、赋值运算符重载、const成员、取地址及const取地址操作符重载)。下面话不多说坐稳扶好咱们要开车了。

2024-05-28

前端框架react开发架构入门教程

React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram(照片交友) 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。 Angular1 2009 年 谷歌 MVC 不支持 组件化开发 由于 React 的设计思想极其独特,属于革命性创新,性能出众,代码逻辑却非常简单。Angular.js:出来较早的前端框架,学习曲线比较陡,NG1学起来比较麻烦,NG2 ~ NG5开始,进行了一系列的改革,也提供了组件化开发的概念;从NG2开始,也支持使用TS(TypeScript)进行编程; Vue.js:最火(关注的人比较多)的一门前端框架,它是中国人开发的,对我我们来说,文档要友好一些; React.js:最流行(用的人比较多)的一门框架,因为它的设计很优秀;

2024-05-28

python制作烟花 实现动态烟花

在现实世界中,烟花是由火药和各种颜色的化学药剂组成的。当火药引燃时,它会产生大量的气体和热能,将药剂推向空中。当药剂达到一定高度时,它会受到引力的作用下落,同时将一部分药剂点燃。这个过程会不断重复,最终形成了壮观的烟花效果。 接下来开始具体的代码实现过程,针对重点实现代码进行解析,详情完整代码请看源码实现。烟花效果通常由多个元素组成,包括烟花、粒子、画布等。以下是对代码中关键部分的详细解析: 在计算机中,我们可以使用图形库来模拟烟花的效果。通过控制粒子的位置、颜色和速度,我们可以实现类似烟花的动画效果。 实现动态烟花 为了实现动态烟花效果,我们将使用Python的图形库pygame。首先,确保你已经安装了pygame库。如果没有安装,可以使用以下命令来安装: pip install pygame

2024-02-20

RUST web框架axum快速入门教程

RUST web框架axum的快速入门教程: 1. axum框架概述:axum是一个用RUST编程语言编写的web框架,它是一个高性能、异步的框架,可以让我们更便捷地构建web应用。 2. 环境搭建:在开始使用axum之前,需要先搭建好RUST的开发环境,并安装好axum相关的依赖。 3. 基本概念:了解axum中的基本概念,如路由、请求处理、响应处理等。 4. 实现算法:在axum中实现算法是构建web应用的关键。本节将介绍如何在axum中实现常见的算法,如排序、查找等。 5. 难点解析:在实现算法的过程中,可能会遇到一些关键技术难点,如异步编程、并发处理等。本节将解析这些难点,帮助读者更好地理解和掌握。 6. 结论:通过本教程的学习,读者可以掌握axum的基本使用方法,并在实际项目中应用axum实现web应用的开发。

2024-02-20

python opencv 车牌识别代码

Python OpenCV 车牌识别代码实现报告 一、实现算法 1. 图像预处理:通过灰度化、去噪、二值化等方法对车牌图像进行预处理,提高识别准确率。 2. 车牌定位:采用边缘检测、轮廓识别等技术定位车牌区域,提取车牌位置。 3. 字符分割:将定位到的车牌区域进行字符分割,识别出每个字符。 4. 字符识别:采用深度学习、机器学习等技术对分割到的字符进行识别,输出车牌号码。 二、关键技术难点及结论 1. 图像预处理:在图像预处理阶段,合适的阈值选择和去噪方法是关键。通过实验对比,发现使用 adaptiveThreshold 方法和高斯去噪可以获得较好的预处理效果。 2. 车牌定位:车牌定位的准确性直接影响到整个识别过程。通过实验发现,结合边缘检测和轮廓识别的方法可以有效定位车牌区域。 3. 字符分割:在字符分割过程中,如何准确地找到字符之间的分界线是关键。通过分析车牌字符的形状特征,设计了一种有效的字符分割方法。 4. 字符识别:字符识别是整个车牌识别系统的核心。采用深度学习技术训练识别模型,可以实现高准确率的字符识别。 结论:通过以上关键技术的研究和实验,我们成功地实现了 Python

2024-02-20

数据集分析汇总,文本到图像的 AI 模型

文本到图像的 AI 模型仅根据简单的文字输入就可以生成图像。用户可以输入他们喜欢的任何文字提示——比如,“一只可爱的柯基犬住在一个用寿司做的房子里”——然后,人工智能就像施了魔法一样,会产生相应的图像。 文本生成图像(text-to-image)可以根据给定文本生成符合描述的真实图像,其是多模态机器学习的任务之一,具有巨大的应用潜力,如视觉推理、图像编辑、视频游戏、动画制作和计算机辅助设计。 本篇将简述文本生成图像的数据集,汇总介绍数据集的内容、特点、细节和下载方式等。 一、Caltech-UCSD Bird(CUB-200-2011) 1.1、介绍 CUB-200-2011数据集是CUB-200-2011是CUB-200的扩展版本,这是一个具有挑战性的200种鸟类数据集。扩展版本大致将每个类别的图像数量增加了一倍,并添加了新的零件定位注释。所有图像都使用边界框、零件位置和属性标签进行注释。图像和注释由Mechanical Turk的多个用户过滤。 鸟类物种分类是一个难题,它突破了人类和计算机视觉能力的极限。尽管鸟类拥有相同的基本部分,但不同的鸟类在形状和外观上可能会有很大的差

2024-02-01

Oracle RAC(Real Application Clusters)集群搭建笔记

Oracle RAC(Real Application Clusters)集群的搭建是一个复杂的过程,涉及多个步骤和细致的配置。以下是基于提供的参考信息整理出的Oracle RAC集群搭建的详细笔记: ### 1. 安装前的规划 - **系统规划**:确保所有节点硬件配置相同,操作系统版本一致。建议使用相同的CPU、内存和网络硬件。 - **网络规划**:配置 Public IP、Private IP、DNS以及集群通信所需的特殊网络设置。 - **存储规划**:使用Oracle ASM管理存储,规划好数据文件、归档日志和控制文件的位置。 ### 2. 主机配置 - **Linux主机安装**:在所有节点上安装Linux操作系统。 - **配置yum源**:为了简化安装过程,建议在一台主机上配置yum源,并安装所有必要的依赖包。 - **网络配置**:配置网络,确保节点之间可以通信。 - **存储配置**:创建ASM数据盘,并配置为共享存储。 ### 3. 安装Grid软件 - 在一台主机上安装Grid软件,这是管理集群资源和节点通信的基础。 - 配置 Grid 环境变量,确保 Gri

2024-01-31

linux date命令使用文档

linux date shell中用 date命令对日期进行处理,但怎么获取10分钟之前的时间呢,仔细看了一下help,没有看出对时间的“运算”,有的也就是一些输出格式的描述。但有一 个参数 -d or --date=STRING 其描述是display time described by STRING, not  ‘now’,那这个STRING该怎么写才可以describe我想要的时间呢,使用 n  second(s)/minute(s)/hour(s)/day(s)/year(s) ago  即可,其中n支持负数,那么就变成了之后的时间了。

2024-01-31

MySQL面试题文档,MySQL面试题,包含各种场景和知识点,例如基础查询、连接、聚合、事务、表设计等

真实的MySQL面试题,涵盖基础查询、连接、聚合、事务、表设计等知识点,并具有一定的实际工作场景挑战性: 基础查询: 题目:查询员工表(employees)中薪资高于平均薪资的员工信息。 连接: 题目:查询员工表(employees)和部门表(departments)中所有员工的详细信息,包括员工名、部门名称和部门位置。 聚合: 题目:查询员工表(employees)中薪资最高的员工薪资是多少? 事务: 题目:编写一个SQL事务,实现以下操作:首先,检查员工表(employees)中是否存在员工ID为123的员工;如果存在,更新该员工的薪资;如果不存在,插入一个新的员工记录。 表设计: 题目:设计一个学生表(students)和一个课程表(courses),学生表中包含学生ID、姓名、年龄等字段,课程表中包含课程ID、课程名称、学分等字段。请写出创建这两个表的SQL语句。 索引优化: 题目:给定一个员工表(employees),其中包含员工ID、姓名、邮箱、部门ID等字段。请设计一个合理的索引策略,以提高查询效率。 性能优化: 题目:如何优化以下查询的性能:查询员工表(employee

2024-01-23

详细的程序员简历模板文档,包括个人信息、教育背景、实习经验、项目经验、技能证书、荣誉奖项、自我评价以及求职意向等部分

详细的程序员简历模板文档,包括个人信息、教育背景、实习经验、项目经验、技能证书、荣誉奖项、自我评价以及求职意向等部分。简历应专业、简洁,直接列出相关信息和经验,符合求职简历的标准格式,不需要提供求职信或个人陈述。 一个详细的程序员简历模板文档,包括个人信息、教育背景、实习经验、项目经验、技能证书、荣誉奖项、自我评价以及求职意向等部分: 个人信息: 姓名:(你的姓名) 联系电话:(你的电话号码) 电子邮件:(你的电子邮件) 现居住地:(你的现居住地) 教育背景: 学位:(你所获得的最高学位,如本科、硕士等) 学校:(你曾就读的学校) 专业:(你的专业) 毕业时间:(你的毕业时间)

2024-01-23

Vue面试所涉及的基础知识,各个大厂的经典面试题集合

Vue面试所涉及的基础知识 Vue(读音为“view”)是一款用于构建用户界面的渐进式JavaScript框架。它具备简洁的API、易于上手、灵活性强等特点,使得开发者可以快速地开发出高效、交互丰富的网页应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。此外,Vue还提供了一个通过官方维护的库和包进行全栈开发的能力。 请解释MVVM、MVW和SPA的概念,并说明它们在Vue中的应用。 (1)MVVM(Model-View-ViewModel):是一种软件设计模式,用于实现用户界面和业务逻辑的分离。在MVVM模式中,Model代表数据模型,View代表视图,ViewModel则是View和Model之间的桥梁,负责将Model的数据绑定到View上。Vue采用MVVM模式,使得数据和视图之间的绑定更加简单、直观。 (2)MVW(Model-View-Whatever):是MVVM的一种变体,将ViewModel替换为Whatever,强调视图层可以独立于模型和视图模型。Vue不完全遵循MVW模式,但提供了灵活的数据绑定和组件化架构

2024-01-22

Java 基础之面向对象编程教程

Java 基础之面向对象编程教程,主要类和对象、如何定义类、成员函数、访问控制修饰符、构造方法、类变量、类方法、方法重载、方法覆盖、抽象、封装、继承、多态、抽象类、接口和New 运算符等概念的介绍和例题介绍以及相关练习题。 为了进一步增加教程的深度和实用性,教程的内容: 1. 对每个概念提供更详细的解释,并给出实际的应用例子。 2. 加入面向对象编程的综合案例,使读者能够将所学概念应用到实际项目中。 3. 强调Java 面向对象编程的重要性,并论述其对现代软件开发的影响。 4. 结合理论教学,安排一些课后作业或练习,以促进读者的技能提升。 5. 引入真实案例和数据来说明面向对象编程的应用效果和益处。

2024-01-22

互联网Python与MySQL基础入门

Python与MySQL的基础入门知识,帮助您快速掌握这两项技能,并在实际项目中运用它们。 Python基础知识 Python是一种广泛应用于数据分析、网络爬虫、人工智能等领域的编程语言。它具有简洁易懂的语法,丰富的库和框架,以及强大的表达能力。在本教程中,我们将为您介绍Python的基础语法、数据类型、控制结构、函数、模块和面向对象编程等概念。 MySQL数据库基础 MySQL是一款流行的关系型数据库管理系统,具有开源、高性能、易用等特点。在本教程中,我们将为您介绍MySQL的基本概念、安装与配置、SQL语言、数据库表的设计与操作、索引、存储过程和触发器等知识。 Python操作MySQL数据库 掌握Python与MySQL的操作是开发高效数据库应用的关键。在本教程中,我们将为您介绍如何使用Python的库(如pymysql、mysql-connector-python和SQLAlchemy)来连接MySQL数据库,执行SQL查询,处理数据库事务,以及备份与还原数据库等操作。

2024-01-18

Python的CVPR人脸 python人脸检测代码

从实时视频流中识别出人脸区域,从原理上看,其依然属于机器学习的领域之一,本质上与谷歌利用深度学习识别出猫没有什么区别。程序通过大量的人脸图片数据进行训练,利用数学算法建立建立可靠的人脸特征模型,如此即可识别出人脸。幸运的是,这些工作OpenCV已经帮我们做了,我们只需调用对应的API函数即可。

2024-01-08

银行家算法详解及示例代码

银行家算法(Banker’s Algorithm)是一种避免死锁(Deadlock)的资源分配策略。它通过检测系统状态是否处于安全状态来确保资源分配不会导致死锁。如果一个系统状态是安全的,那么就可以分配资源而不会导致死锁。如果系统状态不安全,则不分配资源。 算法步骤 初始化:系统启动时,每个进程都会声明其最大资源需求量。 安全性检查:在系统运行过程中,每次资源分配前,都要进行安全性检查。安全性检查的目的是确保系统不会因为资源分配而进入不安全状态。 资源分配:如果安全性检查通过,系统将分配所需资源给进程。 执行:进程使用分配的资源进行计算。 回收:进程完成后,释放其占用的所有资源。 重复:重复步骤2到5,直到所有进程都完成。 安全性检查 安全性检查是通过比较当前系统状态与一个安全状态来判断的。一个系统状态是安全的,当且仅当存在一个资源分配序列,使得每个进程都可以顺利完成。 为了进行安全性检查,我们需要定义两个概念: 工作负载: 一组进程的最大资源需求。 可用资源: 系统当前可用的资源。 一个状态是安全的,当且仅当对于每个进程,其最大需求都可以由当前可用资源满足

2024-01-08

SaaS+多租户系统数据隔离实现方案

SaaS平台是运营saas软件的平台。SaaS提供商为企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,租户(企业)无需购买软硬件、建设机房、招聘IT人员,即可通过互联网使用信息系统。SaaS 是一种软件布局模型,其应用专为网络交付而设计,便于用户通过互联网托管、部署及接入。 多租户系统数据隔离实现方案,架构设计,以及如何优雅实现全局操作数据隔离都讲完了,同时也对mybati-plus的多租户插件实现原理和源码流程套路进行了浅析,也对实际应用案例中进行了举证并阐述了相关细节点。当然数据权限不止停留在租户(公司)层面上面,大多数系统的数据权限会按照业务组织架构角色来控制,数据权限其套路和根据角色判断菜单权限一回事。

2023-11-30

K8S集群 问题排查解决秘诀

K8S 集群问题排查解决秘诀主要包括以下几个方面: 理解 K8S 架构:首先,对 Kubernetes 集群的基本架构要有清晰的认识,包括 master 节点、worker 节点、pod、service 等组件之间的关系。了解各个组件的功能和运行原理有助于分析问题。 监控和日志:监控和日志是排查问题的两大法宝。通过查看集群内的监控数据,如 CPU 使用率、内存使用率、网络流量等,可以初步了解哪些节点或容器存在问题。同时,查看容器和节点的日志,可以帮助定位问题根源。 网络通信排查:K8S 集群的网络通信问题较为常见,主要包括 Pod 间通信、Service 通信和跨集群通信等。通过使用网络抓包工具,如 Wireshark,可以捕捉到容器间的通信数据包,进一步分析网络问题。 DNS 排查:DNS 问题可能导致服务无法正常访问。检查 Coredns 或其他 DNS 服务的运行状态,确认 DNS 设置是否正确。

2023-11-18

MySQL数据库实现双活操作流程-实操版本.docx

MySQL数据库实现双活是指在多个数据中心中安装有相同的MySQL服务,实现两个数据中心之间的数据库同步,达到数据双向同步的效果,保证数据的高可用性和容灾性。避免主从同步的延迟在双主复制的基础上,需要进行一些额外的配置来避免主从同步的延迟。例如,配置binlog_format为ROW、设置read_only参数为0,利用GTID来控制并发更新,以及使用Delay-aware Load Balancer等技术,保证数据能够及时同步。

2023-09-18

基于Python实现FTP文件上传与下载操作(FTP&SFTP协议)

FTP(文件传输协议)是一种用于向互联网上传送文件的标准协议,而SFTP(SSH文件传输协议)则是FTP的安全替代。在Python中,通过ftplib库,我们可以使用FTP协议上传和下载文件,通过paramiko库,我们可以使用SFTP协议进行同样的操作。

2023-08-31

ElasticSearch 8.6集群搭建过程

Elasticsearch是一个全文检索服务器,全文检索是一种非结构化数据的搜索方式 ,结构化数据一般存入数据库,使用sql语句即可快速查询。但由于非结构化数据的数据量大且格式不固定,我们需要采用全文检索的方式进行搜索。全文检索通过建立倒排索引加快搜索效率。 将数据中的一部分信息提取出来,重新组织成一定的数据结构,我 们可以根据该结构进行快速搜索,这样的结构称之为索引。 索引即目录,例如字典会将字的拼音提取出来做成目录,通过目录 即可快速找到字的位置。 索引分为正排索引和倒排索引。

2023-08-22

Redis 集群搭建手册

Redis 是我们目前大规模使用的缓存中间件,由于它强大高效而又便捷的功能,得到了广泛的使用。单节点的Redis已经就达到了很高的性能,为了提高可用性我们可以使用Redis集群。本文参考了Rdis的官方文档和使用Redis官方提供的Redis Cluster工具搭建Rdis集群。

2023-08-22

clickhouse 搭建流程

Clickhouse是一款非常优秀的高性能统计数据库。近些日子,由于研发工作需要,引入了clickhouse作为实时统计数据库。为了便于和研发团队一起分析问题,在本机搭建了clickhouse环境。过程中,还是不可避免地踩到了一些坑,所以就把这些解决过程都记录了下来,以免有类似问题能够快速定位和解决。

2023-08-18

图片信息识别+Python

Python和TensorFlow来实现一个简单的图像识别系统。我们将使用经典的MNIST数据集,这是一个包含手写数字的数据集,用于训练和测试图像识别系统。 图像识别之前,我们需要先加载图像。我们可以使用OpenCV库中的cv2.imread()函数来加载图像。该函数的参数是图像文件的路径,返回一个NumPy数组,表示图像的像素值。 在进行图像识别之前,我们通常需要对图像进行一些预处理,以便使其更适合进行分析和处理。例如,我们可能需要将图像转换为灰度图像、进行图像平滑处理或者进行图像增强等操作。 在进行特征提取之后,我们可以使用机器学习算法或神经网络来识别图像。常见的机器学习算法包括k近邻算法、支持向量机(SVM)和决策树等

2023-08-18

Python+手写签名+自动生成

Python是一种功能强大的编程语言,可以用于各种不同的应用程序,包括手写体签名生成。 使用Python生成手写体签名 要使用Python生成手写体签名,多种字体替换,手写体数据集是一组手写体字母/数字样本,用于训练和生成新的手写体样式。有许多免费提供的手写体数据集,简简单单几十行代码就可以绘制一个个性签名,太牛了吧 赶快练习起来吧

2023-08-14

Linux+分布式文件系统+Moosefs实施方案

Linux操作系统上实施分布式文件系统,以及如何使用MooseFS作为分布式文件系统的解决方案。介绍了如何在Linux系统上实施分布式文件系统,并以MooseFS为例进行了具体的实施步骤。分布式文件系统可以提供高可用性、高性能和可扩展性,适用于大规模数据存储和访问的场景。通过合理配置和管理,可以实现稳定可靠的分布式文件系统。

2023-07-26

JDK 11-JDK是Java开发工具包,提供了开发、编译、调试和运行Java环境

JDK 11是Java SE 11的一个实现,它包含了Java语言的编译器(javac)和运行时环境(JRE)。JDK 11还提供了许多其他工具和库,包括JavaFX、Javadoc和Java Mission Control。 JDK 11引入了一些新的功能和改进,包括: 支持动态类文件常量 改进的垃圾回收器 改进的HTTP客户端 新的嵌套访问控制 改进的性能和安全性等。

2023-07-26

Python 实现MySQL数据同步到Elasticsearch(ES)

Python中的MySQL数据同步到Elasticsearch(ES),使用pymysql库连接到MySQL数据库,并执行查询操作获取数据,从MySQL中获取数据,在Elasticsearch中创建一个索引,用于存储MySQL数据,定义映射(mapping),以指定数据的类型和字段;支持动态多数据源,灵活配置使用,将数据转换为Elasticsearch的文档(document)格式, 使用elasticsearch库将文档插入到Elasticsearch中。

2023-07-26

xp下JDK1.5安装文件

java JDK1.5

2012-05-06

SEO权威入门教程

SEO 的中文意思是搜索引擎优化。人们使用搜索引擎查找自己需要的信息,那么我们作为 网站的主人,希望用户通过搜索引擎能来到自己的网站。这就需要对网站进行SEO(搜索 引擎优化)。通过总结搜索引擎的排名规律,对网站进行合理优化,使你的网站在百度和 Google 的排名提高,让搜索引擎给你带来客户。

2012-05-01

项目管理2008

项目管理2008 详解 项目管理包含软件开发流程、项目的需求管理、人员管理等多方面内容

2012-05-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除