<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Xanthin的博客]]></title><description><![CDATA[一个合格的程序员，不会写出“摧毁地球”的方法。他会写一个方法叫“摧毁行星”，然后把地球作为参数传进去。]]></description><link>https://blog.csdn.net/Xanthin</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Xanthin]]></copyright><item><title><![CDATA[《人月神话》读书笔记（十三）]]></title><link>https://blog.csdn.net/Xanthin/article/details/121278835</link><guid>https://blog.csdn.net/Xanthin/article/details/121278835</guid><author>Xanthin</author><pubDate>Thu, 11 Nov 2021 23:44:54 +0800</pubDate><description><![CDATA[第十四章  祸起萧墙
项目进度经常以一种难以察觉，但是残酷无情的方式慢慢落后。每件事情都只会将某项活动延迟半天或一天，但是积累起来，整个项目进度就出现了灾难性的偏移。“通常灾祸来自白蚁的施虐，而不是龙卷风的侵袭”。
要想严格地控制项目进度。第一步是要制定一个进度表，进度表上的每一件事被称为“里程碑”，有一个明确的期限日期。里程碑必须要是具体的、特定的、可度量的事件。如果里程碑定义得非常明确，无法自欺欺人时，很少有人会就里程碑的进度弄虚作假。但是如果里程碑很模糊，老板就常常会得到一份与实际情况不符的报告。当里]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（十二）]]></title><link>https://blog.csdn.net/Xanthin/article/details/121236771</link><guid>https://blog.csdn.net/Xanthin/article/details/121236771</guid><author>Xanthin</author><pubDate>Tue, 09 Nov 2021 21:21:54 +0800</pubDate><description><![CDATA[第十三章  整体部分
产品的概念完整性在使他易于使用的同时，也使开发更容易进行，而且bug更不容易产生。细致的功能定义、仔细的规格说明、规范化的功能描述以及这些方法的实施，大大减少了系统中必须查找的bug数量。
自上而下的设计
可以自上而下的设计方法对系统进行设计，先将系统分割成独立的模块，再识别各个模块里面的功能组件继续往下分解，分解的细化程度决定了程序的适用性和可变化的程度。采用这种设计方法的优点为以下几点：
首先，清晰的结构和表达方式更容易对需求和模块功能进行精确地描述。
其次，模块分割和模块独立性避]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（十一）]]></title><link>https://blog.csdn.net/Xanthin/article/details/121216926</link><guid>https://blog.csdn.net/Xanthin/article/details/121216926</guid><author>Xanthin</author><pubDate>Mon, 08 Nov 2021 21:47:36 +0800</pubDate><description><![CDATA[第十二章  干将莫邪
每个编程人员根据自己习惯、技能的不同，会有自己的一套个性化的工具集。但是，在软件项目中并不提倡个性化的工具集。原因是以下三点：
第一、对软件项目来说，最关键的问题是沟通，个性化的工具会妨碍而非促进沟通。
第二、当机器和工具语言发生变化时，技术也会随之变化，所有工具的生命周期都是很短的。
第三、在团队里提倡开发和维护公共的通用编程工具的效率会更高
“工欲善其事，必先利其器”。因此，项目经理必须要考虑、计划并分配项目中的通用工具资源。可以配备一名工具管理人员。这个角色管理所有的通用工具，能]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（十）]]></title><link>https://blog.csdn.net/Xanthin/article/details/121185905</link><guid>https://blog.csdn.net/Xanthin/article/details/121185905</guid><author>Xanthin</author><pubDate>Sat, 06 Nov 2021 23:09:26 +0800</pubDate><description><![CDATA[第十一章  未雨绸缪
开发人员交付的是用户满意度，而不仅仅是有形的产品。用户的实际需要和用户感觉会随着程序的构建、测试和使用而变化。
项目目标上的一些变化无可避免，事先为它们做准备总比假设它们不会出现要好很多。不但目标上的变化不可避免，而且设计策略和技术上的变化也不可避免。
对于大多数项目，第一个开发的系统并不合用。它可能太慢、太大，而且难以使用，或者三者兼而有之。要解决所有的问题，除了重新开始以外，没有其他的办法（也就是我们现在常说的重构）。
这一块我是深有体会，曾经做过一套停车服务的系统，因为是首次接触]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（九）]]></title><link>https://blog.csdn.net/Xanthin/article/details/121151555</link><guid>https://blog.csdn.net/Xanthin/article/details/121151555</guid><author>Xanthin</author><pubDate>Thu, 04 Nov 2021 21:21:47 +0800</pubDate><description><![CDATA[第十章 提纲挈领
文档在管理工作中非常重要。如果没有清晰明朗的文档，项目往往会处于无休止的混乱之中。
文档的作用主要分为以下三点：
首先，书面记录决策是必要的。只有记录下来，分歧才会明朗，矛盾才会突出。
第二，文档能够作为同其他人的沟通渠道。项目经理的基本职责是使每个人都向着相同的方向前进，所以他的主要工作是沟通，而不是做出决定。文档能极大地减轻他的负担。
最后，文档可以作为汇报的数据基础和检查列表。通过周期性的回顾，项目经理可以清楚项目所处的状态，以及哪些需要重点进行更改和调整。
通过遵循文档开展工作，项]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（八）]]></title><link>https://blog.csdn.net/Xanthin/article/details/121131342</link><guid>https://blog.csdn.net/Xanthin/article/details/121131342</guid><author>Xanthin</author><pubDate>Wed, 03 Nov 2021 23:01:17 +0800</pubDate><description><![CDATA[第八章 胸有成竹
这一章的开头标语是“实践是最好的老师，但智者还能从其他的地方有所收获”。本章引用了大量实践过程中的数据和图表，用来说明了估计开发工作量的技术。主要以单个程序员每年产生的指令代码行作为生产率的估计单位。
生产率也会根据任务本身的复杂度和困难程度表现出显著差异。因为我平时工作中几乎用不到这种估计的技术，这里就不详细讨论了。
第九章 削足适履
对项目经理而言，规模控制是技术工作的一部分，也是管理工作的一部分。他必须研究用户和用户需求，以设置待开发系统的规模。接着，把这些系统划分成若干部分，并设定]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（七）]]></title><link>https://blog.csdn.net/Xanthin/article/details/120913862</link><guid>https://blog.csdn.net/Xanthin/article/details/120913862</guid><author>Xanthin</author><pubDate>Fri, 22 Oct 2021 22:47:40 +0800</pubDate><description><![CDATA[第七章 为什么巴比伦塔会失败
据《创世纪》记载，巴比伦塔是人类继诺亚方舟之后的第二大工程壮举，同时，其也是一个彻底失败的工程。
我们把建造巴比伦塔单纯作为一个工程项目来看待，进行经验总结。
（1）项目的目标：建造一座高达云霄的高塔
（2）项目资源：人力资源非常充足，在美索不达米亚有丰富的泥土和柏油沥青，材料资源也很充足
（3）项目工期：没有任何时间限制的迹象
（4）项目所需的技术：对砖石建筑技术，人类已经有过建造金字塔这种稳定结构的经验
人们已经具备了以上的条件，然而这个项目还是失败了。失败的原因，是因为上]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（六）]]></title><link>https://blog.csdn.net/Xanthin/article/details/120855121</link><guid>https://blog.csdn.net/Xanthin/article/details/120855121</guid><author>Xanthin</author><pubDate>Tue, 19 Oct 2021 22:00:10 +0800</pubDate><description><![CDATA[第六章 贯彻执行
我们组建好了一个团队，要正式开始执行项目任务了。那么在执行过程中，如何确保项目团队的每个人都能听到、理解项目的需求？如何保证系统概念的完整性？
可以通过以下几种方式来达到目的：
一、需求规格说明书
书里的文字描述是“文档化的规格说明-手册”，根据我的理解，这里说的应该就是用于项目团队内部以及外部沟通对接需求的“需求规格说明书”。
为了保持文字风格和产品的一致性，须由一个或两个人来完成将结论转成书面规格的说明的工作。需求规格说明书的风格必须要清晰、完整和准确。我们可以结合形式化定义和记叙性定]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（五）]]></title><link>https://blog.csdn.net/Xanthin/article/details/120680778</link><guid>https://blog.csdn.net/Xanthin/article/details/120680778</guid><author>Xanthin</author><pubDate>Sat, 09 Oct 2021 23:34:26 +0800</pubDate><description><![CDATA[第五章 画蛇添足
估算和责任分工是制定计划很关键的一环。实际情况中，尽早交流和持续沟通能够使项目经理能有更好的成本意识，项目经理能及时改进他的估算或修订计划，使开发人员获得对设计的信心，并且不会混淆各自的分工。
面对估算过高的时候，项目经理有两个选择：削减设计（砍需求）或者采用成本更低的实现方法。若采取后者，项目经理则是在向开发人员的做事方式提出挑战，想要成功，必须：
（1）牢记开发人员承担主要的功能实现创造任务，所以项目经理只能建议其使用成本更低的方法，而不是支配；
（2）时刻准备着一种实现方法的建议，同]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（四）]]></title><link>https://blog.csdn.net/Xanthin/article/details/120539400</link><guid>https://blog.csdn.net/Xanthin/article/details/120539400</guid><author>Xanthin</author><pubDate>Tue, 28 Sep 2021 23:31:03 +0800</pubDate><description><![CDATA[第四章 贵族专制、民主政治和系统设计
在系统设计中，概念完整性应该是最重要的考虑因素。软件的目的是使计算机更加容易使用，能用最简洁和直接的方式来指明事情的系统是最好的，而简洁和直白就来自系统概念的完整性。系统的每个部分必须反映一致的原理需求，保持统一的设计思想。
但是，绝大多数的系统都体现出了概念差异和不一致性。这是由于设计被分成了由若干人完成的若干任务。为了保证概念完整性，因此要求设计必须由一个人，或者非常少数互有默契的人员来实现。这就是本章提及的“贵族专制统治”。
然而，大型的项目为了满足进度要求，必须]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（三）]]></title><link>https://blog.csdn.net/Xanthin/article/details/120499639</link><guid>https://blog.csdn.net/Xanthin/article/details/120499639</guid><author>Xanthin</author><pubDate>Mon, 27 Sep 2021 00:49:37 +0800</pubDate><description><![CDATA[第三章 外科手术团队
由一流人才组成的小型、精干的团队是非常高效的。优秀的程序员和较差的程序员的生产率有10倍之差！“需要协作沟通的人员数量影响着开发成本，因为成本的主要组成部分是相互的沟通和交流”。所以，在一般的中小型系统开发中，应该由尽可能少的人来开发，这是小型精干团队的优势。但是，在面对大型系统时，小型团队的生产率是有限的，“它太慢了”！
为什么会慢，布鲁克斯用了OS/360的开发规模来很好的描述了上述的问题：OS/360项目的总投入成员超过1000人，从1963年到1966年，总工作量花费了大约50]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（二）]]></title><link>https://blog.csdn.net/Xanthin/article/details/120465131</link><guid>https://blog.csdn.net/Xanthin/article/details/120465131</guid><author>Xanthin</author><pubDate>Sat, 25 Sep 2021 00:39:50 +0800</pubDate><description><![CDATA[第二章 人月神话
“在众多软件项目中，缺乏合理的进度安排是造成项目滞后的最主要原因”，为什么会缺乏合理的进度安排，布鲁克斯从以下几点进行了说明：
一、所有的编程人员都是乐观主义者
程序员对自己的任务进度都非常乐观：“一切都将运作良好”，“所有的任务都可以按时完成”。然而，程序员的构思是会有缺陷的，因此总会发现bug。如果每个任务都保持着太乐观的心态，一旦每个任务都延误了，那就是整个项目的大型崩溃现场了。
二、用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话
人月单位仅适用于以下场景：某个任务可以单独]]></description><category></category></item><item><title><![CDATA[《人月神话》读书笔记（一）]]></title><link>https://blog.csdn.net/Xanthin/article/details/120445984</link><guid>https://blog.csdn.net/Xanthin/article/details/120445984</guid><author>Xanthin</author><pubDate>Fri, 24 Sep 2021 00:03:18 +0800</pubDate><description><![CDATA[这是我第二遍读《人月神话》，然而惭愧的是，我第一遍读完还只是两天前的事。
读第一遍的时候，里面很多的内容我觉得非常晦涩难懂，但还是坚持读了下来。第一遍读完之后，就开始看书后的读者感言，也在网上找其他人的读后感来看，才真正加深了理解。如果有跟我一样，在第一次读这本书觉得很难读的，我还是建议您坚持读完，然后去参考其他人的读后感，你也能领会到这本书的精华所在。
“这个领域的知识在于累积”。这句话是我在读第二遍的时候才从序言里注意到的，我这段时间开始读书，也不断地在寻找着读书的理由，当我再次翻开第一章开头，“前车之]]></description><category></category></item><item><title><![CDATA[Centos6.5 Mysql主从同步备份操作记录]]></title><link>https://blog.csdn.net/Xanthin/article/details/78532218</link><guid>https://blog.csdn.net/Xanthin/article/details/78532218</guid><author>Xanthin</author><pubDate>Wed, 15 Nov 2017 11:55:31 +0800</pubDate><description><![CDATA[因项目需求，需要做一个数据库备份。于是从网上查了很多资料。最终通过执行数据库脚本来完成两个数据库之间的连接。为了巩固知识，在这里记录下实际操作以及操作时遇到的问题。数据库主从复制的优点： 
1、 如果主服务器出现问题， 可以快速切换到从服务器提供的服务，保证高可用性 
2、 可以在从服务器上执行查询操作， 降低主服务器的访问压力 
3、 可以在从服务器上执行备份， 以避免备份期间影响主服务器的服务操]]></description><category></category></item><item><title><![CDATA[常用SQL命令]]></title><link>https://blog.csdn.net/Xanthin/article/details/53909466</link><guid>https://blog.csdn.net/Xanthin/article/details/53909466</guid><author>Xanthin</author><pubDate>Wed, 28 Dec 2016 16:10:23 +0800</pubDate><description><![CDATA[CRUD–（创建、读取、更新、删除）一、 创建数据1.1、建表语句 
CREATE TABLE table_name(column_1 data_type,column_2 data_type,column_3 data_type,); 
1.2、插入式添加数据 
INSERT INTO TABLE table_name (column_1,column_2,…,column_3) VALUES (]]></description><category></category></item><item><title><![CDATA[注解笔记]]></title><link>https://blog.csdn.net/Xanthin/article/details/53886913</link><guid>https://blog.csdn.net/Xanthin/article/details/53886913</guid><author>Xanthin</author><pubDate>Mon, 26 Dec 2016 16:03:55 +0800</pubDate><description><![CDATA[一、Java中常见注解（1）JDK自带注解 
@Override 覆盖了父类或接口的方法（重写） 
@Deprecated 标记方法过时 
@SuppressWarnings 标记忽略警告（2）第三方注解 
如Spring的：@Autowired @Service二、注解分类（1）按运行机制分为 
1.1、源码注解 
只在源码存在，编译成.class文件后不存在 
1.2、编译时注解 
在源码和.c]]></description><category></category></item><item><title><![CDATA[反射笔记]]></title><link>https://blog.csdn.net/Xanthin/article/details/53787728</link><guid>https://blog.csdn.net/Xanthin/article/details/53787728</guid><author>Xanthin</author><pubDate>Wed, 21 Dec 2016 17:26:09 +0800</pubDate><description><![CDATA[一、Class类（1）类是对象，类是java.lang.Class的实例对象 
（2）数据类型不是对象，静态的东西也不是对象 
（3）Class类的对象表示：如 Class A{}//A类的实例对象如何表示
    A a = new A(); //a就表示A类的实例对象
