代码整洁之道pdf百度网盘(代码整洁之道哪个版本好)
- 数据库
- 2023-08-13
- 89
很多朋友对于代码整洁之道pdf百度网盘和代码整洁之道哪个版本好不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!如何在电脑课上秀代码如果您在电脑课...
很多朋友对于代码整洁之道pdf百度网盘和代码整洁之道哪个版本好不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
如何在电脑课上秀代码
如果您在电脑课上需要展示代码,并希望其他人可以看清楚并理解您的代码,可以按照以下步骤进行:
在计算机上打开您要展示的代码文件,例如文本编辑器或集成开发环境(IDE)。
调整编辑器的字体大小和样式,以确保代码能够在屏幕上清晰可见。通常情况下,建议设置为较大的字号、简洁的字体和明显的高亮颜色,以方便其他人查看和理解。
使用屏幕共享功能,在教室或网络会议中分享您的桌面或应用程序,以使其他人可以看到您的代码。
通过语音或文字说明,向其他人介绍您正在展示的代码内容、结构和功能等方面的信息,并回答可能出现的问题和疑虑。
在展示完代码后,可以提供相应的代码文件或链接,以便其他人进行更深入的学习和实践。
如何才能写出“高质量”的代码
谢谢邀请,
作为一个已经写了十几年代码的程序员,做好软件不是全部围绕代码而展开,换句话讲一个程序员的程序员优秀不仅仅体现在代码上,更要有内在的编程思想说的层次再高深点就是框架思想。很多初学者都会存在很多疑问,觉得能够写代码就万事大吉了,在能写代码之前会有很多疑问
数学不好能学好编程不?
英语不好能不能学好编程?
这些都是还没入门的疑问,真正入门之后发现这些都不是什么问题,真正决定程序员水平也不是简单的能写多少代码,真正项目实施过程写代码的时间占据不到百分三十,大部分时间是在设计和构思上,当然占据时间最多的是调试以及客户后续提出的需求上面,现在很多人还在纠结是不是要多学习几种编程语言,编程语言本质来讲就是一种工具,主要指导思想还是编程思想。
现实中如何才能写出高质量的代码?1.良好编程基本功。再高的大厦也得需要强大的编程基础,不一定要掌握多少种编程语言关键要非常熟悉一种编程语言,里里外外都给吃透了,达到这种程度至于掌握几种编程语言就显得不是那么重要了,到了这种程度就可以触类旁通,切换一种新的编程语言也不会费多大事,有事没事就回头看看基础书,越是编程高手越是注重基本功的学习,很多做java的程序员,java编程思想这本书看了不下十几遍,而且还在继续,基础的学习什么时候值得回味。
2.专业知识的雄厚。编程语言只是工具,工具如何才能使用好,还是要看这工具是用来做什么的,比如安全领域可能使用C语言或者C++编程,如果安全专业知识掌握的非常扎实,工具使用起来再更加熟练,才能有高质量的代码出现,要把一个事情做到极致,各个细节点就要落实到位,缺一不可。
3.好的软件框架,软件框架是写出高质量代码的土壤,假如一个能力很强的人,进入一个乱糟糟的公司基本很难发挥出最大的潜能,所以生存土壤很重要,一个优秀的产品一定是代码各个模块有机配合在一起共同做出来的,一个模块的优秀代码优秀,整个产品出问题了意义也不是很大。
4.高质量的代码从来都不是一次性搞定的,都是经过多次的打磨修改出来的,玩过开源的人应该都明白,代码模块不停的升级优化折腾不停,不仅仅是功能的增加更重要的代码质量的提炼,所以想写出高质量代码需要敢对自己下手,对自己要狠一点才能有高质量的代码出来,细心的人可以观察下身边优秀的程序员,看看是不是都是这么做的。
做到以上四点,坚持下去写出来的代码质量不会差,当然还要懂得去阅读别人写的优秀代码,开始看的时候不一定能看得懂,不能大块的看懂就切块去看去学习,以前有个linux内核爱好者,整体看linux内核代码,有一天看到他十分开心的样子,问发生了什么事情,说看懂了linux内核里面的内存是如何管理的了,然后拉着我给我讲了半天,虽然没听懂但也坚持听到最后,毕竟代码能写的前提是能看懂,所以开源社区的代码如果能看懂就是一个非常大的进步,然后一步步的掌握起来,格局放大一定做出更大的事情来。
代码写的美是怎样一种体验
工作第二年时候的一个经验,第一次实实在在感觉到简洁代码的威力,整洁代码实乃保命保平安神器。
当时开发的是这个游戏:
实际游戏画面:
这个巅峰时期团队过百,一共前后做了4,5年,代码量那是大大的,我这里参与的是ps3版,使用的是unreal3引擎。
xbox360/ps3这一代,unreal在微软平台上做的很是不错,在ps3上面各种原因吧,做的很不到位,对应出的unrealtournament3在ps3上面各种缩水。
一定程度上也和ps3的机能不足以及奇怪的架构有关。
ps3的在cpu端基本架构是这样:
其中可以重点关注大家不太常见的叫做SPE的这个东西,这个可以说是ps3的一大特色,就是一个很强的协处理器,非常善于做vector类的“傻算”,单个能力超过现在的普通I7的单核cpu的计算能力,而且这样的东东有8个。。。
甚至sony开始希望这个spe搞定一切,连GPU都省了,但是后来发现不行,急急忙忙上的nvidia的缩水GTX7800级别的GPU。
但是SPE毕竟设计时候牛逼,后面大家拿这个东西来做计算蛋白质序列啊,在ps3的中后期,大家开始研究怎么用SPU做一些渲染的工作,一度能承担40%的GPU的工作,其战斗力可见一斑。
当时sony底层系统方面的能力比微软差不少,所以底层一大特色就是“裸”,你有两个选择,一个是opengl的api,这样使用默认的驱动,但是效率就是一个普通效率。
还有一个版本的就是叫gcm的一个api,就比较的底层,你自己来管理一切,从显存的管理到commandbuffer的flush都是自己来做。
近乎等于开发者自己来实现一个类似driver的东西了,为了效率这个是大家普遍的选择。
然后sony文档上有介绍说,SPE可以支持去执行这些gcm的命令的构建,也就是说可以把整个驱动实现出来,然后放到SPE上去跑,这样就进一步解放核心CPU的工作,达到更好的性能。
当时花了一些时间把ps3版的底层写好了,driver也都跑顺了,然后就开始做把driver往SPE上移植的工作。
这个过程就是一个把unreal底层进行拆解分离,把driver部分独立出来,然后实现到SPE上面,由SPE把命令构建好,送往GPU;为了进一步优化性能,自己实现的这个部分还可以提供更高层的一些api,把一些游戏常用的api直接打包成一个包,定制出一个比opengl更简单样子,但是效率非常的高。
刚刚写了第一版,直接就一团乱,跟了代码一瞅。。。代码段被冲了,这个之前都没见到过,正常系统上对代码段会有保护,冲过去会有warning什么的,SPE上面就是完全裸的,没有任何保护。
然后说回SPE,上面一个很小的localstorage,需要把命令送过去,然后管理本地的内存,进而执行代码等等,然后代码的执行是通过gpu来看的,所以如果出错了,你只能知道错了,不知道哪里错了。
而且ps3的早期,各种debug工具也不完整,debug能力就各种抓瞎。
当时工作也不久,经验也不足,就这样,扛着一个这种大游戏的底层,没日没夜的在SPE里面一直泡着,一个坑出来再进到另外一个坑。
中间一个问题憋了一个多星期,没有一点进展,甚至开始怀疑是不是这个SPE做driver是不可能的,毕竟只是文档上提一嘴。
在sony论坛上求教,还真有一个哥们,欧洲一个公司的,做网球游戏的,给我发来邮件说他也这么干的,能行;这真给我相当大的希望,继续又怼了1个星期,代码都快全背下来了,终于能够继续前进,刚刚长舒一口气
leader把我叫到办公室里问我还有多长时间能弄完,有点担心这个能不能行,在考虑要不要把任务cancel。。。当时的表情是这样的:
和leader晓之以理动之以情,软磨硬泡,最后leader再给2星期时间,必须能够跑得比较稳定,否则还是要卡擦掉。
然后继续猛怼,后面进展还算可以,但是由于项目已经比较靠后了,比较担心上了之后会出各种难查的问题(这个的情况比多线程要更棘手了)。
中间开发的过程已经明显感觉到,对于这种难以debug的情况,把设计做清晰,把代码写整洁有多么重要。
所以到最后就是不停的去重构代码,一直到代码已经整洁到自己想吐了,就是那种中考前复习的实在烦了,去tmd的考就考吧的感觉。
开始合入了主干,提测QA,然后买好红牛,等着bug彻夜奋战。
然后过了一天。。。没事,QA只是反映,帧数是更好了一些。
2天。。。没事
最后一周下来,就是零星2个小问题。
这对于这种规模应该说是比较少见了,最后实际profile下来,能节省6-8ms(面向30帧的游戏,一共33ms,所以对于性能来说是非常关键的一波)。
这波下来,有这样的感觉
整洁代码绝非装逼用的,简直就是保命保平安神器变得特别喜欢欣赏整洁代码的美妙之处,后来看insomniac的spu实现的计算水的fft(刚刚查了下已经没有了),真是如同欣赏水墨风景的怡然的感觉总的说来,谈不上美哭了,但是也有美的一面,整个过程连滚再爬也快哭了。。。
在头条发了评论,支持代码整洁之道,被一群功能实现就好的观点的人碰了,你怎么看
为什么不能编辑呢,写错一个字,喷字
你见过最漂亮的代码是什么样的
不同程序员
写代码确实有很大的水平差异,代码格式、算法优劣,这些都能够反应一个人的代码水平,我就记得学生时代有个同学,他写的前端代码就是要比我们都写得好一些,写出来的界面也更美观和合理一些,这就属于天赋。今天就说三段代码吧,这三段代码真的是我觉得非常有意义的代码,或者说我认为很漂亮。
王垠的40行代码王垠这个人,这两年想必大家听得比较少了,不过至少在我读书那个年代,是听到过不少的故事的,作为一个CS专业的科班生,我自己也算是骄傲的,但是不得不说王垠确实还是让我很佩服,得承认王垠确实是个很有才华的人,甚至可以说他在这个行业算是一个天才,也是因为性格的原因,他没能取得什么代表性的学术成就和工业成就。
王垠这几行代码,说实话作为一个半吊子的Lisp和Scheme函数式编程业余爱好者,我大多数时间也只是用Emacs写C/C++代码而已,不太可能用太多时间来学习函数式编程,不过用我仅有的一点知识来看,王垠这段代码确实还是很出色的,我甚至认为王垠厉害之处不在于他精妙地实现了CPS算法,而是他的思维能力确实不错。
去年王垠去了阿里面试,是曾经在Facebook工作过的赵海平亲自面试,大家也都知道赵海平在阿里的职级是P10,面试之后王垠对于赵海平颇有微词,甚至上升到了对阿里的不满,这次面试不光是闹得不慌而散,最终还嫌弃了一番热议,后来赵海平还亲自出来解释。
vi写下第一行可视“HelloWorld”想必大家都知道肯汤普森,就是和丹尼斯里奇一起开发了C语言和Unix系统的那位大神,可以说肯汤普森是我们这个行业的祖师爷了。
那时候没有可视化的环境,老爷子也没能给Unix打造一个可视化的开发工具,后来老爷子回到自己的母校加州大学伯克利分校,他还在那里开了课,在机房闲逛的时候,老爷子随手写了一个Pascal编译器,不过因为时间紧确实不太完善,一个叫做BillJoy的学生发现了这个编译器的问题,他就着手想把这个编译器改好。
改这个编译器,那时候也没有可视化IDE继承开发环境,BillJoy同样用的是老爷子写的EX编辑器,很快他就把这个Pascal编译器改好了,改好了之后深受伯克利学生喜欢,不过他开始对ex编辑器不满了,于是他就给ex编辑器加了可视化模式,这个编辑器一直演化,最终也就成为了现在的vi编辑器,后来发展成Vim已经很完善了,Vim是跟Emacs齐名的文本编辑器。
GoogleC++Style每一个程序员都应该养成好的代码习惯,《代码大全》、《编程珠玑》、《代码之美》等等这些都是帮你养成好的代码习惯的书籍,还有些大名鼎鼎的《C陷阱》、《EffectiveJava》等书籍,这些书籍又能够帮助你很好的规避开发风险。
除了这些之外,我觉得GoogleC++Style是每一个程序员都应该看的,Google的C++代码规范可以说是目前为止全行业最好的工业代码规范,是Google多年来C++大厂工业实践留下的精华,基本上该注意的,能够回避的坑基本上都帮你解决掉了。一个优秀的程序员,你的代码一定要是可维护的,可读性还要高,GoogleC++代码规范能够很好的帮你养成好的代码习惯。
在我看来程序员不管是从事科研还是立足于工业,都应该有一个原则,那就是写有价值的代码,不管是做学术产品还是做工业产品,尽可能为你写过的代码负责,要写可维护的代码,保障你写过的代码是可读性很高的,这样的代码才是真正漂亮的代码。
本文为作者EmacserVimer悟空问答原创文章,未经允许转载、抄袭必究!如何成为一个有代码洁癖的程序员
如果每个程序员都能意识到代码洁癖-清新脱俗的一个词,那程序员的工作效率肯定会提升不少。我是步入科技圈,当初也一直在寻找出路,现在说说我的改变之路。如果对你有帮助,点个赞呗。
首先你要做到的就是,对自己学习的编程语言要有一定的熟练度。刚入门的程序员,最重要的还是弄清楚自己到底在学什么,了解自己敲出来的代码在干什么。就拿函数来说,你要知道函数声明、函数定义、函数块内的:变量定义、代码逻辑、返回值等等信息。你可以用编程语言完成指定的一些事情之后,下面就可以谈代码洁癖了。
与其说代码洁癖,貌似更像是说编程质量,这主要包括三个方面:编程风格、出错处理以及算法复杂度分析。
1.编程风格:简单的提几个要点,比如命名习惯,合理使用空行分割代码块、注释、不要省大括号{}与对齐、空格的正确使用等等。
2.出错处理:出错处理是考验程序健壮性的标准之一。比如,参数中有指针,用该指针之前就需要判断是否为空;空间申请有始有终,有Malloc就要有free;trycatchfinally的合理使用等等。如下Memcpy函数的实现:
3.复杂度分析:对于同一个问题,再有几种算法可供选择的条件下,优先选用最合适的。比如排序都有很多种,适用于不同的情况。这就客观要求我们对同类问题要有多种思路,这一点才能做得更好。
结尾我推荐一本电子书《高质量c++/c编程指南》,这本书虽然是书名指的是c++/c,但是里面的很多规则同样适用于Java,Python,C#等,有助于程序员培养好的代码规范。如果你有更好的想法,欢迎一起交流。
文章到此结束,如果本次分享的代码整洁之道pdf百度网盘和代码整洁之道哪个版本好的问题解决了您的问题,那么我们由衷的感到高兴!
本文链接:http://www.xinin56.com/su/5079.html