use case diagram

用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的调用关系,用例图包含了用例和参与者,用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解。

用例是从系统外部可见的行为,是系统为某一个或几个参与者(Actor)提供的一段完整的服务。从原则上来讲,用例之间都是独立、并列的,它们之间并不存在着包含从属关系。但是为了体现一些用例之间的业务关系,提高可维护性和一致性,用例之间可以抽象出包含(include)、扩展(extend)和泛(generalization)几种关系。

共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。

1、包含(include)

 

包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。基用例控制与包含用例的关系,以及被包含用例的事件流是否会插入到基用例的事件流中。基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。

包含关系对典型的应用就是复用,也就是定义中说的情景。但是有时当某用例的事件流过于复杂时,为了简化用例的描述,我们也可以把某一段事件流抽象成为一个被包含的用例;相反,用例划分太细时,也可以抽象出一个基用例,来包含这些细颗粒的用例。这种情况类似于在过程设计语言中,将程序的某一段算法封装成一个子过程,然后再从主程序中调用这一子过程。

例如:业务中,总是存在着维护某某信息的功能,如果将它作为一个用例,那新建、编辑以及修改都要在用例详述中描述,过于复杂;如果分成新建用例、编辑用例和删除用例,则划分太细。这时包含关系可以用来理清关系。

aa

2、扩展(extend)

扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。

对于一个扩展用例,可以在基用例上有几个扩展点。

例如,系统中允许用户对查询的结果进行导出、打印。对于查询而言,能不能导出、打印查询都是一样的,导出、打印是不可见的。导入、打印和查询相对独立,而且为查询添加了新行为。因此可以采用扩展关系来描述:

bb

4、泛化(generalization)

 

泛化关系:子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。在实际应用中很少使用泛化关系,子用例中的特殊行为都可以作为父用例中的备选流存在。

例如,业务中可能存在许多需要部门领导审批的事情,但是领导审批的流程是很相似的,这时可以做成泛化关系表示:cc

上面是我参考的一篇文章,觉得将三种关系的区别讲得很清晰,在此基础上结合自己的系统,对项目(在线购物系统)的用例做了整体的描绘。

*****************************************************************

(1)系统整体用例图

11

(商品用例图)

22

(购买信息用例)

test

(用户资料用例)

44

按照先整体用例,后子系统用例来进行描绘的,欢迎大家提出好的建议!
转:UML中扩展和泛化的区别

泛化表示类似于OO术语“继承”或“多态”。UML中的Use Case泛化过程是将不同Use Case之间的可合并部分抽象成独立的父Use Case,并将不可合并部分单独成各自的子Use Case;包含以及扩展过程与泛化过程类似,但三者对用例关系的优化侧重点是不同的。如下:
●泛化侧重表示子用例间的互斥性;
●包含侧重表示被包含用例对Actor提供服务的间接性;
●扩展侧重表示扩展用例的触发不定性;详述如下:
既然用例是系统提供服务的UML表述,那么服务这个过程在所有用例场景中是必然发生的,但发生按照发生条件可分为如下两种情况:
⒈无条件发生:肯定发生的;
⒉有条件发生:未必发生,发生与否取决于系统状态;

因此,针对用例的三种关系结合系统状态考虑,泛化与包含用例属于无条件发生的用例,而扩展属于有条件发生的用例。进一步,用例的存在是为Actor提供服务,但用例提供服务的方式可分为间接和直接两种,依据于此,泛化中的子用例提供的是直接服务,而包含中的被包含用例提供的是间接服务。同样,扩展用例提供的也是直接服务,但扩展用例的发生是有条件的。

另外一点需要提及的是:泛化中的子用例和扩展中的扩展用例均可以作为基本用例事件的备选择流而存在。

 

转载:如有侵权,请联系本人删除,邮箱:461488042@qq.com

EA 教程

一、Enterprise Architect简介

