大多数时候我都是写一些业务代码,可能一堆 CRUD 就能解决问题,但这样的工作对技术人的提升并不多,如何让自己从业务中解脱出来找到写代码的乐趣呢,我做过一些尝试,使用设计模式改善自己的业务代码就是其中的一种。
小编对Linux这一块的实际开发经验虽然还不是很足,但也知道进程间通信有那么几种方式:管道、消息队列、共享内存、套接字等。某项目中使用了MQTT作为进程间的通信方式,感觉很新颖,网上好像也比较少有看到使用MQTT来作为进程间通信的方式的。这两篇笔记我们就来一起学习一下这种方式。
只有5千行代码的GuiLite是嵌入式、单片机中常用的GUI框架;它就是C++编写,在GitHub有4.8K star,在Gitee有2K star。可能你觉得5千行能做什么?
本文以32位系统为例,详细介绍了内核空间(kernel space)和用户空间(user space)。
武侠小说中,各路侠客绿林好汉都是从基本功开始一招一式学起,掌握了足够多的招式后,加之勤学苦练,量变引起质变,会有一天打开任督二脉顿悟出这些招式背后的哲学逻辑,成为一代宗师。在编程的学习过程中,我们何尝不是从一招一式的函数、语法、特性等学起。
根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统(Embedded System)是指以应用为中心、以计算机技术为基础,软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
微控制器制造商的开发板,以及他们与开发板一起提供的软件项目例程,在工程师着手一个新设计时可以提供很大帮助。但在设计项目完成其早期阶段后,进一步设计时,制造商提供的软件也可能会导致一些问题。使用实时操作系统作为应用程序代码平台的设计还面临着许多挑战,比如如何将功能分配给不同的并行任务、如何设计高可靠的进程间通信、以及如何在硬件上测试整个软件包等问题。
很多初学者都不知道这个“do{...} while(0U)”作用和意义,甚至觉得这样写的代码复杂且没意义。相信使用过STM32Cube HAL库的朋友都知道,源码里面有许多do{...} while(0U)的宏定义语句。今天讲的主要知识点是:HAL库中do{...} while(0U)作用和意义。
在GitHub发布项目之前,你可以用免费的官方代码扫描程序来检查Bug了。编程很难,难就难在常有Bug而不自知。
在软件开发过程中,调试是必不可少的环节,嵌入式操作系统的调试与桌面操作系统的调试相比有很大差别,嵌入式系统的可视化调试能力比桌面操作系统要弱一点。对于导航这种业务场景比较复杂的程序开发,可视化调试环境能让我们业务场景开发事半功倍,也能快速定位导航业务与车机中其他模块交互出现的问题,提高开发过程中的调试效率。
if...else是所有高级编程语言都有的必备功能,但现实中的代码往往存在着过多的if...else。虽然if...else是必须的,但滥用的话,会对代码的可读性、可维护性造成很大伤害,进而危害到整个软件系统。
武侠小说中,各路侠客绿林好汉都是从基本功开始一招一式学起,掌握了足够多的招式后,加之勤学苦练,量变引起质变,会有一天打开任督二脉顿悟出这些招式背后的哲学逻辑,成为一代宗师。在编程的学习过程中,我们何尝不是从一招一式的函数、语法、特性等学起,掌握了一门编程语言后,再学习另一门语言就会快很多,如同拥有内功后,习得其他武功也会轻松很多。
如何保证发布出去的bin文件是最终测试通过的版本?
一组漫画告诉你!
修订版
以下是在日常工作中总结出的一些编码经验,还有一些提高程序运行效率的小技巧,让我们一起来写出更好的代码吧~
相信很多人在遇到面试中都遇到过被问到过JavaScript继承模式的问题,都能手写出几种继承模式的代码例子,但为什么面试官却对你的回答不是很满意或者压根就没听懂,个人觉得应该是缺少自己的一个答题的思路。
在啃掉一本本计算机经典书籍和写下大量代码以后……
我是Redis,一个叫Antirez的男人把我带到了这个世界上。 “快醒醒!快醒醒!”,隐隐约约,我听到有人在叫我。慢慢睁开眼睛,原来旁边是MySQL大哥。 “我怎么睡着了?” “嗨,你刚才是不是出现了错误,整个进程都崩溃了!害得一大堆查询请求都给我怼过来了!”,MySQL说到。
arthas中文直译过来叫阿尔萨斯,是阿里巴巴开源的java应用诊断工具,在线排查问题,无需重启服务,实时监控jvm状态。支持JDK6以上版本,支持Linux/Mac/Window操作系统。