发布

开源519

专栏成员
102
文章
114893
阅读量
24
订阅数
C/C++右移高位补0还是1?
  有经验的程序员一眼可能就会发现问题,并给出正确的答案。当然一定会存在给出0x77F0的答案,例如初次“踩坑”的作者寄几。
开源519
2025-02-27
230
2个类轻松构建高效Socket通信库
  在接触Linux网络编程前,一直觉得网络编程充满了神秘与挑战,遥不可及。这种观念一度让我对网络编程望而却步。当项目需求迫使我直面这一领域,经过层层bug考验,发现网络编程的困难更多源于心理障碍而非技术本身。
开源519
2025-02-27
570
精通Linux时间管理,从这7个接口开始
最近的项目开发中,频繁遇到了时间戳相关的问题,如时间回退至1970年、时区错误及时间同步不准确等。鉴于此前仅对时间接口的使用有所了解而未深入探究其原理,本篇文章进行一次系统性整理,以便后续参考。文章若存在一些错误,可在留言区明确指出。
开源519
2025-02-27
720
【实战指南】从零构建嵌入式远程Shell,提升跨地域协作效率(2)
  之前曾发布过一篇关于构建嵌入式远程Shell的文章,详细介绍了基础版本的实现方法,详见【实战指南】从零构建嵌入式远程Shell。
开源519
2025-02-27
350
4步实现MQTT客户端与OneNet高效连接
  开源项目Sparrow 的基础框架搭建已接近完成,中间件的基础功能大多已经具备。为了验证该框架的实用性,在工程中引入了业务模块OneNetMqtt。从模块命名可以推断其主要功能是通过MQTT 协议连接OneNet 平台。   最初接触OneNet 还是在大学期间,当时的毕业设计基于OneNet 实现了环境数据采集系统。由于当时的个人水平限制,并未采用MQTT协议实现,功能上体现的效果也不尽预期。现在重新构建此功能,弥补了旧时自身能力的不足,新的实现过程更为高效,连接和数据传输都相当稳定。本篇大致介绍一下功能和主要模块,后续根据需要补充。
开源519
2025-02-27
1640
4步实现C++插件化编程,轻松实现功能定制与扩展(2)
  此文是对先前文章《4步实现C++插件化编程,轻松实现功能定制与扩展》 的延伸,重点记录在原版本基础上新增的插件“热拔插”功能。
开源519
2025-02-27
550
4步实现C/C++插件化编程,轻松应对功能定制与扩展
  在项目开发中,我们经常面临为适应不同市场或产品层级而需调整功能的需求。从软件工程的角度来看,这意味着使用同一套代码,通过配置来实现产品的功能差异化。实现这一目标的方法多种多样,本文将探讨如何通过 插件化编程 优雅地满足这一需求。
开源519
2025-02-27
660
记录项目开发常见的8个难题
  软件开发征途漫漫,挑战重重。本文记录几个常见难题及其应对思路,力求简明实用,同时方便后续项目时精准“避坑”。文章每一项内容只基于个人有限认知,可能还存在更完美的实现方案。
开源519
2025-02-27
1010
【实战技巧】使用inotify实现实时文件监控
  之前阅读《Linux系统编程》时,留意到了一个Linux原生接口inotify。它能够监控文件的移动、读取、写入和删除等操作。今天利用空闲时间,简单研究了一下如何使用这个接口,并在这里记录下来,方便将来需要查询和参考。
开源519
2025-02-27
1620
【实战指南】从零构建嵌入式远程Shell,提升跨地域协作效率
  在嵌入式软件开发的测试验收环节,跨地域协作构成了一项显著挑战,尤其体现在远程调试过程中。当前流程通常要求研发人员依赖测试团队在目标设备上执行特定指令,这一协作模式耗时耗力。鉴于嵌入式系统的资源限制,部署第三方远程控制工具往往不可行。因此,构建一个轻量级远程Shell解决方案成为迫切需求。
开源519
2025-02-27
820
C++ STL容器操作:6种常用场景算法
  在软件开发日常中,诸如查找、排序及元素操作等容器任务极为频繁。C++的STL(标准模板库)充当了强大的工具箱,封装高效灵活的算法来简化这些操作。自C++11起,新增的通用算法不仅性能卓越,设计也更贴近用户,旨在加速开发进程并增强代码质量。本文汇总了若干常用算法,以便快速查阅与复习。