Enterprise Architect是一个对于软件系统开发有着极好支持的CASE软件(Computer Aided Software Engineering)。EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过程。在需求分析阶段,系统分析与设计阶段,系统开发及部署等方面有着强大的支持,同时加上对10种编程语言的正反向工程,项目管理,文档生成,数据建模等方面。可以让系统开发中各个角色都获得最好的开发效率。

二、创建新项目

安装好了EA汉化版后,启动软件。点击“创建新的项目”,打开创建新项目对话框。


【图1】

这里可以选择各种的初始的模板包。


【图2】

我们选择了其中几个,然后确定打开了项目浏览器。我们的项目将从这里开始了。


【图3】

三、EA软件配置

在使用软件之前,我们先来对它进行配置。打开“工具”–>“选项”。

【图4】

常规配置中,比较重要的是作者这项。因为在EA项目的团队协作中,作者是每个人的身份标识。

在代码工程中,最好把文件编码设置成UTF8或者是GB中文。

其他方面的配置,因为都是中文的,也比较容易理解。有些不明的地方,可以多琢磨。

另外对于最下面的十种编程语言,可以根据自己的需要,进行一些配置。比如PHP,可以配置PHP4或者是PHP5,那么生成的代码也是有些不同的。还可以隐藏其他没有用到的语言。

四、用例图,类图的使用

用例图(use case)

用例图是我们做系统分析的通常第一步,是非常重要的。毕竟大部分的开发流程,都将需求分析作为首要步骤,也是必要步骤。将系统需求化作图型表达出来。首先是在项目浏览器中,右键“添加”–>“新建图表”。

【图5】

然后可以加入一些角色和用例,在每次在工具箱里面拉出一个元件,都将打开这个元件的设置对话框,在对话框内填入元件的名称等信息。现在我们是表达一个用户注册和登录的场景:

【图6】

加入关联,用例图中最常用的关联是“使用use”,当然也经常会用到“包含include”“扩展extend”。这两者的区别是“包含”是主用例没有包含其他的辅助用例就不能独立执行,但是主用例可以在没有“扩展”其他辅助用例的情况也可以执行。比如说,注册是“包含”了检查验证码,但是不一定会“扩展”发送通知邮件这个用例。

角色是用例图的行为基础。虽然角色可以是某种职位的人,或是数据库,或是外部系统交互接口,但是每个用例图,都是以角色为开始的。角色可以有类属关系。比如说注册用户同时也是网站访问者,注册用户可以做一切访问者可以做的事情,但是注册用户还拥有一些网站访问者没有涉及的功能,比如登录发文章之类。

【图7】

类图(Class)

类图是代码工程的基础,同时也是系统设计部分的主体工作。类图主要体现了系统详细的实现架构。首先我们来制作一个实现用户注册功能的注册业务类。

【图7】

在生成类后,我们可以加入一些变量(在类元件上右键“变量”),变量主要将保存类本身的一些数据,如同人的性别,年龄等数据特征一样。比如我们注册类,也有数据链接的变量(它需要知道自己是和哪个数据库打交道的),还可能有着每IP单日注册数量限制的数据变量等等。

【图8】

类还需要加入方法(在类元件上右键“方法”),比如说注册类中,需要检查输入的验证码,需要进行数据操作,需要检查单日注册数量等等。在类的方法里面,我们还可以设置每个方法的参数,参数类型,还有参数的备注,这将在代码工程内,直接作为参数和方法的注释生成到代码文件内。

【图9】

各个类之间,可能存在着一些关系,那么我们使用关联来表达这些关系。常用的有继承关系(Generalize,或者叫派生类)。例如注册的时候,我们可能有些特殊的注册方式,比如接收了VIP卡号的人员注册。VIP注册比普通注册多了一些步骤,比如验证VIP卡号有效性等。这个VIP注册类,就继承于注册类,拥有了全部普通注册的功能,但是又有一些自己特有的功能,这样就能体现了代码的可重用性。同时在代码生成的时候,会加上“extends”这个关键字来标识他们的关系。

【图10】

五、其他图形的使用

【图11】

