这是一篇技术文章,如果你想继续阅读,并希望从中有所收获,你现在应当具备以下技能: C++ 编程语言基础 Linux 操作系统基础 本文目录 1....人们通常用gcc编译纯C代码,用g++编译C++代码。实际上可以用直接用g++编译C或者C++代码,本文我们学习怎样使用g++。...# 编译test.cpp 文件,在 Linux 下,默认产生名为 a.out 的二进制可执行文件 g++ test.cpp 实际上,上面的一步编译指令包含了以下几个过程 第一步:预处理 Pre-processing...-c 选项告诉 g++ 仅把源代码编译为机器语言的目标代码 # 缺省时 g++ 建立的目标代码文件有一个 .o 的扩展名 g++ -c test.s -o test.o 第四步:链接-Lingking,...生成 bin 二进制文件 # -o 编译选项来为将产生的可执行文件指定文件名,如果不使用-o参数,在Linux下默认输出名为 a.out 的可执行文件 g++ test.o -o test 3. g++
什么是整洁代码 代码的质量非常重要,糟糕的代码有可能会毁了一个公司。对于一个很注重代码质量的人来说呆在一个只关注交付而不关注代码质量的公司是很痛苦的。 什么是整洁的代码,不同的人又不同的定义。...我认为整洁的代码应该是符合所使用语言代码规范的;可复用的;便于维护的;简洁的。...项目代码中经常会出现被注释掉的代码,这对后面的维护人员会造成困扰,也会使代码变得混乱,这种代码同样可以删掉,因为我们有源码管理工具。 错误处理 错误处理简单来说就是当软件出现错误时还能正常工作。...使用TDD,会使测试覆盖所有的代码,测试代码和生产代码的比例有可能会达到1:1 ,所以也会带来成本的问题。...测试代码要随着生产代码的修改而修改,否则只会产生大量无用的测试代码,而且也会给生产代码的修改带来风险。
.$ = Zepto) 如果在编辑器中将 zepto 的源码折叠起来,看到的就跟上面的代码一样。 zepto 的核心是一个闭包,加载完毕后立即执行。...从上面的伪代码中,可以看到,$ 其实调用了 zepto.init() 方法,在 init 方法中,会获取到 dom 元素集合,然后将集合交由 zepto.Z() 方法处理,而 zepto.Z 方法返回的是函数...其实关键在于这句代码 Z.prototype = $.fn ,这句代码将 Z 的 prototype 指向 $.fn ,这样,Z 的实例就继承了 $.fn 的方法。...参考 zepto源码分析-代码结构 zepto对象思想与源码分析 zepto设计和源码分析 zepto源码中关于zepto.Z.prototype = $.fn的问题
而读代码,则是缓解焦虑的良方。 每当读懂软件的精彩设计,赞叹优美整洁的代码,甚至发现藏在注释中的彩蛋时,都好像在不同的时空与作者产生了交叉,畅快地聊了会儿天。 读代码很有趣,但要读通读懂也很费功夫。...本文是我在日常读代码中积累的一点心得,分享出来,希望能与大家产生共鸣。 1. 寻找一位好老师 优秀的项目就像一位好老师,我们可以从它身上全方位地学到各种领域知识。...不过在开始读代码之前, 最大的问题就是:怎么样才能找到合适的代码项目? Star 数高的项目更优秀吗?...不少代码片段都是比较枯燥而难以阅读的(比如“飞一般”的位操作,为提升性能而莫名其妙的语句,或是包含了大量隐含知识等等),只有自己感兴趣,才会有读下去的意愿和动力,才能在其中发现乐趣。...结语 本文是我日常读代码的一点经验,总结下来,就是要 仔细地选择学习的项目; 先通过文档了解全景,再逐步深入代码; 找对抽象和边界,能帮助我们建立思考模型; 写篇文章讲述代码的设计,是深入理解代码的好办法
一个项目运行久了,经过业务需求的迭代,开发人员的变更,总会产生一些质量不高的代码,要么来源于对某些业务理解的不太深,要么来源于对一些紧急变更的后遗症,往往遇到这种情况,我们会适时的引入重构,避免破窗效应...重构其实不仅可以重新梳理下我们的业务场景,梳理我们代码的逻辑,让其更贴合业务,更重要的是可以让开发人员有机会再次设计我们的系统,结合一些更好的开源项目和技术,提升团队的技术氛围。...是在不改变系统行为的前提下,对内部代码的重新组织,提高可理解性和降低修改成本。 为什么要重构?...一个小修改牵涉到了多个地方,且这些点处于未知状态 不易读懂代码(包括读懂自己1个月前的代码) 新手修改代码上手慢,需要很久才能进行有信心的代码修改 需求变化时,代码层面响应慢 什么时候需要重构?...: 存在重复代码时 函数体太长 函数参数太长 无法直观的看出代码逻辑 类太大 对一个常量存在了多个副本 很多很多的if/else/switch语句 类名、函数名、方法名不友好 重构与性能 重构为先,调优其次
你还见过哪种风骚的代码?
当然你看一遍不理解,再看一遍,忘了,再看,读个几遍你才会对推导过程和数学符号熟悉。我头脑不大行,来来回回看了好多次。...在Ufldl的基础上读这个,你应该可以很快掌握全连接层的反向传播。...我是去年底开始看Caffe代码的,看代码的时间加在一起也不到一个月,也算半个新手,我的回答是从新手角度作一个入门阶段的经验分享。 本文只涉及Caffe结构的相关问题,不涉及具体实现技巧等细节。...整体来看Layer部分代码最多,也反映出Caffe比较重视丰富网络单元的类型,然而由于Caffe的代码结构高度层次化,使得某些研究以及应用(比如研究类似非逐层连接的神经网络这种复杂的网络连接方式)难以在该平台实现...正好最近的工作与Caffe相关,就把网上已有的一些资料以及自己 读代码时候的亲身经历简单地整理了一下,希望能对大家有所帮助~ ====================================
一般而言,release版本总比debug版本信息小一点,而按照这篇文章《Linux下查看.so和可执行文件是否debug编译》进行检查是否debug编译,发现两者都是存在debug信息的,release
在linux下用g++编译tinyxml的步骤如下(tinyxml版本2.6.2): 进入tinyxml解压目录,用文本编辑器打开Makefile文件。 修改编译目的文件参数。
sudo apt install build-essential 和默认cmake一样老…… linux手机更新cmake版本 GCC 中的 C++20 支持 GCC 对 2020 年发布的 C++...要启用 C++20 支持,请将命令行参数 -std=c++20(在 GCC 9 及更早版本中使用 -std=c++2a)添加到您的 g++ 命令行。...补充小知识: 博客涉及的ubuntu版本从16.04-22.04 ubuntu 22.04的cmake和g++版本 ---- apt remove --purge sudo mount -o
开始重读《代码整洁之道》。...只有某些情况实现者也用那个名字时,那就给实现者加后缀 Impl 函数 函数要尽可能短小,越小越好,每个函数只负责一件事 函数的选择、循环里只写一句话,调用其他方法,这要求有点高 try/catch 里的代码单独抽出一个方法...太苛刻了,但是如果真的这么严格的话确实可读性变高了 不要有重复代码,若有就单独抽取一个函数
Java8读文件方法代码学习 JDK7中引入了新的文件操作类java.nio.file.File,它包含了很多有用的方法来操作文件,比如检查文件是否为隐藏文件,或者是检查文件是否为只读文件。...使用forEach()方法,可以只用一行Java代码实现把文件的所有内容输出到控制台,如下面第三个代码片段。...File = sb.toString(); System.out.println(fromFile); } } 如果使用的不是JDK7,而是JDK8,那么一行代码即可完成读文件...; public class FileIntoString { public static void main(String[] args) throws IOException { // 一行代码搞定读文件...class Java8FileReader { public static void main(String[] args) throws IOException { // Java8用流的方式读文件
为什么读这本书 很多同行在编写代码的时候往往只关注一些宏观上的主题:架构,设计模式,数据结构等等,却忽视了一些更细节上的点:比如变量如何命名与使用,控制流的设计,以及注释的写法等等。...宏观层面上的东西固然重要,但是代码的可读性也属于评价代码质量的一个无法让人忽视的指标:它影响了阅读代码的成本(毕竟代码主要是给人看的),甚至会影响代码出错的概率!...但是事实上,并不是代码越精简就越容易让人理解。相对于追求最小化代码行数,一个更好的提高可读性方法是最小化人们理解代码所需要的时间。...,对阅读代码的人理解我们的代码是很有帮助的。...因为写代码的过程也可以被看做是写代码的人与阅读代码的人的一种沟通,只不过这个沟通是单向的:代码的可读性高,可以说明写代码的人思路清晰,而且TA可以明确,高效地把自己的思考和工作内容以代码的形式表述出来。
还显得代码量大,失去耐心。” “那我还原成原先的格式,也有近 3000 多行,还是多啊” “这阅读源代码啊,是有技巧的。我可以分享三点给你。分别是,通读,联想,批评。”...首先告诉自己,一遍读完就能通晓5000行代码细节,是不可能的事情。读代码前,耐心先行。接着就是开始第一遍的阅读。...如果你对读到的代码,没有任何要抱怨,没有任何疑惑,那说明还没理解到位。当你看到这些代码,你认为嗯,这段写的很好,这段写的在理,都是这些溢美之词,那完了,你没深入。...且,书的优点在于,作者就像是代码评论家一样,告诉你为什么 SQL或者代码这么写,不如那样写来的高效,其中的原理是什么。这些都是你在分析具体代码时,可以学到的真正有用的东西。...我们应该在任何一段 SQL 中都找到可以学习的地方,最好是找到这段代码的设计弱点,比如子查询嵌套太多,不简洁;比如筛选条件不够优化,需要代码重构,这就是第三点,批评的实质。”
今天说说另一个事情:读代码。 为什么要读代码 读代码通常有两种原因:一是开发过程中不得不去读,二是为了学习和提升编程能力。...当使用中遇到问题而文档和搜索都无法解决的时候,读其源码是必须的。 开发中读代码大多数被动的。出于学习和提升的目的,主动读代码也很有必要。这也是我们今天讨论的重点: 1. 提高编程能力。...更进一步,你甚至可以通过阅读代码参与到一些开源项目,与高手交流。 如何读代码 既然读代码是有益且必要的,那么该如何读代码呢?这里给几点建议: 1. 有目的的阅读。...如果你想阅读一个外部库的代码,首先你应当去读下它的文档,了解它解决了什么问题,有哪些功能;然后再看看它的示例代码,如何被使用;最后才是开始看源码。...实际上,我觉得就是没看懂:你只是看懂了每一行代码的意思,但并没有理解整个代码的设计。从简单的代码做起,重复这样的过程。 读哪些代码 说了那么多,到底该读哪些代码? 1. 教程里的代码。
盲目自信,自认为已经敲了几年代码,还看什么整洁之道啊。...我那可爱的书架读懂了我的心思,很明事理的保护起来这本小可爱,未曾让它与我牵手 最近项目中的 bug 有点多,改动代码十分吃力,每看一行代码都带一句“这是什么XX代码啊,真XX难改”,这样持续了好几天,有天晚上坐在书房回想这几天发生的一切...据统计,读代码与写代码花费的时间比例超过 10:1, 因为我们在写新代码时会一直在读旧代码,项目越到后期这个比例越明显 我们是作者,就有责任和读者做好沟通。...每次写代码的时候,记得自己是作者,要为评判你工作的读者写代码. ?...if else等,代码整洁了,又学会了设计模式,岂不是两全其美 心有余,力要足 很多朋友说,我也想写出整洁的代码,但是目前实力不允许啊。
if (rc >= NGX_HTTP_SPECIAL_RESPONSE) { return rc; } return NGX_DONE; } 上面的代码是在...ngx_http_finalize_request(r, r->content_handler(r)); return NGX_OK; } … } 上面的代码中...则预读的数据会被拷贝进新开辟的内存块中,真正读取请求体的操作是在ngx_http_do_read_client_request_body()函数,该函数循环的读取请求体并保存在缓存中。...该函数会挂载读事件并设置读事件handler为ngx_http_read_client_request_body_handler。...另外nginx核心对两次请求体的读事件之间也做了超时设置,client_body_timeout指令能够设置这个超时时间,默觉得60s,假设下次读事件超时了,nginx会返回408给客户端。
android文件众多,根据名称来辨别用途很重要,因此命名要规范 这篇文章可参考:Android 命名规范 (提高代码可以读性) 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的...,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间。...如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法...layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中; 14.使用layer-list和selector Android编码规范建议(别人弄的觉得蛮有道理) 1.java代码中不出现中文
1. cmake升级参考: linux手机更新cmake版本 2. gcc和g++升级参考: linux手机更新 gcc g++ 版本 ---- root@ubuntu-phablet:/# gcc -...+ -std=c++2a g++: error: unrecognized command line option ‘-std=c++2a’ g++: fatal error: no input files...+或gcc版本: root@ubuntu-phablet:/# ls /usr/bin/g++* /usr/bin/g++ /usr/bin/g++-5 /usr/bin/g++-9 ---- 将默认...+ g++ /usr/bin/g++-5 10 update-alternatives: using /usr/bin/g++-5 to provide /usr/bin/g++ (g++) in auto... link g++ is /usr/bin/g++ /usr/bin/g++-5 - priority 10 /usr/bin/g++-9 - priority 40 ---- 再次测试: -
是阅读项目文档,没文档看代码。可见我们首要做的事情是看文档看懂文档,编程初学其实也是看文档,这个文档是基础知识的书籍。所以是相同的。...不硬着头皮看懂英文文档,特别是代码里的关键说明。你分析问题走的路就会拐十八道弯的。...做好以下三点来用文档来提高你对项目和代码的理解 一、泛读一遍 文档到手先是仔细看些文档的用途,提纲目录是否是自己需要的。本身你想要一个讲架构的文档,而你却看的一个api说明文档。...另外,请一定要自己亲手写代码,不要想当然地以为阅读和理解代码就够了好记性不如多敲敲键盘。...总结就是这三板斧,但真正能坚持实施才是关键,往往我们在实现出现偏差,对于一个初学者首要的任务是看懂文档,然后在去熟悉代码,但是也会有那只一个项目出来代码就没啥的情况,这个就得需要发挥个人智慧,跟老员工套近乎
领取专属 10元无门槛券
手把手带您无忧上云