//任何一个类都是Class类的实例对象，有三种表示形式
//第一种→实际在告诉我们任何一个类都有一个隐含的静态成员变量clas]]></description><category></category></item><item><title><![CDATA[异常笔记]]></title><link>https://blog.csdn.net/Xanthin/article/details/53323095</link><guid>https://blog.csdn.net/Xanthin/article/details/53323095</guid><author>Xanthin</author><pubDate>Thu, 24 Nov 2016 18:13:27 +0800</pubDate><description><![CDATA[一、异常处理的作用能够将异常提示给变成人员或者用户，使本来已经终端的程序能够继续运行或者推出，并且能保存用户当前的操作或者数据回滚，并能把占有的资源释放掉。二、Error与Exception的区别（1）都继承Throwable类 
（2）Error表示系统错误，如内存溢出、虚拟机错误（VirtualMachineError）、线程死锁（ThreadDeath），是系统或者硬件的错误 
（3）Exce]]></description><category></category></item><item><title><![CDATA[URL、URI和URN三者之间的区别]]></title><link>https://blog.csdn.net/Xanthin/article/details/52278147</link><guid>https://blog.csdn.net/Xanthin/article/details/52278147</guid><author>Xanthin</author><pubDate>Mon, 22 Aug 2016 16:42:12 +0800</pubDate><description><![CDATA[原文：“http://web.jobbole.com/83452/#article-comment”区别首先我们要弄清楚一件事：URL和URN都是URI的子集。换言之，URL和URN都是URI，但是URI不一定是URL或者URN。为了更好的理解这个概念，看下面这张图片。通过下面的例子（源自 Wikipedia），我们可以很好地理解URN 和 URL之间的区别。如果是一个人，我们会想到他的姓名和住址。]]></description><category></category></item><item><title><![CDATA[多线程笔记]]></title><link>https://blog.csdn.net/Xanthin/article/details/51833655</link><guid>https://blog.csdn.net/Xanthin/article/details/51833655</guid><author>Xanthin</author><pubDate>Tue, 05 Jul 2016 18:09:45 +0800</pubDate><description><![CDATA[一、程序、进程与线程的区别1.1、程序 
利用某种编程语言，结合某些开发工具开发出来的应用程式，没运行前是静态的。 
1.2、进程 
正在运行的程序，动态的，进程与进程间独立存在，数据独享。 
1.3、线程： 
进程在运行过程中的走向二、实现多线程2.1、实现Runnable接口public class A implements Runnable {
    @Override
    public]]></description><category></category></item></channel></rss>