对象图(Object),这是类图的一种补充,主要是演示了系统中各个类,在不同的场景中,实例化之后所做的不同事情。

交互图(interaction),协作图(communication)和时序图(Timing),他们都是体现了系统中一些实体之间的互相交互的行为。协作图是侧重与表达实体之间的协作交互,在新版的UML中,协作图也叫通讯图,更能体现了实体之间是以通讯的方式来进行协作的原理。而时序图是强调了各个实体件进行交互的前后顺序。例如发送注册成功的提示邮件,那么是发生在注册类检验输入数据之后,而不能是之前。

另外,还有一些其他的图形,比如状态图(State),部署图(Deployment),组件图(component),活动图(Activity),这些请参考相关文档。同时EA支持的图形有非常的多,其中思维图(表达和辅助了思维的思考过程),WEB模型图(表现了网站上部署的模型结构)是最近几个版本中才出现的。

六、数据建模

在数据模型图(Data Modeling)中,EA支持13种不同型号的数据库建模,可直接生成建表SQL语句,同时也可以通过ODBC,导入已存在的数据表结构。

【图12】

下例我们建立一个学生宿舍人员组成的数据表,表类型使用的是MySQL。首先是建立了一个数据表元件,然后设置它的属性。

【图13】

加入字段(表元件上右键“变量”),设置字段的数据类型,长度,设成主键等。这里可以使用中文作为字段名,在“别名”处才写上英文字段名,在生成SQL的时候,选择“使用可用的别名”就可以生成英文名称的字段名。

【图14】

生成建表SQL,点击数据模型的上级包,然后选择“项目”–》“数据建模”–》“生成SQL代码”,打开生成SQL的对话框。

【图15】

设置好了后,点击生成,就可以生成了一个完整的SQL建表语句了。


【图16】

七、代码工程

代码工程就是将已经画好的类图,使用EA来生成相应的代码结构,之所以说是代码结构,是因为生成的代码中,仅有初始的类结构和一些预设的值,类方法内部的代码还是需要手动去写的。另外,如果你在类的设置里,或者是变量,方法还有方法的参数里,加上了备注,那么,代码工具将会帮助你把这些备注全部生成工整的代码注释。

使用之前的一个PHP类,选中右键“生成代码”。然后弹出生成代码的对话框。

【图17】

设置后,点击生成就可以生成了代码结构了。

【图18】

其他语言的代码生成过程,也是大同小异的。代码工程(正向工程)产生的代码格式,可以在“设置”–>“代码工程模板”里面进行自定义的模板修改。

八、反向工程

反向工程是将原有的类库代码,使用EA进入导入类结构,直接生成类图。这在系统重构,或者是基于旧项目类库制作新项目的时候,比较有用。

在项目浏览器,你要导入反向工程类图的位置,右键“代码工程”–> “导入源文件目录”,打开反向工程对话框:

【图19】

设置好后,点击导入。一小段时间,就能将一个类库导入了。以下演示的是导入SpeedPHP框架1.5版本的类图。

【图20】

九、项目管理

在EA中,不仅能对整个软件开发生命周期的支持,还提供了项目管理,例如人员的管理,进度管理,风险管理等。

菜单“查看”–>“项目管理”

【图21】

这里你可以分别管理“(人力)资源”,“工作”,“风险”,“度量”等几个方面。

十、文档生成

EA可以生成非常多种类型的文档,以方便针对不同情况和不同阅读对象,生成不同侧重的文档。还可以有RTF格式和HTML格式的选择。

在项目浏览器中,选择一个模型节点。然后右键“文档”–>“RTF文档”,打开生成文档对话框。

【图22】

这里可以生成多种类型的文档。点击“生成”。然后就会生成了一个RTF文件。

【图23】

默认生成的文档,里面有大部分的英文。当然,你可以将他们在RTF文件中改写成中文。另外还可以使用生成文档对话框中的“词语翻译”,来进行对应的翻译,再生成新的翻译后的文档。同时你也可以直接修改EA中的文档模板,这样也可以产生自定义的文档。

