技术博客
未读
【实践手记】Git重写已提交代码历史信息
需求背景:项目与常用git配置信息(全局)不一致,应在git仓库中进行非全局配置,但已有三四次提交推送到了远程仓库中。需要修改Git项目中已提交代码的作者信息,包括本地未推送的提交和已推送到远程仓库的历史记录。 ⚠注意 本文所描述的情形并非一般生产环境常用的方法,此方法对代码仓库存在危害,非特殊需求
技术博客
未读
图像工具箱服务"Markr" Beta上线(持续迭代中)
Markr来源 最初只是想写个脚本批量添加水印,研究了一下,参考了几个方案之后想法越来越多。 于是想要搓一个后端服务,基础API实现、鉴权都写好了,突然发现后端实现图像处理就是个很蠢的事情。 然后转向纯静态前端实现方案,构建快速、部署方便还安全。 唯一的缺点是不会前端技术栈。 这里就要感叹一下Cur
技术博客
未读
【技术思辨】从空想走向实践:一场关于“架构设计”的认知碰撞
俺原稿的表达挺菜的,感谢chatGPT的文段润色。 大四以来的几段开发实习经历不断冲击着我对软件工程理论的原有认知。曾经,我坚定地认为只有构建出一个设计完美、结构严谨的系统架构,才能算作一名合格的软件工程师。但实际的开发环境却一次又一次打碎了这种“理想化”的幻想:现实项目的时间、资源、沟通成本远比书
技术博客
未读
理解RESTful API和gRPC:原理、技术、风格及应用对比
理解RESTful API和gRPC:原理、技术、风格及应用对比 网络API的概念伴随着C/S和分布式程序设计的发展而出现,早期RPC协议可以追溯到1974年的RFC674,它尝试定义在网络中共享资源的通用方法,拉开了RFC的序幕。随着Web应用的发展,REST以更加灵活的架构风格出现,它以资源为核
Windows下使用Fiddler和mumu模拟器进行安卓app抓包实践分享
出于开发需要,对移动端进行HTTP请求抓包,和客户端开发的同学对接新添加的API情况。网络上许多教程存在内容过时或配置不准确的情况,在进行配置时要注意自己的网络环境和软件版本。 平台环境如下,文中涉及到的资源都会标注,用到的资源链接也会统一放在参考阅读下: 操作系统:Windows 11 24H2
技术博客
未读
Linux网络收发全流程理解:从网络模型到内核转换
前几天面试被问到了,就正好复习总结一下Linux下操作系统对网络收发的控制。在计算机领域,层级思维无处不在,操作系统和网络也是这一点最好的体现,因此,本文将从网络模型开始探讨,包括协议栈、系统调用和中断、接收流程、发送流程等内容。 网络模型 上世纪八十年代,国际标准化组织(ISO)提出了OSI七层模
技术博客
未读
【回头看】Linux网络编程 | Socket地址API:网络字节序和地址结构体
网络字节序 字节序 机器字节序:多字节内容在内存总排列的顺序。 发送端总是把要发送的数据转化成大端字节序数据后再发送,而接收端知道对方传送过来的数据总是采用大端字节序,所以接收端可以根据自身采用的字节序决定是否对接收到的数据进行转换(小端机转换,大端机不转换)。 上述策略可见RFC 1700中的规定
技术博客
未读
Fedora优化:快速构建舒适的Linux开发桌面环境
最近一个月都没有发新的文章,今年的新年贺词选择了在微信公众号进行发布,作为信息发布体系构建的一部分进行尝试。 在过去的一段时间中,我完全将开发和日常使用的桌面环境从Windows切换到了Fedora,目前来看,这是一次成功的尝试,比我过去尝试使用的Ubuntu、openSUSE、Deepin的体验都
技术博客
未读
几则不太好的开发实践
我将利用寒假的实践总结过去一年实习实践中获取到的经验教训,他们并不一定都是正面的实践经验,反而其中不少都是我在开发实践中发现的漏洞。这些问题有的来自于我个人,有的则是整个开发团队的问题。在实习实践中,二八定律无处不在,我甚至可以讲有我的实习中学到了两成有效的经验,另外八成是吸取的教训。 以软件工程视
技术博客
未读
Websocket:实时双向通信的演变与实践
知其然:主动推送与实时双向通信 WebSocket协议 RFC文档:RFC6455 工作层次:应用层 定位:为服务器提供主动推送数据的方式并在TCP连接的基础上实现全双工的实时通信 关键特征 全双工通信:允许服务器和客户端同时发送和接收数据 持久连接:Websocket连接会在长时间内保持开放状态