网站制作评价灰色词seo

当前位置: 首页 > news >正文

网站制作评价,灰色词seo,建湖专业做网站,网络信息推广服务我从2011年开始做单片机开发#xff0c;一直保持以下撸代码的习惯。 1.做好代码版本管理 有些人#xff0c;喜欢一个程序干到底#xff0c;直到实现全部的产品功能#xff0c;我以前做51单片机的项目就是这样。 如果功能比较多的产品#xff0c;我不建议这样做#xff0…我从2011年开始做单片机开发一直保持以下撸代码的习惯。 1.做好代码版本管理 有些人喜欢一个程序干到底直到实现全部的产品功能我以前做51单片机的项目就是这样。 如果功能比较多的产品我不建议这样做迟早有一天有一个项目会让你崩溃的特别是还不具备模块化编程能力的时候。 之前我就踩过几次这种坑一个程序版本实现了很多个功能后面新增功能的时候突然发现了一个BUG怎么都调不出来。 这时候如果有上一个版本可以用上一个版本的代码一点点代码复制过去看看到底是哪个代码造成的。 从那次以后我就养成了做代码版本管理的习惯比如V1.0,V1.1,V1.2….. 然后每个程序版本里面我都会写一个文档描述下历史版本实现的功能记录以防后面忘了。 2.多学习优秀的代码和思维 刚工作那会主要用STC的51单片机做项目主要维护之前工程师遗留的代码升级产品功能为主基本是一堆屎山代码实现功能就行了。 不会考虑怎么把代码写得更好主要是自己当时也没那能力项目又急能改出来应付工作就不错了有时项目急我逻辑又理不清甚至用了goto语句走了捷径可能很多人都没见过。 工作了几年一直是维持在这种水平没有提升因为接触不到更复杂的项目接触不到好的编程思维和代码。 后面跳槽到一家公司接收了一个网关项目需要自己从0到1完成整个项目的代码。 这个项目难度已经超过了我的知识范围主要有两个问题 第一很多功能没做过不知道啥原理 第二功能太多了不知道怎么很好地把它们整合协调起来。 我是怎么解决这两个问题的呢 第一个问题最快的方式就是问同部门的研发同事。 不过不要指望别人会手把手教你哪怕领导发话别人也没这义务。 最关键的不是指望让领导去给他下发命令就能让他带你而是看自己懂不懂得做人的。 举个例子有些老铁来找我领单片机入门到高级的教程工具包我都是无套路直接发链接。 为什么要在我的朋友圈才发 因为我是卖课佬我觉得我们的项目课确实能帮到一些人成就一些人万一哪天你需要我们又正好专业各取所需共赢我觉得没毛病。 但我也深知要让别人认可你那就先贡献价值出来所以我就不断输出自己经验和送粉丝教程工具包了。 我感觉人和人之间挺有意思也差别挺大。 有些人很懂得感恩还会给我发个小惊喜收不收看我有没有给到他对应的价值了。 有些人趾高气昂理所当然像我欠了他的一样。 我就想怎么会有这种傻杯然后拉黑了。 扯远了。 回到找同事帮忙的问题也是同理你得付出相应的价值得请吃饭、得请喝奶茶、帮的忙多了得送礼….这不是潜规则是对别人起码的尊重。 不能因为领导发话了叫他去带你你就能像个伸手党一样一直索取他的价值不信你试试多问几个问题以后看他鸟不鸟你。 第二个问题功能太多了不知道怎么很好地把它们整合协调起来。 这个其实最难因为涉及到程序架构的问题不是某个功能点更多的是经验积累到一定程度后再学习别人优秀的程序架构突然开悟了。 我是参考别人工程师写的代码一点点积累起来的然后根据时间片轮询原理设计了一个程序架构我在2019年也录过这个程序架构的教程。 老规矩有礼貌的粉丝可以找我安排。 编程思维、高阶代码技巧、程序架构这些如果能冲我们无际单片机项目特训营系统把我们几个项目做完那直接就是走捷径了都是我们踩坑10年以上总结出来的精华。 3.重视模块化 我第一次重视程序模块化项目代码量编译完大概70kb。 什么是模块化 举个例子以下两段代码分别是非模块化写法和模块化写法 非模块化写法 C#include reg51.h // 假设是51单片机void main() {     // 硬件初始化    P1 0xFF; // 设置P1口为输入    IT0 1;    // 设置外部中断0为下降沿触发    EX0 1;    // 使能外部中断0    EA 1;     // 开启全局中断    // 主循环    while(1) {         // 功能实现        if(P1_0 0) {             P1 ~P1; // 如果P1.0被按下翻转P1口的状态        }     } }// 外部中断0服务程序void exint0() interrupt 0 {     // 中断处理    P1 P1 1; // 每次中断将P1口的值左移一位}
在这个例子中硬件初始化、主循环和中断服务程序都混合在同一个.c文件中阅读和维护起来会困难很多特别是后期随着代码越来越多。 模块化写法 C// hardware.h #ifndef HARDWARE_H #define HARDWARE_H void init_hardware(); #endif // hardware.c #include hardware.h void init_hardware() {     P1 0xFF; // 设置P1口为输入     IT0 1;    // 设置外部中断0为下降沿触发     EX0 1;    // 使能外部中断0     EA 1;     // 开启全局中断 } // main.c #include hardware.h #include reg51.h void main() {     init_hardware(); // 初始化硬件     while(1) {         // 主循环功能实现         if(P1_0 0) {             P1 ~P1; // 如果P1.0被按下翻转P1口的状态         }     } } // exint0.c #include reg51.h // 外部中断0服务程序 void exint0() interrupt 0 {     // 中断处理     P1 P1 1; // 每次中断将P1口的值左移一位 }
在这个模块化的例子中我们将硬件初始化放到了hardware.c和hardware.h中主循环放在main.c中而中断服务程序放在exint0.c中。这样每个文件都有一个明确的作用代码的结构更加清晰也更好阅读和维护。 稍微复杂点的单片机项目需要处理很多硬件接口和复杂的时序逻辑还有各种产品业务逻辑组合所以模块化尤其重要。 上面只是举了两个入门级模块化写法高阶的模块化远不止这些首先是程序文件架构的模块化分硬件层、中间层、应用层。 怎么实现多层之间依赖最少这样后期万一需要更换单片机只需要修改硬件层驱动代码就好了。 然后是里面每个功能模块化怎么写方便后期增减功能。 这些其实都是系统的学问所到之处全是细节我们无际单片机特训营都是通过这些思维和编程方式做的特别是项目3和6。 提升这块的能力主动学习意识和机遇都很重要有些工程师做了4,5年如果公司一直做简单的项目那也是提升不了的需要自己通过业余的时间不断看别人代码摸索。 4.有条件换个好点的椅子 撸代码的长时间对电脑经常一坐就是几个小时好点的椅子能缓解颈椎、腰椎的疲劳。如果能换个立式办公桌就更好了。 5.不要做一个看完不点赞的冷漠青年 不知不觉又写了两个多小时原创不易发财小手点起来… 最近很多粉丝问我单片机怎么学我根据自己从业十年经验累积耗时一个月精心整理一份「单 片机最佳学习路径单片机入门到高级教程工具包」全部无偿分享给铁粉 除此以外再含泪分享我压箱底的22个热门开源项目包含源码原理图PCB说明文档让你迅速进阶成高手 教程资料包和详细的学习路径可以看我下面这篇文章的开头。 《单片机入门到高级开挂学习路径(附教程工具)》 《单片机入门到高级开挂学习路径(附教程工具)》 《单片机入门到高级开挂学习路径(附教程工具)》