商品SKU选择实现

在客户购买商品的时候,若这个商品存在多种”规格”(SKU),就需要客户手动选择自己想要的哪款。当时并不是每种我们都有库存, 所有就需要提供提供一个筛选功能,当客户选中一个条件的时候,需要设置其他条件中的一些值不可选。 这样就能保证不论客户怎么选择,到最后的选择都是有库存的”规格”(SKU)

开始之前先定义几种术语

属性集: 一个商品全部属性的集合

属性: 商品中的 尺码 颜色 就是两个属性

属性值: 尺码、颜色可有多个值 比如 衣服的尺码:S M XL 衣服的颜色:黑色 白色 蓝色 其中 XL 黑色就是属性值

SKU: Stock Keeping Uint(库存量单位) 由属性值组合而成(这些属性值属于不通的属性)如 一件衣服 (XL,白色) 它能确定商品的 唯一性 ,同一款式的衣服 可能有不通的颜色和大小 ,把颜色大小限制住,就能确定这件‘商品’了。

为了简化 我们虚拟出一个的商品, 下面是它的属性集和SKU:

为选择之前是这种显示状态

attr1-attr4中有 2x4x3x2=42种组合,但是有库存的只有上面6种组合

我们要做的就是,在选择某一个属性的时候,把其他为选择的属性中的一些值设置为block(锁定状态) 因为它们和已选属性的组合是没有库存的(有库存的只有上面6种)

比如:
选择 10 和 21后, 有库存的SKU(组合) 只有

attr3中的31 32 以及attr4中的 41 就要设置为block

总结1:在所有库存组合(sku_list)中筛选出包含选中属性值(10,21)组合(10|21|30|40)未选的属性(attr3、attr4)中的所有属性值若不在这个组合中就设置为block

还有一个问题,在已选属性(attr1,attr2)中 , 我可以把21换成2022; 因为 10|21 10|22 也是一种可行组合(有库存),10|23不可行,所以需要2022也可选,23设置为block

或者21不变,修改attr1中的属性值 11|21 不可行,11设置block。

总结2: 已选属性 (attr1,attr2) 中任意一个属性(attr1)的属性值(10,11), 若不能和其他属性(attr2)中的选中属性值(21) 组合成有效(有库存)组合, 则设置该属性(11)为block

好了,接下来就是根据上面总结的两条,来进行程序的实现 点击 商品SKU选择DEMO 可查看demo

 

提高php编程效率的53个小知识点

