IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

热门文章

按浏览数/热度排序的近期技术阅读。

IT 近 3 天浏览 97

Chrome和goagent的配置方法,你懂的

这篇教程详细讲解了如何利用Google App Engine与GoAgent,在Chrome浏览器中搭建一个自主可控的代理环境。文章从注册GAE账号、创建应用讲起,一步步指导读者下载并配置GoAgent客户端,包括修改proxy.ini配置文件、运行上传脚本将服务端部署到GAE。 在客户端设置部分,教程重点介绍了Chrome插件Proxy SwitchySharp的安装与配置,特别是通过导入预设的配置文件,并立即更新自动代理规则列表,来简化后续的使用。整个过程配有截图,步骤清晰。最终,作者指出当SwitchySharp运行在自动切换模式且GoAgent客户端启动后,配置即告完成。这为需要管理自身网络访问规则的技术用户提供了一个具体的、可复现的操作方案。

本机暂存
IT 近 3 天浏览 77

AI Coding Agent 时代,我自己最常用的 4 个终端工具

在AI编码代理时代,人机协作模式转变,作者聚焦于优化终端工作流而非记忆复杂命令。核心工具包括:realpath及其封装rp函数,用于跨项目文件路径的绝对路径复制,解决AI代理无法直接引用外部文件的问题,实现精准路径投喂;zoxide通过模糊匹配和访问历史快速跳转至目标项目目录,简化多项目切换;fzf结合自定义fp函数,实现文件模糊搜索、选中并自动复制绝对路径,方便将文件精确交给AI代理分析;Otty的防睡眠机制确保长时间AI任务不被Mac系统休眠中断,保障任务连续性。这些工具协同形成高效协作流程:先用zoxide定位工作区,再用fzf选择文件,通过realpath复制路径交给AI代理,最后用Otty保持任务稳定。作者强调,开发者应专注于提供准确项目、文件路径和约束,而AI代理负责仓库内部探索与执行,从而在AI时代提升开发效率。这套工具链突显了终端作为控制台的角色,通过简化高频操作改善人机交互体验。

本机暂存
IT 近 3 天浏览 74

如何写好设计文档?

本文基于Go官方proposal仓库中的五个优秀设计文档,提炼其共性结构与写作方法,形成一份可复用的设计文档写作指南。Go设计文档以朴素语言讨论重要取舍,让陌生读者快速理解问题、方案及原因。总结出的通用模板包括元信息、摘要概述、背景动机、设计提案、理由取舍、兼容性、实现过渡计划和附录等部分。关键点包括:标题用一句话说清做什么;摘要埋下最重要承诺;背景动机用具体代码示例说明痛点,让读者‘疼’起来;设计提案采用渐进式教学,配Go声明和代码示例,明确边界;理由取舍主动对比备选方案,解释‘为什么不是别的’;兼容性诚实承认代价,提供渐进迁移路径;实现计划用数据和工具支撑可落地性;附录后置完整API和FAQ。文章强调设计文档应注重可读性、实用性和长期价值,适用于软件工程师和技术负责人参考。

本机暂存
IT 近 3 天浏览 72

01 引言:软件工程范式的五十年之变

文章回顾了软件工程自1968年以来的范式演变,从瀑布模型到敏捷、DevOps,指出核心假设“代码由人编写”首次被大语言模型打破。AI Coding Agent的演进分为四层:补全、对话、任务、自主流程,逐步将人类角色从作者转变为指挥者和审查者。Vibe Coding虽降低编程门槛,但易导致代码质量陷阱,需通过Agentic Engineering和结构化方法提升产出。核心主张是从Prompt-Driven转向Skill-Driven,强调持久化、可复用的Skill系统,如Spec-Driven Development和Ralph Loop等方法论。这些变革基于“用结构化知识驾驭非结构化AI能力”的原则,为AI时代软件工程提供新框架,凸显工程素养的关键作用。

本机暂存
IT 近 3 天浏览 72

浅谈MySQL索引背后的数据结构及算法

