重构,我用三次失败换一点经验!(转)

原文链接:https://www.jianshu.com/p/c2dede157c5a 什么是重构? 在我进行了一次相对完整的代码重构之前,没有系统地学习过重构的整体要求与细节要求,所以,我的这次代码重构是在非客观性的条件下进行的,可能是我自己意识到原来的代码可读性很低,或者发现了有很多的地方是值得改进的,才进了一次冒险性的重构。 我之所以称代码重构是冒险性的,是有一定原因的。正如我前面提及的,缺乏重构的经验和意识,这使得我要进行一次代码重构是要耗费时间与很多精力的。结果也正如我验证的一样,我
分类: 其他 发布时间: 12-02 21:50 阅读次数: 0

深入了解Kafka【二】工作流程及文件存储机制

1、Kafka工作流程 Kafka中的消息以Topic进行分类,生产者与消费者都是面向Topic处理数据。 Topic是逻辑上的概念,而Partition是物理上的概念,每个Partition分为多个Segment,每个Segment对应两个文件,一个索引文件,一个日志文件。Producer生产的数据会被不断的追加到日志文件的末端,且每条数据都有自己的offset。消费组中的每个Consumer都会实时记录自己消费到了哪个offset,以便出错恢复时,从上次的位置继续消费。 2、文件存储机制
分类: 其他 发布时间: 12-02 21:50 阅读次数: 0

django----Sweetalert bulk_create批量插入数据 自定义分页器

