![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
文章平均质量分 85
kylt
.....
展开
-
读书笔记: 《分布式JAVA应用 基础与实践》 第一章 分布式JAVA应用
大型应用通常会拆分为多个子系统来实现,对于JAVA来说,这些子系统可能部署在同一台机器的多个不同的JVM,也可能部署在不同的机器上,但这些子系统又不是完全独立的,要相互通信来共同实现业务功能,对于此类JAVA应用,我们称之为分布式JAVA应用。 使用分布式的要点就是尽量不要使用分布式。 实现分布式系统通信,主要有两种方...2011-05-07 12:12:42 · 148 阅读 · 0 评论 -
<<More Joel on Software>> 寻找优秀的程序员
===================寻找优秀的程序员作者:Joel Spolsky译者:阮一峰原文网址:http://www.joelonsoftware.com/articles/FindingGreatDevelopers.html写于 2006年9月6日,星期三优秀的程序员都在哪里?这是你第一次公开招募雇员。如同大多数人一样,你会发布广告...原创 2011-07-03 13:24:18 · 191 阅读 · 0 评论 -
<<More Joel on Software>> 军事化管理法
高科技公司能否采用军事化管理?(译文)作者: 阮一峰日期: 2008年11月17日下面的文章是More Joel on Software一书的第五篇,我今天刚译完。我不知道,有没有人喜欢军事化管理,反正我从小就不喜欢被约束,不喜欢被管教,不喜欢任何的军训。但是,我从来没想过,对军事化管理进行制度分析。译完下面的文章后,我完全心悦诚服,...原创 2011-07-03 13:28:42 · 186 阅读 · 0 评论 -
<<More Joel on Software>> 易用性是不够的
易用性是不够的(译文)作者: 阮一峰日期: 2009年1月30日春节期间,我就干了两件事。第一件事,是参加了若干次的亲友聚会,食用了大量高热量高脂肪食品。第二件事,就是在痛苦地翻译More Joel on software。痛苦来自于两方面。首先,我的翻译没有按照合同约定的日期完成,心理压力很大。其次,翻译的难度也不小,电脑前坐4个小时,只译...原创 2011-07-03 13:41:36 · 137 阅读 · 0 评论 -
<<More Joel on Software>> 关于战略问题的通信之六
关于战略问题的通信之六(译文)作者: 阮一峰日期: 2009年3月30日《Joel谈软件》一书的翻译,我好久没提了。合同规定今年1月交稿。假定我没有违约的话,此书现在应该上市了。可是,实际上......就算到下个月,我恐怕都翻译不完。......我也不想多解释了,反正这本书现在是我最大的烦恼,只能争取今年夏天上市了。下面的文章是该书的第21篇...原创 2011-07-03 13:51:40 · 135 阅读 · 0 评论 -
<<More Joel on Software>> 飙高音
飙高音(译文)作者: 阮一峰日期: 2009年7月12日是的,我还在翻译More Joel on Software这本书。300页,我干了8个月还没完工。出版社都快对我绝望了。Joel的文章很不好译。他喜欢东拉西扯,喜欢文字游戏,喜欢使用延绵不断的长句,喜欢炫耀自己的知识面,这些都是对译者的折磨。就像下面这篇5000字的文章,整整花了我三...原创 2011-07-03 13:54:44 · 149 阅读 · 0 评论 -
<<More Joel on Software>> 五个为什么
五个为什么(译文)作者: 阮一峰日期: 2009年8月21日昨天晚上,我终于把 More Joel on Software 翻译完了。谢天谢地,总算可以摆脱这本书了。唯一的感觉就是特别倦怠......检查完译稿以后,我一分钟也没等,立刻用Email发给了编辑,然后倒头就睡,直到刚才起床。此书的编辑工作量很大,但愿一切顺利,可以在年底前...原创 2011-07-03 14:20:36 · 138 阅读 · 0 评论 -
<<More Joel on Software>> 每日构建(daily build)是你的朋友
作者: 周思博 (Joel Spolsky)译: Chen Bin 2001年1月27日1982年,我家定购了IBM的PC机(IBM生产的最早的个人计算机,是现代流行的标准化的个人计算机的祖宗)。我们家可能是以色列最早拥有这种PC机的几个家庭之一。当时我们跑到了仓库等着电脑从港口运过来。事实上,我说服我爸购买的是带有全套附属设备的个人计算机(译者按:有些现在很便宜的附属设...原创 2011-07-03 14:37:56 · 105 阅读 · 0 评论 -
<<More Joel on Software>> 膨胀软件与80/20的谣传
作者: 周思博 (Joel Spolsky)译: Bo Yang 编辑: Wenjing Jiang 2001年3月23日1993年,微软公司的电子表格软件Excel 5.0出版了。它是一个巨大的软件,需要15兆的硬盘空间。当年我们还记得最早上市(1985年左右)的PC硬盘只有20兆,所以15兆显得很多。 等到Excel 2000出版的时候,它竟需要146兆的硬...原创 2011-07-03 14:38:58 · 90 阅读 · 0 评论 -
<<More Joel on Software>> 看起来简单, 实际上复杂
作者: 周思博 (Joel Spolsky)译: Bo Yang 翻译 编辑: Billy Chen 编校 2002年3月4日我们在CityDesk里有一个使用性上的小问题。 问题是这样的:你可以用菜单上“导入网页”的命令,从因特网上导入一个文件。你也可以用鼠标拖放的方法,从磁盘上导入一个文件。但是菜单上没有“导入磁盘文件”这个命令,所以有些用户没有发...原创 2011-07-03 14:41:43 · 196 阅读 · 0 评论 -
<<More Joel on Software>> The Joel Test: 软件开发成功 12 法则
作者: 周思博 (Joel Spolsky)译: 李国华 Frank Li 编辑: 孙雯辰 Rosemary Sun 2000年8月9日有没有听说过SEMA?这可是衡量一个软件开发组好坏的很深奥的系统。别介,等一下!别按那个链接! 给你六年你也搞不清这玩意。所以我自己随便攒了一套衡量系统,信不信由你,这系统,三分钟就可掌握。你可以把省下的时间去读医学院了(译注:美国的医...原创 2011-07-03 14:42:58 · 96 阅读 · 0 评论 -
<<More Joel on Software>> 利诱管理法
利诱管理法Joke: A poor Jew lived in the shtetl in 19th century Russia. A Cossack comes up to him on horseback.笑话一则:一位穷苦的犹太人住在19世纪俄国的犹太村庄里,这天,一位骑着马的哥萨克骑兵来到他的身边。“What are you feeding that chicken...原创 2011-07-03 15:10:21 · 162 阅读 · 0 评论 -
<<More Joel on Software>> 如何扮演程序经理的角色
制作伟大软体的秘方之一是:有个好的程式经理。你的团队里应该没有这号人物,因为大部分的团队都没有。Charles Simonyi,那位发明了「所见即所得」(WYSIWYG) 文字处理软体、跟 Martha Stewart 约会、赚进价值亿万的微软股票而且上了太空的天才程式设计师,是首位尝试着组织超大开发团队来解决人月神话的人。他创造了这样的制度:由一位超强工程师来设计系统里最高阶、最上层的函...原创 2011-07-03 15:13:23 · 96 阅读 · 0 评论 -
读书笔记:《分布式JAVA应用 基础与实践》 第七章 构建可伸缩的系统
通常将通过升级或增加单机机器的硬件来支撑访问量及数据量增长的方式称为垂直伸缩,将通过增加机器来支撑访问量和数据量的增长的方式称为水平伸缩。垂直伸缩实现难度较低,但机器的硬件是无法不断升级和增加,容易达到瓶颈;水平伸缩理论上没有瓶颈,但技术难度较高。两者各有一定的优点,因此在应用中通常可以混合采用。7.1 垂直伸缩垂直伸缩前,先要分析系统的瓶颈,针对性地根据瓶颈对硬件进行...原创 2011-05-29 12:09:19 · 96 阅读 · 0 评论 -
读书笔记:《分布式JAVA应用 基础与实践》 第六章 构建高可用的系统
对于互联网或企业中的大型应用而言,多数要求做到7*24小时不间断运行。实际上要完全做到不太可能,但可尽量接近,各大网站或大型应用在总结一年的运行状况时,通常会有当年的可用性为99.9%这样的内容。为实现类似的高可用,要避免系统中出现单点。6.1 避免系统中出现单点单点是指系统部署在单台机器上,一旦这台机器出现问题(硬件损坏,网络不通等...原创 2011-05-28 11:02:06 · 168 阅读 · 0 评论 -
读书笔记: 《分布式JAVA应用 基础与实践》 第二章 大型分布式JAVA应用与SOA
一、为什么需要SOA当应用获得用户的认可后,会不断发展。以豆瓣网为例,早期豆瓣网只有书评的功能,随着用户的增加,发展出今天的豆瓣社区,豆瓣读书,豆瓣电影和豆瓣音乐等功能。这些功能有各自的特色,但又有很多可公用的业务逻辑。例如用户信息、评价等,如果各个系统都维护自己的用户信息和评价,会造成的问题一方面是当修改评价逻辑或用户信息的读取方式时,所有系统都要修改,相当复杂;另一方面是每个系...2011-05-08 12:50:45 · 134 阅读 · 0 评论 -
《分布式JAVA应用 基础与实践》 第三章 3.1 Java代码的执行机制(一)
Java程序运行在JVM之上,JVM的运行状况对于Java程序而言会产生很大的影响,因此,掌握JVM中的关键机制对于编写稳定、高性能的Java程序至关重要。JVM规范 定义的标准结构如图3.1所示。 (点击查看大图)图3.1 JVM标准结构以上标准结构是JVM规范中定义的,但各家厂商在实现时不一定会完全遵守。JVM负责装载class文件并执行,因此,首先要...原创 2011-05-08 14:42:02 · 93 阅读 · 0 评论 -
《分布式JAVA应用 基础与实践》 第三章 3.1 Java代码的执行机制(二)
3.1.3 类执行机制在完成将class文件信息加载到JVM并产生Class对象后,就可执行Class对象的静态方法或实例化对象进行调用了。在源码编译阶段将源码编译为JVM字节码,JVM字节码是一种中间代码的方式,要由JVM在运行期对其进行解释并执行,这种方式称为字节码解释执行方式。字节码解释执行由于采用的为中间码的方式,JVM有一套自己的指令,对于面向对象的语言而言,最...原创 2011-05-08 16:33:05 · 111 阅读 · 0 评论 -
《分布式JAVA应用 基础与实践》 第三章 3.2 JVM内存管理(一)
3.2 JVM内存管理Java不需要开发人员来显式分配内存和回收内存,而是由JVM来自动管理内存的分配及回收(又称为垃圾回收、Garbage Collection或GC),这对开发人员来说确实大大降低了编写程序的难度,但副作用可能是在不知不觉中浪费了很多内存,导致JVM花费很多时间进行内存的回收。另外还可能会带来的副作用是由于不清楚JVM内存的分配和回收机制,造成内存泄露,最终导...原创 2011-05-08 16:53:08 · 77 阅读 · 0 评论 -
《分布式JAVA应用 基础与实践》 第三章 3.2 JVM内存管理(二)
3.2.3 内存回收(1)收集器JVM通过GC来回收堆和方法区中的内存,GC的基本原理首先会找到程序中不再被使用的对象,然后回收这些对象所占用的内存,通常采用收集器的方式实现GC,主要的收集器有引用计数收集器和跟踪收集器。1. 引用计数收集器引用计数收集器采用的为分散式的管理方式,通过计数器记录对象是否被引用。当计数器为零时,说明此对象已经不再被使用,于是可进行回收,...原创 2011-05-08 17:01:05 · 119 阅读 · 0 评论 -
《分布式JAVA应用 基础与实践》 第三章 3.2 JVM内存管理(三)
3.2.3 内存回收(2)Full GC除CMS GC外,当旧生代和持久化触发GC时,其实是对新生代、旧生代及持久代都进行GC,因此通常又称为Full GC。当Full GC被触发时,首先按照新生代所配置的GC方式对新生代进行GC(在新生代采用PS GC时,可通过-XX:-ScavengeBeforeFullGC来禁止Full GC时对新生代进行GC),然后按照旧生代...原创 2011-05-08 17:15:03 · 92 阅读 · 0 评论 -
《分布式JAVA应用 基础与实践》 第三章 3.2 JVM内存管理(四)
3.2.4 JVM内存状况查看方法和分析工具(1)Java本身提供了多种丰富的方法和工具来帮助开发人员查看和分析GC及JVM内存的状况,同时开源界和商业界也有一些工具可用于查看、分析GC及JVM内存的状况。通过这些分析,可以排查程序中内存泄露的问题及调优程序的性能。下面介绍几种常用的免费工具,其中知名的有JProfiler 等。1. 输出GC日志输出GC日志对于跟踪分析G...原创 2011-05-17 19:00:43 · 109 阅读 · 0 评论 -
《分布式JAVA应用 基础与实践》 第三章 3.3 JVM线程资源同步及交互机制(一)...
3.3 JVM线程资源同步及交互机制Java程序采用多线程的方式来支撑大量的并发请求处理,程序在多线程方式执行的情况下,复杂程度远高于单线程串行执行的程序。尤其是在多核或多CPU系统中,多线程执行的程序所带来的最明显的问题是线程之间共同管理的资源的竞争及线程之间的交互。JVM的线程实现及调度方式(抢占式、协作式)取决于操作系统,超出了本书范围,本节中仅介绍JVM线程资源同步机制和...原创 2011-05-17 19:09:34 · 108 阅读 · 0 评论 -
读书笔记:《分布式JAVA应用 基础与实践》 第三章 3.3 JVM线程资源同步及交互机制(二)...
接下来网上没有,貌似非公开章节,继续摘要。 3.3.2 线程交互机制1. 常规方法:wait/notify/notifyAll当线程调用了对象的wait方法后,JVM线程执行引擎会将此线程放入一个wait sets中,并释放此对象的锁,在wait sets中的线程将不会被JVM线程执行引擎调度执行;当其它线程调用了此对象的notify方法时,会从wait sets中随机找一个等...原创 2011-05-17 21:52:51 · 83 阅读 · 0 评论 -
读书笔记:《分布式JAVA应用 基础与实践》 第四章 分布式JAVA应用与JDK类库
4.1 集合包ArrayList,LinkedList,Vector,TreeSet,HashMap,TreeMap等,无需多说 4.2 并发包(java.util.concurrent)4.2.1 ConcurrentHashMap线程安全的HashMap实现,主要原理是将集合分成多个段(默认...原创 2011-05-21 11:23:59 · 70 阅读 · 0 评论 -
读书笔记:《分布式JAVA应用 基础与实践》 第五章 性能调优(一)
5.1 寻找性能瓶颈 通常性能瓶颈的表象是资源消耗过多、外部处理系统性能不足,或者资源消耗不多,但程序的响应速度却仍达不到要求。 资源主要消耗在CPU、文件IO、网络IO、以及内存方面。 外部处理的性能不够主要是调用其他系统的功能或数据库操作的响应速度不够。 资源消耗不多,但程序的响应速度仍达不到要求的主要...原创 2011-05-22 13:43:49 · 113 阅读 · 0 评论 -
读书笔记:《分布式JAVA应用 基础与实践》 第五章 性能调优(二)
5.2 调优找出性能瓶颈后,接下来就是调优,调优通常可从硬件,操作系统、JVM以及程序四方面着手,硬件和操作系统不是本书的重点。下面主要介绍JVM及程序方面的一些调优。5.2.1 JVM调优JVM调优主要是内存管理方面的调优,包括各个代的大小、GC策略等。代大小的调优通常minor GC...原创 2011-05-22 21:34:20 · 135 阅读 · 0 评论 -
技术文章精华合集(持续更新中)
Kafka深度解析 分库分表系列文章 来自 Google 的高可用架构理念与实践 Web安全知多少 分布式锁 Java常用技术方案章文嵩博士和他背后的负载均衡帝国高并发限流特技1从限流削峰到性能优化,谈1号店抽奖系统架构实践 微服务架构的基础框架选择:Spring Cloud还是Dubbo?Spring Cloud构建微服务架构(一)...原创 2016-09-20 19:09:33 · 285 阅读 · 0 评论