这篇技术文章深入探讨了MySQL中最常用的BTree索引。作者从索引的本质讲起,指出它本质上是为了高效查询而维护的数据结构,直接解释了为什么我们不能只用全表扫描。文章清晰地对比了B-Tree与B+Tree这两种关键结构,揭示了B+Tree因其叶子节点形成的链表而更利于范围查询的特点。 文章随后结合MySQL两大主流存储引擎——MyISAM和InnoDB,剖析了它们的索引实现差异。例如,InnoDB的主键索引是聚簇的(数据与主键索引叶子节点绑定),而二级索引则指向主键;MyISAM则所有索引都是非聚簇的。文中还提及了覆盖索引等优化技巧。最后,文章将理论落地,给出了基于这些原理的高性能索引使用策略。整体上,文章逻辑清晰,从理论到实现再到实践,为读者构建了关于MySQL索引的扎实认知框架。

本机暂存
IT 近 3 天浏览 70

从”内容治理”到”行为治理”:中国智能体治理框架深度解析与绿盟科技实践

中国人工智能产业在2026年正经历从内容治理向行为治理的范式转换,传统基于生成内容的监管模式已不足以应对智能体复杂行为风险。本文深度解析了中国智能体治理框架的核心架构,该框架以行为可解释性、可控性和安全性为支柱,整合了实时监控、风险评估和动态干预机制。框架采用分层设计,包括行为采集层、分析引擎层和决策执行层,支持多模态数据融合与联邦学习,确保治理的精准性和隐私保护。绿盟科技作为实践案例,展示了如何将框架应用于网络安全场景,通过智能体行为建模实现威胁预测与自动化响应,提升防御效率。文章还探讨了框架在伦理合规、标准制定和技术挑战方面的进展,强调跨学科协作的重要性,为行业提供了可落地的治理范式参考。

本机暂存
IT 近 3 天浏览 64

美团海报生成 AIGC 技术创新与实践

美团平台数百万商家面临海报设计资源匮乏、交付时效苛刻、内容同质化及批量质量失控等困境。AIGC技术为创意平权带来可能,但生成商业可用海报需克服精准文字渲染、和谐版式布局、统一美学风格、多任务场景支持及质量可量化评估等挑战。美团智能创作团队构建了PosterCraft、PosterOmni和PosterReward三大系统形成技术闭环。PosterCraft采用端到端优化,通过四阶段级联训练(包括大规模文字渲染优化、高质量海报微调、美学强化学习及视觉反馈精炼)显著提升文字渲染准确率,接近闭源商业系统水平。PosterOmni针对多任务设计需求,将扩图、补全、比例调整等六类任务统一于单一模型,通过专家训练、任务蒸馏及统一奖励模型进行强化学习,缓解任务冲突并提升编辑与创作能力。PosterReward作为首个海报质量评估奖励模型,构建自动化偏好数据集并通过四阶段级联训练,在专项基准上达到86%准确率,为生成模型提供优化信号并承担线上质检。三项工作全部开源,并在美团外卖套餐图生成、品牌IP设计等业务中落地,有效提升海报生产效率和质量。

本机暂存
IT 近 3 天浏览 63

等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go

seq库为Go语言引入链式管道编程,解决传统嵌套函数调用的可读性问题。Go语言因泛型限制,此前库如lo只能采用从内往外的写法,导致代码阅读顺序与数据流相反。Go 1.27引入泛型方法,允许方法定义类型参数,使seq得以实现从左到右的链式调用。库基于iter.Seq接口,支持Filter、Map、Sum、GroupBy、Distinct等操作,并具备惰性求值特性,可处理无限序列和短路优化。示例展示分组统计、去重求和、前缀和计算、滑动窗口等实用场景,强调代码流与数据流一致的优势。开发过程中使用AI辅助,但核心设计基于需求文档。seq需要Go 1.27版本,提升了Go代码的表达力和维护性,为函数式风格编程提供支持。

本机暂存
IT 近 3 天浏览 58

程序员技术练级攻略

这篇讲的是程序员如何规划技术成长路径。文章源于月光博客的一位读者反馈,他希望看到更具操作性的技术进阶指南。于是,作者结合新手朋友分享的Python与Web编程学习点滴,并融入自己作为资深开发者的经验,共同撰写了这篇攻略。 从内容上看,它并非单纯的理论罗列,而是融合了真实的学习历程。文章从Python等语言的基础入门讲起,延伸至Web编程的具体实践,最后还特别增设了“进阶”一节。这种由浅入深、兼顾新手入门与老手提升的结构,使得文章既有起点的参照,也有前进的方向。 它的特别之处在于视角的结合——既保留了初学者可能遇到的困惑与摸索过程,又提供了过来人总结的有效方法与避坑建议。对于那些处于技术成长期,想要清晰规划自己学习路线的程序员来说,这种基于真实经历的分享,比单纯的知识点罗列更具参考价值。

