程序员必须养成良好的代码习惯

深入剖析Zynq AMP模式下CPU1中断响应机制:从原理到创新实践 在异构计算领域,Zynq-7000系列SoC的AMP(Asymmetric Multiprocessing)模式堪称多核编程的瑞士军刀。独立运行环境:CPU0运行Linux,CPU1运行FreeRTOS或裸机程序硬件资源独占:CPU0管理DDR,CPU1使用OCM(片上内存)中断隔离:默认所有中断路由到CPU0这种架构非常适合需要实时响应的工业控制系统——比如用CPU0处理网络通信,CPU1负责电机控制。AMP模式下中断路由的底层原理多维度性能优化技巧工业级可靠性的实现方案。 阅读详情

养成良好的代码习惯,就是将代码写的漂亮,执行效率也自然就得到了提升。软件开发中包含太多东西了,需求的、设计的、测试的、管理的、文化的、心里的、沟通的,需要大家自己去琢磨。

前天在AgileChina2009上听了Fred George的演讲,他说他以前拿自己的代码给Kent Beck看,结果Kent说这代码很垃圾,你去看看我写的Smalltalk best practice patterns吧。然后Fred George就看了这本书并且完全按照书上的要求去做,5年后当他再给Kent看自己的代码时,Kent说很漂亮的代码。

考虑到Fred比Kent要老,可以看出Fred是非常虚心的,听了Kent的评价不仅没有生气,而且还完全听从了建议。当然这也可能是Kent太出名的缘故,若是我说他的代码不好,或许他就不会这样做了。

这让我联想到有一次和8x一起面试,8x的手工重构让我很是惊讶。虽然我也看过《重构》,虽然我平时也重构,但是不论从步伐还是安全性上,都相差深远。我读《重构》的时候对如此小步伐的改变是不太赞同的,因为效率比较低。我认为书中之所以把条目分的很详细,每个条目的步骤很小很谨慎,完全是为了可以让支持重构的工具得以实现,对于人来说,保持这样小的步骤太难了,不管是从记忆还是从操作的角度来看。然而8x的表现让我改变了看法,不仅速度并不慢,而且安全性非常的高。回想起我的重构经常出现改错以后没法返回的问题,不禁感叹--差距啊。

经常在国内的论坛上看到各种讨论设计、架构的帖子,然而每每show代码的时候却发现一塌糊涂。当然他们自己不觉得,可是我觉得很不好。最近 Kent Beck和Robert C.Martin出的两本书《Implementation Patterns》和《Clean Code》都是讨论一些很细节的东西的,如何命名、方法应该要多长、注释怎么写、格式怎么排等等,这些东西早在《The Element of Programming Style》中其实都有对应的东西,只不过语言不同了,细节方面也不同。然而为何这么多年来,一直有人不停的写本质上相同的东西呢?我觉得还是大家不重视,没有养成良好的习惯,自然就需要有人去写这些东西,反反复复的提醒大家。

这里再一次很惭愧的说,我没有好好去读,也没有按照书中的东西认真去做,总是以为大概了解个概念,知道怎么回事,然后差不多做到了就行了。然而现在想来,却完全不是那么回事。记得XP中有很多非常“极限”的要求,都是“一定”要如何如何,可实际上很多人都不以为然,认为太过激进,实际操作不现实或者不必要,因此在实施的时候,做了一些妥协和变通,最后失败了还说XP不好。当然XP不可能是包治百病的灵丹,在某些情况下确实也不应该用它,但是很多人明明可以从中获益,却因为没有领悟到其中的精髓而早早放弃。

比如说TDD,看起来与一般的单元测试的不同只是把写测试的工作放在了写代码之前,而Pair Programming也不过就是两个人坐在一起写程序罢了。然而在实际应用中,却会发现TDD并不是那么简单,它带来的好处是你在使用之前完全想不到的,甚至很多都和Test是无关的。而Pair也不简单的就是两个人干一份工,如何根据技能的不同组合Pair,两人如何分工都有很大的讲究,甚至一般的对于Pair目的的理解可能也是错误的。因此要想证明一件东西能不能起作用,首先要完全按照他要求的方式去做,等到你真的把该遇到的问题都遇到了,你才能真正知道它是什么,能做什么,不能做什么,最后才知道它到底能解决什么问题,不能解决什么问题。

在说回到代码习惯的问题,软件开发中包含太多东西了,需求的、设计的、测试的、管理的、文化的、心里的、沟通的……要想掌握这么多东西是很大的挑战。如何将一件事记住而不忘掉,最好的办法就是将之变成习惯,就像呼吸一样自然,不需要刻意去想就能做到。良好的代码习惯是一个开发人员最基本的技能,使之成为习惯,会获益很多。

