如果你发现自己以某种方式置身于数据库的世界中,想必你已经对数据库的安全和性能有了一些了解。数据库管理系统确实为数据库带来了好处,但你是否考虑过需要从安全性和性能角度进行权衡,以便使你的选择最有效?这正是本文要探讨的。PART 01安全和性能是否联系在一起?首先要考虑一个事实,性能和安全密切相关。出现这种情况的主要原因是,开发人员,无论是初级的还是资深的,在其职业生涯的某个时刻开始意识到:安全性提高
长期以来,Spring框架一直主导着后端Java的开发,但是以Micronaut、Quarkus、以及Dropwizard为代表的新型云原生Java框架正在不断流行。其中,Micronaut是一种令人耳目一新的替代方案。它是由构建Grails(译者注:Grails是一套用于快速Web应用开发的开源框架)的团队,专为现代化架构而设计开发的。本文先介绍Micronaut的基本特点,然后从一个简单的基于
企业需要了解数据合成与数据管道如何提供可扩展的解决方案,以创建符合测试系统实际需求的一致数据。很多企业如今被淹没在数据之中。他们从多种来源收集数据,并试图找到利用这些数据来推进业务目标的方法。解决这个问题的一种方法是使用数据管道作为连接到数据源,并通过管道将数据转换为端点可用的某种形式。虽然这是为企业操作数据的持续斗争的一部分,但始终需要找到方法为测试提供良好的数据集。企业需要这些数据集来测试整个
本文将和大家一起深入讨论合适React Native的数据库的各种特性和优缺点,并最终给出为React Native应用进行选择时的建议。如今,程序员们可以选用多种编程语言,来创建在线平台、网站和应用程序。其中,在编程社区中,广受不同开发背景的人员所推崇的一种流行语言,便是React Native。它是由Facebook的JavaScript工具包所构建,适合为移动平台、而非Web,设计和创建独特
域欺骗是网络犯罪分子用来在个人计算机或服务器上安装恶意代码的一种骗局。域欺骗是黑客用来访问敏感信息的一种更狡猾的新手法。域欺骗攻击中涉及的恶意代码会篡改IP地址信息,从而在用户不知情或不同意的情况下将其误导到虚假网站。一旦被重定向到这些虚假网站,用户会被提示输入个人信息,这些信息随后被用于盗窃身份或金融欺诈。攻击者在执行域欺骗攻击时主要针对银行或其他货币兑换系统的客户。这种策略之所以很成功,是由
本文主要基于在Uber的Go monorepo中发现的各种数据竞争模式,分析了其背后的原因与分类,希望能够帮助更多的Go开发人员,去关注并发代码的编写,考虑不同的语言的特性、以及避免由于自身编程习惯所引发的并发错误。近年来,Uber已经开始采用Golang(简称Go)作为开发微服务的主要编程语言。目前,其Go monorepo(译者注:包含多个不同项目的单个仓库)包含了大约5,000万行代码,以及
Python的风格优雅干净,但语法干净并不等同于编写的代码也是干净的。开发人员仍然需要学习Python最佳实践和设计模式。PART 01 什么是干净的代码? C++的发明者Bjarne Stroustrup说过一句话清楚地解释了干净代码的含义:“我喜欢我的代码是优雅和高效的。逻辑应该是直截了当的,这样就很难隐藏错误;依赖关系应该是最小的,这样便于维护;错误
本文讨论了跨多个属性 (包括一致性、存储需求和性能) 的各种数据管理方法的优缺点。随着应用容器化的速度加快,Day2服务已经成为一个迫在眉睫的问题。这些Day2服务包括数据管理功能,如备份和灾难恢复以及应用程序迁移。在这个云原生应用容器化的新世界中,微服务通常部署在多个位置(区域、云、本地),同时使用多种数据服务(MongoDB、Redis、Kafka等)和存储技术来存储这些应用状态。在这种环境中
随着区块链的出现和发展,越来越多的行业开始追求开放、透明、去中心化。在短短几年时间里,比特币和支付系统的区块链就已经向人类展示了非常多的有利面——让金融去中心化,让艺术和创造力向全世界开放。在不到10年的时间里,NFT、DeFi、Meta-universe和Web 3.0的概念变得日益广泛。因此,随后出现的DeSci也就不足为奇了。近年来,许多科学领域都取得了突破——例如RNA疫苗的发现、基因工程
所有成功的产品工程团队都有一个通用点:有一个成功的产品开发战略。但为不同的产品团队找到一个通用的产品开发策略是不现实的。这篇文章介绍了七种不同但成功的产品开发策略,这样你就可以创建自己的规划,或者基于这些策略的启发,改进现有策略。PART 01 目的驱动的独立团队:Spotify策略 世界流行音乐流媒体平台Spotify在他们的组织层级中有一个特点,Sp
调查表明,75%的物联网项目最终失败。为了避免这种情况,企业应该事先仔细规划物联网项目,并熟悉物联网产品开发的各个阶段。微软公司在2021年发布的《IoT Signals》调查报告中指出,90%的企业已经采用物联网解决方案来降低运营成本、释放额外的收入流,并获得竞争优势。 然而,35%的物联网项目在概念验证(POC)阶段停滞不前,而75%的物联网的计划从未实现,没有开发出可上市的产品。&
削减云计算成本需要包括开发人员在内整个团队的努力。以下是开发人员在云中运行成本更低的软件的一些技巧。没有什么比看到开发的应用程序得到病毒式传播更能振奋开发团队的精神了。这是一种美妙的感觉,至少在每月的云账单到来之前是这样。一些开发人员认为,管理计算成本是Devops团队的责任。程序员在编写软件之后并将其发布,然而却让他人担心成本问题。没有比这更离谱的了。明智的开发人员知道他们开发的应用程序对企业的
本文将向您介绍如何在浏览器中测试JavaScript代码的6种流行测试方法。通常,测试JavaScript的过程对于新手测试人员来说,可能会比较痛苦。对此,业界已经开发出了许多现成的工具、技术和框架,尽量让该过程变得轻松一些。其中,诸如:Mocha、Jasmine和Jest之类的工具,提供了测试结构,而Istanbul和Blanket之类的工具则能够生成代码覆盖率的相关报告。可以说,在浏览器中,使
有段时间,创建树莓派集群的想法一直在我的脑海里。在本文中,我将向您展示如何从头构建一个树莓派集群。树莓派是一种可以连接显示器、鼠标、键盘,通过图形界面(GUI)安装Linux操作系统的微型计算机。您还可以在没有GUI的无头模式下使用并运行树莓派,例如,数据库服务器。树莓派提供很多用途,如从构建Minecraft服务器到智能镜(smart mirrors),它具有无穷无尽的可能性。自从我开始接触Ma
PART 01简介 数字化转型正在扰乱全球业务。因此,法律行业必须考虑数字技术,以便与时俱进。基于区块链的智能合约就是此类技术的一个例子。数字化转型是一个采用新技术以提高效率和简化业务流程的过程,所有行业都被席卷其中。然而,根据位于英国伦敦的德勤公司的一项调查,71%的法律专业人士认为他们的部门还没有准备好采用相关的数字技术。由于其高风险和高曝光性,法律行业其实
软件开发作为一个职业在过去几年里呈现出爆发式发展,并且随着入门培训的普及和持续的跨行业渗透,现在确实是成为开发者的好时机。然而,在软件工程光鲜亮丽的背后,也有着不那么迷人的一面。如果你想像我一样进入软件开发行业,那么在投入大量时间、精力和金钱之前,也许是时候了解一些残酷的真相了。诚然,任何工作都有好和坏的一面,但是我想说的是,如果你有70%以上的时间在享受你的工作,那么你就算有了一份很棒的工作。就
PART 01前言 说到排序算法,很多同学会想起快速排序、堆排序、冒泡排序这些耳熟能详的算法。了解得深一些的同学,也可能看过例如 Python 的 timsort 以及 C++ intro sort 之类的排序算法。但是我们也会有很多疑问,例如 Go 语言中使用的快速排序和我们书上学到的快速排序有什么区别呢?如果我们自己写一个快排,会比 Go 语言自带的快吗?排
近年来,企业IT的传统方法(通常依赖于耗时的人工流程)已被更敏捷、更高效、面向结果的模型所取代。随着这种转变强调加快软件产品的开发周期,DevOps和敏捷方法现在对于那些希望通过数字化转型计划取得成功的企业来说都是必不可少的。 因此,人们需要熟悉DevOps和敏捷中的持续交付实践,以及为企业的应用程序创建更快的上市时间。 但许多企业过于关注这种速度,因而忽视了质量保证的重要性,
本文通过使用开源的 Chronicle Queue 的两个线程,彼此交换 256 字节的消息数据,为您比较哪个版本的 JVM 速度最快。Chronicle Queue是一个持久性的低延迟Java消息传递框架。它适用于具有高性能的关键性应用程序。由于Chronicle Queue运行在映射到本地的内存上,因此它消除了垃圾收集的需求,并为开发人员提供了确定性和高性能。本文将使用开源的Chronicle
日常开发中,我们通常会在同一个体系架构中部署了多个不同角色的应用程序,而这些应用程序需要某种机制来通知彼此发生了哪些事件。这些事件可能是临时的(在运行时临时所做的更改),也可能是数据库事件(由于数据库中的更改)。如何应对这种复杂多变的分布式事件,一直是件相当棘手的问题。而这正是发布-订阅设计模式的用武之地。众所周知,发布-订阅模式在众多设计模式中,可能是最常见、最有名的一个了。它定义了一种一对多的
并不是每个企业都需要多云,但那些需要多云的企业需要考虑三件事。在不确定的经济环境中,如何更快地适应环境变化是企业求存发展的必备技能之一。全球数字化浪潮下,云服务已经成为企业的一大助力。而多云战略则逐渐成为云服务的共识。不过,需要注意的是,尽管众多企业机构对多云模式的兴趣在持续上升,但构建真正跨越云的基础架构既复杂又昂贵,而且多云模式在管理、运维等方面带来的挑战也不容忽视。云成本管理公司 Yotas
这篇文章我其实更想跟大家聊聊一些常用的思考方法,思考问题的方式对了,往往可以帮助大家少走弯路。PART 01常用思考方法技术常用思考方法技术思考本质还是结构化思考,所以常见的结构化思考方法也是适用的。这也是大家会看到很多技术架构师都会用一些方法论去分析问题的原因。但这里我不是重新去论述这些常见的技巧,而是分享从技术实战中得到的一些思考方法,为此我分为了技术架构设计的方法和技术Leader的思考方法
本文将向您介绍在开发Milvus矢量数据库时所采用的 QA 框架,并涵盖Milvus中的主要测试模块、以及可用于提高QA测试效率的方法和工具。如果说质量保证(QA)是确定产品或服务是否满足特定要求的系统过程,那么质量保证系统则是研发过程中不可或缺的一部分,它起到了确保产品质量的作用。在本文中,我将向您介绍在开发Milvus矢量数据库(Vector Database)时所采用的QA框架,并涵盖Mil
你想知道如何加快软件开发项目的速度吗?通过本文了解如何加快流程和创造高质量产品的策略。在今天的市场中,你是否希望击败你的竞争对手赢得竞争? 最终的解决方案将是快速地软件开发。无论你的公司大小,拥有快速的软件开发将始终让你在竞争中处于领先地位。关于快速开发,你永远不要在软件质量上妥协。这将对公司的发展构成很大的威胁。软件开发涉及的过程是漫长而无止境的。即使已经拥有成熟的市场,也需要适当和持续的改进和
近年来, Transformer 机器学习模型已经成为深度学习和深度神经网络技术进步的主要亮点之一。它主要用于自然语言处理中的高级应用。谷歌正在使用它来增强其搜索引擎结果。OpenAI 使用 Transformer 创建了著名的 GPT-2和 GPT-3模型。自从2017年首次亮相以来,Transformer 架构不断发展并扩展到多种不同的变体,从语言任务扩展到其他领域。它们已被用于时间序列预测。
基础设施即代码(Infrastructure-as-Code,IaC)意味着使用代码来定义和管理基础设施,而不是使用手动流程。更重要的是,IaC是将软件工程原则和方法引入云基础设施。本文将探讨IaC的基础知识以及如何设置相关环境。PART 01 IaC简介在IaC之前,基础设施是(某些情况下现在仍然是)通过简单操作用户界面、批处理脚本和配置管理工具等方法提供的,这些方法并不适
如今,数据创建、存储和处理的指数增长正在推动全球对超大规模数据中心的需求。这些数据中心的基础设施大部分由亚马逊、微软和谷歌等云计算服务提供商(CSP)设计和管理,它们依赖于强大的物理连接来确保充分利用部署的存储和计算资源。 用户可以使用自动化解决方案对这些关键物理连接的数据链路层进行测试和故障排除。但首先应该了解和检查链接和链接类型。 超大规模数据中心内最常见的三种物理组件是:
在驱动开发时,有时候让我们最头疼的不是驱动代码的编写,反而是代码的编译。目前有不少同事向我反馈,已经修改了对应的Config和Makefile文件,但驱动仍无法被正常编译到,这种问题经排查是因为没有修改对应的Kconfig而导致的。在本文中,我将主要说明该如何修改与驱动编译相关的三类文件Makefile,Config和Kconfig,并简要阐述这三者的关系。PART 01如何修改这三类文件从而编译
本文将讨论如何将两种不同产品开发技术的优点结合在一起,从而创建一种混合开发技术的方法。这种混合开发技术方法可以帮助我们节省时间,减少成本,并规避风险。富有创造力的人(包括我自己)通常对自己所做的事情非常有激情,没有什么比我们自己做更让人欣喜的事了。然而,在创业的世界里,这种心态有时是有害的,特别是在与新的商业伙伴或客户合作时。我把培养产品开发技术的最好方法归结为一个简单的规则:混合(Hybridi
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号