有太多时候,我们一旦写出能工作的代码,就转移到下一个问题上,而没有下足功夫调整代码,让后来者易于阅读。记住,下一位读代码的人最有可能是你自己。
        所以,多少尊重一下你的手艺吧。花一点点实践在每个函数和类上。选用较好的名称,将大函数切分为小函数,时时照拂自己创建的东西。用心是最珍贵的资源。

线程安全群集

对于Java,需要掌握java.until.concurrent 、java.util.concurrent.atomic和java.util.concurrent.locks

互斥

每一时刻仅有一个线程能访问共享资源。

线程饥饿:

一个或一组线程在很长时间内或永久被禁止。例如,总是让执行得快的线程先运行,假如执行快得线程没完没了,则执行时间长的线程就会"挨饿"。

死锁:

两个或多个线程相互等待执行结束。每个线程都拥有其它线程需要的资源,如果得不到其它线程拥有的资源,就无法终止。

并发问题的三种模型

  • 生产者-消费者模型
  • 读者-作者模型
  • 哲学家就餐

你可能遇到的并发问题,大多数都是以上3重模型的变种。

临界区

指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待(例如:bounded waiting 等待法),有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用,例如:semaphore。只能被单一线程访问的设备,例如:打印机。
        临界区是为了确保程序正确而要阻止同时使用的代码区域

要编写整洁代码,必须先写肮脏代码,然后再清理它。
        你应该不会对此感到惊讶。我们在小学就学过这条真理了。那时,老师(通常是徒劳地)努力让我们写作文草稿。他们告诉我们,我们应该先写草稿,再写二稿,一次又一次地草撰,直至写出终稿。他们尽力告诉我们,写出好作文是一个逐步改进的过程。
        多数新手程序员(就像多数小学生一样)没有特别认真地遵循这个建议。他们相信,首要任务是能写出工作的程序。只要程序"能工作",就转移到下一个任务上,而那个"能工作"的程序就留在了最后那个所谓"能工作"的状态。多数有经验的程序员都知道,这是一种自毁行为。

【笔记】代码整洁之道相关推荐

  1. [读书笔记] 代码整洁之道

    书的示例是Java语言编写的,虽说不会影响阅读,但是后面几章讲应用这套方法论的时候,大篇幅的Java代码分析还是挺难受的,而且连java测试框架Junit都要细讲,对于非Java系的开发者来说,一些内 ...

  2. [读书笔记] 代码整洁之道(一)

    最近读完了马丁的clean code,颇有收获,简单整理下读书笔记,虽然整书是以Java代码做代码示例,但语言无国界,特别是编程语言更是如此,不管你从事的是以何种语言为主的开发环境,我相信,从本书中都 ...

  3. 《代码整洁之道》(Clean Code)- 读书笔记

    一.关于Bob大叔的Clean Code <代码整洁之道>主要讲述了一系列行之有效的整洁代码操作实践.软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发流派 ...

  4. 代码整洁之道(Clean Code)- 读书笔记

    Sorry, 许久未更新文章了,主要因为刚刚换了一家新公司,忙于组建团队(建设.招聘.流程.框架等)与熟悉公司业务,还有领导给的其他工作等等,实在是没有时间更新了.最近在和团队分享Bob大叔的< ...

  5. 《代码整洁之道 Clean Architecture》-读书笔记

    大家好,我是烤鸭: 关于<代码整洁之道>,记录一下读书笔记. 代码整洁之道 第一章 整洁代码 整洁代码的艺术 第二章 有意义的命名 避免误导 有意义的区分 使用读得出来和可搜索的名字 避免 ...

  6. [学习笔记]《代码整洁之道》(八)

    [学习笔记] <代码整洁之道>- 第9章 单元测试 TDD 三定律 谁都知道TDD要求我们在编写生产代码之前先编写单元测试. 定律一:在编写不能通过的测试单元前,不可以编写生产代码. 定律 ...

  7. 《代码整洁之道 clean code》 读书笔记(上篇)

    <代码整洁之道 clean code> 读书笔记(上篇) 这本书我准备用较快的时间来读一下,简单记录一下自己的一些读完的感悟,因为更多地编码技巧还是需要在实际编程和读源码的过程中进行锤炼. ...

  8. 《代码整洁之道》细节之中自有天地,整洁成就卓越代码 读书笔记

    <代码整洁之道>细节之中自有天地,整洁成就卓越代码 读书笔记 There are only two hard things in Computer Science: cache inval ...

  9. (读书笔记)代码整洁之道-命名部分

    代码整洁之道读书笔记 有意义的命名 (只是做个笔记加深记忆,并且可以时不时提醒自己) 命名应该明确 它为什么存在,它能做什么事,它怎么用 达到在不用注释的情况下说明意义 避免产生误导 比如可能的专有词 ...

  10. 什么是好代码-代码整洁之道阅读笔记

    根据我所阅读的书<代码整洁之道>里的一句话: "衡量代码质量的唯一有效标准: WTF/min" 从哲学的角度讲,不得不说这真的很客观!!! 毕业不久的我也没有太多关于好 ...

最新文章

  1. php提交字段打印,在隱藏的表單字段中提交的JSON編碼的PHP數組 - 在提交表單的頁面中打印時會產生奇怪的輸出...
  2. 招募100名科研人,念出书中内容即可,300元/小时,无经验要求!
  3. 如何在Ubuntu中用apt命令删除/卸载软件包(remove/clean/purge)
  4. LuoguP5897 [IOI2013]wombats
  5. docker 容器 exited_Docker实战006:docker容器使用详解
  6. 玩游戏?或许游戏正在拯救部分人
  7. RNN系列之四 长期依赖问题
  8. [DSF] Devices Syndication Foundation Architecture V1
  9. scratch优秀案例-中国风-西游记故事系列之孙悟空为何大战白骨精
  10. 大学生职业生涯规划计划与路径_大学生职业生涯的规划路径
  11. NAS 详细搭建方案 -安装OpenWrt/LEDE 软路由
  12. 【Python爬虫】MongoDB爬虫实践:爬取虎扑论坛
  13. 在Word中打开MathType时出现AutoExecCLS错误解决方案
  14. 微信支付,“签名错误,请检查后再试” 的坑爹经历
  15. 配置Android sdk环境变量不生效
  16. win7 计算机 开不了,win7系统开不了机怎么办?云骑士教你解决开不了机的问题...
  17. freeline使用入门
  18. vue-router(妙味课堂)
  19. 如何将iPad投屏到Android安卓平板
  20. 无纸化会议私有化部署需要哪些设备?

热门文章

  1. ROS安装教程(详细)
  2. 魅族 刷机android 6.0,魅族mx6 flyme6
  3. QCC3005 控制AMP_Mute的管脚配置问题
  4. Opencv3 core模块解析之convertTo
  5. HTTP协议格式详解(总结)
  6. 如何选择自己喜欢的书籍?
  7. Primer Premier 6.0 for Win 专业的引物设计
  8. MATLAB聚类分析源代码
  9. C中字符串常量字符数组字符常量
  10. 织梦dedecms全自动采集的方法