决定在看一遍《重构》和《实现模式》并完全按照其中的要求去做,争取也能在5年之内将之养成习惯。

UG NX二次开发(C++)-NX2406系列二次开发编程模板配置 前面已经写了有关UG NX二次开发编程模板配置的文章,但是由于NX2406/2412系列的版本中,在UGOpen文件夹中没有了vs_files文件夹了,而是采用了VSIX Project的方式配置(其适用于VS2019),在VS2022中不能正确的配置。我结合以前配置模板的经验和现在的配置方式讲一下NX2406系列二次开发编程模板的配置。我把相应的编程模板放在资源文件UG NX二次开发编程模板(基于NX2406版本制作)中,方便大家下载使用。 阅读详情

相关推荐

逆向某团mtgsig参数时,我踩过的3个坑:从H5guard混淆到Python校验

本文详细解析了逆向某团mtgsig参数时遇到的三大挑战:H5guard混淆破解、环境补全检测与Python结果校验。通过实战案例,揭示了JavaScript加密算法的逆向技巧,包括控制流混淆拆解、隐蔽环境检测点规避以及跨语言校验的解决方案,为开发者提供了一套完整的逆向工程避坑指南。

weixin_27722377的博客 1062

写代码有这20个好习惯,可以减少80%非业务的bug!

点击上方“程序员蜗牛g”,选择“设为星标”跟蜗牛哥一起,每天进步一点点大厂程序员一枚 跟蜗牛一起 每天进步一点点31篇原创内容公众号今天,我精心为大家整理了写代码的16个好习惯,这些习惯个个经典实用,倘若你能将它们融入日常的编程工作中,相信大部分非业务相关的Bug都能被我们轻松规避。

764

LangChain开发避坑指南:为什么Pylance总提示‘无法解析导入‘?实测7种修复方案

本文深入解析了在VS Code中使用LangChain开发时,Pylance频繁提示‘无法解析导入’的根本原因——Python解释器与语言服务器的环境路径不一致。文章提供了从基础排查到深度配置的7种实测修复方案,包括切换解释器、配置extraPaths、使用pyrightconfig.json等,旨在帮助开发者彻底解决此问题,提升AI应用开发效率。

weixin_28826521的博客 447

【《代码整洁之道》精读与演绎】之一 让代码比你来时更干净

“我们就是一群代码猴子,上蹿下跳,自以为领略了编程的真谛。可惜当我们抓着几个酸桃子,得意洋洋坐到树枝上,却对自己造成的混乱熟视无睹。那堆“可以运行”的乱麻程序,就在我们的眼皮底下慢慢腐坏。” ——《代码整洁之道》作者 RobertC.Martin,于SD West 2007技术大会 一、系列文章前言 敲完上面这段文字的时候,心里在想,一个刚踏入编程生涯的新人,要经历多少的淬炼,才能领略到Bob大叔所谓的编程的真谛。 有人说,这个过程会很漫长,大概至少是在读完N本编程领域的经

【浅墨的游戏编程Blog】毛星云(浅墨)的专栏 2万+

Warning-[INFL_DELTA] Too many events zero delay loop

项目场景: 运用VCS工具执行仿真的时候,遇到如下错误提示,但仿真还在继续。 Warning-[INFL_DELTA] Too many events Possible zero delay loop. Too many events in the simulation at time 0 fs. 问题描述: 为什么会有这个问题; 什么导致了这个问题; 原因分析: 1、为什么会有这个问题 由于竞争条件或编码风格不明确,可能会产生零延时回路,导致仿真挂起或仿真时间无限。 2、什么导致了这个问题 举

hh199203的博客 1万+

Allegro PCB设计实战:5分钟搞定DDR信号线的Match Group等长规则设置

本文详细介绍了在Allegro PCB设计中,如何快速为DDR信号线设置Match Group等长规则。通过实战演练,解析了从理解相对传输延迟原理、在规则管理器中创建Match Group,到设置合理容差和利用动态绕线指示的全流程,帮助工程师在5分钟内高效完成高速信号时序约束,提升设计可靠性与效率。

gg901的博客 1055

C语言编程好习惯(持续更新)

