社区人物志专访马龙伟:轮子不好用,那就自己造!

RT-Thread物联网操作系统 RT-Thread物联网操作系统     2023-03-14     701

关键词:

Hi~RT-Thread社区开发者们:
【社区人物志】是 RT-Thread社区推出的新栏目,人物志将关注每一个对RT-Thread社区做出过贡献的小伙伴,会定期从 RT-Thread社区小伙伴中选出一位活跃的开发者进行专访,分享开发者们与RT-Thread的故事和缘分以及学习的方法和经验。再次感谢各位小伙伴对社区作出的贡献,你们对RT-Thread社区的支持和贡献我们都记在了心里,也期望更多的小伙伴们能够加入RT-Thread的生态建设中~

**本期开发者介绍:**马龙伟,论坛账号Cfly,RT-Thread社区专家,2022年RT-Thread全球技术大会讲师,Agile 全家桶软件包作者,获得 2019 及 2021 年RT-Thread社区杰出贡献奖

他的论坛主页:https://club.rt-thread.org/u/2c298f197058c516.html

作为RT-Thread社区中最活跃的开发者之一,马龙伟是如何与RT-Thread结缘的? 又是怎么成为RT-Thread社区杰出贡献者的?一起来看看他的专访内容~

Q:请先简单介绍一下自己(技术背景、工作经历、学习经历)
我毕业工作已经3年了,主要是在嵌入式底层技术开发这块。前面 2 年在物联网领域,现在转到了工业自动化行业。工作内容主要涉及到操作系统及中间件的移植、驱动调试等。

Q:您是怎么和RT-Thread结缘的?是什么让你对RT-Thread始终抱有热情的?
在第一家公司实习的时候领导提了一下后我去了解了下,发现它和 uCOS、FreeRTOS 用起来完全不一样,“小而美” 的理念贯穿了全部,特别是 Env 和 设备框架当时让我感觉很新奇,当时毕设也刚开始时间还很多就想着把它用起来。野火哥的 《RT-Thread 内核实现与应用开发实战指南》 这本书对我当时的学习起了很大的帮助。
刚开始还是萌新的时候加了一个群(具体是哪个忘记了),里面的人都很热情,社区和群也很活跃,自己在群友的帮助下也慢慢成长了起来。直到现在 RT-Thread 的社区也依旧非常活跃和开放,也认识了很多朋友探讨技术和生活。因为这样一群有趣热情的人,我的学习成长之路不孤单。

Q:作为RT-Thread社区杰出贡献奖的获得者,能否分享您的社区贡献经历或者经验吗?
第一次贡献还是毕设的时候第一次提交 Libmodbus 软件包,跟着官方的软件包提交教程一步步操作,涉及到要将自己的仓库的分支合并到官方也不是一次成功,主要是对于一些 git 的操作也不是很熟悉。
工作以后随着深入使用 RT-Thread,总觉得有些组件或软件包用起来不习惯,就想着我要自己造轮子。从最简单的 Led 开始到按键、网络调试、Ftp 服务器,自己的轮子也慢慢多了起来,一看人家都有全家桶我也要有就命名为 Agile 全家桶吧。每隔一段时间将自己的一些想法抽象出来作为新的家庭成员。

Q:您开发的Agile系列软件包颇受开发者好评,在这开发过程中有什么难忘的回忆吗?
文档!文档!还是文档!一样东西再好用但是你没有说明书或者是天书那就很难推广出去,可能自己某一天再去看它都会想我这写的啥?
最开始的时候写文档还是比较随意的,草草几百字结束,哪管洪水滔天。后面接触到了 Doxygen 后发现原来文档还能这样写,这时候我又立了个 Flag,我要把 Agile 全家桶文档重写,接下来就是痛苦的一段日子了,首当其冲的是 Agile Modbus,那几个晚上和周末熬夜写文档日子到现在还能记得,一个一个字憋出来的感觉让我想起来我上学写作文的时候。光有文档还不行,让开发者好用还要有完整的例子才行,接下来又是一段痛苦的日子。就这样 Agile Modbus 呈现出了现在的版本。
当文档通过工具生成出来的时候感觉之前的努力都是值得的。

