一线架构师实践指南第三章读后感
第三章主要讲述了refinend architecture阶段,包含了细化架构和逻辑架构的讲解。 细化架构保证保证为开发提供足够的指导和限制,从概念架构到细化架构,先设计概念架构,构思关键问题的解决策略;再进行细化架构的设计。作者引用一个小故事讲述了细化架构的重要性,概念架构难以支持并行开发。要支持开发组相对独立地进行工作,须要提供指导和限制作用更明确的“规约”级的设计。在细化架构中,接口占据非常核心的地位,而概念架构并不关心明确的接口定义(只有抽象的组件和抽象的交互机制)。 细化架构和概念架
1338.数组大小减半
给你一个整数数组 arr。你可以从中选出一个整数集合,并删除这些整数在数组中的每次出现。 返回 至少 能删除数组中的一半整数的整数集合的最小大小。 示例 1: 输入:arr = [3,3,3,3,5,5,5,2,2,7] 输出:2 解释:选择 {3,7} 使得结果数组为 [5,5,5,2,2]、长度为 5(原数组长度的一半)。 大小为 2 的可行集合有 {3,5},{3,2},{5,2}。 选择 {2,7} 是不可行的,它的结果数组为 [3,3,3,3,5,5,5],新数组长度大于原数组的二分
吴裕雄--天生自然JAVA开发JSP-Servlet学习笔记:useBean、setProperty、getProperty指令
<%@ page contentType="text/html; charset=GBK" language="java"
errorPage=""%>
<!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
CaDiCal2019学习笔记(2)
CaDiCal2019学习笔记(2) 读代码的初步心得: 1.将很多技术模块设计为结构体和类型,这些结构体和类型分别由相应的.hpp文件给出;与之相对应的同名.cpp并不都是类型的函数实现代码所在的文件。 结构体或类中的成员函数的实现代码通常在internal.cpp; (少数除外,如version.hpp对应的version.cpp是与传统方式一致的) 同名的.cpp文件给出的是internal.hpp声明的函数,这些函数与目前标识名称所在类型关联性很强。 同名的.cpp文件头部没用如通常情
SQL注入中information_schema的作用
SQL注入中information_schema的作用 information_schema数据库是MySQL自带的,MySQL 5以下没有这个数据库,它提供了访问数据库元数据的方式.什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等.也就是说information_schema中保存着关于MySQL服务器所维护的所有其他数据库的信息.如数据库名,数据库的表,表栏的数据类型与访问权限等.在INFORMATION_SCHEMA中,有数个只读表. 在SQL注入中,
python webdriver混合驱动测试框架(数据驱动+关键字驱动)
混合驱动:把数据驱动、关键字驱动结合起来一起使用 testdata.txt http://www.126.com http://www.sohu.com teststep.txt open||chrome visit||${url} sleep||3 主程序脚本 hybrid.py #encoding=utf-8 import re from selenium import webdriver import time with open("teststep.txt") as fp:
Spring Boot实践(一):Spring Boot入门
1、Spring Boot是什么? 我们来看看Spring Boot是怎么定义的: 大体的意思就是,Spring Boot可以简单、快速的创建一个独立的基于Spring的应用,并且Spring和第三方库的“约定”,整个Spring Boot应用只需要做少量的配置。 我们再来看看官方对Spring Boot的特点描述: 创建独立的应用、内置Tomcat...、简化配置等等。可以看得出Sping Boot是用来简化Spring应用的搭建、开发和部署过程。 我的理解是Spring Boot不是什么新
Material Design Lite,简洁惊艳的前端工具箱。
Material Design Lite简介 本文主要介绍Material Design设计语言的HTML/CSS/JS部分实现。 一、设计语言 github项目地址:https://github.com/google/material-design-lite 随堂练习代码地址:https://github.com/hubwiz/mdl-lesson 拟真 vs. 扁平 在iso7之前,Apple采用的是拟真化设计语言,期望通过模拟现实世界的物体,给用户 身临其境的感觉。自metro和ios7
通过expect脚本在机器间跳转
expect脚本的用法 首先可以通过 set命令设置一些常量或者从参数中获取一些变量 然后通过spawn执行一个想要的操作,在通过expect命令,当检测到紧跟着的参数字样的输出时,通过send命令交互式的发送想要执行的操作。最后通过interact结束expect脚本对屏幕输出的监控 #!/usr/bin/expect -f
set ip [lindex $argv 0]
set cmd [lindex $argv 1]
set adminpwd ******
set rootpwd ***
Redisson 分布式锁超简封装
Redisson是一个在Redis的基础上实现的Java驻内存数据网格。它几乎提供了Redis所有工具,不仅封装Redis底层数据结构,而且还提供了很多Java类型映射。Redisson支持redis单实例、redis哨兵、redis cluster、redis master-slave等各种部署架构。Redisson除了普通分布式锁还支持 联锁(MultiLock),读写锁(ReadWriteLock),公平锁(Fair Lock),红锁(RedLock),信号量(Semaphore),可过
C语言通过模拟哈希表字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string 这道题最优的解法就是线性复杂度了,为了保证每个元素是唯一的,至少得把每个字符都遍历一遍。 算法的思路就是遍历一遍字符串,然后把字符串中
CF875E Delivery Club
题解尚在编辑中,请稍后…… 题目传送门:CF875E 洛谷入口 题目大意: \(有两个人在一根数轴上送货,起初一个人在s1, 一个人在s2\) \(一共有 n 个订单要送,严格按照时间顺序,第 i 个订单要送到数轴上的 x_i 位置。\) \(每个订单恰好一个人去送,且在这个过程当中另一人始终保持在原地不动\) \(你可以安排每个订单由哪个人去送,从而最小化整个过程中两个人之间的最大距离\) 数据范围 \(\circ\) \(1\le n\le10^5\) \(\circ\) \(0\le s
BJOI2017 树的难题
落谷、Loj。 Description 给定 \(n\) 个点的无根树。\(m\) 种颜色,每种颜色权值为 \(c_i\)。 定义树上路径权值为路径颜色序列,将其分为每一段极大的相同颜色序列,每一段颜色设为 \(i\),权值即 \(\sum c_i\)。 求边数在 \([l, r]\) 范围的简单路径中路径权值最大值。 Solution 一般来说边数在 \([l, r]\) 的一些树上信息很容易想到就是点分治了。 设 \(c(x)\) 从根到 \(x\) 的路径上第一条边的颜色,\(w(x)\
python 29 继承
目录 一,property 用法 二,继承 三,继承的属性查找 一,property 用法 property是一个装饰器,是用来绑定给对象的方法伪造成一个数据属性 案例一:
class People:
def __init__(self, name, weight, height):
self.name = name
self.weight = weight
self.height = height
# 定义函数的原因1:
今日推荐
周排行