1.编程好习惯之变量定义: 定义变量时总是按变量类型所占空间大小来排序是最好的! 如果是只有某个函数使用些变量,而且你又需要在函数让函数退出时不被销毁,那么就使用static吧 2.编程好习惯之函数定义: 如果我们定义的C函数仅在此C文件中被调用那么加上static吧(适用于多文件编程) 如果我们想躲避C函数参数的类型检查,那 么K&R的函数定义声明方式还是很不错的! 3.编程

findstr的专栏 3217

Modbus TCP 通信(C#)

【代码】Modbus TCP 通信(C#)

weixin_56229359的博客 1150

写好Java代码的30条经验总结

转载自:http://www.codeceo.com/article/30-java-tips.html 成为一个优秀的Java程序员,有着良好的代码编写习惯是必不可少的。下面就让我们来看看代码编写的30条建议吧。 (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字...

dlxqlig0806的博客 572

AI视频生成本地搭建图文详细过程

在自己的电脑上搭建一个AI,主要用于通过自己输入的关键字来自动生成视频文案,把视频文案自动生成视频,再自动给视频配音配字幕。

张小三的博客 4693

【C语言】字符常量详解

字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。

LuckiBit 5018

良好的代码风格养成记

综述 优秀的代码风格如同一身得体的打扮,能够给人以良好的印象。初学程序设计,首先必须建立良好的编程习惯,这其中就包括代码风格。本文就代码风格中的几个重点问题进行了讨论,并在文后给出了一份优秀的代码作为风格模板。代码风格不必花费太多专门的时间研究,在使用中不断模仿模板代码,轻轻松松就能写出“专业的代码”。 80字符,代码行极限 无论时空怎么转变,世界怎样改变,一行80字符应始终铭记心间。古老的

GarfieldEr007的专栏 4586

芒果YOLOv1改进35:主干Backbone篇之MobileViTv3:全网首发最新 MobileViTv3 系列最强改进版本(三)|轻量化Transformer视觉转换器,简单有效地融合了本地全局

芒果YOLOv1改进35:主干Backbone篇之MobileViTv3:全网首发最新 MobileViTv3 系列最强改进版本(三)|轻量化Transformer视觉转换器,简单有效地融合了本地全局

包括YOLOv5、YOLOv7、YOLOv8等模型改进 417

程序员应该养成的代码习惯

 1.不引用的包要去除,用ctrl+shift+o   2.List<Dishes> list=new ArrayList<Dishes>();  赋值分割 应该如下面这样: List<Dishes> list = new ArrayList<Dishes>();   3.利用ctrl+shift+f格式化代码,但尽量保持一句代码一...

molvhongchen的博客 211

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

py程序员写代码的习惯养成 防止想到什么写什么

py程序员写代码的习惯养成 防止想到什么写什么 本例以一个爬虫项目为例 描述写代码的思路 架构注释 目标是明确:主线步骤 对起始页发起请求,获取数据 根据获取的数据,构建请求url列表 依次访问url列表中的网址,将响应保存到响应列表中 依次处理响应列表中的内容,将处理好的结果进行保存 将架构注释用代码形式表现出来 # 对起始页发起请求,获取数据 url = "起始页网址" max_page = get_max_page(url) # 根据获取的数据,构建请求url列表 request_u

pyhui的技术博客 232

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

编程中,有哪些好的习惯一开始就值得坚持?

嗨,小伙伴们大家好,我是沉默王二,就是那个吹自己既有颜值又有才华的家伙。今天这个话题我觉得还是值得和大家探讨的,因为好的编程习惯对程序员的职业生涯真的非常重要。 记得我在学驾照的时候,遇到一哥们,之前开过车,属于无证驾驶的那种。但是,这哥们科目二竟然挂了四次,第五次有没有过我不知道,因为我科目三都考过了,那哥们还在练科目二。教练真气的不轻,天天扯着嗓门喊:“你那个脑袋瓜子特么能不能不要钻到车窗外面...

沉默王二 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

习惯,到底有多重要?

记得乔布斯说过:“在你生命的最初30年中,你养成习惯;在你生命的最后30年中,你的习惯决定了你。” 我们每个人都有很多不同的习惯,只是这些习惯有好有坏。而习惯,往往会决定人的命运。 把坚持变成习惯 曾经看过一段董卿的采访,采访中董卿说:“我基本上每天睡之前阅读一个小时,雷打不动的,很多人问我还能坚持啊。其实无所谓坚持不坚持,这已经成为一个习惯了。” 还记得她主持《中国诗词大会》时备受称赞,妙语连珠,各种名句信手拈来。这些都离不开她这个坚持阅读的好习惯。 很多时候

【优快云】 456

程序员如何培养好的测试习惯?

程序员如何培养好的测试习惯? 软件开发周期通常至少有以下4个步骤:需求分析,软件开发,测试,部署。而其中的测试是我们今天要说到的重点,今天我们来聊一聊程序员和测试这件事。 现状 目前大部分软件公司或者IT部门是没有配备专门的测试人员的,测试通常依靠程序员自测,公司内部人员测试,自动化工具测试等等。 在没有测试人员的情况下,其中最重要的环节其实是程序员自测。我们知道好的软件并不是一蹴而就的,而是一步...

valuemar的博客 315

高效程序员应该养成的七个习惯

对于软件工程师来说,工作也许意味着许多东西 -- 稳定的收入、做自己感兴趣的项目、找一份更好工作的跳板,或者你只是喜欢与其他程序员共事。但说到“效率”,强调的是在一定时间内按质完成项目的能力。 Phil Chu根据自己的经验提出了高效程序员应该养成的七个习惯...

chengtingqu9941的博客 137

禅道批量删除bug_写代码有这16个好习惯,可以减少80%非业务的bug

每一个好习惯都是一笔财富,本文整理了写代码的16个好习惯,每个都很经典,养成这些习惯,可以规避多数非业务的bug!希望对大家有帮助哈,谢谢阅读,加油哦~1. 修改完代码,记得自测一下「改完代码,自测一下」 是每位程序员必备的基本素养。尤其不要抱有这种侥幸「心理:我只是改了一个变量或者我只改了一行配置代码,不用自测了」。改完代码,尽量要求自己都去测试一下哈,可以规避很多不必要bug的。2. 方法入参...

weixin_34942265的博客 2043

编程中,有哪些好的习惯一开始就值得坚持?(转载)

嗨,小伙伴们大家好,我是沉默王二,就是那个吹自己既有颜值又有才华的家伙。今天这个话题我觉得还是值得和大家探讨的,因为好的编程习惯对程序员的职业生涯真的非常重要。 记得我在学驾照的时候,遇到一哥们,之前开过车,属于无证驾驶的那种。但是,这哥们科目二竟然挂了四次,第五次有没有过我不知道,因为我科目三都考过了,那哥们还在练科目二。教练真气的不轻,天天扯着嗓门喊:“你那个脑袋瓜子特么能不能不要钻到车窗外面看,把车窗玻璃给我摇上去,里面难道看不到镜子吗?” 我在排队等车期间真的观察过,尤其是侧方停车的时候,这哥们总是

Solomwn的博客 247

程序员大佬的8个好习惯

现在开源项目渐渐成为主流,也赢得更多的支持和认可,比如Python、MySQL 、Linux、PyTorch等等,GitHub上有非常多优秀的仓库值得大家去学习、共创。所谓闭环思维,简单点讲,就是无论做什么事,都能有始有终,能形成一个完整的闭环。保持对程序代码的手感,非常重要‼️practice make perfect ,练习不光是练手,还要练习大脑的思考,手脑并进才是进步。提问者需要有总结归纳的能力,我觉得好的问题有3个标准,开放、有争议、可迁移,现在能提好问题的人并不多。6、善于提问,善于搜索。

分享Python、数据分析、人工智能前沿知识 653

优秀程序员都有哪些编程习惯?

要成为一个好的程序员,我们应该遵循一些易于采用的好习惯。作者 |John Au-Yeung译者 |苏本如,责编 | 郭芮出品 | 优快云(ID:优快云news)以下为译文:在本...

优快云资讯 2287

高效程序员的 14 个习惯(二)

作者:Paul Isaris翻译:史拂尘原链接可点击文末左下角「阅读原文」序言这篇文章是「高效程序员的 14 个习惯」系列的第二部分。你可以在这里或者我的博客阅读第一部分...

LeanCloud通讯 178

评高效程序员应该养成的七个习惯

评高效程序员应该养成的七个习惯(转载请注明来源于金庆的专栏)”高效程序员应该养成的七个习惯“一文中,Phil Chu根据自己的经验提出了高效程序员应该养成的七个习惯。它们是:  1.理解你的需求  2.保持真实性  3.理解你的代码  4.最优编程  5.管理好你自己  6.持续教育  7. R-E-S-P-E-C-T请阅读原文,仅看标题不是够的,原文对前3点作了详述,都是很实际的经验。后面4点仅

金庆的专栏 1390
上一篇: 程序员的十个层次 你属于哪一层?(3)
下一篇: 国外大师所积累的20条编程经验
枫★曦
博客等级 码龄19年 251粉丝 153原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值