目录 一.Sweetalert使用AJAX操作 二.bulk_create 三.分页器 divmod 分页器组件 自定义分页器的使用 一.Sweetalert使用AJAX操作 sweetalert下载地址 Sweetalert $("#b55").click(function () { swal({ title: "你确定要删除吗?", text: "删除可就找不回来了哦!",
分类: 其他 发布时间: 12-02 21:50 阅读次数: 0

数据结构与算法——OJ编程练习——内排序&外排序

内排序 1-1.距离排序 总时间限制: 1000ms 内存限制: 65536kB 描述 给出三维空间中的n个点(不超过10个),求出n个点两两之间的距离,并按距离由大到小依次输出两个点的坐标及它们之间的距离。 输入 输入包括两行,第一行包含一个整数n表示点的个数,第二行包含每个点的坐标(坐标都是整数)。点的坐标的范围是0到100,输入数据中不存在坐标相同的点。 输出 对于大小为n的输入数据,输出n*(n-1)/2行格式如下的距离信息: (x1,y1,z1)-(x2,y2,z2)=距离 其中距离
分类: 其他 发布时间: 12-02 21:50 阅读次数: 0

centos7离线部署Patroni

实验环境Centos7.7.1908 x86_64 这里说明下为什么需要安装gcc readline-devel zlib-devel这三个包,因为编译安装postgres需要用到 一、首先安装gcc 准备以下rpm包 这边从华为云开源镜像站获取rpm包,当然你也可以从阿里或者163镜像站获取 https://mirrors.huaweicloud.com/centos/7.7.1908/os/x86_64/Packages/ 下载后上传至内网,执行以下命令安装 rpm -ivh *.rpm
分类: 其他 发布时间: 12-02 21:50 阅读次数: 0

np.random 系列函数

1 random() # 产生区间 [0, 1) 均匀分布的浮点数样本值 np.random.seed(42) 2 rand(d0, d1, ..., dn) # 产生区间 [0, 1) 均匀分布的浮点数样本值 np.random.seed(42) 3 randn(d0, d1, ..., dn) # 产生标准正态分布的浮点数样本值 np.random.seed(42) 4 standard_normal(size=None) # 产生标准正态分布的浮点数样本值 np.random.seed(
分类: 其他 发布时间: 12-02 21:50 阅读次数: 0

PHP算法之IP 地址无效化

给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."。 示例 1: 输入:address = "1.1.1.1" 输出:"1[.]1[.]1[.]1" 示例 2: 输入:address = "255.100.50.0" 输出:"255[.]100[.]50[.]0" 提示: 给出的 address 是一个有效的 IPv4 地址 来源:力扣(LeetCode) class Solution { /*
分类: 其他 发布时间: 12-02 21:50 阅读次数: 0

linux下启动tomcat----Cannot find ./catalina.sh

参考:http://dearseven.blog.163.com/blog/static/1005379222013764440253/ linux 下启动tomcat [root@test233 bin]# sh startup.sh Cannot find ./catalina.sh The file is absent or does not have execute permission This file is needed to run this program 解决办法: 给.s
分类: 其他 发布时间: 12-02 21:50 阅读次数: 0

C#学习笔记06--类/对象/访问修饰符/方法

编程思想 1.面向过程 面向过程是要把问题解决的过程分成有一定顺序的不同步骤, 然后按照步骤一步步的将问题解决. 2.面向对象 面向对象解决问题的思路是先分析问题中所涉及的对象, 然后是使对象执行各自的功能, 进而达到解决问题的目的. 一.类 类, 就是类型, 是具有相同特征和功能的抽象. 类定义的格式 访问修饰符 class 类名 { 特征 行为 } // 注: 特征和行为都称为该类的成员; 例1 public class Zomby { p
分类: 其他 发布时间: 12-02 21:50 阅读次数: 0

Java 是如何优雅地处理NPE问题的

1. 前言 对于 Java 开发者来说,null 是一个令人头疼的类型,一不小心就会发生 NPE (空指针) 问题。也是 Java 语言为人诟病的一个重要原因之一。在我们消除可恶的 NPE 问题之前我们要回顾一下 Java 中 null 的概念。 2. Jav
分类: 编程语言 发布时间: 12-02 21:34 阅读次数: 0

Python Django,事务,transaction.atomic,事务保存点

from django.shortcuts import render from django.http import HttpResponse from django.views.generic import View from django.db import transaction # 导入事务 # 类视图 (事务,@transaction.atomic装饰器) class MyView(View): @transaction.atomic # transaction.atomic装饰器
分类: 其他 发布时间: 12-02 21:34 阅读次数: 0

HDU3709 Balanced Number 题解 数位DP

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3709 题目大意: 求区间 \([x, y]\) 范围内“平衡数”的数量。 所谓平衡数是指:以某一位为支点,它左边的所有位的数乘以它到支点的距离之和等于它右边的所有位的数乘以它到支点的距离之和。 比如, \(4139\) 是平衡数,因为以 \(3\) 为支点, 左边的每一位数与距离的乘积和为 \(4 \times 2 + 1 \times 1 = 9\); 右边的每一位数与距离的乘积和为 \(9 \
分类: 其他 发布时间: 12-02 21:34 阅读次数: 0

PIT 编辑器编辑及协同架构说明

pit 项目使用 quill-delta 作为数据层存储文档内容数据,quill-delta 是一个基于 OT 算法的库,用 quill-delta 作为数据层,不仅能很好的保存文档数据,还可以方便的实现文档的协同编辑,即多个人同时编辑同一份文档(需要服务器支持)。 quill-delta 数据格式不仅能很好的描述完整的文档内容,还可以很方便的描述文档的修改过程,所以 pit 在进行架构设计的时候,并不仅仅考虑单机编辑的情况,同时还考虑到了协同编辑的情况,以方便以后在需要的时候实现协同编辑功能
分类: 其他 发布时间: 12-02 21:34 阅读次数: 0

jQuery_页面加载问题

运行如下代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; cha
分类: 其他 发布时间: 12-02 21:34 阅读次数: 0

CH02 FPGA设计Verilog基础笔记(二)

1、 状态机设计 状态机是许多数字系统的核心部件,是一类重要的时序电路。通常包括三个部分:一是下一个状态的逻辑电路,二是存储状态机当前状态的时序逻辑电路,三是输出组合逻辑电路。通常,状态机的状态数量有限,称为有限状态机(FSM)。由于状态机所有触发器的时钟由同一脉冲边沿触发,故也称之为同步状态机。 根据状态机的输出信号是否与电路的输入有关分为Mealy型状态机和Moore型状态机。电路的输入信号不仅与电路的当前状态有关,还与电路的输入有关,成为Mealy型状态机,即次态=f(现状,输入),输出
分类: 其他 发布时间: 12-02 21:34 阅读次数: 0

关于Spring微服务实战之学习笔记

本系列的文章是自己在边学习购买的书籍《Spring微服务实战》时,边记录下来的,用于加深学习效果和以后的回顾,如若侵权,请告知,我会及时删除。
分类: 其他 发布时间: 12-02 21:34 阅读次数: 0

Iterative-进制转换

2019-12-02 21:15:31 1271. Hexspeak 问题描述: 问题求解: public String toHexspeak(String num) { StringBuffer sb = new StringBuffer(); char[] chs = new char[]{'A', 'B', 'C', 'D', 'E', 'F'}; long n = Long.valueOf(num); wh
分类: 其他 发布时间: 12-02 21:34 阅读次数: 0

程序员的修炼之道:从小工到专家读后感5

强加的重复 原因:项目标准可能要求建立含有重复信息的文档,或者是重复代码中的信息的文档,多个目标平台各自需要自己的编程语言、库以及开发环境,这会使得我们有重复的定义和过程。同时编程语言自身要求某些重复信息的结构。 解决方法: 信息的多种表示:在编码一级,我们常常需要以不同的形式表达同一信息。答案常常是编写简单的过滤器或者代码生成器。 代码中的文档:糟糕的代码才需要许多注释。把注释保留给其他的高级说明。 文档与代码:撰写文档和编写代码最好同时进行。 语言问题:许多语言在源码中强加了可观的重复。
分类: 其他 发布时间: 12-02 21:34 阅读次数: 0

GDI基础

using System.Drawing; 画园 private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics();//将本窗体创建为画板 //Graphics不可以用New来实例化。 Pen pen = new Pen(Color.Red,20);//创建一只笔,定义颜色和
分类: 其他 发布时间: 12-02 21:34 阅读次数: 0

不容错过的 Babel7 知识

对 Babel 的配置项的作用不那么了解,是否会影响日常开发呢?老实说,大多情况下没有特别大的影响(毕竟有搜索引擎)。 不过呢,还是想更进一步了解下,于是最近认真阅读了 Babel 的文档,外加不断编译验证,输出了本篇文章,为了更好的阅读体验,修修改改,最终算是以我个人比较喜欢的方式推进了每个知识点(每一个配置的引入都是有原因的),希望能够帮助你对 Babel 的各种配置有一个更清晰的认识 (已经很懂的小伙伴,无视本文) 。 Babel 是一个 JS 编译器 Babel 是一个工具链,主要用于
分类: 其他 发布时间: 12-02 21:34 阅读次数: 0
今日推荐