转载请注明来源:提高php编程效率的53个小知识点

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中 搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正 的函数,故把函数加上了双引号)。
1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
2、$row[’id’] 的速度是$row[id]的7倍。
3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。
4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。
5、注销那些不用的变量尤其是大数组,以便释放内存。
6、尽量避免使用__get,__set,__autoload。
7、require_once()代价昂贵。
8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。
9、如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。
10、函数代替正则表达式完成相同功能。
11、str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。
12、如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。
13、使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。
14、用@屏蔽错误消息的做法非常低效,极其低效。
15、打开apache的mod_deflate模块,可以提高网页的浏览速度。
16、数据库连接当使用完毕时应关掉,不要用长连接。
17、错误消息代价昂贵。
18、在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。
19、递增一个全局变量要比递增一个局部变量慢2倍。
20、递增一个对象属性(如:$this->prop++)要比递增一个局部变量慢3倍。
21、递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。
22、仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。
23、方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了10个方法,但性能上没有变化。
24、派生类中的方法运行起来要快于在基类中定义的同样的方法。
25、调用带有一个参数的空函数,其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。
26、Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。
27、除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能,以免除编译开销。
28、尽量做缓存,可使用memcached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码 (OP code)的缓存很有用,使得脚本不必为每个请求做重新编译。
29、当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset() 技巧加速执行你的代码。
(举例如下)
if (strlen($foo) < 5) { echo “Foo is too short”$$ }
(与下面的技巧做比较)
if (!isset($foo{5})) { echo “Foo is too short”$$ }
调用isset()恰巧比strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。也就是说,实际上在检验字符串长度的顶层代码中你没有花太多开销。
34、当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的C或Java 代码并指望它们能立即变快,没用的。++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。后置递增实际上会产生一个临时变 量,这个临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种,正如Zend的PHP优化器所作的那样。牢记这个优化处理不失为一个好 主意,因为并不是所有的指令优化器都会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提供商(ISPs)和服务器。
35、并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。
36、并非要用类实现所有的数据结构,数组也很有用。
37、不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?
38、当你需要时,你总能把代码分解成方法。
39、尽量采用大量的PHP内置函数。
40、如果在代码中存在大量耗时的函数,你可以考虑用C扩展的方式实现它们。
41、评估检验(profile)你的代码。检验器会告诉你,代码的哪些部分消耗了多少时间。Xdebug调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。
42、mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%。
43、在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用 file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题;
44、尽量的少进行文件操作,虽然PHP的文件操作效率也不低的;
45、优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作(在update上,我被恶批过);
46、尽可能的使用PHP内部函数(但是我却为了找个PHP里面不存在的函数,浪费了本可以写出一个自定义函数的时间,经验问题啊!);
47、循环内部不要声明变量,尤其是大变量:对象(这好像不只是PHP里面要注意的问题吧?);
48、多维数组尽量不要循环嵌套赋值;
49、在可以用PHP内部字符串操作函数的情况下,不要用正则表达式;
50、foreach效率更高,尽量用foreach代替while和for循环;
51、用单引号替代双引号引用字符串;
52、“用i+=1代替i=i+1。符合c/c++的习惯,效率还高”;
53、对global变量,应该用完就unset()掉;

小和尚卖石头

640

一天,一个小和尚跑过来,请教禅师:“师父,我人生最大的价值是什么呢?”禅师说:“你到后花园搬一块大石头,拿到菜市场上去卖,假如有人问价,你不要讲话,只伸出两个指头;假如他跟你还价,你不要卖,抱回来,师父告诉你,你人生最大的价值是什么。”

第二天一大早,小和尚抱块大石头,到菜市场上去卖。菜市场上人来人往,人们很好奇,一家庭主妇走了过来,问:“石头多少钱卖呀?”和尚伸出了两个指头,主妇说:“2元钱?”和尚摇摇头,家庭主妇说:“那么是20元?好吧,好吧!我刚好拿回去压酸菜。”小和尚听到:“我的妈呀,一文不值的石头居然有人出20元钱来买!我们山上有的是呢!”

于是,小和尚没有卖,乐呵呵地去见师父:“师父,今天有一个家庭主妇愿意出20元钱,买我的石头。师父,您现在可以告诉我,我人生最大的价值是什么了吗?”禅师说:“嗯,不急,你明天一早,再把这块石头拿到博物馆去,假如有人问价,你依然伸出两个指头;如果他还价,你不要卖,再抱回来,我们再谈。”

第二天早上,在博物馆里,一群好奇的人围观,窃窃私语:“一块普通的石头,有什么价值摆在博物馆里呢?”“既然这块石头摆在博物馆里,那一定有它的价值,只是我们还不知道而已。”这时,有一个人从人群中窜出来,冲着小和尚大声说:“小和尚,你这块石头多少钱卖啊?”小和尚没出声,伸出两个指头,那个人说:“200元?”小和尚摇了摇头,那个人说:“2000元就2000元吧,刚好我要用它雕刻一尊神像。”小和尚听到这里,倒退了一步,非常惊讶!

他依然遵照师傅的嘱托,把这块石头抱回了山上,去见师傅:“师傅,今天有人要出2000元买我这块石头,这回您总要告诉我,我人生最大的价值是什么了吧?”禅师哈哈大笑说:“你明天再把这块石头拿到古董店去卖,照例有人还价,你就把它抱回来。这一次,师傅一定告诉你,你人生最大的价值是什么。”

