<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[gogy的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/gogy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gogy]]></copyright><item><title><![CDATA[程序员的上帝视角（5）——失控]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/129435318</link><guid>https://blog.youkuaiyun.com/gogy/article/details/129435318</guid><author>gogy</author><pubDate>Fri, 10 Mar 2023 09:41:50 +0800</pubDate><description><![CDATA[不起眼的问题，将导致程序失控。从魔数、重载、公共权限看待程序失控。对程序，需要充满敬畏。]]></description><category></category></item><item><title><![CDATA[程序员的上帝视角（4）——视角]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/129374180</link><guid>https://blog.youkuaiyun.com/gogy/article/details/129374180</guid><author>gogy</author><pubDate>Tue, 07 Mar 2023 06:56:24 +0800</pubDate><description><![CDATA[系统设计者在设计时，需要综合考量各个角色视角所关注的东西。]]></description><category></category></item><item><title><![CDATA[程序员的上帝视角（3）-纯粹]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/129332140</link><guid>https://blog.youkuaiyun.com/gogy/article/details/129332140</guid><author>gogy</author><pubDate>Sat, 04 Mar 2023 13:47:38 +0800</pubDate><description><![CDATA[当我们进行逻辑编写时，无论是参数，还是调用其他方法的返回值，从“纯粹”的角度来看待它们，不带入任何业务场景。看待问题的角度和思考问题的思路，是否会有所不同呢？]]></description><category></category></item><item><title><![CDATA[程序员的上帝视角（2）——我所体悟的思维方式]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/129312650</link><guid>https://blog.youkuaiyun.com/gogy/article/details/129312650</guid><author>gogy</author><pubDate>Fri, 03 Mar 2023 09:44:56 +0800</pubDate><description><![CDATA[这正是心学所提倡的，我们需要“心外无物”。所有事物的本质，并不在事物之中，而在我们自己心里。我们必须用自己心来掌控知识。学习一门知识，并不是知道其原理，而是需要体会到这样的设计、思路到底体现了怎样的思想。]]></description><category></category></item><item><title><![CDATA[程序员的上帝视角（1）中国古典哲学与编程思考]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/129306400</link><guid>https://blog.youkuaiyun.com/gogy/article/details/129306400</guid><author>gogy</author><pubDate>Thu, 02 Mar 2023 19:32:44 +0800</pubDate><description><![CDATA[凡事有道。自古至今，人们从未放弃对于道的追求。古人追求的是天地万物运行的规律，得道之人，是为圣人。我们自然不敢与先贤相比，但是，也总免不了思考一个问题——程序之道在哪里？]]></description><category></category></item><item><title><![CDATA[漫谈Java（3-2） - 成员变量]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/89444393</link><guid>https://blog.youkuaiyun.com/gogy/article/details/89444393</guid><author>gogy</author><pubDate>Mon, 22 Apr 2019 06:52:26 +0800</pubDate><description><![CDATA[3.2.1属性的声明

属性是对象状态的描述。在Java中，一切都是从类开始，因此，属性也是在类中定义的。一个变量直接作为类的成员来定义，该变量就是成员变量，也就是属性。例如，

class CoffeeHouse {

int employeeCount;

}

在上例中，变量employeeCount直接定义在类CoffeeHouse之下，是作为类的成员出现的。因此，employeeCo...]]></description><category></category></item><item><title><![CDATA[漫谈Java（3-1） - 常量和变量]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/89427995</link><guid>https://blog.youkuaiyun.com/gogy/article/details/89427995</guid><author>gogy</author><pubDate>Sun, 21 Apr 2019 08:21:20 +0800</pubDate><description><![CDATA[对象具有自己的属性和行为。例如，咖啡屋中的每位员工，都有自己的属性信息（姓名、年龄、性别、职位等），每位员工都有自己应该具备的行为能力（煮咖啡、端咖啡、结账等）。对应于Java中，设计类时，每个类都应该有自己的属性（成员变量）和方法（成员方法）。这样才能保证创建出来的对象具有相应的属性和方法。



现实世界中存在着很多可以量化的事物：有些是固定不变的，例如，地球的赤道周长是40076千米、一年...]]></description><category></category></item><item><title><![CDATA[漫谈Java（2-4） - 杯、咖啡杯还是骨瓷咖啡杯——类的选型]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/89392265</link><guid>https://blog.youkuaiyun.com/gogy/article/details/89392265</guid><author>gogy</author><pubDate>Fri, 19 Apr 2019 06:40:44 +0800</pubDate><description><![CDATA[​到目前为止，我们讲述了如何创建一个类，以及如何根据类创建一个对象。类是Java程序的基础。类的创建，实际是程序员对所要模拟的对象的抽象。我们同样提到，根据抽象所采集的特性的不同，所分析出的类也是不同的。那么，在一个应用系统中，我们依据什么样的标准来抽象出类呢？本小节将利用咖啡杯选型的例子来进一步阐述类的选型过程。

对应于咖啡屋中的咖啡杯，我们可以尝试选择以下几种原型作为类：

1.选择“杯子”...]]></description><category></category></item><item><title><![CDATA[漫谈Java（2-3） - 创建对象]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/89392262</link><guid>https://blog.youkuaiyun.com/gogy/article/details/89392262</guid><author>gogy</author><pubDate>Fri, 19 Apr 2019 06:39:24 +0800</pubDate><description><![CDATA[​2.3.1虚位以待——声明对象

让我们设想这样一种场景，咖啡馆需要招聘一名新员工。在经过了一系列的财务预算、确定新员工的职责等流程之后，我们发布虚位以待的信息——诚聘一名新员工。这样，其他人就知道咖啡店需要一名员工。在Java中，当我们需要由建好的类产生一个对象，就需要向系统声明一个对象，告知系统我们现在需要一个对象。声明对象的语法如下：

Employee employee;

声明一个...]]></description><category></category></item><item><title><![CDATA[漫谈Java（2-2） - 类的概念]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/89392260</link><guid>https://blog.youkuaiyun.com/gogy/article/details/89392260</guid><author>gogy</author><pubDate>Fri, 19 Apr 2019 06:35:15 +0800</pubDate><description><![CDATA[​我们前面提到，Java中以面向对象的方式来模拟现实世界。那么，在Java中模拟对象，首先需要考虑的就是如何创建对象，也由此引发了类的概念的提出。



2.2.1对象构成的计算机世界——程序

计算机从诞生，就开始逐步应用到我们生活的各个方面。例如，它可以帮我们记录仓库库存、计算收支情况。甚至，我们可以在虚拟世界中交朋友、做生意。俨然计算机为我们构建一个新的世界。而计算机靠什么完成的？那就...]]></description><category></category></item><item><title><![CDATA[漫谈Java（2-1） - 类和对象]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/89392258</link><guid>https://blog.youkuaiyun.com/gogy/article/details/89392258</guid><author>gogy</author><pubDate>Fri, 19 Apr 2019 06:33:30 +0800</pubDate><description><![CDATA[2.1 一切皆对象

现实世界中，所有的事物都是以各种形态存在的。例如，咖啡屋中的桌子、椅子、咖啡杯、空气弥漫的烤咖啡豆的香味、轻缓的音乐、温馨的灯光。整个世界的运作都是由这些事物来实现的。

2.1.1 什么是对象

对象的定义方法方法有很多种。我们这里选取一个比较容易理解的定义。按照百度百科的定义，对象是指行动或思考时作为目标的事物。例如，当我们走进咖啡屋，所见到的每一样事物都可以看做对象...]]></description><category></category></item><item><title><![CDATA[漫谈Java（1） - 面向对象编程]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/89392249</link><guid>https://blog.youkuaiyun.com/gogy/article/details/89392249</guid><author>gogy</author><pubDate>Fri, 19 Apr 2019 06:27:34 +0800</pubDate><description><![CDATA[​   在编程语言五花八门的今天，各种编程的思想百花齐放，而最流行、生命力最强的，是面向对象编程。那么，为什么是面向对象编程呢？

    其实，这主要是由系统复杂度所决定的。当一个系统的代码量很小时，使用面相对象还是面向函数编程的模式，在维护成本上，几乎是没有太大区别的。但是，一旦系统的代码量很大时，你就会发现，用纯函数堆积起来的代码，在阅读和维护上兼职是一个灾难。

  ...]]></description><category></category></item><item><title><![CDATA[go和java - 从协程池和线程池的实现看权衡和妥协]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/89367631</link><guid>https://blog.youkuaiyun.com/gogy/article/details/89367631</guid><author>gogy</author><pubDate>Wed, 17 Apr 2019 23:39:02 +0800</pubDate><description><![CDATA[更多技术交流文章，请关注微信公众号【时代码农】





我们在Java和其他编程语言中，都可以看到线程池的概念。而Go中，没有线程，只有协程。协程与Java中的线程有一个很大的区别：

Java中的线程是一个实实在在的对象，可以获取，例如：Thread t = new Thread();

这也给我们一个印象，线程池持有一组Thread对象。

而Go中的协程，并不能持有，例如，我们经常这样使...]]></description><category></category></item><item><title><![CDATA[golang反射和java反射的不同]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/89344279</link><guid>https://blog.youkuaiyun.com/gogy/article/details/89344279</guid><author>gogy</author><pubDate>Tue, 16 Apr 2019 22:52:02 +0800</pubDate><description><![CDATA[更多技术交流文章，请关注微信公众号【时代码农】



​java中的反射，设计思路是，先类型，后值。意思是，无论如何，都是先找到属性和方法的描述，然后根据描述来获取属性的值、调用方法的执行。要进行这样的操作，入口都是由类的描述开始。也就是说，类似getClass().getField("fieldName")，来获得属性描述。通过getClass().getMethod("methodName")...]]></description><category></category></item><item><title><![CDATA[分布式，微服务，集群和异地多活]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/89344236</link><guid>https://blog.youkuaiyun.com/gogy/article/details/89344236</guid><author>gogy</author><pubDate>Tue, 16 Apr 2019 22:49:43 +0800</pubDate><description><![CDATA[​分布式的初衷是为了分隔和拆分子业务，所以分布式指的对象是应用服务器。每个应用服务器都可以部署单独的子业务。



一般分析好处，我们可以从下面几点进行考虑：



1.可用性。分布式部署，如果一个业务节点出现问题，不会影响其他业务节点，除非其他业务节点依赖了失败节点。

2.易扩展，客观上便于高性能。因为单独的子业务，更容易扩展部署。

3.易维护，升级部署时，只需要更新子业务本身的代码即...]]></description><category></category></item><item><title><![CDATA[一个用xsl实现排序和判别重复记录的难题－－所想到的。]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/1499445</link><guid>https://blog.youkuaiyun.com/gogy/article/details/1499445</guid><author>gogy</author><pubDate>Wed, 31 Jan 2007 22:54:00 +0800</pubDate><description><![CDATA[在优快云上无意中看到了这样一篇老帖 ]]></description><category></category></item><item><title><![CDATA[preceding轴的使用实例]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/1495606</link><guid>https://blog.youkuaiyun.com/gogy/article/details/1495606</guid><author>gogy</author><pubDate>Sat, 27 Jan 2007 15:51:00 +0800</pubDate><description><![CDATA[以前很讨厌轴这个概念，但最近却用它解决了几个问题，认识上也有了提高，记录一下。原XML文档：   Neo  20  amount using calculation 1    Neo  30  amount using calculation 2    Mark  40  amount using calculation 3    Neo  50  amount using calcula]]></description><category></category></item><item><title><![CDATA[struts框架学习过程中的问题。]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/1495598</link><guid>https://blog.youkuaiyun.com/gogy/article/details/1495598</guid><author>gogy</author><pubDate>Sat, 27 Jan 2007 15:38:00 +0800</pubDate><description><![CDATA[1,错误：java.lang.NullPointerException: Module null not found.错误原因，struts运行需要的.jar文件拷贝不足，应该把它们加入到classpath中。 ]]></description><category></category></item><item><title><![CDATA[理解postion()和value-of ]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/1493538</link><guid>https://blog.youkuaiyun.com/gogy/article/details/1493538</guid><author>gogy</author><pubDate>Thu, 25 Jan 2007 19:52:00 +0800</pubDate><description><![CDATA[到底position() 代表了什么呢？它是节点在源文档中的位置吗？position()是指正在处理的节点在节点集中的位置，而这里的节点集是指使用或的select属性所定义的临时结果树（姑且这样理解），所以position()返回的不是节点在源文档中的位置，而是它在临时结果树片段中的位置。      3                    zhang         ]]></description><category></category></item><item><title><![CDATA[spring框架学习笔记]]></title><link>https://blog.youkuaiyun.com/gogy/article/details/1488084</link><guid>https://blog.youkuaiyun.com/gogy/article/details/1488084</guid><author>gogy</author><pubDate>Fri, 19 Jan 2007 22:19:00 +0800</pubDate><description><![CDATA[今天没事，看看spring 的书，结果按照书的代码写了一下，发现了这样一个错误，由于初学，到网上去查错误原因，结果发现中文居然一个都没有记录这个错误的，当然也可能是我没找到，最后才算在一个国外的网站上看了问题的原因，现在把它记下来。错误提示：org.springframework.beans.factory.support.PropertiesBeanDefinationReader is]]></description><category></category></item></channel></rss>