本机暂存
IT 近 3 天浏览 57

Loop Engineering 实践:我把 RDMA 开发库移植到 Go 语言,花费 239 块钱

作者为了在Go语言中实现高性能RDMA库,采用Loop Engineering方法进行自动化移植实验。Loop Engineering的核心是将复杂任务拆分为可管理的小单元,在循环中逐步执行实现、审查和发布。实验从一份PRD出发,生成15个依赖issue,通过AI Agent自动化处理,覆盖设备枚举、PD/MR分配、QP创建、TCP握手和perftest工具构建。AI在macOS上生成代码,使用stub实现确保跨平台编译。但流水线中审查步骤未真正执行,导致cgo与rdma-core库的兼容性问题未被及时发现。真机在Linux服务器编译时,暴露imm_data访问错误和ibv_query_port类型不匹配等致命bug,此外还有内存屏障缺失、资源泄漏等运行时问题。修复阶段通过静态分析工具和真机测试逐步解决,包括编写C辅助函数、调整unsafe.Pointer用法和引入原子操作。最终项目包含3981行Go代码和16个PR,花费239元。文章展示了Loop Engineering在结构化任务中的效率,同时强调了人工审查和硬件环境验证的必要性,对后端系统开发有实践参考价值。

本机暂存
IT 近 3 天浏览 56

CSS color-scheme属性与light-dark()颜色函数

本文探讨了CSS中实现深浅主题切换的机制,重点介绍了color-scheme属性与light-dark()颜色函数。prefers-color-scheme媒体查询虽能匹配系统深色模式设置,但存在局限性,因为它依赖用户系统偏好,而实际开发中应用内切换更友好。为此,CSS引入了color-scheme属性,允许通过JavaScript动态控制网页主题,但仅影响浏览器内置组件如表单控件。为了全面自定义主题外观,light-dark()函数应运而生,它接受两种颜色或图像值,根据当前color-scheme设置返回相应值,从而实现灵活的外观定制。文章通过代码示例展示了如何结合使用light-dark()函数设置背景、文字和边框颜色,配合color-scheme属性实现完整主题切换。此外,简要提及了prefers-contrast媒体查询用于高对比度主题,并讨论了浏览器兼容性,指出light-dark()从2024年起获得主流浏览器支持,可在实际项目中谨慎应用。这些特性为前端开发者提供了更强大、用户友好的主题控制能力。

本机暂存
IT 近 3 天浏览 54

全是好东西!HTML command属性和JS toggle事件

本文介绍了HTML的新属性command和commandfor,用于触发元素的内置方法。command属性设置在按钮元素上,通过commandfor属性以ID关联目标元素,调用其DOM方法,例如使用command="show-modal"显示dialog弹框。对于自定义行为,需监听command事件,使用如"--radius"的命令名称来触发。文章测试了兼容性,发现commandfor已获主流浏览器支持。接着讨论了JS的toggle事件,包括beforetoggle和toggle事件类型,适用于Popover、dialog和details元素的状态变化。事件对象提供newState和oldState属性来判断显示或隐藏状态。新增的event.source属性可返回触发事件的目标元素,但仅在command指令触发时有效,其他关闭方式返回null。文章建议通过submit事件或cancel事件来区分弹框关闭来源。整体以教程形式呈现,包含代码示例和实时渲染效果,帮助开发者理解和应用这些前端新特性,增强UI交互能力。

本机暂存
IT 近 3 天浏览 53

00 卷首语:当 Karpathy 说他半年没写一行代码

Andrej Karpathy宣布半年未亲手写代码,转而使用AI Agent驱动开发,标志软件工程进入新纪元。他提出软件3.0概念:LLM作为新型计算机,编程通过提示实现,产生‘参差不齐的智能’。行业趋势显示AI编程工具从Copilot到Claude Code快速进化,效率提升数百倍。然而,AI放大工程缺陷,Vibe Coding可能导致技术债务,而Agentic Engineering强调人类在架构、验证和责任感上的核心作用。方法论如Matt Pocock的Skills系统、Spec-Driven Development、Ralph Loop的自主循环和Garry Tan的gstack虚拟团队,共同应对验证差距。Harness Engineering聚焦Agent运行环境,确保可靠性。文章指出,当开发速度不稀缺,工程化成为壁垒,人类需提升品味、判断力和系统审美。作为卷首语,它引出本书对AI时代软件工程方法论的系统探讨。