第三天一早,小和尚又抱着那块大石头来到了古董店,依然有一些人围观,有一些人谈论:“这是什么石头啊?在哪儿出土的呢?是哪个朝代的呀?是做什么用的呢?”终于有一个人过来问价:“小和尚,你这块石头多少钱卖啊?”小和尚依然不声不语,伸出了两个指头。“20000元?”小和尚睁大眼睛,张大嘴巴,惊讶地大叫一声:“啊?!”那位客人以为自己出价太低,气坏了小和尚,立刻纠正说:“不!不!不!我说错了,我是要给你200000元!” “200000元!”小和尚听到这里,立刻抱起石头,飞奔回山上去见师父,气喘吁吁地说:“师父,师父,这下我们可发达了,今天的施主出价200000元买我们的石头!现在您总可以告诉我,我人生最大的价值是什么了吧?”

禅师摸摸小和尚的头,慈爱地说:“孩子啊,你人生最大的价值就好像这块石头,如果你把自己摆在菜市场上,你就只值20元钱;如果你把自己摆在博物馆里,你就值2000元;如果你把自己摆在古董店里,你值200000元!平台不同,定位不同,人生的价值就会截然不同!”

这个故事是否启发了你对自己人生的思考?你将如何定位自己的人生呢?你准备把自己摆在怎样的人生拍卖场去拍卖呢?你要为自己寻找一个怎样的人生舞台呢?

不怕别人看不起你,就怕你自己看不起自己。谁说你没有价值?除非你把自己当作破石头放在烂泥中,没有人能够给你的人生下任何的定义。你选择怎样的道路,将决定你拥有怎样的人生。

为什么一个老板再难,也不会轻言放弃,而一个员工做得不顺就想逃走,为什么一对夫妻再吵再大矛盾,也不会轻易离婚,而一对情侣常为一些很小的事就分开了。说到底,你在一件事,一段关系上的投入多少,决定你能承受多大的压力,能取得多大的成功,能坚守多长时间。 冯仑说,伟大都是熬出来的。为什么用熬,因为普通人承受不了的委屈你得承受,普通人需要别人理解安慰鼓励,但你没有,普通人用对抗消极指责来发泄情绪,但你必须看到爱和光,在任何事情上学会转化消化,普通人需要一个肩膀在脆弱的时候靠一靠,而你就是别人依靠的肩膀。 孝庄对康熙说:孙儿,大清国最大的危机不是外面的千军万马,最大的危难,在你自己的内心。

弟子问:师父您有时候打人骂人,有时又对人又彬彬有礼,这里面有什么玄机吗?师父说:对待上等人直指人心,可打可骂,以真面目待他;对待中等人最多隐喻他,要讲分寸,他受不了打骂;对待下等人要面带微笑,双手合十,他很脆弱、心眼小,只配用世俗的礼节对他!你受得了何种委屈,决定你能成为何种人。

一个不会游泳的人,老换游泳池是不能解决问题的;

一个不会做事的人,老换工作是解决不了自己的能力的;

一个不懂经营爱情的人,老换男女朋友是解决不了问题的;

一个不懂经营家庭的人,怎么换爱人都解决不了问题;

一个不学习的老板,绝对不会持续的成功。

我是一切的根源,要想改变一切,首先要改变自己!学习是改变自己的根本。其实,你爱的是你自己;你喜欢的亦是你自己。你爱的、你恨的,都是你自己。你变了,一切就都变了。

你的世界是由你创造出来的;

你的一切都是你创造出来的;

你是阳光,你的世界充满阳光;

你是爱,你就生活在爱的氛围里;

你是快乐,你就是在笑声里。

同样的,你每天抱怨、挑剔、指责、怨恨,你就生活在地狱里;一念到天堂,一念下地狱。你心在哪,成就就在哪!

为什么你的公司被干掉了?

哲学界George Santayana曾经说过,“那些不懂得从过去学习经验的人注定要在同样的石头上摔第二次。”创业是一个不断试错的过程,失败则是一个排除的过程。在浩浩荡荡的创业大潮中,失败者远比成功者更多,总结前人之过,对于创业者来说,也许更有用。

