首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何评价一段代码

    经常有人微信问我,什么样的代码才算是好代码。这个问题其实见仁见智,业内也没有统一的标准可以使用。我仔细梳理了一下自己评价代码的方法,总结了五个评价指标。...[] p; 没有嵌入式经验的人一定会问,这段代码申请了一段空间后什么也没做就释放掉了,这不是画蛇添足吗。...其实,这是一段容错代码,就是为了保证系统中有足够的空间供后面的代码执行。 是不是想想就很可怜,程序运行中突然发现内存不够了,不得不停掉。 4 可读性 ?...铁打的项目流水的程序员,一段可读性差的代码对项目而言很可能意味着灭顶之灾。 对于初学者,代码规范这个要素必须非常重视,如果错过了这个培养良好习惯的黄金时期,后面再改就很难了。...但扩展性有一个死敌就是代码量。仔细研究一下经典的23种设计模式,没有哪一个不是成倍地提高了代码量。 在很多资深程序员中,还常常因为是否使用设计模式引发争论。而这些争论的焦点就是代码量和扩展性这对矛盾。

    72490

    如何读取Linux进程中的代码段和数据段

    Linux下的程序的文件格式是ELF,里面分了各种段,有代码段、数据段、等。当运行这个程序时,系统也会给这个进程创建虚拟内存,然后把ELF中的数据分别加载到内存中的对应位置。...本文整理了用cpp程序读取内存中的代码段和rodata数据段的方法。...这个文件的前三列分别是代码段、rodata数据段、和普通数据段,可以看到代码段的权限是读和执行,rodata数据段是只读,普通数据段可读写。...用程序读取内存的代码段和rodata数据段 以tcpdump程序为例,用程序读取代码段和radata的过程如下: 1.查看tcpdump的进程ID。...2.运行自己写的程序,分别输入进程PID和代码段的地址。

    3.9K20

    如何实现进程代码段的分页度量

    使用方法 2. 读取物理内存 3. 虚拟地址转换为物理地址 4. 分页度量进程的代码段 5. 知识点记录 6. 问题记录 7....由于虚拟内存的存在,只有那页代码被访问到时(copy_from_user()会判断缺页的情况),才会产生缺页中断,将该页代码加载到内存。...这样编写一个内核模块,就可以实现对进程代码段的分页度量了。以下是三个小程序的使用方法、代码注释、内核模块。...modules rm -r -f .tmp_versions *.mod.c .*.cmd *.o *.symvers endif 虚拟地址转换为物理地址 由于虚拟内存的存在,一个二进制文件不是整个代码段加载到内存的...if(GET_BIT(read_val, 62)) printf("Page swapped\n"); fclose(f); return 0; } 分页度量进程的代码段

    2.8K20

    重构-如何编写一段好的代码

    其实很多时候面试时会聊到重构的问题, 我自己的看法是重构是软件开发中不可缺少的一个环节, 并不是说需要重构的代码都是坏代码, 有时候是旧的代码架构不能适应新的需求, 而有时候是为了新技术的使用。...今天来说一下在代码重构中的一个技巧, 如何编写一段好的代码。 其实不止是重构,在平时开发中如果可以的话也尽量用下面这种方式写代码。...一段糟糕的代码是怎样的 举个例子, 在代码中需要启动某个组件,而启动组件可以带启动模式作为参数, 一般开发都会这么写这个接口方法 public void startComponent(boolean arg...call from Outside startComponent(true); //call from inside startComponent(false); 但是这样仍然是一段糟糕的代码...startModule(true); 对于使用者来说,你猜这参数是什么意思? 那么如何进一步重构呢。 这里可以使用 Enum的技巧, 来看一下使用 Enum 如何写一段阅读性良好的代码。

    68930

    精妙JS代码段搜集

    当然这样的工具使用Chrome一些插件也易办到,但直接撸起如此代码,能够领悟到很多知识。...: 这段代码是 Github 上的 140 bytes 活动中的代码,简单分析下这段 JS 代码,作者使用了不少技巧: 首先是需要选择页面上的所有元素,这里使用了只能在console调试工具中使用的$$...,使用 forEach 替代 for 之类循环能减少不少代码量,而 forEach 是 Array 对象的方法,所以用了个 [] 空数组来代替Array.prototype,更显简洁;得到所有元素的节点列表...(NodeList),但是它并没有实现Array的所有接口,因此使用 $$(‘*’).forEach 会返回错误,这里使用call方法来更改forEach内部this环境,当然也可以使用apply。...这行代码使用了CSS的outline属性。在CSS渲染的盒子模型(Box Model)中,outline并不会改变元素及其布局的位置。

    1.3K50

    PyTorch常用代码段合集

    本文是PyTorch常用代码段合集,涵盖基本配置、张量处理、模型定义与操作、数据处理、模型训练与测试等5个方面,还给出了多个值得注意的Tips,内容非常全面。 PyTorch最好的资料是官方文档。...本文是PyTorch常用代码段,在参考资料[1](张皓:PyTorch Cookbook)的基础上做了一些修补,方便使用时查阅。...torch.nn.DataParallel 将代码运行在多张 GPU 卡上时,PyTorch 的 BN 层默认操作是各卡上数据独立地计算均值和标准差,同步 BN 使用所有卡上的数据一起计算 BN 层的均值和标准差...profile)# 或者在命令行运行python -m torch.utils.bottleneck main.py 使用TorchSnooper来调试PyTorch代码,程序在执行的时候,就会自动 print...with torchsnooper.snoop(): 原本的代码 参考资料 张皓:PyTorch Cookbook(常用代码段整理合集),https://zhuanlan.zhihu.com/p/

    1.2K20

    技术大咖分享:如何评价一段代码?

    经常有人微信问老九君,什么样的代码才算是好代码。这个问题其实见仁见智,业内也没有统一的标准可以使用。我仔细梳理了一下自己评价代码的方法,总结了五个评价指标。...[] p; 没有嵌入式经验的人一定会问,这段代码申请了一段空间后什么也没做就释放掉了,这不是画蛇添足吗。...其实,这是一段容错代码,就是为了保证系统中有足够的空间供后面的代码执行。 是不是想想就很可怜,程序运行中突然发现内存不够了,不得不停掉。...在某些公司,代码规范被认为是评价代码的第一要素。铁打的项目流水的程序员,一段可读性差的代码对项目而言很可能意味着灭顶之灾。...但扩展性有一个死敌就是代码量。仔细研究一下经典的23种设计模式,没有哪一个不是成倍地提高了代码量。 在很多资深程序员中,还常常因为是否使用设计模式引发争论。而这些争论的焦点就是代码量和扩展性这对矛盾。

    83560

    Linux从头学03:如何告诉 CPU,代码段、数据段、栈段在内存中什么位置?

    前两篇文章,我们一起学习了 8086 处理器中关于 CPU、内存的基本使用方式,重点对段寄存器和内存的寻址方式进行了介绍。...代码段:用来存放代码,段的基地址放在寄存器 CS 中,指令指针寄存器 IP 用来表示下一条指令在段中的偏移地址; 数据段:用来存放程序处理的数据,段的基地址存放在寄存器 DS 中。...这张图的意思是:在 Linux 2.6 中,用户代码段的开始地址是 0,最大范围是 4 GB;用户数据段的开始地址是 0,最大范围也是 4 GB;内核的数据段和代码段也是如此。 ?...在这个最简单的汇编程序中,会使用到 3 个段:代码段,数据段和栈段。 前面已经说到:所谓的段,就是一个地址空间。既然是一个地址空间,必然包含 2 个元素:从什么地方开始,长度是多少。...因为栈段的使用是从高地址向低地址方向进行的,所以需要把栈顶指针设置为最大地址单元的下一个地址空间。 ?

    2.3K40

    30段Python代码,都是精华!

    作者简单概览了 30 段代码,它们都是平常非常实用的技巧,我们只要花几分钟就能从头到尾浏览一遍。 在原版本基础上,我修复了第12个任务的代码,大家如果发现有其他问题,欢迎留言。 1....大写第一个字母 以下代码块会使用 title() 方法,从而大写字符串中每一个单词的首字母。...解包 如下代码段可以将打包好的成对列表解开成两组不同的元组。...链式对比 我们可以在一行代码中使用不同的运算符对比多个不同的元素。 a = 3 print( 2 < a < 8) # True print(1 == a < 2) # False 11....不使用 if-else 的计算子 这一段代码可以不使用条件语句就实现加减乘除、求幂操作,它通过字典这一数据结构实现: import operator action = { "+": operator.add

    53930
    领券