开源519
2025-02-27
510
实战Linux I/O多路复用:借助epoll,单线程高效管理10,000+并发连接
  在应对高并发连接的传统策略中,普遍采取为每个连接配置单独线程或进程的直接方式,管理其I/O操作。此法虽直观易行,但随业务规模扩张,线程资源需求急剧上升。相反,Linux下的I/O多路复用技术,尤其是epoll,展示了一种高效路径:单一线程即可监控成千上万的文件描述符,极大提升了资源使用效率。   I/O 多路复用的场景有很多,也比较实用。通常用法epoll线程 + 线程/协程池处理并发场景,这里做一个简单的实例使用,以便后续查阅。
开源519
2025-02-27
630
嵌入式RPC框架设计实践:六大核心类构建高效RPC框架
  在先前发布的文章中,我们构建了RPC底层数据传输的基础设计并实现了其功能(详尽代码与深入分析可参阅《实战高效RPC方案在嵌入式环境中的应用与揭秘》)。本文将继续以此为基础,探讨如何通过分层封装来提升RPC框架的易用性,旨在提供更便捷和正式的使用接口。
开源519
2025-02-27
760
17个C++编程常见错误及其解决方案
  想必不少程序员都有类似的经历:辛苦敲完项目代码,内心满是对作品品质的自信,然而当静态扫描工具登场时,却揭示出诸多隐藏的警告问题。为了让自己的编程之路更加顺畅,也为了持续精进技艺,我想借此机会汇总分享那些常被我们无意间忽视却又导致警告的编程小细节,以此作为对未来的自我警示和提升。
开源519
2025-02-27
1320
轻松自研嵌入式日志框架,6大功能亮点一文读懂
  日志系统虽非项目直接功能,却是开发者背后的强大辅助。优秀的日志设计如同给程序安装了北斗定位,让问题排查变得直观快捷,极大提升开发效率与项目维护体验。本文旨在深入探讨并详细记载自主研发日志框架的具体技术和实施策略。
开源519
2025-02-27
1070
实战高效RPC方案在嵌入式环境中的应用与揭秘
  在嵌入式系统开发中,大型项目往往采用微服务架构来构建,其核心思想是将一个庞大的单体应用分割成一系列小型、独立、松耦合的服务模块,这些模块可以是以线程或进程形式存在的多个服务单元。各服务间为了协同工作,不可避免地需要进行进程间通信(IPC, Inter-Process Communication)。
开源519
2025-02-27
1030
深入了解23种设计模式
  随着编码时间拉长,遇到的问题增加,发现设计模式对于解决某类场景问题确实帮助很大。其实在不了解设计模式之前,其设计思想也已经在日常开发中有所体现,只是没有总结出来。设计模式像是经验老道的程序员将他的编程经验毫无保留的开源,引导新手更好的处理某一类问题。
开源519
2025-02-27
1230
快速上手:用最小堆实现高效通用的定时器组件
  在程序开发过程中,定时器会经常被使用到。而在Linux应用开发中,系统定时器资源有限,进程可创建的定时器数量会受到系统限制。假如随便滥用定时器,会导致定时器资源不足,其他模块便无法申请到定时器资源。   如上,假如同一进程中多个模块,需要同时申请不同周期定时器,就会导致模块创建定时器失败。
开源519
2025-02-27
720
17个C++编程常见错误及其解决方案
想必不少程序员都有类似的经历:辛苦敲完项目代码,内心满是对作品品质的自信,然而当静态扫描工具登场时,却揭示出诸多隐藏的警告问题。为了让自己的编程之路更加顺畅,也为了持续精进技艺,我想借此机会汇总分享那些常被我们无意间忽视却又导致警告的编程小细节,以此作为对未来的自我警示和提升。
开源519
2024-04-30
1.1K0
《Effective Modren C++》 进阶学习(上)
  作为一名有追求的程序猿,一定是希望自己写出的是最完美的、无可挑剔的代码。那完美的标准是什么,我想不同的设计师都会有自己的一套标准。而在实际编码中,如何将个人的标准愈发完善,愈发得到同事的认可,一定需要不断积累。如何积累,一定是从细微处着手,观摩优秀的代码,学习现有的框架,汲取前人留下的智慧。
开源519
2023-11-15
2030
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档