如鹏网 大学生计算机学习社区

CowNew开源团队

http://www.cownew.com 邮件请联系 about521 at 163.com

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  363 随笔 :: 2 文章 :: 808 评论 :: 0 Trackbacks

#

作者:Phillip J. Eby.
翻译:ShiningRay @ NirvanaStudio
原文地址:[[http://dirtsimple.org/2004/12/python-is-not-java.html][1]][1]

我最近正在看一个基于wxPython的GUI应用程序,大概45.5KLOC的样子,但我没有计算它用到的库的大小(如Twisted)。代码是由那些对Python相对生疏的Java的开发者写的,所以程序有很严重的性能问题(如三十秒的启动时间)。我在检查代码的时候发现他们写了很多对Java有意义但是对Python却很恐怖的东西。并不是因为“Python比Java慢”,而是因为在Python中有更方便的方法去完成同样的目标,甚至在Java中不可能的事情。

所以,可悲的事就是这些可怜人事倍功半,产生了很多很多不需要写的代码,从而比相应合乎Python习惯的写法慢得多得多。我们来看一些例子:

* 在Java中一个静态的方法(static)不能翻译成一个Python的类方法(classmethod)。哦,当然,多多少少他最终产生类似的效果,但类方法的目的实际上是做了一些通常在Java中不可能的事(如继承一个非默认的构造函数)。Java静态方法的习惯翻译通常是一个模块级函数,而不是一个类方法或静态方法(staticmetho)。(同时静态封闭(final)字段应该翻译成模块级常量。)

这并不是一个性能上的问题,但是一个Python程序员要用像这些类似Java习惯的代码的话,可能就会被在该输入Foo.someFunction时却要输入Foo.Foo.someMethod这种情况给惹毛了。但是请注意:调用一个类方法将会比调用一个静态方法和函数要多一部分额外的内存。

啊,那些Foo.Bar.Baz也不是省油的。在Java中,这些点分割的名称是由编译器去查找的,所以运行时根本无所谓你有多少点。在Python中,每次运行时都要查找,所以每个点都要计算在内。(Python中一定要记住这点,“平铺比嵌套好”,尽管比起性能,他和“可读性”和“简单就是美”更靠近。)

* 要用switch语句?Python翻译将是一个哈希表,不是一堆if-then语句。用一堆if-then在Java中也不是switch语句,如果有字符串参与了呢?他其实是一个哈希表。CPython字典实现用了性能最佳??在我们宇宙中目前所知道的?的哈希表的实现之一。你自己所写的代码也不会比这个再好了,除非你是Guido、Tim Peters和Raymond Hettinger的关门弟子。

* XML不是答案。它也不是一个问题。要在正则表达式上解释Jamie Zawinski,“一些人,当遇到一个问题的时候,就想‘我知道,我要用XML’那这个时候,他们就有两个问题了。”

和Java比这个一个不同的情况,因为比起Java代码,XML是轻巧而且有弹性的。但比起Python的代码来,XML就是一个船锚,一个绊脚石。在Python中,XML是用来做交换,而不是你的核心功能,因为你不需要这么做。在Java中,XML可能是你的大救星因为他让你实现了特定领域的语言并“不通过编码”提高了你的应用程序的适应性。在Java中,避免编码是一个很大的优势,因为编码意味着重新编译。但在Python中,更常见的是,写代码比写XML更方便简单。同时Python处理代码要远远比处理XML快。(不仅仅是这个,你必须书XML处理代码,同时Python自身就已经为你准备好了。)

如果你是一个Java程序员,对于你是否要在你的Python核心应用中使用XML作为一部分,不要相信你的本能。如果你不是因为信息交互的原因去实现一个已经存在的XML标准或是建立某种导入、导出格式或者建立某种XML编辑器或处理工具,那么就不要这么做。一次也别。甚至连想都不要想。现在,扔掉那个XML模式把你的手解放吧!如果你的应用程序或者平台要被Python开发者使用,他们只会感谢你不要在他们的工作量中添加使用XML的负担。

(这里唯一的例外是如果你的受众的的确确,确确实实需要XML,出于某种奇怪的理由。像,他们拒绝学习Python并只对你使用了XML而付钱给你,或者你打算给他们一个编辑XML的GUI,同时这个写XML的GUI呢是另一个人写的,同时你得到免费使用的权利。还有一些很少见的架构上的原因需要用到XML。相信我,他们不会出现在你的程序中。如果有疑问,对一个资深的Python开发员解释你的用例。或者,如果你脸皮厚的话,试试向一个Lisp程序解释你的程序为什么要用XML!)

* Getter和Setter是坏蛋!坏蛋!魔鬼! Python对象不是Java Bean。不要写什么getter和setter,然后还把它们包装在“属性”里面。它直到你能证明你需要比一个简单访问复杂一点的功能时才有意义,否则,不要写getter和setter。它们是CPU时间的浪费,更要紧的是,它们还是程序员宝贵时间的极大浪费。不仅仅对于写代码和测试的人,对于那些要阅读和理解它们的人也是。

在Java中,你必须使用getter和setter因为公共字段不允许你以后改变想法再去使用getter和setter。在Python中,这样做很傻,因为你可以以一个普通特性开始并可以在任何时间改变你的想法,而不用影响到这个类的任何客户。所以不要写getter和setter。

* 代码重复在Java中常常是一个不得不要的魔鬼,你必须经常一遍一遍写同一个方法而只有一点点的变化(通常是因为静态类型约束)。在Python中这样做是没有必要的也是不值得的(除了极少数一些特定的场合需要内联一些要求性能的函数)。如果你发现自己一遍一遍在写同样的代码而且变化很少,你就需要去学一下闭包。他们并不是真的很可怕。

这就是你要做的。你写了一个包含了函数的函数。这里内部的函数就是你要一遍遍写的函数的模版,但是在里面加入了针对不同情况的函数要使用变量。外部的函数需要刚刚提高的那种变量作为参数,并且将内部的函数作为结果返回。然后,每次你要写另一种略微不同的函数的时候,你只要调用这个外部的函数,并且把返回值赋给你要让“重复”函数出现的名字。现在,如果你需要改变这个工作方式,你只要改变一个地方:这个模版。

在我所看过的应用程序/平台中,只有一个很微不足道的程序使用了这个技术之后可以去掉数百行重复代码。事实上,自从开发者使用了特别的样板文件来为这平台开发插件,这会节省很多很多第三方开发人员的代码,同时也使那些程序员要学习的东西简化了。

这只是Java->Python思维方式转变的冰山一角而已,现在我可以让他转变成正确的而不用钻研这个程序的细节。本质上,如果你曾经用过一段时间Java,而且对Python比较陌生,不要太相信自己的本能。你的本能已经为Java调节,而不是Python。向后退一步,最重要的,不要写这么多代码了。

要这样做,让自己觉得更加需要Python。假装好像Python是可以做任何你想做的魔棒,却让你无须动一个手指。问一下,“Python是怎样解决我的问题的?”还有“Python语言的哪个特点和我的问题最相似?”你绝对会惊讶于你需要的东西其实已经有了某种固定形式。事实上,这种现象实在是太普遍了,甚至在很有经验的Python程序员中也会出现,以至于Python社区中给这种现象起了个名字。我们称之为“GUIDO的时间机器”(GUIDO是美语中太空飞行工程师的意思),因为有时候看上去得到我们所需要的东西好像只有他知道的一种方法,但当我们自己知道了就不一样了。

所以,如果你不能感到你在使用Python时至少比用Java要多出10倍的生产力,!(同时如果你还怀念你的Java IDE,考虑一下这种可能性:因为你写的Python程序比他所需要的要复杂得多)


附录:(翻译自此篇文章的评论)

确实,哈希表==字典。举个最简单的例子,从Python标准库中检出“pickle”和“copy”模块,这两个模块会从字典中查找类型并调用相应的函数。另一个有些诡异的例子是范型函数,我已经在最近的Blog中写了一下。

关于闭包的例子,我这里给出一个很笨的资历。假设你要写很多这样的函数:

def addOne(x): return x+1
def addTwo(x): return x+2

然后你可以这样写:

def makeAdder(addend):
... def add_it(x): return x+addend
... return add_it

并且这样使用:

addOne = makeAdder(1)
addTwo = makeAdder(2)

这样就可以等同于原来的定义了。

[1]: [http://dirtsimple.org/2004/12/python-is-not-java.html][2]
[1]: http://dirtsimple.org/2004/12/python-is-not-java.html][1]
[2]: http://dirtsimple.org/2004/12/python-is-not-java.html

posted @ 2007-03-02 12:29 CowNew开源团队 阅读(368) | 评论 (0)编辑 收藏

来到美国已经有一段时间了。我极其后悔当初的选择。一直都被西方媒体所蒙蔽欺骗,让我错误地以为美国是一个科技发达,工业成熟的现代化国家。怀着学习美国先进科技报效祖国的豪情,我翻山越岭来到了这个“强大”的国度。可是结果让我大失所望!我才发现我居然一直被蒙在鼓里这么多年!
  
  ------美国真的是个还未经开发的大农村!
  
   在中学时,老师们就教过工业越发展,环境就会遭到破坏。比如咱们的工业城市沈阳,到处都是大烟囱,到处都是大工厂。街道灰尘比较多。这都是工业化的象征啊!中国产品已经占领了美国市场。在美国到处都可见“中国制造”,就连厕所里放用过的厕纸的盒子都是来自中国的,这让我非常骄傲!可是美国呢?极少见到烟囱,偶尔见到小小的几个,还是别墅装饰用的,到处都是清澈见底的河流和湖泊,河边也没有造纸厂啊,炼钢厂啊什么的。简直没有一点工业化的影子!
  
   除了几个少数的大城市外,根本没有什么高楼大厦。我刚到美国时,飞机快降落,我看到纽约边上大片大片小平房,错以为到了柬埔寨。
  
  美国人的思想也比较单纯,完全是没有开化的表现。美国的高速公路四通八达,可是完全没有收费站!这么好的巨大商机居然白白浪费!我恨不得马上用水泥在这些路上筑几收费站,不出一个月,肯定可以在西海岸或者迈阿密买带花园的的海景别墅。还有,公路边随处可见宁静,还未开发的湖泊,go-vern-ment宁愿让水鸟随便栖息拉屎,也不会开发个湖景花园来大赚一笔。可见美国人毫无经济头脑。曾经有一个著名的美国经济学家曾经说过:“中国的经济学家里,真正可以称得上经济学家人,不会超过五个。”我简直要笑掉大牙了,连这么简单的赚钱机会都看不到的美国人,居然说中国没有经济学家?我看美国经济才是停留在原始社会。
  
  说到水泥和混凝土,我简直不敢相信美国几乎没有混凝土的建筑,他们的房子大部分都是木头和一些奇怪的材料建成的。用原始的木头做房子,看来洋人们的建筑水平还只停留在中国清朝以前啊!
  
  洋人们简直就是单纯无知到了极点,根本不惧怕和陌生说话,替陌生人做事。我刚到纽约的时候,在肯尼迪机场一个行李车要3美圆。我没有零钱,一个美国人看见我行李很多,就替我出了三美圆并把车推到我面前,我想起小学时老师说过人贩子一般都是用小恩小惠引诱并拐卖孩子和妇女的,我白了他一眼,拖着我的行李艰难的往相反的方向走了……后来我才发现这是美国人幼稚的表现,他们会随便把书包啊,电脑啊什么的放在图书馆门口,大树底下,完全不怕小偷,真是一点警惕感都没有;他们还随时会给你开门,随时会把车停下要“give me a ride”,随时会问需不需要帮助……我才不会上洋人的当呢,因为我知道“不能和陌生人说话。
  美国人开车的方式也很奇怪,马路上很多车,却听不见喇叭声。街道安静得不像街道,一点省会城市的热闹和人气都没有。最可怕的是,有一天晚上我和同学开车去另一个城市,忽然从路中间跑出几只马鹿来,同学眼疾手快刹了车才免了一场“马鹿的自杀性撞车事件”,据说这样的事经常发生,有时候一头鹿就可以毁了一辆车。美国go-vern-ment也不知道管管,连马鹿都管不好,还要整天张罗着要打伊朗,真不知道布什吃饱了在想什么。还不只马鹿呢,据说树林里还有熊和狐狸,野鸟和松鼠随时光顾厨房就更不用说了。美国人整天就和这些动物住在一起,根本就是原始社会。
  
  学校里的教授一点都架子都没有,完全没有学者尊贵的风范。D教授据说是美国著名的心理学家,可是课间休息的时候居然和学生在教室里大吃饼干,大侃《24》和《越狱》。一点学术的威严都没有,我简直失望死了。还有,刚上两星期课就要测验,第三个星期要交book review,要求读10多本书,一学期要两个paper。我说您都整到教授了还一天到晚这么认真负责干吗?也不知道去当个引进教授不干白拿钱。
  
  还有,美国人看点小病都要给自己制造麻烦。先得跟医生预约,看完病,医生给开药方。有些人还得咨询药师。买药得自己去超市买,不像咱们那块儿,看完病拿着医生龙飞凤舞的处方在医院直接买药就行了。可见美国医院又不会赚钱了,干吗告诉病人药名啊?在医院直接买,把药价翻个8倍10倍的,多好的生意不会做,可见资本主义市场经济真的不活啊,唉。
  
  美国人人人都开车,可是却连小摩托车都没见过,可见见识之少。学校里有一个非洲学生,为了方便和便宜就不知从哪里搞来一个女式小摩托车,在校园里开的时候,美国人都觉得他很“alien”,真是少见多怪。美国人要来到咱们国家,特别是南宁海口什么的,那还不被那汹涌的小摩托车大潮吓死。
  
  有时候对美国人的无知和愚蠢我完全失去了耐心。比如当他们知道中国有电视台和报社的时候,居然无知的问我:“中国有报纸啊?!”简直太岂有此理了,咱们中国不但有中文报纸,而且我们的报纸都是精心加工制作的,才不像美国报纸乱七八糟的舆论,把人头都搞晕了。
  
  还有我最受不了的就是,大部分美国人吃饭前都要做什么祷告,星期天都去什么礼拜,美圆上都印什么“In God We Trust”,美国人还天真的说:“上帝保佑美国”,完全是胡说八道嘛,上帝保佑美国,怎么还让美国如此落后,如此原始,还让美国人民如此单纯幼稚啊。所以我还是相信毛主席的“人定胜天”,我的祖国靠着类似的一些伟大观点,为这个地球创造了多少让人惊叹的奇迹啊!
  
  在美国的每一天,我都会深深的想起我的故乡和那些勤劳勇敢的中国人民。
posted @ 2007-03-02 12:28 CowNew开源团队 阅读(896) | 评论 (3)编辑 收藏

经常可以在论坛上可以看到这样的帖子:“小弟要学 Java 了,可是听说 Ruby 现在如日中天,要取代 Java 了,到底如何选择?”、“ Borland 要卖掉 Delphi 了,学 Delphi 还有没有前途?”、“学 Java 应该用 JBuilder 呢还是 Eclipse 呢?”……这样的帖子经常可以成为论坛中点击率回帖量最多的帖子。我曾经警告过自己不要去点击这种帖子,以表明自己有多么的“拽”,以示自己的“清高”,可是经常仍然忍不住诱惑而点进去。春秋时期的群儒论战在这里又得到了重现,每个人都以自己的亲身经历讲述到底那个语言更有前途,讲述为什么 C# 程序员没有 Java 程序员公司高,偶尔也有回帖曰:“语言不重要,思想才重要”,可是立即就被后边回帖的人反驳:“你说思想重要,那么要求你一个月时间用你不熟悉的一个语言开发一个系统出来,你还思想不思想?”,遂唾沫横飞……

如果说语言之争是赤裸裸的话,那么框架之争就显得隐蔽多了:“ EJB3.0 要出来了, Hibernate 还有没有前途”、“做 Struts 的工资高还是做 WebWorks 的工资高”、“ Spring 万岁, EJB 去死!”。

上面这些问题的答案是什么?我也不知道。

我只知道——

有个人由于工作的需要,学了一周的 C#, 然后就用 C# 开发出一个 ORMMaping 框架来;

有一个 PB 用了八年的老手因为公司转用 Java 而失业 ;

有人只学了一个月的 Java 就在应聘中击败了有多年开发 Java 开发经验的老手;

一位有多个大型项目经验的人被问之什么是多态的时候,他回答“是化学里边的词汇吧”;

有个人用了两个月的时间搭建出了一个企业开发平台,这个平台后来发展成为一个核心企业开发平台;

有个用 Websphere Studio 开发过多个大型项目的高手在转用 JSP 的时候写出来的代码被人笑掉大牙;


http://www.blogjava.net/huanzhugege/ 

我还知道——

任何语言都是由循环、顺序、分支结构组成的;

Eclipse 是很多由 C++ 转过来的人员开发的,虽然 Eclipse 代码中还有很多 C++ 的影子,但是没有人说 Eclipse 写的不好;

Java 中的 CachedRowSet C# 中叫脱机 DataSet ,在 Delphi 中叫 ClientDataSet

JSF 是向 C# WebForm 学习的,而 IntraWeb 早在 WebForm 之前就实现了拖放式 Web 开发;

EJB 中的声明式事务在 DCOM 中就有了;
...

posted @ 2007-03-01 09:28 CowNew开源团队 阅读(1349) | 评论 (5)编辑 收藏

现在有很多屏幕录制的工具,比如“屏幕录像专家”等,这些工具都是收费的,而且用起来很麻烦,所以我向大家推荐camstudio,这是一款免费的屏幕录制工具,大小才1M多,但是功能却非常的全,真是佩服他的作者了。
网站地址:http://www.camstudio.org/
下载地址:http://www.camstudio.org/CamStudio20.exe
posted @ 2007-02-28 09:22 CowNew开源团队 阅读(1529) | 评论 (1)编辑 收藏

Eclipse 使用系统内置的“ Text Editor ”做为文本编辑器,这个文本编辑器有一个长期存在的问题,那就是文本无法换行。虽然这个问题长期存在,而且解决起来并不困难,但是这却给人们带来不少麻烦。

终于有人忍不住开发了一个扩展插件 WordWrap ,这个插件非常小,但是安装这个插件以后就可以轻松实现文本编辑器的换行功能了。

【本文来自 Cownew 开源团队: http://www.cownew.com http://www.blogjava.net/huanzhuege

 

安装方法:使用 Eclipse 的自动升级功能(【 Help 】→【 Sofeware updates 】→【 Find and Install 】→【 search for new features to install 】,点击【 New Remote Site 】按钮),在“ Name ”中填入“ wordwrap ”,“ URL ”中填入“ http://ahtik.com/eclipse-update/ ”,

ew1.JPG
然后点击【
Finish 】安装即可。

ew2.JPG
安装完毕后在文本编辑器的右键菜单中就可以看到“
Virtual Word Wrap ”了。

 ew3.JPG

posted @ 2007-02-25 16:29 CowNew开源团队 阅读(4343) | 评论 (5)编辑 收藏

对于“人脉”两个字,不少人有许多迷思,在你还没厘清人脉到底是什么之前,怎么谈得上去找到你的“人脉入口”?

所以建议你,先仔细对照一下这张Check list,将你对人脉的迷思勾选出来,看看你到底是属于“铁齿型”、“软脚型”、“唬烂型”、“全灭型”中哪一类型的人,根据这4种不同类型,参考《Cheers》杂志采访到的8位业界精英说法,他们不但分享自己经营人脉的 方法及过程,还提供私房建议,让你走对方向,找到你的人脉入口。

1、人脉好=攀关系,我才不做这种事。

2、凡事不求人,我靠自己哪需要人脉?

3、工作都忙不完了,哪有时间建立人脉?

4、现在努力加强专业就好,建立人脉是以后的事。

*以上归类为 铁齿型 *

5、我脸皮薄怕被人拒绝,建立人脉太难。

6、别人讲话我只有听的份,怎么建立人脉?

7、生活=办公室+我家,去哪里建立人脉?

8、周末只想睡大觉,别说人脉、连出门都懒!

*以上归类为 软脚型 *

9、有人脉=好办事,我做事最吃得开!

10、有人脉,升迁就像坐电梯,没人脉,升迁就像爬楼梯!

11、人脉要过滤,没利用价值的人,不用浪费时间!

12、我认识许多大老板,人脉好得不得了!

*以上归类为 唬烂型 *

13、朋友有难,两肋插刀,我用血泪换人脉。

14、别人都躲着我,人脉出现大危机。

15、每次提出要求都石沉大海,人脉实在不可靠!

*以上归类为 全灭型 *

看看你是属于「铁齿型」、「软脚型」、「唬烂型」、「全灭型」中哪一类型的人
铁齿型的你很有工作实力,做事有自己的一套,但是别忘了,现在是一个讲究团队工作的时代,单打独斗既不能拓展格局又不能持久,所以,适时地分享你的经验,或是帮助其它人,会对你事业上的提升有很大帮助

软脚型的你比较内向、不善交际,但经营人脉并不是要你当花蝴蝶,其实你可以从当一个好的倾听者开始,建立别人对你的信赖感,而工作之外的时间,也可以参加跟自己嗜好有关的社团活动,例如登山社、旅行团、美术馆义工等等,增加认识朋友的机会,这将对你今后的发展起到重要作用。

属于唬烂型的你,最好放下身段、脚踏实地经营自己的专业实力比较能走得远走得稳,不要整天计算周遭人的利用价值,这种功利心态真的很让人讨厌!不要忘了,你利用别人一次,人家不但会永远记得还会告诉别人,就算你认识的人再多,别人提到你的名字都嗤之以鼻,这样恶质的人脉不如没有。

属于全灭型的你基本上人脉已经亮起红灯,你用错误的观念去经营人脉,不但危及自己的工作、信用扫地,甚至可能有触犯公司规定或犯法的可能,劝你及时煞车,重新检视自己对于人脉的定义。

posted @ 2007-02-25 12:42 CowNew开源团队 阅读(252) | 评论 (0)编辑 收藏

ISA环境,foxmail能收,但不能发邮件;而Outlook Express和Outlook都没有任何问题。

首先我要确定是服务器的问题还是我这边客户端的问题,于是又试了其它几个邮箱,也是不能发送,而且出错问题是一样的,基本可以确定是我的机器的问题了。为了进一步明确我的判断,我又用telnet命令分别连接了实验室邮箱的25和110端口,发现25端口不能连接,其它邮箱也是如此。

     然后看看我的foxmail设置是否有问题,我到foxmail官方论坛去查阅了相关资料,发现最可能出错的地方就是在"属性"设置中没有选择"服务器验证",但我的情况是选择与否都还是不能发送。总之,按照资料基本把foxmail设置的问题排除了。

     由于我的系统是没有安装防火墙的,所以我没有怎么考虑防火墙的问题。接着查看机器的25端口(smtp协议所用端口),发现tcp 25端口没有打开,于是又想办法试图打开这个端口,但很快我发现自己的想法是错的,因为服务器使用25端口,而客户端却是在1024以上随机选择端口的,使用的根本不是25端口。

     那是什么原因呢?以"foxmail不能发送邮件"关键词在google上搜索,在众多资料中发现一篇提到安装"MacFee Antivirus"之后会把可能被蠕虫病毒利用传播的25端口关闭,而自己用的正是"MacFee Antivirus"的企业版,而解决的办法有两个:要么将上述功能选项关闭,要么将编辑这个选项,将foxmail.exe排除在关闭端口的程序之外。我两者都试了一下,均能发送邮件了。

系统装有McAfee Desktop Firewall 8.0、McAfee VirusScan Enterprise +Anti-spyware Module 8.0、ewido anti-spyware 4.0。

问题不在防火墙MDW和防御木马、间谍程序的ewido上,而是在防病毒的VirusScan。

在Mcafee的VirusScan控制台中有一个“访问保护”,其中有一项“禁止大量发送邮件的蠕虫病毒发送邮件”,默认的是开启的,把这项功能取消就可以了。 

如果不想取消这个功能,则编辑这个功能,在已排除的进程中添加foxmail.exe就行了。

以前一直用Outlook Express收发邮件,而VirusScan默认排除了OE的进程,后来重装系统,换了foxmail,一直没有机会发邮件,所以也就一直没有发现问题症结之所在。

posted @ 2007-02-25 10:07 CowNew开源团队 阅读(32047) | 评论 (22)编辑 收藏

  方案一:利用工作资源建立人脉关系
  这是上班族的一个特点,也是上班族的一个优势,学会充分利用在工作中积累的资源和建立的人脉关系进行创业,可以大大减少创业风险。《科学投资》采访过一位朋友,原来在北京一家大的电脑图像制作公司工作,在工作中与很多小的电脑图像公司、报社、杂志社、电视台、电视节目制作公司建立了关系,积累了人脉。时机成熟后,这位朋友辞去了原来的工作,自己成立了一个电脑图像工作室。因为相当于原来工作的延续,无缝衔接,这位朋友几乎没有冒任何风险,便踏上了成功之路。现在这位朋友的工作室生意很红火。但是在这方面要注意的是,不能将个人生意与单位生意搞混淆,将工作秩序搞颠倒,甚至只要是有利可图的生意就归自己,而无利可图或者亏本的生意就归单位,这样做不仅要冒道德上的风险,而且很有可能会受到法律的制裁。另外,要区分清楚主业、副业,不能因为自己的创业活动影响单位的工作。
  方案二:选择合适的合伙人进行创业
  有些上班族没有时间自己进行创业,但可以提供一定的资金,或者拥有一定的业务经验和业务渠道,这时候就可以寻找合作伙伴一起进行创业。与合作伙伴一起进行创业需要注意的事项是:责、权、利一定要分清楚,最好形成书面文字,有双方签字,有见证人,以免到时候空口无凭。更不能等到赚钱了再说。我们看到无数合作创业的伙伴,在公司没有赢利之前,双方都能够和谐相处、和和气气,一旦公司赚了钱,矛盾便开始出现,有时一发而不可收拾。这就是大多数合伙企业,开始热热闹闹,中间打打闹闹,最后一败涂地的原因。
  方案三:找准好的项目
  一位朋友在上海的一家台资企业工作,妻子在一家大型电器公司当推销员。这位朋友手头有一定积蓄,又不愿放在银行里吃息,因为银行利息太低(眼下已是负息)。从去年6月起,他瞅准时机,在上海吴淞码头开了一家拉面馆,后来连开了4家。现在这4家拉面馆每月能为他带来2万多元的收入,远超过其打工的薪水。这位朋友说,其实很简单,他看准了地方,出钱盘下店面,请了几个人来开店,设了一个店长,工资要高些,其他人按市场行情走,每月几百元外带吃住。他只要每个星期到店里走一趟,盘盘账。因为店小,账目很简单,无非是进货、出货。进货,就是这个星期买了多少钱的面粉、买了多少钱的牛肉、蔬菜;出货,就是这个星期消耗了多少面粉,消耗了多少钱的牛肉、蔬菜;卖了多少钱,将中间差价一算,刨除房租、水电、税费及人员工资,就是他赚的钱。既省心省力,又不花时间。类似这样的项目,非常适合想创业的上班族。关键是你要开动脑筋,时刻留心,四处留心。另外,就是该下手时就下手,不能犹犹豫豫。大家都在找机会,机会来了你不下手,一眨眼机会可能就被别人逮跑了。
  前不久,有台湾机构调查上班族最热衷的创业项目,一共有10个,分别是:摆地摊卖服装饰品,占20.81%;炸鸡排、咸酥鸡等小吃摊,占18.78%;咖啡店占16.63%;网络上开设店铺,占15.54%;便利商店,占15.32%;饮料冰品店,占14.15%;连锁加盟餐饮,占13.11%;语言补习班,占11.96%;升学补习班,占11.62%;瘦身美容用品或服务,占11.22%。这10个项目都有一个共同的特点,就是投资较少,另一个特点是管理相对简单,不需要创业者长年累月、耗时费力地盯在那里。
posted @ 2007-02-20 14:37 CowNew开源团队 阅读(315) | 评论 (0)编辑 收藏

  有钱你可以请漂亮的女孩子一起去吃饭,唱歌跳舞

  有钱你可以开车带着女朋友去兜风,旅游
  有钱,你可以过上很体面的日子
  作为男人,你要是没钱,你还是个男人吗?
  男人们,努力挣钱吧,就是为了老婆,你也要做个有钱人.
 终于明白,为什么这么多小姑娘,哭着喊着要嫁给有钱人了,有钱是好呀!
       有钱你出门好打车,走出家门轻轻一摆手就成;没钱,呵呵,那您就做好准备挤公车吧,那出门可就不能想穿啥就穿啥,尤其记得不要穿白皮鞋哦,否则下了车也成黑的。
   有钱你出门看到喜欢的就能买下来,营业员乐得嘴都笑到耳朵根了,帮您包的漂漂亮亮,还来句“谢谢光临,下次我们有什么新品,我电话通知您”呵呵,全程享受VIP待遇。
    你没钱??呵,那可就对不起您喽,进店没人理你是小意思,搞的不好,在一件物品那里待久了,营业员还白你两眼。
    有钱,饿了随便找个餐厅就把吃饭的问题解决了,吃好了连碗碟都不用洗,桌子也不用擦,拍拍屁股走人!
   没有钱,为了要尽量省钱必须在家吃,呵呵,到菜场买菜,搞的一身鱼腥味。跑到家还要烧,又添不少油烟味,最后还要洗盘子啊,碟子啊,碗筷啊,呵呵,好好一双手就费了,用再多美家净也没有用!好了,这下就什么希望啊,前途啊,未来啊都没了!
    呵呵,有钱没钱就是不一样啊
posted @ 2007-02-20 14:32 CowNew开源团队 阅读(229) | 评论 (0)编辑 收藏

下面是 AOP 的一些基本概念

aspect (方面):实现了 cross-cutting 功能,是针对方面的模块,是为题的不同关注点,我们可以将这些方面通过某种方式加入到核心关注点中。

jointpoint (连接点):连接点是方面插入应用程序的地方,该点能被方法调用。

advice (通知): advice 是我们关注点功能的实现,它通知程序新的行为。如在权限处理中, permission advice 包括权限控制的实现代码。

pointcut (切入点): pointcut 可以指定把哪些 advice 应用到 jointpoint 上去、如何应用上去以及应用的位置。

AOP 包括三个开发步骤:

关注点分解:分解需求提取出横切关注点和一般关注点。把核心模块级关注点和系统级的横切关注点分离开来。就前面所提到的网上购物系统来说,可以分解出四个关注点:核心的订单处理、权限、日志和事务。

关注点实现:各自独立的实现这些关注点。

关注点的重新组合:在这一步里,通过创建一个模块单元来指定关注点重组的规则。重组过程被称为织入( Weaving )。以前边的网上购物系统来说,可以通过某种方式指定每个操作结束后需要记录日志、操作开始前要验证是否有权限、操作失败要事务回滚。

 

 

下面是 AspectJ 实现日志记录的一个例子:

public aspect AutoLog

{ 

pointcut publicMethods() :

execution(public * org.apache.cactus..*(..));

pointcut logObjectCalls() :

execution(* Logger.*(..));

pointcut loggableCalls() :

publicMethods() && ! logObjectCalls();

before() : loggableCalls()

{

Logger.entry(thisJoinPoint.getSignature().toString());

}

after() : loggableCalls()

{

Logger.exit(thisJoinPoint.getSignature().toString());

}

}

可以看到,这里边有很多 Java 中没有的关键字,比如 aspect pointcut 等。这些关键字都是 AspectJ 提供的,使用这些扩展我们可以用 AspectJ Java 类增加字段及方法,甚至使 Java 支持多继承。

 

 

Spring 没有自己进行 AOP 技术的实现 , 它的主要实现技术来自于 AOP 联盟( AOPAlliance )。

Spring AOP 中的术语不像 AspectJ 那样多,因而也更容易理解和学习。只要理解三个概念就可以, advice pointcut advisor

advice 是要向别的模块内部不同的地方注入的代码

pointcut 定义了需要注入 advice 的位置,通常是某个特定的类的一个 public 方法

advisor pointcut advice 的装配器,是将 advice 注入主程序中预定义位置的代码

posted @ 2007-02-20 00:50 CowNew开源团队 阅读(198) | 评论 (0)编辑 收藏

仅列出标题
共30页: First 上一页 14 15 16 17 18 19 20 21 22 下一页 Last