Q:您在使用RT-Thread进行项目开发时,遇到最大的难点是什么?
应该是设备框架和 POSIX 吧,设备框架本就是一个新奇的东西,而且 RT-Thread 提供了很多的设备框架能够让你傻瓜式用起来,但是如何实现自己的底层驱动接入设备管理呢,这需要你去认同它的理念,忍过一段不适的时间。同时 POSIX 的对接也是一个很大的难点,select 实现的原理及如何对接更是需要对设备框架有一个很深的了解。

**Q:在嵌入式开发方面,您是通过哪些方式来提升自己的开发技能的呢? **
像 RT-Thread 贡献代码就是一个很好提升自己技能的方法。同时自己用到的组件或软件包中有比较好的想法的时候,花时间研究一下人家的代码,学习思想。一些人家的开源项目也可以拿来学习。自己突然想到什么好点子的时候把它实现出来且拿出来和大家分享讨论。

Q:你最喜爱的开发工具有哪些?在日常工作中会用到哪些?
最喜欢的工具 Env、Git 和 VS Code吧。VS Code 中很多插件都很有用,并且配合 Env 工具生成配置文件后写代码很流畅。

Q:工作/学习期间有遇到什么问题或挑战,您是怎么解决的呢?
我会尽可能的去解决工作中的难题,不拘泥于一种方法,卡住的时候和同事或朋友一起讨论下发散思维,要讲出来,我发现有好多问题自己描述着突然灵光就出现了。

Q:对于想要学习RT-Thread的开发者,您有哪些建议/经验想与他们分享?
学习的枯燥是不可避免的,但是了解透彻 RT-Thread 的设计思想才能在使用中更加得心应手,我建议买本官方的书籍花一段时间学习熟悉它的机制。同时可以从简单 demo 开始实现起来,一个一个模块的试过去看现象。遇到问题的时候可以在论坛上提问,论坛有很多热心的大神。

Q:您认为RT-Thread社区有哪些做得比较好的地方?还有哪些地方需要改进?
社区活跃度高,对开发者的响应很及时且各种线上线下活动很多。希望对一些好用的组件和软件包出个专门的推荐,让更多开发者选择起来更方便。

相关阅读:
【社区人物志】专访李路昌: 从普通打工人到在深圳安家的嵌入式攻城狮
【社区人物志】专访出出啊:聊一聊学习RT-Thread的方法和经验
牛人志|19岁开发者是如何成长为RT-Thread 杰出贡献者的?

高性能云服务器 精品线路独享带宽,毫秒延迟,年中盛惠 1 折起

为啥大中型公司都热衷于造轮子?

为啥大厂热衷于造轮子?首先造轮子的事情比比皆是,随便截几个图看看。其实不只是大厂,中型公司亦有不少造轮子的,俗话说人上一百形形色色。造轮子的原因大抵总结下面几类。1、别人的轮子不好用开源产... 查看详情

造自己轮子1-日志组件(代码片段)

介绍近期一直在看开源社区的源码,看各种编程书籍,自己却没有实践,堪称身体力行了王者级输入,青铜级输出。这是一个非常不好的学习习惯,会导致知其然而不知其所以然,所以有一个声音一直在我脑袋里呐喊,你不能这... 查看详情

python之爬虫框架概述

...于设计模式的一些知识,强化Python相关知识,自己动手造轮子,继续为参考技术A丨综述爬虫入门之后,我们有两条路可以走。一个是继续深入学习,以及关于设计模式的一些知识,强化Python相关知识,自己动手造轮子,继续为... 查看详情

脉脉热帖:为啥大厂都热衷于造轮子?

...为脉脉里有真话。今天的话题是:为啥大厂热衷于造轮子?脉脉上讨论造轮子的事情太多了,随便截几个图看看。其实不只是大厂,中型公司亦有不少造轮子的,俗话说人上一百形形色色。造轮子的原因大抵... 查看详情

对组件不要停留在只会使用上

...是类似于之前的中国一样,都是组装工。问张三要来一个轮子,问李四要来一个发动机,用王五给的工具一键合成一个车架子。然后噼里啪啦的组装,最终成为了一个能用的车子。大多数时候其实已经够了,毕竟“能用就行&r... 查看详情