2015年,中国每分钟诞生8家公司,平均每天新登记注册的企业达到1.16万户。然而,这些企业的平均寿命却不足3年,中国创业企业的失败率为80%左右,每年新创办的企业中有50%会在半年内倒闭。

都说创业改变命运,可是你看,如果方法不对,不要说改变了,可能连”命”都保不住!

致命方法一:招聘员工,”能力”放首位。

当你在积极为企业选拔有能力的员工时,成功的创业者早已懂得招聘价值认同度高的员工。工作能力也许可以提高工作效率,而员工对企业价值的共识才能推动企业源源不断的向前发展。

致命方法二:低估了创业的艰难

当你单纯的认为创业有两条路(成功的路与失败的路)可以走时,成功的创业者早就知道了创业没有所谓的顺境,成功没有捷径可言,做好了完全失败的准备。

致命方法三:固步自封

当你紧紧抓着目前的赢利点沾沾自喜,舍不得放手时,成功的创业者早已另辟蹊径,尝试起新鲜的事物,获取更大的盈利空间。

致命方法四:弱者心态

当你为缺钱苦不堪言,有了打算放弃创业的念头时,成功的创业者早就树立了”没钱更要创业”的心态。创业,亦是一场心态的比拼。

致命方法五:乐忠于融资

当你费尽心思,想要拿到尽量多的融资时,成功的创业者早就想尽办法,让项目变得具有价值,有价值的项目自然可以赢得市场。

致命方法六:脑子里只想着赢

当你把心思全部放在如何打败竞争对手上时,成功的创业者已经开始考虑公司是否具有垄断项目,企业是否可以独特长久的存在。当你把目标致力于我要变得更强时,成功的创业者思考的不仅是变强还有企业的吸引力、知名度等问题。

致命方法七:眼光狭隘

当你在思考如何吸引优秀人才时,成功的创业者已经在培养人才!当你在思考公司如好更好的发展时,成功的创业者已经在思考企业应该怎样存在!当你在苦苦寻觅最厉害的管理者时,成功的创业者已经不再刻意管理,而是让管理归于简单。当你还在思考未来如何发展时,成功的创业者已经开始调整发展战略,不思考未来,而是思考未来需要怎样的企业。

致命方法八:只搞老一套

当你在为产品营销寻觅推广高手时,成功的创业者已经在改善产品,使其更具吸引力。当你还在用口号、奖励、活动来激励员工时,成功的创业者已经在靠企业文化、企业格调来吸引员工。当你还在死守着”资金”、”人脉”、”市场”、”竞争力”这些元素时,成功的创业者已经开始探讨企业价值。当你还在乐此不疲的做热门领域时,成功的创业者已经成功开辟了小而新的领域,不走寻常道。

致命方法九:没有主心骨

当你已被投资人套牢,被他们牵着鼻子走时,成功的创业者早已明确了目标,凡事自己拿主意。当你还在模棱两可,无法对公司进行清晰定位时,成功的创业者早就有了明确的定位,永远知道下一步怎么走。

致命方法十:过于追求完美

当你事无巨细都想尽善尽美时,成功的创业者早就成功锁定目标,从用户角度设计产品,制定销售策略,把力放在一处使。

致命方法十一:盲目创新

当你大胆尝试,进行颠覆式创新时,成功的创业者早就懂得适度改变才是最好的创新,完全颠覆,只能是一次没有结果的冒险。

致命方法十二:小心翼翼

当你还在谨慎小心,担心犯错,不敢迈出步子时,成功的创业者早就懂得了稳中求变。变则通,不变只能等死。

我知道,大多数人都喜欢讨论成功,而极少数愿意谈及失败。就像是野兽总是不想将伤口暴露在外面。然而,探讨失败的意义,可能远远大于成功。因为只有面对挫折,总结教训,企业才能往前走!

来源:商界必读