本机暂存
IT 近 3 天浏览 45

ip地址中的网络号,主机号

这篇文章讲的是IP地址的核心结构——网络号与主机号。作者开篇就用了一个很形象的比喻:如果说MAC地址是你唯一的身份证号,那IP地址就是你详细的通信地址。这个地址被分成两部分:“网络号”标识你所在的网络(好比哪个城市或街道),而“主机号”则标识该网络上的具体设备(好比门牌号)。这种层次化的设计,让互联网上的通信定位变得高效有序。 文章的重点在于“如何计算”。作者以一个具体的IP地址(192.9.200.13)和子网掩码(255.255.255.0)为例,手把手演示了计算过程:先将两者转换为32位二进制,然后通过“按位与”运算得出网络号(192.9.200.0),再将掩码取反后与IP地址“按位与”得到主机号(13)。整个过程清晰展示了子网掩码的核心作用——就像一把尺子,精准地划分出IP地址中网络与主机的边界。 此外,文章还补充了IP地址的五类分类法(A、B、C、D、E类)及其二进制特征,并解释了子网掩码的另一种简洁写法(如/24代表前24位为1)。这些知识点串联起来,能帮助读者不仅知道“是什么”,更理解“怎么算”以及“为什么这么设计”,是理解网络通信基础的一个扎实入门。

本机暂存
IT 近 3 天浏览 43

百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形

baize 是百度开源的毫秒级网络监控工具,针对传统监控难以捕获的偶发性轻微丢包和比特翻转问题设计。它通过每秒5000包的高频探测,实现0.1%丢包率的精确检测,统计窗口可调至100ms。核心特性包括ECMP全路径覆盖,利用确定性端口轮转算法探测所有哈希路径;无需时钟同步的单向丢包检测,通过携带上一窗口发包信息在Server端无状态还原,避免NTP依赖;以及互补比特翻转检测,使用四种salt填充模式精确识别校验和漏检的翻转。性能优化采用Raw IP Socket和BPF过滤器减少内核开销,20MB Socket Buffer应对突发,8路并行读和无锁设计确保高吞吐。工具采用JSON配置驱动,单进程双角色部署,支持批量自动化,内置pprof便于调试。典型应用包括集群间监控、机房间探测、混合云链路等场景,与临时排查工具bitflip互补,专注于长期持续监控,为网络运维提供细粒度数据支撑。

本机暂存
IT 近 3 天浏览 42

整理了一份招PHP高级工程师的面试题

这篇文章汇总了一套针对PHP高级工程师职位的面试题,核心目的是通过一套精心设计的题目,快速鉴别候选人的技术深度与解决实际问题的能力。作者认为,能较好地回答这些问题,往往意味着具备了相应岗位所需的关键素质。 面试题覆盖了多个进阶方向,而不仅仅是基础语法。例如,它会深入考察对PHP底层原理的理解,比如内存管理、垃圾回收机制,以及Zend引擎的工作方式。此外,题目还着重考察了对现代PHP生态的掌握,包括Composer的深度使用、性能剖析工具(如Xdebug、Tideways)的应用,以及如何设计高并发场景下的缓存策略。其中一些题目会模拟真实的线上故障,要求候选人描述排查思路与解决步骤,这直接关联到工程师的实战经验与临场应变能力。 这套题的设计逻辑清晰,它将知识广度、原理理解与实战能力紧密结合。对于招聘方而言,它是一个高效的评估工具;对于开发者自己,则可以作为一个清晰的自查清单,用来审视自己在高级技术栈上的积累是否扎实,是否存在需要补强的短板。

本机暂存
IT 近 3 天浏览 42

推荐算法Slope One初探

