自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 6 TCP与UDP

TCP:转发数据量较多 对可靠性要求比较高 流(数据无间隔)协议 (顺序控制 重发控制 流量控制 拥塞控制)(http 通信必须使用 tcp)UDP:高速传输和实时性有较高要求的通信或广播/多播通信 细节控制交给应用udp-lite 校验和错误不希望丢弃所有收到的包,校验和范围可以由应用设定,只针对不允许发生错误的部分(端口号、IP 地址等)进行校验和的检查端口号 => 识别在传输层上一层的应用层中所要进行处理的具体程序应用程序 <=> 套接字API(可以设置对端的IP 地址、端口

2021-06-19 02:45:39 485 2

原创 5 IP协议相关技术

DNS(domain name system 域名系统):主机名 — IP 地址ARP(address resolution p 地址解析协议):通过广播 IP 地址(同一链路内)发送 ARP 请求包来查找 MAC 地址(目标主机/路由器发现 IP 地址一致 就会将自己 MAC 地址塞入 ARP 响应包返回源主机)ARP 缓存表IPICMP(internet control message p 控制报文协议) 确认 IP 包是否成功送达目标地址,通知在发送过程当中 IP 包被废弃的具体原因,改善网络.

2021-06-18 23:55:46 250

原创 4 IP协议

TCP/IP 心脏 => 互联网层(主要 IP ICMP,其它 DNS ARP)数据链路层(物理层面分段触达) 在同一种数据链路的节点间进行包传递,只负责一个区间(一跳)内的通信传输 相当于限定区间内的火车票或机票网络层(逻辑层面终极触达) 可跨越不同的数据链路,负责将数据包发给最终的目标地址(点对点) 相当于旅行的行程表IPIP 寻址路由(转发)IP 分包与组包:路由器负责进行分片旅行者:IP 数据包车站工作人员:路由器车:数据链路路由控制表:网络地址和对应的下一个路由器的

2021-06-18 01:08:24 426

原创 3 数据链路

太底层 干货少 特别基础 适合作为参考资料 记忆的意义不大数据链路层:定义了通信媒介互连设备间传输规范物理层:0、1二进制与电压高低、光的闪灭、电波的强弱的转换网卡 NIC,全世界不会有相同mac 地址的网卡相关技术mac 寻址(物理寻址)介质共享半双工:只发送/接收的通信方式(无线电收发器)共享介质(同轴电缆 FDDI)全双工:同一时间既可以发送数据也可以接收数据(电话)不共享介质(ATM 以太网)非公有网络分组交换环路检测:防止数据帧被反复转发。生成树(每个端口设置权重

2021-06-17 02:23:22 149

原创 2 TCP/IP 基础知识

TCP/IP:网际协议族 利用IP进行通信时所必须用到的协议群的统称osi参考模型(抽象):通信协议必要功能是什么tcp/ip(实现):在计算机上实现协议应该开发哪种程序OSI(七层)参考模型TCP/IP (四层)分层模型应用层、表示层、会话层应用层(dns url tls/ssl pop imap ftp sip rtp ldap http => html smtp => mime snmp => mib ssh & telnet)应用程序

2021-06-17 00:49:37 74

原创 1 网络基础知识

文章目录计算机网络 出现的背景计算机网络发展的 7个阶段协议协议标准化协议分层与 OSI 参考模型OSI 参考模型 通信处理举例传输方式的分类地址网络的构成因素现代网络实态计算机网络 出现的背景分层应用作用设备7 应用层telnet(远程登录【虚拟终端】服务) ssh(Secure Shell 安全外壳协议) http smtp(Simple Mail Transfer Protocal 电子邮件) pop(Post Office Protocol) ssl/tls ftp文件

2021-06-09 17:01:22 534 2

原创 18并发编程 II

文章目录客户端 / 服务器的例子服务器添加线程代码观察服务器端执行的可能路径路径数量深入挖掘了解类库Executor 框架非锁定的解决方案非线程安全类方法之间的依赖可能破坏并发代码容忍错误基于客户代码的锁定基于服务端的锁定提升吞吐量单线程条件下的吞吐量多线程条件下的吞吐量死锁互斥上锁及等待无抢先机制循环等待不互斥不上锁及等待满足抢先机制不做循环等待测试多线程代码测试线程代码的工具支持完整代码范例不使用线程的 客户端 / 服务器 代码使用线程的 客户端 / 服务器 代码todo客户端 / 服务器的例子服

2021-04-05 22:09:02 61 1

原创 17 味道与启发

文章目录注释环境函数一般性问题Java名称测试注释环境函数一般性问题Java名称测试

2021-04-05 22:03:42 86

原创 14-15-16 JUnit内幕 重构SerialDate

文章目录15 Junit 内幕16 重构 SerialDate15 Junit 内幕16 重构 SerialDate

2021-04-05 22:02:31 211

原创 13 并发编程

todo 平时并发用的少 等系统学完并发使用 再回头补充这节为什么要并发挑战并发防御原则单一权责原则限制数据作用域使用数据复本线程应尽可能地独立了解 Java 库了解执行模型生产者—消费者模型读者—作者模型宴席哲学家警惕同步方法之间的依赖保持同步区域微小很难编写正确的关闭代码测试线程代码将伪失败看作可能的线程问题先使非线程代码可工作编写可插拔的线程代码编写可调整的线程代码运行多于处理器数量的线程在不同平台上运行装置试错代码硬编码自动化...

2021-04-05 21:56:19 46

原创 12 迭进

文章目录通过迭进设计达到整洁目的简单设计规则 1:运行所有测试简单设计规则 2~4:重构不可重复表达力能够编写整洁代码的人 一定精通并擅长使用设计模式!换句话说如果你连设计模式都不能熟谙 就休要声称自己有代码洁癖 能写出真正整洁代码通过迭进设计达到整洁目的简单设计的四条规则运行所有测试不可重复表达了程序员的意图尽可能减少类和方法的数量以上规则按其重要程度排列简单设计规则 1:运行所有测试编写测试引致更好的设计遵循 SRP 保持类短小且目的单一 高内聚遵循 DIP 使用依赖注入

2021-04-05 21:49:54 184

原创 11 系统

文章目录如何建造一个城市将系统的构造与使用分开扩容三种切面机制Java代理纯 Java AOP 框架AspectJ 的方面测试驱动系统架构优化决策如何建造一个城市分工清晰明确 全局&细节—— 角色:老师 医生 程序员 …恰当的抽象层级模块 ——管理: 老板 领导 下属 …关注面切分 —— 全局性适用功能:每个人都要有身份证 社保卡将系统的构造与使用分开构造与使用分开的方法分解main 将全部构造过程搬迁到 main依赖注入 控制反转 DI容器 工厂解耦了构造细节扩容横贯式

2021-04-05 20:40:41 167 1

原创 10 类

文章目录类应该短小单一权责原则低耦合 高内聚保持内聚性就会得到许多短小的类为了修改而组织感觉到这一级就开始更加涉及到设计模式相关的思想了类应该短小如果无法为某个类命以精确的名称 这个类大概就太长了单一权责原则单一权责原则:类或模块应有且只有一个修改的原因低耦合 高内聚内聚性高 意味着类中的方法和变量互相依赖 互相结合成一个逻辑整体保持内聚性就会得到许多短小的类采用更有描述性的变量名 将函数 类 变量的声明当作是给代码添加注释的一种手段为了修改而组织具体类包含实现细节 抽象类呈现概念 依

2021-04-05 19:26:59 78

原创 9 单元测试

文章目录TDD 三定律保持测试整洁整洁的测试每个测试一个断言F.I.R.S.TTDD 三定律定律一 在编写不能通过的单元测试前 不可编写生产代码定律二 只可编写刚好无法通过的单元测试 —— 测试临界定律三 只可编写刚好足以通过当前测试的生产代码测试与生产代码一起编写 测试只比生产代码早写几秒钟保持测试整洁命名短小具有描述性设计良好仔细划分脏测试 = 没测试 测试不能保持整洁 你就会失去它们因为测试必须随着生产代码的演进而修改 脏测试导致测试成为不断翻番的债务 不断恶性循环

2021-04-05 10:57:01 105

原创 8 边界

文章目录使用第三方代码浏览和学习边界学习 log4j学习性测试的好处不只是免费使用尚不存在的代码整洁的边界使用第三方代码浏览和学习边界学习 log4j学习性测试的好处不只是免费使用尚不存在的代码整洁的边界...

2021-04-05 00:21:14 82

原创 7 错误处理

文章目录使用异常而非返回码先写 try-catch-finally 语句使用不可控异常给出异常发生的环境说明依调用者需要定义异常类定义常规流程别返回 null 值别传递 null 值编写既整洁又强大的代码——雅致地处理错误代码的一些技巧和思路使用异常而非返回码使用返回码的问题搞乱了调用者的代码调用者必须在调用之后即刻检查错误 并且这个步骤很容易被遗忘解决方式:抛异常 调用代码很整洁 其逻辑不会被错误处理搞乱先写 try-catch-finally 语句没看懂 不好意思使用不可控异常可

2021-04-05 00:18:35 96

原创 6 对象和数据结构

文章目录数据抽象数据结构与对象的反对称性得墨忒耳律 Demeter's law隐藏结构数据抽象// 具象点:暴露实现public class Point { public double x; public double y;}// 抽象点:隐藏实现public interface Point { double getX(); double getY(); void setCartesian(double x, double y); double getR(); double ge

2021-04-04 23:08:22 113

原创 5 格式

文章目录格式目的垂直格式向报纸学习垂直区隔垂直靠近垂直距离垂直顺序水平格式水平区隔与靠近缩进团队规则格式目的关乎沟通 沟通是专业开发者的头等大事可读性代码风格和律条的深远影响影响到可维护性 扩展性垂直格式向报纸学习顶部有头条 —— 源文件名应该一目了然 足够告诉我们是否在正确的模块中第一段是大纲 给出粗线条概述 但隐藏了细节 —— 源文件最顶部应该给出高层次的概念和算法接着读下去 细节渐次增加 —— 源文件后面是越来越底层的函数和细节多数短小精悍 —— 要拆分函数 每个函数只做一

2021-04-04 17:10:37 212

原创 4 注释

文章目录注释不能美化糟糕的代码让代码来阐述好注释法律信息提供信息注释意图声明注释阐释警示todo注释放大公共 API 中的 JavaDoc复杂算法坏注释多余注释误导注释循规式注释日志式注释废话注释能用函数或变量就别用注释位置标记括号后面的注释归属与署名注释掉的代码非公共代码中的 JavaDoc别给糟糕的代码加注释——重新写吧若编程语言足够有表达力 或者长于用这些语言来表达意图 就不那么需要注释注释的恰当用法是弥补我们在用代码表达意图时遭遇的失败程序员并不能坚持维护注解 代码在变化 在演化 注释并不总

2021-04-04 16:41:11 200 2

原创 3 函数

文章目录短小只专心做一件事每个函数一个抽象层级swith使用描述性名称函数参数一元函数标识函数二元函数三元函数参数对象参数列表动词与关键字无副作用分隔查询与操作使用异常代替返回错误码抽离 try-catch 代码块错误处理就是一件事Error.java 依赖磁铁别重复自己结构化编程如何写出这样的函数短小函数第一规则 要短小函数第一规则 还要更短小通常要小于 10 行if | else | while 语句,其中的代码块应该只有一行 这行大抵应该是个函数调用语句不但能保持短小函数名较具有说明性

2021-04-04 00:28:42 126

原创 2 命名

文章目录名副其实避免误导做有意义区分使用可读名称使用可搜索名称避免使用编码避免思维映射类名方法名每个抽象概念对应一个词别用双关使用解决方案领域名称使用问题领域名称添加有意义语境不要添加没用语境名副其实如果名称需要注释来补充 那就不算是名副其实避免误导避免留下掩藏代码本意的错误线索hp hypotenuse(斜边) & linux 专有名称【还有 aix sco】accountList 如果不是列表类型 => accountGroup | bunchOfAccounts | acc

2021-04-03 23:09:02 95

原创 1 整洁代码

文章目录要有代码糟糕的代码混乱的代价华丽新设计态度谜题整洁代码的艺术什么是整洁代码?思想流派我们是作者童子军军规前传与原则为什么要阅读本书?你是个程序员你想成为更好的程序员要有代码**代码永存!**我们永远抛不掉代码 因为代码呈现了需求的细节。某些层面上 这些细节无法被忽略或抽象 必须明确之将需求明确到机器可以执行的细节程度 就是编程要做的事糟糕的代码糟糕的代码足以毁了公司稍后等于永不混乱的代价混乱增加 — 团队生产力下降 — 增加人手 — 新人不熟悉系统设计,什么修改符合设计意图

2021-04-03 22:18:01 75 2

原创 0 前言

文章目录内容提要序代码猴子与童子军军规内容提要软件质量的决定因素架构项目管理代码质量整洁度序软件开发 80% 以上的工作量集中在修补上写出可读的代码重要程度不亚于写出可执行代码用为自己孩子命名般谨慎给变量命名签入代码前是否已做重构代码猴子与童子军军规离开时要比发现时更整洁...

2021-04-03 21:20:12 55

原创 mockito官网文档解读

文章目录ArgumentMatchersdoReturn vs WhenVerifyStubbingMatchersVerify Invocation TimesStub void with exceptionVerify in orderRedundant invocations@MockConsecutive calls打桩返回一个较为复杂的业务处理逻辑结果doReturn | doThrow | doAnswer | doNothing | doCallRealMethod .when(mocke

2021-02-26 11:28:59 3798

原创 《PowerMock实战手册》读书笔记及个人总结

文章目录前言依赖及注解mock local variablemock staticmock final class / methodmock constructorsmock private methods前言注:本文总结源自汪文君的e-book 《PowerMock 实战手册》, pdf不知道为何导入不了,以下是随书笔记。pdf我保存在了百度云里,需要的可以自取链接: https://pan.baidu.com/s/1WbZbHLjntUXK1BhDqmkiZQ 密码: 6hm4本文目的:通过

2021-02-25 16:41:57 1063 1

原创 《软技能·代码之外的生存指南》读书笔记 ——精神

文章目录心灵开始重启心态重构形象爱情游戏书单面对失败心灵开始如果你不相信自己能够做到,你几乎做不成任何事情。你的思想对身体的影响有多大,对你能够获得成功的影响有多大,这是令人惊叹的。如果你相信,你就能做到。信念 => 思想 => 言语 => 行动 => 习惯 => 价值 => 命运重启心态选择从好的一面去思考问题重构形象那些不能激励自己的人一定是甘于平庸的人,无论他们的其他才能有多么令人印象深刻。我可以决定我想成为怎样的人假装自己不害羞,迫使自己陷于尴

2021-02-22 16:37:26 144 2

原创 《软技能·代码之外的生存指南》读书笔记 ——健身

文章目录健康密码健康标准卡路里让屁股离开椅子增肌完美腹肌站立式办公健康密码挑剔别人的身材,你自己管理好了吗?健身不仅是保持健康体魄的关键要素之一,也是灵活的、具有创造性的脑力活动的基础。毕竟,谁不想让自己外形迷人呢?软开人员,更应该坚信,学习让身体保持健壮和健康能让我们获益良多,因为我们的工作往往会把我们推到另一个方向上。立刻开始健身——就是现在,不是明天,也不是下周。健身能让你成为更好的软件开发人员,这就是原因。自信心比天赋更适合预测成功好身材能让你感觉良好,也能让你对能完成自己设定目标

2021-02-22 16:32:08 181 6

原创 《软技能·代码之外的生存指南》读书笔记 ——理财

文章目录怎样支配薪水退休计划债务的危害彩蛋金钱只是一种工具,它会带你去往任何你想去的地方,但不会取代你成为司机。成为百万富翁还是一生靠薪水过活,选择权在你自己,而且很大程度取决于你在财务管理方面的知识,以及金融系统运行原理方面的知识。你对自己财务和投资的管理方式会对自己的生活产生深远的影响,甚至可能远超除健康之外的其它东西。你在职业生涯中做出的许多关键决策很大程度上是以财务状况为基础的,怎样支配薪水拒绝短期思维赚钱多并不能让一个人在财务上更精明。资产与负债考虑物品的实际开销,而不是根据你每

2021-02-22 15:21:49 149 1

原创 《软技能·代码之外的生存指南》读书笔记 ——学习

文章目录自我教育十步学习法Step 1~6Step 7~10 循环往复发现短板注:可能并不是该章节全部内容的笔记,后续会继续完善。自我教育教育体系的设计初衷针对群体而非个人。但是,如果想成为最好的软件开发人员,就必须学会自学。主动学习是效率更高的方式。学习知识最好的方式就是立即付诸实践,即使你还不知道自己在做什么。玩耍是一项强大的学习机制,乐在其中。最后,将自己所学打包教给别人。http://simpleprogrammer.com/ss-learning-myth十步学习法背景我们往往

2021-02-19 10:47:12 139

原创 《软技能·代码之外的生存指南》读书笔记 ——自我营销

@[TOC] 自我营销营销就是一场争夺人们注意力的竞赛。—— Seth Godin优秀的营销会将人们的需要或者期待与能够满足此愿望的产品或服务关联起来实现价值在先,要求回报在后营销基础在生活中,仅仅拥有才华是远远不够的。伟大的音乐家与超级巨星之间的真正区别无非就是营销自己。对于有才华的人来说,营销就是乘数/杠杆效应。你的营销越好,你的才华能表现得越发淋漓尽致。如何包装一个想法往往比想法本身更重要。你也许是世界上最有天赋的软件开发人员,但是如果没有人知道你的存在,你也只不过是浮云一片。自我营销的

2021-02-17 12:42:35 172 2

原创 《软技能·代码之外的生存指南》读书笔记 —— 职业

作者博客https://simpleprogrammer.com/https://getupandcode1.libsyn.com/https://entreprogrammers.com/工作是属于公司的,但我们为自己而工作,为自己的职业发展(生涯)而工作从非同凡响开始转变心态,把自己当做一个企业去思考自己 => 企业 雇主 => 客户 软件开发服务 => 生意把自己当作企业,会影响到工作的方式 处理财务的方式 寻求新工作(客户)的方式应该怎么

2021-02-17 12:18:42 157 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除