以下保罗·格雷厄姆博客《How to do great work》的英语原文和翻译,以及自己看后的想法及思考,这篇博客很长,我觉得在快餐文化的今天,很可贵,值得花费时间去细读,去领略其中的思想,接下来,开始吧:
原文与翻译①If you collected lists of techniques for doing great work in a lot of different fields, what would the intersection look like? I decided to find out by making it.
如果要汇总在任何领域做出伟大成就所需要的技能...
什么是JavaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了 C++里难以理解的多继承、 指针等概念, 因此Java语言具有功能强大和简单易用两个特
征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
JVM、JRE和JDK的关系JVMJVM( Java Virtual Machine),即Java虚拟机,运行在操作系统之上,存在于内存中,与内存打交道,与硬件没有直接 交互,是Java语言实现跨平台的核心。
JVM是一种抽象,虚拟出来的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区...
前言《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册,当前的版本是嵩山版。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:五花八门的错误码人为地增加排查问题的难度;数据库的表结构和索引设计缺陷带来的系统架构缺陷或性能风险;工程结构混乱导致后续项目维护艰难;没有鉴权的漏洞代码易被黑客攻击等等。所以本手册以 Java 开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、M...
JWTJSON Web token 简称 JWT, 是用于对应用程序上的用户进行身份验证的标记。也就是说, 使用 JWTS 的应用程序不再需要保存有关其用户的 cookie 或其他 session 数据。此特性便于可伸缩性, 同时保证应用程序的安全。
在身份验证过程中, 当用户使用其凭据成功登录时, 将返回 JSON Web token, 并且必须在本地保存 (通常在本地存储中)。
每当用户要访问受保护的路由或资源 (端点) 时, 用户代理(user agent)必须连同请求一起发送 JWT, 通常在授权标头中使用 Bearer schema。后端服务器接收到带有 JWT 的请求时, 首...
Kafka 是什么?Kafka 是一款分布式流处理框架,用于实时构建流处理应用。它有一个核心 的功能广为人知,即作为企业级的消息引擎被广泛使用。
明确Kafka 的流处理框架地位
Kafka 的特点?
高吞吐量、低延迟:kafka 每秒可以处理几十万条消息,它的延迟最低只有几毫秒
可扩展性:kafka 集群支持热扩展
持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
容错性:允许集群中节点失败(若副本数量为 n,则允许 n-1 个节点失败)
高并发:支持数千个客户端同时读写
什么是消费者组?消费者组是 Kafka 独有的概念,如果面试官问这 个,就说明他对此是有一定...
MongoDB 是什么?mongodb 是属于文档型的非关系型数据库,是开源、高性能、高可用、可扩展的数据逻辑层次关系:文档=>集合=>数据库在关系型数据库中每一行的数据对应 mongodb 里是一个文档。mongodb 的文档是以 BSON(binary json)格式存储的,其格式就是 json 格式。
MongoDB术语
集合
集合是一组文档(即上面的 users 集合)。集合相当于关系数据库中的表,但集合中的文档长度可不同(集合中的文档中的键值对个数可不同)、集合中文档的 key 可不同。向集合中插入第一个文档时,集合会被自动创建。
文档
文档是...
Zookeeper 是什么Zookeeper 是一个分布式协调服务的开源框架, 主要用来解决分布式集群中应用系统的一致性问题, 例如怎样避免同时操作同一数据造成脏读的问题.
ZooKeeper 本质上是一个分布式的小文件存储系统. 提供基于类似于文件系统的目录树方式的数据存储, 并且可以对树中的节点进行有效管理. 从而用来维护和监控你存储的数据的状态变化. 通过监控这些数据状态的变化,从而可以达到基于数据的集群管理.
在大数据生态系统里,很多组件的命名都是某种动物,比如 hadoop 就是大象, hive就是蜜蜂, 而 Zookeeper 就是动物管理员.
Zookeeper 的数据模型...
什么是 dubboDubbo 是工作在 soa 面向服务分布式框架中的服务管理中间件。Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。
它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo 采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容。
Dubbo 使用的是缺省协议, 采用长连接和 ni...
SOA 和微服务的区别?到 SOA 和微服务的区别, 那咱们先谈谈架构的演变
集中式架构
项目功能简单, 一个项目只需一个应用, 将所有功能部署在一起, 这样的架构好处是减少了部署节点和成本.
缺点: 代码耦合,开发维护困难, 无法水平扩展, 单点容错率低,并发能力差
垂直拆分架构
当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,我们根据业务功能对系统进行拆分:
优点:系统拆分实现了流量分担,解决了并发问题,可以针对不同模块进行优化, 方便水平扩展,负载均衡,容错率提高
缺点:系统间相互独立,会有很多重复开发工作,影响开发效率
分布式服务
当垂直应用越来越...
SpringBoot 是什么是 Spring 的子项目,主要简化 Spring 开发难度,去掉了繁重配置,提供各种启动器,可以让程序员很快上手,节省开发时间.
SpringBoot 的优点SpringBoot 对上述 Spring 的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。
版本锁定:解决是 maven 依赖版本容易冲突的问题,集合了常用的并且测试过的所有版本
使用了 Starter(启动器)管理依赖并能对版本进行集中控制,父工程带有版本...