这篇讲的是Slope One算法,一个经典又简洁的Item-Based协同过滤推荐算法。 作者从Daniel Lemire教授2005年的原始论文出发,拆解了这个算法旨在同时满足的五个设计目标。与基于邻域的协同过滤或复杂的矩阵分解模型不同,Slope One的核心思想异常直观:它不直接寻找物品间的相似度,而是转而计算物品评分之间的平均差值。算法通过维护一张“物品-物品平均差值表”,在预测时,仅需用目标用户对已评分物品的偏好,加上该物品与未评分物品之间的平均差值,就能快速推断出一个预测分。 这种设计带来了几个显著优势。实现极其简单,几乎只需要数组和加减法;运行效率很高,预测阶段几乎是O(1)的复杂度;更重要的是,它在数据稀疏的情况下依然能表现出不错的稳健性。文章正是通过剖析这些特点,揭示了Slope One如何在推荐系统的“简洁”与“有效”之间找到一个巧妙的平衡点,使其成为理解推荐系统基础原理的一个绝佳范例。

本机暂存
IT 近 3 天浏览 40

使用gcov完成代码覆盖率的测试

代码覆盖率测试是保障软件质量的重要环节,尤其对于使用GCC工具链的开发者而言。这篇文章深入介绍了GNU工具集中的gcov——一款免费且实用的代码覆盖率工具。作者从gcov的基本原理入手,逐步展开其使用方法,并着重分析了在实际项目集成中可能遇到的痛点,比如编译选项的影响、覆盖率数据的采集与解读等常见问题,并提供了清晰的解决思路。 文中还特别指出,gcov可以与lcov等前端工具结合,生成结构清晰、可视化的HTML格式测试报告,使覆盖率数据一目了然,便于团队跟踪与评审。对于希望以较低成本、较高效率将代码覆盖率测试融入开发流程的团队,这篇文章提供了一套从基础操作到问题排查的完整实践参考。

本机暂存
IT 近 3 天浏览 40

如何做决策 - 从 Go 的一个 issue 说起

本文由Go语言开源项目中一个重复提交提案的争议性issue切入,深入探讨了技术团队如何进行有效决策。文章引述了斯坦福教授John Ousterhout的“开放式决策”框架,其核心原则是:当试图推翻已定决策时,必须回答“你掌握了什么新的信息?”,若无则不予重新讨论。该框架将决策过程系统化为四个步骤:广泛收集意见、推动达成共识、清晰地宣布决定、以及基于新信息进行审慎的重新审议。文章强调,广泛收集意见需在“能改变结果”的阶段进行,并应尽早引入关键反对者。达成共识并非追求完全一致,而是通过透明投票获取多数认同,管理者应慎用否决权。决策的宣布必须明确且有据可查。文章还通过正反案例对比,分析了“害怕反馈”、“暗箱操作”和“草率收场”等常见误区,并讨论了该方法在鼓励建设性分歧、目标一致的中小型组织中尤为有效。最后,文章将其与“独裁者”式决策风格对比,指出后者依赖非凡直觉,难以复制。全文旨在为开发者和技术管理者提供一套可实践、可复制的工程决策流程,强调管理过程优于管理结果。

本机暂存
IT 近 3 天浏览 40

解析Google集群资源管理系统Omega

这篇文章梳理了 Google 内部三代集群资源调度系统的演进,清晰地勾勒出从单体到分布式、从集中控制到共享状态的设计变迁。 文章首先回顾了早期“中央式调度器”的局限,即所有调度逻辑和资源管理都耦合在一个进程中,导致扩展性和新策略集成困难。为解决这一问题,以 Mesos 和 YARN 为代表的“双层调度器”被提出,它将调度策略下放到各个应用框架,中央调度器只负责资源推送。但这又带来了两个核心痛点:应用框架无法获知全局资源视图,从而无法做出更优决策;以及因为使用全局锁(悲观锁),并发调度效率受限。 为突破这两个瓶颈,Google 推出了 Omega 系统。它的核心创新是“共享状态调度器”:将全局资源状态作为共享数据,并采用数据库领域的“多版本并发控制”(乐观锁)来处理并发访问。这使得应用框架能主动查看全局状态并竞争资源,极大提升了调度灵活性和并发度。文章还具体对比了 Mesos 的“全有或全无”与 YARN 的“增量分配”两种资源授予模式在不同场景下的利弊。 最后,作者点明了一个对业界极具参考价值的观点:由于 Omega 与 Mesos/YARN 的主要差异集中在资源管理模块,因此可以通过改造开源系统的“Resource Master”部分来快速构建类似 Omega 的调度器,这对人力有限的公司来说是一条务实的技术路径。

本机暂存