11月5
想做好项目经理,就一定要改变你的思维方式。这对于技术出身的朋友尤其重要。
清末人们自以为天朝,他国皆为蛮夷。结果如何呢?丧师辱国,自己沦为病夫。其根本莫非自己脑筋不对头?后来又搞洋务运动,以为洋人只是工具好,其他都不如我们,师夷长技以制夷就可了。而事实却告诉我们,感情我们又错了。
做技术出身的项目经理,就仿佛清末的国人。技术第一的概念已经深入骨髓,说是做管理,其实还是把自己的技术看做天朝上国,管理当做蛮夷丑类,或者只是把管理当做一种工具来学习学习。这么做,果真能做好项目管理吗?
从技术走向管理是很难的一个课题。要成功地实现这一转变,单靠行为方式的转变是做不好的,甚至将会画虎不成反类犬。因此,我们必须强调思维方式的转变、观念上的转变。
首先,管理的对象并不仅仅是项目,更多的是人。这方面要认识清楚。不要为了项目成功而不顾人际关系,也不要天天对着机器较劲而忘了活生生的组员。很多PMP(项目管理专家认证)出身的项目经理最后混的还不如只会拍马屁的人,原因就在于此。
举个简单的例子,我们几乎每个人都学习了十年以上的英语,可是要是别人问起你来:你英语怎样?十有八九的回答是:不行。原因出在哪里?因为我们的目标应该是和人交流沟通,而不是背语法记单词参加考试。把精力放在考试上,英语永远学不好,把精力放在听懂对方和让对方听懂上,效果就会截然相反。对于管理,也是同样的道理。
其次,管理是通过他人来执行的,而不是自己来执行。这一点是根本。作为底层管理者,你不可能完全脱离执行,但是要记住,你作为执行者出现时,执行的任务应该是别人不能替代的。可以由别人来执行的,就争取不要自己亲自来执行。就比如说,士气鼓舞、团队建设、绩效考核,这些工作显然你是不能交给别人去执行的,而技术工作在很大程度上是别人也可以来做的,那么就交给别人来执行好了。
清末人们自以为天朝,他国皆为蛮夷。结果如何呢?丧师辱国,自己沦为病夫。其根本莫非自己脑筋不对头?后来又搞洋务运动,以为洋人只是工具好,其他都不如我们,师夷长技以制夷就可了。而事实却告诉我们,感情我们又错了。
做技术出身的项目经理,就仿佛清末的国人。技术第一的概念已经深入骨髓,说是做管理,其实还是把自己的技术看做天朝上国,管理当做蛮夷丑类,或者只是把管理当做一种工具来学习学习。这么做,果真能做好项目管理吗?
从技术走向管理是很难的一个课题。要成功地实现这一转变,单靠行为方式的转变是做不好的,甚至将会画虎不成反类犬。因此,我们必须强调思维方式的转变、观念上的转变。
首先,管理的对象并不仅仅是项目,更多的是人。这方面要认识清楚。不要为了项目成功而不顾人际关系,也不要天天对着机器较劲而忘了活生生的组员。很多PMP(项目管理专家认证)出身的项目经理最后混的还不如只会拍马屁的人,原因就在于此。
举个简单的例子,我们几乎每个人都学习了十年以上的英语,可是要是别人问起你来:你英语怎样?十有八九的回答是:不行。原因出在哪里?因为我们的目标应该是和人交流沟通,而不是背语法记单词参加考试。把精力放在考试上,英语永远学不好,把精力放在听懂对方和让对方听懂上,效果就会截然相反。对于管理,也是同样的道理。
其次,管理是通过他人来执行的,而不是自己来执行。这一点是根本。作为底层管理者,你不可能完全脱离执行,但是要记住,你作为执行者出现时,执行的任务应该是别人不能替代的。可以由别人来执行的,就争取不要自己亲自来执行。就比如说,士气鼓舞、团队建设、绩效考核,这些工作显然你是不能交给别人去执行的,而技术工作在很大程度上是别人也可以来做的,那么就交给别人来执行好了。
11月5
IT项目管理中最重要的是什么?毫无疑问,肯定是人员管理。
1.充分肯定人员在IT项目中的作用和价值
IT项目管理最大的一个复杂性就是人员的管理,对于IT项目中的项目成员都是从事有创造性的劳动,虽然CMMI更多的强调了过程的重要性,但一些通用的GP仍然强调了人对项目的重要性。没有规矩不成方圆,过程和规范固然重要,但不能因为过程和规范抹杀和项目成员的能动性和创造力,同时要肯定项目成员对项目成败的重要价值。
2.选择和招募正确的人
首先是要选择或招募到正确的人,承认招聘是有成本的,也应该在招聘上做充分的准备。对人员考察的重点不仅仅是具备的知识技能,而更多应该是针对其个人性格,价值观,协作和沟通能力,自我学习能力方法的考察。个人的工作习惯不是一朝一夕形成的,而习惯形成又依赖平时的工作和生活的态度,态度决定一切;其次才是理解和自我学习能力,然后才是现有的知识和技能。
3.为人员分配合适的工作
每个项目成员都有的各自的特长和性格特点,必须要充分考虑项目成员的技能情况和性格特点为他们分配正确的工作,同时还需要考虑项目成员的工作兴趣和爱好。尽量发挥项目成员特长,让每个人从事自己喜爱的工作岗位是项目经理进行工作分配要考虑的问题。各项目成员的知识技能评估,个性特点分析,优点和缺点是要事先分析和考虑的内容。
1.充分肯定人员在IT项目中的作用和价值
IT项目管理最大的一个复杂性就是人员的管理,对于IT项目中的项目成员都是从事有创造性的劳动,虽然CMMI更多的强调了过程的重要性,但一些通用的GP仍然强调了人对项目的重要性。没有规矩不成方圆,过程和规范固然重要,但不能因为过程和规范抹杀和项目成员的能动性和创造力,同时要肯定项目成员对项目成败的重要价值。
2.选择和招募正确的人
首先是要选择或招募到正确的人,承认招聘是有成本的,也应该在招聘上做充分的准备。对人员考察的重点不仅仅是具备的知识技能,而更多应该是针对其个人性格,价值观,协作和沟通能力,自我学习能力方法的考察。个人的工作习惯不是一朝一夕形成的,而习惯形成又依赖平时的工作和生活的态度,态度决定一切;其次才是理解和自我学习能力,然后才是现有的知识和技能。
3.为人员分配合适的工作
每个项目成员都有的各自的特长和性格特点,必须要充分考虑项目成员的技能情况和性格特点为他们分配正确的工作,同时还需要考虑项目成员的工作兴趣和爱好。尽量发挥项目成员特长,让每个人从事自己喜爱的工作岗位是项目经理进行工作分配要考虑的问题。各项目成员的知识技能评估,个性特点分析,优点和缺点是要事先分析和考虑的内容。
10月14
项目中最近做了个SVN代码变更的插件,需要做一个安装盘,发现插件只能用在TortoiseSVN 1.6.x或者以上的版本,这就需要安装盘中在安装时提醒用户安装1.6.x或者以上的SVN客户端版本写了几个公共方法实现如下的版本对比。
//从注册表中获取SVN客户端TortoiseSVN的版本号
function getSVNClientVersion (): String;
begin
RegQueryStringValue(HKCU , 'Software\TortoiseSVN','CurrentVersion', result);
end;
//此函数用于截取版本号数字
procedure DecodeVersion (verstr: String; var verint: array of Integer);
var
i,p: Integer; s: string;
begin
verint := [0,0,0,0];
i := 0;
while ((Length(verstr) > 0) and (i < 4)) do
begin
p := pos (',', verstr);
if p > 0 then
begin
if p = 1 then s:= '0' else s:= Copy (verstr, 1, p - 1);
verint[i] := StrToInt(s);
i := i + 1;
verstr := Copy (verstr, p+1, Length(verstr));
end
else
begin
verint[i] := StrToInt (verstr);
verstr := '';
end;
end;
end;
//从注册表中获取SVN客户端TortoiseSVN的版本号
function getSVNClientVersion (): String;
begin
RegQueryStringValue(HKCU , 'Software\TortoiseSVN','CurrentVersion', result);
end;
//此函数用于截取版本号数字
procedure DecodeVersion (verstr: String; var verint: array of Integer);
var
i,p: Integer; s: string;
begin
verint := [0,0,0,0];
i := 0;
while ((Length(verstr) > 0) and (i < 4)) do
begin
p := pos (',', verstr);
if p > 0 then
begin
if p = 1 then s:= '0' else s:= Copy (verstr, 1, p - 1);
verint[i] := StrToInt(s);
i := i + 1;
verstr := Copy (verstr, p+1, Length(verstr));
end
else
begin
verint[i] := StrToInt (verstr);
verstr := '';
end;
end;
end;
9月25
以前在使用MyEclipse开发的都常用到其中一个"Open In Explorer"的小插件,可以直接在Windows资源管理器中打开选中文件所在的目录,工具虽小,但我们经常需要用到它
由于MyEclipse收费以及体积庞大的原因,现在我已经改用Eclipse(WTP) + Tomcat进行开发了,这个组合对我来说足以满足目前项目开发的需要,但就是缺少这个小插件,为了继续享受这个快捷打开文件目录的功能,自己动手DIY了一个插件,功能简单,但足够使用。
插件下载:org.lightframework.eclipse.explorer_1.0.0.201003172130.jar
源码浏览:google code browse
喜欢这个插件的朋友欢迎下载使用,不过目前没有计划提供支持,需要改动的请自行下载源码改造
注:第二次DIY Eclipse插件,1小时写代码,2小时找图标,对插件编写方式有质疑的欢迎指导。
由于MyEclipse收费以及体积庞大的原因,现在我已经改用Eclipse(WTP) + Tomcat进行开发了,这个组合对我来说足以满足目前项目开发的需要,但就是缺少这个小插件,为了继续享受这个快捷打开文件目录的功能,自己动手DIY了一个插件,功能简单,但足够使用。
插件下载:org.lightframework.eclipse.explorer_1.0.0.201003172130.jar
源码浏览:google code browse
喜欢这个插件的朋友欢迎下载使用,不过目前没有计划提供支持,需要改动的请自行下载源码改造
注:第二次DIY Eclipse插件,1小时写代码,2小时找图标,对插件编写方式有质疑的欢迎指导。
7月16
首先Subversion作为一个优秀的自由/开源的版本控制系统,Eclipse默认对其并不支持,我们可以通过使用svn插件subclipse(http://subclipse.tigris.org/)增加对其的支持。
subclipse插件安装方法方法除了有官方推荐的“Eclipse自带图形界面在线安装法”、“直接拷贝法”,还有就是比较推荐的“link文件法”。当然啦,新版本的eclipse这里还有一种方法就是直接扔在dropins目录也可以的。
这里以1.6.2版本为例,介绍下subclipse的link安装方法(本例中eclipse的安装路径为D:\Program Files\eclipse):
1.首先下载site-1.6.2.zip;

2.新建路径为D:\Program Files\eclipse\linkplugins\subclipse的目录;
3.将site-1.6.2.zip解压至指定目录,本例将其解压至D:\Program Files\eclipse\linkplugins\subclipse;
subclipse插件安装方法方法除了有官方推荐的“Eclipse自带图形界面在线安装法”、“直接拷贝法”,还有就是比较推荐的“link文件法”。当然啦,新版本的eclipse这里还有一种方法就是直接扔在dropins目录也可以的。
这里以1.6.2版本为例,介绍下subclipse的link安装方法(本例中eclipse的安装路径为D:\Program Files\eclipse):
1.首先下载site-1.6.2.zip;
2.新建路径为D:\Program Files\eclipse\linkplugins\subclipse的目录;
3.将site-1.6.2.zip解压至指定目录,本例将其解压至D:\Program Files\eclipse\linkplugins\subclipse;
7月14
最近项目有个需求要将持续集成环境编译好的发布文件用 Xcopy命令复制文件夹下所有文件到指定目录,下面是具体代码。
@echo off
color 0
@echo.
@echo ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@echo ` Smart rDelta 发布版本到指定目录 `
@echo ` `
@echo ` - - - Power By:Heck `
@echo ` `
@echo ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@echo.
color 0A
@echo 正在复制文件,请稍等。。。
xcopy SmartrDelta_build\*.* Release\Smart rDelta V100R001C02B05 /s
@echo.
@echo ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@echo ` 复制完成,多谢猪头! `
@echo ` `
@echo ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@echo.
pause
复制上面的代码保存为.bat文件直接运行即可,上面的SmartrDelta_build\*.*表示要复制的文件夹路径, Release\Smart rDelta V100R001C02B05表示目录文件夹,/s表示递归复制也就是将下面所有文件或者复制到指定文件夹。
@echo off
color 0
@echo.
@echo ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@echo ` Smart rDelta 发布版本到指定目录 `
@echo ` `
@echo ` - - - Power By:Heck `
@echo ` `
@echo ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@echo.
color 0A
@echo 正在复制文件,请稍等。。。
xcopy SmartrDelta_build\*.* Release\Smart rDelta V100R001C02B05 /s
@echo.
@echo ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@echo ` 复制完成,多谢猪头! `
@echo ` `
@echo ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@echo.
pause
复制上面的代码保存为.bat文件直接运行即可,上面的SmartrDelta_build\*.*表示要复制的文件夹路径, Release\Smart rDelta V100R001C02B05表示目录文件夹,/s表示递归复制也就是将下面所有文件或者复制到指定文件夹。
11月6
虽然希望在自己的博客写一些纯技术性的文章,但作为一名技术人员,我总是对未来的前景感到一阵阵悲哀。有感于对这个投票贴的名字,发表一点自身的感慨。
做为技术人员,大家都觉得工资高,工作稳定,还能学到很多的东西。是大部份走出校门或性格内向,或希望过平静生活的人的必然选择。其实,你们有没有问过自己,这条路到底走对了吗?
一个刚毕业的大学生,从事销售和从事技术两种不同的工作,可能工资的差距会达到数倍之远。对于初出校门的人来说,不无一种极端的诱惑力。刚毕业的年青人,当然会果断的选择技术之路。
两年后,我们再看看,由于经验的积累,做业务的积累了部份客户资源,做技术的积累了好的经验,在各自的领域内都大展开了手脚,收入也基本接近了。
再以后呢,技术之路越来越难走,毕竟做技术需要的大量的时间和精力,否则就跟不上现在时代的技术更新了,做业务的呢,客户群越来越大,经验越来越丰富,谁的收入会更高?
两种不同的职业,它们有着各自不同的特点,技术行业是个撑不死,饱不了的地方,而销售行业则是没有尽头的发展之路。
过了三十岁,大家会选择什么呢,结婚、生子,人生的一条老路,做技术的大多都成为了技术部门的负责人,职位不错;做销售的呢?可能还是个业务员,毕竟做大量的业务都集中在少数人手里。古往今来,财富的集中是如此的相似!但是观察两个职业成功人士的比较,是不是相差太远了?
学到死,做到死、发不了财的技术,有什么值得人留恋的!
到了三十岁,你还有自信面对繁重的工作吗?你有刚出社会的人的活力吗?你能和他们比工作时间,玩命地在老板面前表现吗?你能丢下妻儿出差一、两个月吗?能被小你十来岁的小孩命令来命令去吗?
我不能。。。。。。
有人会说,我有了技术!
做为技术人员,大家都觉得工资高,工作稳定,还能学到很多的东西。是大部份走出校门或性格内向,或希望过平静生活的人的必然选择。其实,你们有没有问过自己,这条路到底走对了吗?
一个刚毕业的大学生,从事销售和从事技术两种不同的工作,可能工资的差距会达到数倍之远。对于初出校门的人来说,不无一种极端的诱惑力。刚毕业的年青人,当然会果断的选择技术之路。
两年后,我们再看看,由于经验的积累,做业务的积累了部份客户资源,做技术的积累了好的经验,在各自的领域内都大展开了手脚,收入也基本接近了。
再以后呢,技术之路越来越难走,毕竟做技术需要的大量的时间和精力,否则就跟不上现在时代的技术更新了,做业务的呢,客户群越来越大,经验越来越丰富,谁的收入会更高?
两种不同的职业,它们有着各自不同的特点,技术行业是个撑不死,饱不了的地方,而销售行业则是没有尽头的发展之路。
过了三十岁,大家会选择什么呢,结婚、生子,人生的一条老路,做技术的大多都成为了技术部门的负责人,职位不错;做销售的呢?可能还是个业务员,毕竟做大量的业务都集中在少数人手里。古往今来,财富的集中是如此的相似!但是观察两个职业成功人士的比较,是不是相差太远了?
学到死,做到死、发不了财的技术,有什么值得人留恋的!
到了三十岁,你还有自信面对繁重的工作吗?你有刚出社会的人的活力吗?你能和他们比工作时间,玩命地在老板面前表现吗?你能丢下妻儿出差一、两个月吗?能被小你十来岁的小孩命令来命令去吗?
我不能。。。。。。
有人会说,我有了技术!
11月2
内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。
内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。一个盘子用尽各种方法只能装4个果子,你装了5个,结果掉倒地上不能吃了。这就是溢出!比方说栈,栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。就是分配的内存不足以放下数据项序列,称为内存溢出.
以发生的方式来分类,内存泄漏可以分为4类:
1. 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。
2. 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。
3. 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生泄漏。比如,在类的构造函数中分配内存,在析构函数中却没有释放该内存,所以内存泄漏只会发生一次。
内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。一个盘子用尽各种方法只能装4个果子,你装了5个,结果掉倒地上不能吃了。这就是溢出!比方说栈,栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。就是分配的内存不足以放下数据项序列,称为内存溢出.
以发生的方式来分类,内存泄漏可以分为4类:
1. 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。
2. 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。
3. 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生泄漏。比如,在类的构造函数中分配内存,在析构函数中却没有释放该内存,所以内存泄漏只会发生一次。
10月29
很多朋友对Struts、Spring、Hibernate都只停留在会用的层次,并不知道SSH三个框架的具体实现和原理以及怎么样才能用好这三个框架,猪头曾经看到多滥用Struts、Sping、Hibernate的项目,那个做的真是没话说呀,这篇日志也就给大家介绍下它们的原理,避免大家滥用框架造成系统出现一系列的问题。
Struts的原理和优点.
Struts工作原理
MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。MVC的工作原理,如下图1所示:Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的工作原理。
视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。
控制:在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充 Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。最后动作类把控制权传给后续的JSP 文件,后者生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。
模型:模型以一个或多个java bean的形式存在。这些bean分为三类:Action Form、Action、JavaBean or EJB。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。
流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。
核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。
Struts的原理和优点.
Struts工作原理
MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。MVC的工作原理,如下图1所示:Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的工作原理。
视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。
控制:在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充 Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。最后动作类把控制权传给后续的JSP 文件,后者生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。
模型:模型以一个或多个java bean的形式存在。这些bean分为三类:Action Form、Action、JavaBean or EJB。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。
流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。
核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。
10月25
最近通过Heck博客向我咨询的朋友有很多,一般情况下只要有时间我都非常乐意聊会,对于网络赚钱专职还是兼职这个问题Heck认为非常有必要专门写篇文章和大家交流下,也给很多想进入网络赚钱这行的朋友作个参考。
无论您是否想专职还是兼职做网络赚钱这行,首先必须弄明白一个问题:网络是否真的能赚钱?我可以非常明确的告诉你网络赚钱是真实可行的,但是想赚更多也不是件容易的事情!
接下来Heck分别对网络赚钱专职和兼职做个简单的对比:
1.网络赚钱专职
优点:自由,你可以每天工作2个小时,或者今天心情不好也可以不工作,没有人管你;你可以穿着睡衣躺在床上工作,你也可以一边在线看电影、听歌一边工作,甚至是抱着GF或者Baby也可以。
缺点:你的圈子很小,除了每天能接触到的家人就是电脑,没有上班族的三天一小聚五天一大聚的的朋友圈子,时间长了你会发现你的生活就那么大点范围。
2.网络赚钱兼职
优点:自由,没错!兼职做网络赚钱是个好的主意,正常收入之余还能搞点额外收入,而且还没有任何的限制。
缺点:不能说兼职一定赚不了太多的钱,但是当每天繁忙的工作结束后回家还得工作是挺辛苦的。
“哥们,你是做什么的?”
“搞网络的。”
“高科技,不错,在哪上班?”
“还行吧,在家。”
在现实社会中,一般人都会认为只要是不出去上班而成天窝在家里的人是很没出息的,甚至包括自己的父母亲戚朋友等,当然,除非你的收入比那些上班的多!但是对此就引出一个问题:如果你对网络赚钱这行业是刚刚接触就想专职做的话,那你就得考虑来自各方面的压力,当然也包括自己给自己的压力。
无论您是否想专职还是兼职做网络赚钱这行,首先必须弄明白一个问题:网络是否真的能赚钱?我可以非常明确的告诉你网络赚钱是真实可行的,但是想赚更多也不是件容易的事情!
接下来Heck分别对网络赚钱专职和兼职做个简单的对比:
1.网络赚钱专职
优点:自由,你可以每天工作2个小时,或者今天心情不好也可以不工作,没有人管你;你可以穿着睡衣躺在床上工作,你也可以一边在线看电影、听歌一边工作,甚至是抱着GF或者Baby也可以。
缺点:你的圈子很小,除了每天能接触到的家人就是电脑,没有上班族的三天一小聚五天一大聚的的朋友圈子,时间长了你会发现你的生活就那么大点范围。
2.网络赚钱兼职
优点:自由,没错!兼职做网络赚钱是个好的主意,正常收入之余还能搞点额外收入,而且还没有任何的限制。
缺点:不能说兼职一定赚不了太多的钱,但是当每天繁忙的工作结束后回家还得工作是挺辛苦的。
“哥们,你是做什么的?”
“搞网络的。”
“高科技,不错,在哪上班?”
“还行吧,在家。”
在现实社会中,一般人都会认为只要是不出去上班而成天窝在家里的人是很没出息的,甚至包括自己的父母亲戚朋友等,当然,除非你的收入比那些上班的多!但是对此就引出一个问题:如果你对网络赚钱这行业是刚刚接触就想专职做的话,那你就得考虑来自各方面的压力,当然也包括自己给自己的压力。