造轮子和用轮子:快速入门javascript模块化

造轮子和用轮子:快速入门JavaScript模块化时间 2016-03-1621:59:39  SegmentFault原文  https://segmentfault.com/a/1190000004619857主题 JavaScript前言都说“不重复造轮子”,就像iPhone——它除了 查看详情

造轮子:新建一个属于自己的string类(代码片段)

练习造轮子,新建一个属于自己的MyString类首先来开启检测内存泄漏的函数在main里添加_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG)|_CRTDBG_LEAK_CHECK_DF);开启内存泄漏检测intmain()_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG)|_CRTDBG_LEA 查看详情

自己造轮子之上传控件

前言:   本次项目里面需要使用上传插件,网上找了很多三方插件都被产品PASS   后面找到了webiploader,然后对他进行了模块化的封装。1.js的模块化管理      本文中使用了requier.js来管... 查看详情

js造轮子,基础篇

...码量大的情况全局变量的污染是非常可怕的,所以需要造轮子声明自己的变量和自己的全局变量和函数方法一,声明一个对象  先简单的声明一个对象tool={},这样就可以了,这样一个简单的全局对象就弄好了二,声明方法和... 查看详情

mybatis源码分析(自己动手造轮子)(代码片段)

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下微信搜索程序dunk,关注公众号,获取博客源码序号内容1Java基础面试题2JVM面试题3Java并发编程面试4计算机网络知识点汇总5MySQL面试题6Mybatis源码... 查看详情

简单chrome插件如何做到月收入5000美金-人物志第15篇

此文是「IndieMaker独立变现」知识星球人物志系列之第15篇官网:http://www.indiemakerstart.comThomas一个没有技术的人,利用自己擅长的能力,把危机变成了自己的机会,可以说这篇文章里有很多值得我们学习和借鉴的点。那些简单却有... 查看详情

「从零开始造rpc轮子系列」01我为什么要去造一个轮子?(代码片段)

目录好日子为什么你需要学习造轮子投资自己不要成为调包侠通过造轮子你能学到什么?下一步计划好日子,宣布一件事情!好日子12月有个好日子,20211202,从左往右读,接着从右往左读你会发现居然是... 查看详情

动手造轮子:写一个日志框架(代码片段)

动手造轮子:写一个日志框架Intro日志框架有很多,比如log4net/nlog/serilog/microsoft.extensions.logging等,如何在切换日志框架的时候做到不用修改代码,只需要切换不同的loggingProvider就可以了,最低成本的降低切换日志框架的成本,处... 查看详情

动手造轮子:实现一个简单的依赖注入(代码片段)

动手造轮子:实现一个简单的依赖注入(一)Intro在上一篇文章中主要介绍了一下要做的依赖注入的整体设计和大概编程体验,这篇文章要开始写代码了,开始实现自己的依赖注入框架。类图首先来温习一下上次提到的类图服务生... 查看详情

pythonsetuptools打包发布(代码片段)

...源开发项目,Python拥有一个活跃的贡献者和用户支持社区,这些社区也可以让他们的软件可供其他Python开发人员在开源许可条款下使用。这允许Python用户有效地共享和协作,从其他人已经创建的解决方案中受益于常见... 查看详情

造轮子mfc实现blockingqueue

...现这个。但是我没仔细去找,看了看一些资料就想着造个轮子玩玩。 实现如下:主要是利用CCriticalSection保护内置的std::list,然后用CEvent来实现生产者消费者的同步。 参考资料:h 查看详情

重复造轮子系列--计数,基数排序

计数,基数的中文读音都一样,这翻译的人还嫌我们计算机不够乱,真的想吐槽。不管了,毕竟代码还是不一样的。 1、计数排序(countersort):     通过一个上限来统计集合里的数值(或者其他非数值类型... 查看详情

我为什么还要造轮子?monk.ui诞生记

近期在开发Monk.Soul通用管理系统,起初本想着找一些主流的框架来作为系统的UI,但是发现了目前市场上的UI不好的地方,很多UI都是前端程序员写的,并没有考虑到后端数据交互的问题,导致数据绑定非常难!,所以Monk.UI诞生... 查看详情