首页 > 其他分享 >记录---从0823开始

记录---从0823开始

时间:2022-08-23 13:24:03浏览次数:50  
标签:注释 函数 记录 0823 代码 单元测试 --- 编写 整洁

----规范-----------
读书笔记:

第一章 整洁代码
1,整洁代码力求集中,每个函数、每个类和每个模块都全神贯注于一件事。
2,整洁代码简单直接,从不隐藏设计者的意图。
3,整洁代码应当有单元测试和验收测试。它使用有意义的命名,代码通过其字面表达含义。
4,消除重复代码,提高代码表达力。
5,时时保持代码整洁。
第二章 有意义的命名
1,使用体现本意的命名能让人更容易理解和修改代码。
2,编程本来就是一种社会活动。
3,尽力写出易于理解的代码
第三章 函数
1,一个函数应该只做一件事(高内聚),无副作用。
2,自顶向下阅读代码,如同是在阅读报刊文章。
3,长而具有描述性的函数名称,好过描述性的长注释。
4,使用异常代替返回错误码,错误处理代码就能从主路径代码中分离出来得到简化。
5,写代码很像是写文章。先想怎么写就怎么写,然后再打磨:分解函数、修改名称、消除重复。
6,编程其实是一门语言设计艺术,大师级程序员把程序系统当做故事来讲。使用准确、清晰、富有表达力的代码来帮助你讲故事。
第四章 注释
1,别给糟糕的代码加注释----重写吧。
2,把力气花在写清楚明白的代码上,直接保证无需编写注释。
第五章 格式
1,代码格式很重要。代码格式关乎沟通,而沟通是专业开发者的头等大事。
2,向报纸格式学习代码编写。
第六章 对象和数据结构
1,对象把数据隐藏于抽象之后,只提供操作数据的函数。数据结构暴露其数据,没有提供有意义的函数。
2,The Law of Demeter:模块不应去了解它所操作的对象内部细节。
第七章 错误处理
1, 使用异常而非返回错误码。
2, try-catch-finally, log出错信息。
3, 不要返回null,不要传递null。NULL Object模式, 例:Collections.emptyList();
第十章 类
1,自顶向下原则:让程序读起来就像是一篇报纸文章。
2,method可以是protected,以便于单元测试。
3,SRP:类或模块应有且仅有一个加以修改的原因。类名应准确描述其职责。高内聚。
4,开放闭合原则、依赖倒置原则。
5,变量名、方法名、类名都是给代码添加注释的一种手段。
第十二章 迭代前进
1,紧耦合的代码难以编写单元测试。
2,单元测试消除了对清理代码会破坏代码的恐惧。
3,写出自己能理解的代码很容易,软件项目的主要成本在于长期维护。
4,代码应当清晰表达其作者的意图;测试代码可以通过实例起到文档作用。
第十四章 逐步改进
1,编程是一种技艺。要编写整洁代码,必须先容忍脏代码,然后清理!
2,写出好文章就是一个逐步改进的过程。
----
一个优秀的程序员,在接到一个要编写“毁灭地球”的任务的时候,他不会简单的写一个destroyEarth()的方法;而是会写一个destroyPlanet()的方法,将earth作为一个参数传进去。
-------------------

标签:注释,函数,记录,0823,代码,单元测试,---,编写,整洁
From: https://www.cnblogs.com/Insist-Y/p/16615793.html

相关文章

  • JAVA---05
    第五天1.面向对象(OO)编程(P)1.面向过程思想&面向对象思想面向过程:步骤清晰简单,第一步做什么,第二步做什么适合于一些简单的问题面向对象分类的思维模......
  • uff转engine踩䟘记录
    网上找了篇文章,用tensorrt自带转换工具trtexec转成engine格式的方法,网址如下:https://www.cnblogs.com/xiaoxiaomajinjiebiji/p/14451398.html文章中举例的转换指令为:/us......
  • Flask 学习-12.Flask-SQLAlchemy链接mysql数据库
    前言SQLAlchemy采用简单的Python语言,提供高效和高性能的数据库访问,实现了完整的企业级持久模型。SQLAlchemy是目前python中最强大的ORM框架,功能全面。Flask-SQLAlche......
  • Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:tes
    Maven使用Test的时候出现Failedtoexecutegoalorg.apache.maven.plugins:maven-surefire-plugin:2.12.4:test(default-test)onprojectStuMavenDemo1:Therearete......
  • AtCoder-abc265_e Warp
    Warpdp状态优化一开始想到的状态为:\(dp[i][x][y]\),第\(i\)步走到\((x,y)\)的方案数,但是发现状态转移非常难写,原因是坐标计算非常大后来可以优化一下\(dp\)的状态......
  • Sentinel Dashboard-Nacos动态数据源配置
    SentinelDashboard源码中支持push到SentinelClient(SpringBoot)或动态数据源(Nacos,Zookeeper,Apollo),但目前默认是push到SentinelClient,推到动态数据源需要稍微改造一下......
  • MySQL学习(1)---MySQL概述
    什么是数据库概述数据库(Database)是长期存储在计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统DBMS(Da......
  • 文件上传控件-如何上传文件-文件夹下载
    ​一、功能性需求与非功能性需求要求操作便利,一次选择多个文件和文件夹进行上传;支持PC端全平台操作系统,Windows,Linux,Mac支持文件和文件夹的批量下载,断点续传。刷新......
  • 开发记录
    开发记录20220823安装 VueCLI4.x需要Node.jsv8.9或更高版本(推荐v10以上)。你可以使用n,nvm或nvm-windows在同一台电脑中管理多个Node版本。npminstall......
  • C#任务取消--CancellationTokenSource取消令牌源
    一、概述在讲任务取消之前,得先了解取消令牌跟取消令牌源,实现任务取消功能的就是依靠这两个。CancellationTokenSource:取消令牌源类,拥有Cancel()方法,可以给关联的令牌......