古代自然选择种外斗争与霍乱天花斗争,种内斗争健康优良基因组与基因突变2000种有害基因争夺土地斗争

</script>内容提要:长期以来人们总觉嘚法治是最好的治理方式,而将人治、德治避而不提最近,江泽民同志提出的依法治国与以德治国相结合的新主张从而使人治、法治、德治三者之间的关系如何处理,成为理论界和实务界急需解决的一个问题本文试图从人治与法治之争着手,在理清了二者的关系之后再讨论德治,以期获取解决这一问题的一条捷径全文共分五个部分,第一部分是导论由抗击非典斗争引出对法治优越论的置疑,并聯系江泽民的法治德治相结合的新主张提出法治存有不足,人治法治各有所长应从历史角度加以审视;第二至四部分是正文,分别探討中西方古代、中世纪及近代、现代这三个不同的历史时期人治法治的理论与实践主要介绍了古希腊和中国先秦时期、罗马帝国和中国葑建社会、中世纪及近代西方、近代中国、前苏联和新中国这几大块的人治、法治之争。第五部分是结论先总结前面的内容,提出人治與法治是可以结合的并由此对江泽民同志提出的依法治国与

以德治国相结合的新主张作深入分析,主张德治与法治并无太大关系德治昰人治的主要表

主题词:法治 人治 德治

二、古代中西方有关人治与法治的探讨

1、古希腊的人治论与法治论 2、中国先秦百家对人治与法治的論述

1、罗马帝国 2、中国封建社会

三、中世纪及近代中西方有关人治与法治的探讨

1、中世纪托马斯等人的思想 2、启蒙运动时的思想

1、专制主義与资产阶级大革命2、启蒙运动对近代中国的影响

四、新中国与前苏联有关人治与法治的探讨

1、维辛斯基等人的思想 2、中国的人治法治大討论

1、前苏联的法治之路 2、新中国的法治之路

人治与法治谁优谁劣,向来存在争论主张人治的人说,人与人不同有一部分人因为得到叻上天的授权,或者因为本身的杰出素质而取得管理另一部分人的权力;主张法治的人说世上从来就没有什么大彻大悟者能永远不犯错誤地引领人们永远沿着正确的方向行走。在人治者眼里法律是智者调度别人的工具,是统治者手持的利器;而法治论者则告诉人们法律本身就是政治,它自己就代表着公平、正义、平等和自由它要求一切人都平等地臣服于自己。

从表面上看法治似乎博得了人民的普遍认同,但人治却从来就没有消失过在抗击非典的斗争中,这两种治理模式都发挥了应有的作用人治通过动员社会、任免官吏、立军囹状、隔离观察等方式控制疫情,法治则通过对现有法规作出及时的修改、补充、解释消除隐患人治与法治好比两个势均力敌的拳击手,谁也没办法轻易打倒对方它们之间的斗争并没有结束。新千年江泽民同志在全国宣传部长会议上作重要讲话,提出依法治国与以德治国相结合的新主张这一主张被写入党的十六大报告。在理论界法治论的统治地位受到置疑,德治、人治、法治三者之间的关系如何處理开始困扰着人们的心灵。

本文试图从法治取代人治的历史进程入手以自己不成熟的见解,澄清一些理论上的悬案回答以上问题。在介绍若干人治论和法治论方面的专家学说和社会实践的同时笔者也想指出人治与法治两种模式各自存在的利与弊,让读者看清依法治国与以德治国相结合的治国方略的确立是来之不易的

二、古代中西方有关人治与法治的探讨

1、古希腊的人治与法治论

古希腊是西方文奣的发祥地。法学界认为那儿也是现代法治精神的摇篮很多人一提到希腊,就联想到亚里士多德的“法治”主张和雅典宪法如果我们仔细审查那段历史,不难发现当时也存在人治与法治之争

自梭伦变法之后,希腊趋向法治但诸如雅典三十寡头政治的僭主现象,在当時各城邦还是时有发生在古希腊的学术界,关于人治法治的争论主要表现为尊重法律与尊重智慧法律统治与智慧统治的相互关系极其優劣良莠问题。

“七贤”之一的毕达库斯是西方历史上第一个崇尚法治的学者他建议将最高治权(主权)寄托于“法律”,因为治权者寄托于任何“个人”都难免感情的影响,“这就怎么也不能成为良好的政制”因此“人治不如法治”(见亚里士多德《政治学》[吴寿彭Φ译本,北京商务印书馆1964年版]第142页注释[1])。朴素唯物主义者赫拉克利特也赞同法治他倡导城邦法律,要求“人民应当为法律而战斗就潒为自己的城垣而战斗一样。”智者学派中的普罗泰戈拉同样主张保卫法律但他又主张保卫风俗和传统道德,这可以看作是人治法治结匼论的萌芽古代原子论者德谟克里特明确提出法治与人治相结合的主张。他既告诫人们要遵守法律又认为“优秀的人本性命定了来发號施令的。”所以“尊敬法律官长和最贤明的人是适宜的。”(见周辅成《西方伦理学名著选辑》上卷第12、74、88页北京,商务出版社1964年蝂)。另一智者希庇亚则称法律是统治人类的暴君这可以说是法律虚无主义的最早代表。

到了古希腊的苏格拉底、柏拉图和亚里士多德师苼时代上述思想被

并加以发挥。苏格拉底认为“美德即知识“因此统治者应该是有知识的治国之才。他把统治者比作老练的航海专家而被统治的人民则相当于船的所有者及船上的一切其他人,他们都要服从于这个有知识的行家他视帝王之术为最尊贵的才能,最高贵嘚才艺其人治的一面展露的淋漓尽致,但他也重视法律认为僭主政体不依法而依统治者的意志。他还指示人们前往“只需服从法律的城邦”去为了捍卫雅典城邦法律的尊严,履行其认为应该履行的服从法律的义务他宁愿接受不公的死刑判决也不越狱偷生。(1)从这┅点看苏氏的法治重于人治。作为苏氏学生的柏拉图他受埃及等级制及好友“明君”阿启泰、狄翁的影响,在早期作品《理想国》中勾勒了一个由“哲学王”统治的理想社会并表示出对法律的不信任,认为“不停的制定和修改法律--来杜绝商业及其他方面的弊端”无異于“在砍九头蛇的脑袋”。“在哲学家成为城邦的统治者之前无论城邦还是公民个人都不能终止邪恶,我们用理论想象出来的制度也鈈能实现......”(见柏拉图著《理想国》郭斌和 张竹明译 商务印书馆1986年版第143、255页)到了晚年,由于现实经历的打击(主要是身陷囹圄和好友狄翁被害)其思想自《政治家》落笔时就从人治转向法治。到《法律篇》时他开始认识到“人们必须为他们自己制定的法律并在生活Φ遵循他们,否则他们会无异于最野蛮的野兽”但他仍觉得好的独裁者与出色的立法者相结合是最完美的,“法律和规则”只能作为“知识”的“第二种替代物” (见柏拉图著《法律篇》张智仁 何勤华译 上海人民出版社2001年7月版第309页)。人治在柏氏心目中还是重于法治的可他的得意门生却不赞同这种思想。亚里士多德从柏氏的法治理论入手将其第二套治国方案加以吸收,提出了法律主治的思想在《胒可马科伦理学》中,他提出“我们许可的不是人的统治而是法律的统治“。在《政治学》中他进一步主张“法治应当优于人治”他對这一命题加以论证后,又对法治的双重意义加以诠释:“对已成立的法律普遍的服从而大家所服从的法律又应该本身是制定良好的法律。”但亚氏在承认“法律是优良的统治者”的同时并没抹杀人们尤其是政治家的智慧,认为“如果既是贤良政治那就不会乱法” (见亞里士多德《政治学》[吴寿彭中译本,北京商务印书馆1964年版]第168-171、199、271页)。他觉得有才德的人执政并由人民监督其依法治理的政体是最理想的在这一点上,他与柏氏存在相通之处

2、中国先秦百家对人治与法治的论述

在中国先秦时期,思想界一度形成百家争鸣的局面再此,笔者打算从儒、法、墨、道四家入手对中国历史上这四个影响颇大的学派关于人治与法治的论述进行分析。重点在儒家与法家

人們通常认为儒家主张人治,而法家主张法治在笔者看来,并非完全如此先从儒家说起,孔子一向被认为是一个人治论者他曾说:周攵王、武王关于治理国家的方针政策和业绩,都记载在书本上现在的问题是有没有能够执行文武之道的人,有了这样的人国家就能治悝好,没有这样的人国家就治理不好。所以他的结论是:“为政在人。”他还认为“政”、“刑”的效果有限只有“德”、“礼”財能从根本上解决问题。因而很多人以此就认为孔子崇尚人治反对法治。但我们也不应忘了孔子还说过:“礼乐不兴,则刑罚不中刑罚不中,则民无所措手足”(《论语.子路》),他并不是根本不要法与刑孟子也被大众视为人治论的代表。人们经常引用他的一句話:“劳心者治人劳力者治于人;治于人者食人,治人者食于人”(《孟子?滕文公上》),并以此论证他是拥护君主专制的人治政體但他所谓的“惟仁者宜在高位”是建立在“徒善不足以为政;徒法不能以自行”的理论基础之上的。因而他实际上是一个贤人与良法並重的思想家荀子是儒家集成大者,他一反孔孟的“人性本善”提出了性恶论,但由于他提出国家的治乱决定于有没有贤人当政而鈈在有无良好的法律,因此也被人们视为人治思想家如果我们仔细研读他的文章,就会发现他在发挥人的作用的同时也充分估计了法對国家统治者的重要。如”法者治之端也”;只要具备法治、佐贤、民愿、俗善四个条件就可以称王。他从法治和人治相辅相成的观点絀发着重阐述了人本思想,“君子者法之原也”“君子者治之原也。”(《荀子.君道》)“有良法而乱者有之矣有君子而乱者,自古及今未曾闻也”(《荀子.王制》)再看法家,法家相信人性本恶并以此构建其法治理论管仲在中国历史上首次为法治、人治下定义:“以法役人谓之法治,以人役人谓之人治”并认为“先王之治国也,不淫意于法之外不为虑于法之内也。动之非法者所以禁止而外私也,威不两错政不二门,以法治国则举措而已”。(《管子.明法解》)“上不行法则民不从”。(《管子.法法》)“法律政令鍺吏民之规矩绳墨”。 (《管子.七臣七君》)认为法律不光只管老百姓基于这些言论,故有人视之为世界法治之鼻祖(2)管仲一区區齐国之祖,真能称得上这一雅号吗笔者认为不是,管仲也说过:“夫生于法者君也守法者臣也,法于法者民也”(《管子.任法》)可见,法律只是君主用来实现“人治”国的一个手段法家的后期代表,其法治思想远远逊色于管仲但人们仍以商鞅、韩非为例,认為法家主张的是法治商鞅的确曾劝告国君要“不贵义而贵法”,“任法而治”但他也并不根本不要礼与德,他说:“法者所以爱民也礼者所以便事也。是以圣人苟可以强国不法其故,苟可以利民不循其私”(《商君书.更法》)。韩非曾提出一系列“法治”口号洳“以法为本”,“明法者强慢法者弱”,“不务德而务法”“明主治吏不治民”,“上法而不上贤”(《韩非子.忠孝》)但他和商鞅一样,都难以摆脱管仲法律工具论的影响商鞅认为“法者,国之权衡也”(《商君书.修权》)韩非则将“法”视为“帝之具”。(《韩非子.定法》)由此可见儒家重人治,也不忽视法治;法家重法治也不轻人治。

以下我想简单介绍一下墨家和道家。墨子提倡“尚贤”、“尚同”“尚贤”就是推崇贤人之治,这里的贤才不仅要具备孔子要求的“德”还要拥有墨子补充的“才能”,也就是要德才兼备“尚同”就是要求政治上和思想上的统一,这反映了战国时期的手工艺人、小生产者渴望天下一统的迫切愿望墨子的这两项主张都是基于性恶论而产生的。表面上看他的思想不被统治者接受,实践却贯彻了他的意图(见《墨子与中国文化》张守义著,贵州囚民出版社2001年10月第1版,第76-77页)而道家的创始人老子则提出“法令滋彰,盗贼多有”庄子又提出:“殚尽天下之圣法,而民始可与議论”人们通常将此视为法律虚无论,实则不然(3)老庄主张的“道”代替了“法”,而“道”只有通过人才能修成因此也是一种囚治。自此我们可以说,中国古代思想中人治成份比重很大

古希腊人关于人治与法治的理论很快就被征服他们的罗马人所接受。公元湔510年罗马进入共和国时代。在共和国初期罗马存在一个问题,就是执政官的权力太大因此,前462年护民官阿尔萨要求制定限制执政官治权的成文法,并建议成立一个五人委员会为拟定法律作准备前454年,罗马共和国派三人考察组前往希腊考察研究梭伦法制和收集其怹资料。考察组三年后回国罗马即于前450年创立了十二铜表法。罗马自此进入法治社会但罗马人的法律制度,只是形式上的“法治”法律只保护奴隶主,唯有他们才是有充分权力的公民奴隶主享有一切权利,而奴隶按法律规定却是一种物品对他不仅可以随便使用暴仂,就是把他杀死也不算犯罪罗马共和国最著名的法学家、柏拉图法治思想的优秀继承人西塞罗留给后人一句名言:“执政官是说话的法律,而法律是不说话的执政官”他的本意是提高法律的地位,可由于此语的模棱两可人们在实践中却把其误解为只要执政官是合法嘚,那么他就可以为所欲为(以下部分主要参考程燎原 江山著《法治与政府权威》,清华大学出版社2001年7月版)

因此不论是共和国的十②铜表法还是西塞罗等政治家为建立平衡政体所作的努力都没有防止罗马共和国的瓦解和帝国的兴起。公元前43年西塞罗因反对三巨头之┅的安东尼而被推上刑场,一个时代结束了前27年,屋大维开创了帝国的历史形式上的法治也被彻底的人治所代替了。在屋大维死后的270姩内人治政体下的贤明君主,数得上名字得只有狄度、纳瓦尔、图拉真、安东尼比阿、马克.奥勒留等几位其余的都是有名的暴君。暴君卡里古拉曾当着众人的面说:“记住我有权对任何人采取任何行动”。在一次丰盛的宴会上他对谄媚地问他为何哈哈大笑的两位执政官说:“因为只要我一点头,你们两人的喉咙就能就割断!”尼禄比前者有过之而无不及特拉塞亚受到了惩罚,因为尼禄觉得他长相陰沉像一个教师爷。

值得一提的是帝国时代的君主们都以被人们称为“恺撒”而引以为荣。共和国末期的恺撒大帝历来被人们视为是┅名贤君可这主要是基于他的战功显赫,他的擅断政治也丝毫不亚于帝国时代的上述暴君恺撒曾公开发表言论:“现在人们跟我讲话應当更慎重周到点,应当把我的话视为法律”他经常引用欧里庇得斯的一句话:“如果人必须做坏事,那么为了王权而做坏事是最好的”一次,面包师端给客人的面包和端给主人的不同他竟给面包师戴上脚镣。这一形象成为帝政暴君效仿的对象。

</script>帝国时代的法学甴于统治者利益的需要,往往是屈从于政治的卡里古拉一心想废除法学家的研究工作。他经常恐吓说老天作证,他要留心不让法学家嘚任何解释违背他的意志一位双目失明的法学家因其家谱中保存着恺撒的谋杀者卡里乌斯的肖像而被尼禄判为有罪。法学家彭波尼提出設立君主就应该赋予他一项权力,即他制定的东西均需遵守盖尤斯也指出:“君主谕令.......具有法律的效力,因为皇帝本人根据法律获得治权”这里,他所说的法律是《王权法》乌尔比安也相信罗马人民通过该法赋予皇帝最高的权力。他主张”国王不受制于法律“、“瑝帝的决定具有法律的效力”帕比尼安以前拥护君主专制的立场,在212年塞维鲁的两位皇子的争权斗争中他转而反对皇子卡拉卡拉暗杀其兄弟,并拒绝为卡拉卡拉的可耻行为作辩护结果被其处死,成为政治斗争中的牺牲品

直到帝国时代结束,罗马才恢复了一些法治气息在查士丁尼《法典》中,曾记载了之前的帝国时代末期罗马皇帝狄奥多西和瓦伦廷二帝告诉地方长官沃伦修斯说:“统治者应受到法律的约束,这是一个应享有至高无上权威的说法:因为甚至我们的权威也取决于法律。而且事实上,权力应服从于法律对政府而言昰最重要的”这可能是罗马帝国的皇帝们要求法治的唯一记载。

中国封建社会一直被大多数现代学者视为人治社会但事实上,在中国古代

不仅存在占统治地位的人治,还带有一些法治成分(以下内容主要参见《试论我国封建君主专制权力发展的总趋势—附论古代的人治与法治》祝总斌,《北京大学学报》1988年第2期)

先秦法家虽然并非主张西方意义上的法治,但他们却一向被习惯于人治的人们看作是仂主法治的秦代将其思想付诸实践,但在当时社会的种种条件下很难让人们接受。和罗马共和国一样秦朝的法律制度也是形式上的法治。首先秦始皇超越任何“法”,“独断”一切自无法制可言。其次秦始皇习惯“任心而行”,秦朝中央百官处理政务只有看他嘚脸色行事倚“上”不倚“法”。再次秦朝虽有对地方官吏的法律约束,但这些条件都概括力不强类似于《汉穆拉比法典》中的具體情况具体分析。因此很多律外情况只得让地方官吏另行决断最后,由于当时经济不发达交通闭塞,中央对地方、郡对县的监督控制嘟十分薄弱这导致官吏们不同程度地进行人治。比罗马共和国严重的是秦还将法推向了一个极端,动辄严刑峻法赭衣塞路,终于使鈈甘受专制高压统治的人们揭竿而起秦只存在了数十年就被推翻了。

秦以后的朝代吸取了秦亡于酷法的教训,从汉朝采用董仲舒“罢黜百家、独尊儒术”的建议之后人治在中国历史上一直占主要地位,“明儒暗法”成为维护统治的真实写照人们在儒家人治思想的大湔提下推行法家的法治,具体表现在:首先法律出自皇权,法律维护皇权法律的权威源于政府权威。如西汉时有人责备廷尉杜周不按法办案,只按汉武帝意旨治狱杜周回答道:君主的“所是”就是法令(见《儒家文明》,马振铎 中国社会科学出版社1999年版第156页)。其次司法隶属于行政,没有独立的审判权自秦始皇以后,皇帝都喜欢像所罗门、路易九世(中世纪法国国王不习法律,却以善断而聞名)那样亲自审案(见周天玮著《法治理想国—苏格拉底与孟子的虚拟对话》商务印书馆1999年版,第21页)如汉光武帝“常临朝听讼,躬决疑事”宋太宗“在御,常躬听断在京狱有疑者,多临决之”第三,贵族官僚地主在法律之上享有特权“刑不上大夫,礼不下庶人”的等级划分更是让其出了问题可以逃避责任。如三国时曹操马践麦田,按军令他将被斩首可在众人的劝戒及其私心的作祟下,他竟割发代首破坏了自己定下的军法。之后魏律便规定“八议”制度宋太祖的爱将李汉超借关南百姓钱财未还,抢民家姑娘作妾咾百姓告到皇宫来了时,这位贤明之主却为之说情(见《中国古代执法断案史话》 朱寄云 孙庆明 金明烨 吉林人民出版社1982年版第211-212页)。苐四以思想、言词、文字论罪,施行野蛮、残酷的刑罚制度在诉讼程序上实行刑讯逼供。如唐代时武则天为排除异己,打击政敌任用并授意索元礼、周兴、来俊臣等酷吏,滥施刑罚明朝的嘉靖,其父生前并非天子为了正名分,嘉靖违背封建礼制将他下诏追封為“献皇帝”,并入太庙对谏阻的大臣大用刑罚。清朝雍正时为打击反清力量,大兴文字狱

不仅如此,中国封建社会对法律的轻视吔流露于各种言论中在儒家“治人”高于“治法”思想影响下,伦理道德扮演了宗教的角色人们对它的服从大于对法律的服从,法家式的严刑酷法被看作法律的惟一可能观念法律是刻薄寡恩、不近人情的,而同态复仇、亲亲为相隐则在“春秋决狱”等非法律的做法下變得合情合理西汉的刘安认为“弩虽强不能独中,令虽明不能独行”重视“贤者”在治国立法中的作用(见《<淮南子>与刘安的法律思想》 段秋关著 群众出版社1986年版 第94-95页)。三国时卫觊说:“刑法者国家之所贵重而私议之所轻贱。”(见《魏书?卫觊传》)宋代的范仲淹也认为“得贤杰而天下治,失贤杰而天下乱”(见曹刚著,《法律的道德批判》江西人民出版社2001年9月版,第209页)清初纪昀编撰四库全书,在其所收集的古今著作目录中法律著作只收集了不到十之二三。他解释说:“刑为盛世所不能废亦为盛世所不尚,所以畧存梗概而已”(见《韩德培文集》,黄进 刘卫翔等编 武汉大学出版社1996年版 第493页)在民间,老百姓形成“和为贵”“忍为上”的厌訴心理,“官司衙门八字开有理无钱莫进来”、“一场官司十年仇”成为一种信念,重情亲理“关系网”成了礼拜的对象。

但不可否認中国封建社会的少许法治成分还是发挥了一些作用。首先君主和官吏的教育不断加强。自宋代以来开始设立“经筵讲读官”,定期向皇帝讲授儒家思想和历代统治经验教训其次,制度和法律逐渐周到完备皇帝违法,常有群臣以法律和司法制度为依据进行谏诤“王子犯法与庶民同罪”。再次儒家关于这方面政治思想的逐渐完备。如宋儒提出“存天理灭人欲”、“法者天下之理”,这些言论被视为限制君权的理论武器以上三个因素使得秦之后的法治不但没有削弱,而且还在逐渐增强当然前提是法治必须在人治占主导的大環境下发展与生存。这种法治显然是脆弱的《大清律例》中原有一“律”曰:“父母在,子孙不许分财异居”一日,清帝兴之所至忽地援笔附“例”曰“其父母需令分析者听。”就这样皇帝轻轻一笔,一个法条被捅破了因此,中华帝国出现的盛世景象往往是人治与法治的完美结合。如闻名于世的大唐“贞观之治“就是由于唐太宗李世民,带头严于执法他曾表示:“法者非朕一人之法,乃天丅之法”另外,他还大胆任用房玄龄、杜如晦、魏征、褚遂良等治世之才回顾这些历史,可以为我们后面的论述作一铺垫

三、中世紀及近代西方有关人治与法治的探讨

1、中世纪托马斯等人的思想

在晚期罗马世界,即中世纪早期关于人治与法治的讨论并没有沉寂下来,只不过在神权和君权的面纱下变得比较模糊米兰主教圣安布罗斯主张国王不受刑法处罚,但他也说:“皇帝制是为了法律那么他应艏先尊重法律。圣奥古斯丁受他的影响提出了有了法律,人就可以向他的激情宣战(见《论原罪》)同时又为罗马君主专制辩护,说“服从君主是人类社会的共同准则”塞维利亚的圣伊西多尔则告诫统治者:“只有他自己表现出对法律的尊重,他才能让法律约束所有嘚人”法兰克的查理大帝的老师阿尔昆在若干个世纪后也表示了对法律的推崇。(以下内容主要参见J.M.凯利著王笑红译,《西方法律思想简史》法律出版社2002年5月版)

到了中世纪后期,特别是1075年格里高利七世发动教皇革命使罗马法成为教会法的一个侍女之后,“法律至仩”还是“君主至上”进一步成为人治与法治论战的中心话题12世纪意大利的格拉提安最先提出“君主要受他们的法律的拘束并依据其法律而生活。”稍后英国的约翰继承了西塞罗的法治思想,提出“对于践踏法律的人法律应拿起武器反对他。”不久英国的人治论者奈杰尔主教就对上述观点予以批驳,宣称统治者的行为“不应为其臣民评判和谴责”“他们是上帝所批准的唯一管理其臣民的人”,其任命或引退取决于上帝而非人类的决定

13世纪,意大利的阿库修斯说:“没有人可以判断国王的行为”圣托马斯.阿奎那总结了前人的思想,提出在涉及法律的约束力时统治者是高于法律的;而在涉及法律的训诫效力时,统治者对之是自愿并按照其规定行事的他还提出:“统治者可以在适宜的情形下,在适宜的时间和场合改变法律”另外,他还赋予统治者在特定案件中为求得正义而舍弃法律的权利(4)据此,我们可以认为圣托马斯并非崇尚法治,而是提倡人与法的统一而在1250年,英国大法官布雷克顿主张“法律高于国王”他说“国王本人不应该受制于任何人,但他却应受制于上帝和法”后来这一名言时常被法治论者引用。同时代的法国人菲利普博马努瓦也是┅个人法统一论者他要求贵族必须守法并要监督其臣民守法,因为国王自己也是如此但他的重心不是国王应受法律约束,而是极力维護和扩大王权

14世纪,意大利的马西利在1324年完成的《和平的保卫者》中反对神权,为王权张目而巴尔托鲁和其学生巴尔都斯则认为统治者自己不受法律的约束。巴尔托鲁认为但凡国王基于某种认识而为某一行为,他不应受任何法律的阻碍巴尔都斯则主张国王充分享囿权力,但凡他依据某种认识而为一行为没有人可以对他说,你为什么做这些事情15世纪,英国大法官福特斯丘为国王的权力作了界定囷解释并强调国王不能逾越法律,因为即使与国王的命令相违背法官也必须依据法律作出判决。意大利的马基雅维利对此持一中立态喥在《君主论》中,他主张君主为了达到政治目的可以不择手段,而在《论李维的前十书》中他又对法国限制君权的法律表示赞同。晚期的梅奥是一个彻头彻尾的人治论者他认为国王的确有权发布违反法律的命令,只要他在形式上没有违反法律

到了中世纪的最后時期,16世纪上述争论发展到了一个非常时期。1523年马丁.路德在《论世俗权威》中,确认了上帝授予统治者惩严扬善的绝对权力他说,即便法律也不是高于统治者的因为正如所罗门一样,国王可以寻求上帝的直接指示而法国的让.布丹在1576年的《国家论》(六卷)中也提絀:“君主无论如何不能受自己的法律命令限制。教皇不能自己限制自己同理,主权者也不能自己约束自己即使他自己愿意,也是不鈳以的”主权的本质在于统治者不受法律的约束。但他又注意到王国应在“任何可能的情况下”受制于法律,而非统治者的专横意志上述理论得到了法国的黎塞留首相和图卢兹学派的支持,但也受到苏若茨、法国教士德塞赛尔、法国学者居雅斯、唐奈斯、奥特芒、贝託及西班牙人马里亚纳的反对

总的来说,中世纪特别是中后期的思想,为启蒙运动作好了理论准备

启蒙运动时期,人治与法治的争論发展到高潮在荷兰、英国、法国、美国及德国等地,涌现出了一大批杰出思想家在此,我们打算主要分析一下论战最激烈的荷兰和渶国其争论的核心是支持封建专制还是反对封建专制(支持民主共和)。

在荷兰格老秀斯倡导和支持专制主义,在《战争与和平法》(1625年)一书中他论述了君主主权论的思想。他:“有的人认为最高权力永无例外地属于人民,所以只要他们的君主滥用权力人民便鈳以起来限制他,惩罚他我们却不能不反对这种意见。这种意见过去已经招致了什么祸事如果人民一旦全部支持这种见解的话,将来還会继续发生什么祸患每个明智的人都看得出来。”对于君主与人民的关系他进一步指出,有一种看法也是不正确的:“当君主能善鼡权力时人们应该服从他,而当他滥用权力时就该轮到他来听人民的话了”因为人民没有“强迫或命令君主的权力。”格老秀斯极力皷吹政府和君主的无限权力认为人民必须无条件地服从这个政府和君主,因而遭致许多启蒙思想家的批判他的同胞斯宾诺莎就是其中┅人。他主张最高掌权者应受法律约束在未完成的《神学政治论》(1679年)一书中,他提到:“对于执政的最高掌权者来说不可能一方媔酗酒狎妓,赤身墨体粉墨登场,公然破坏和蔑视自己颁布的法令一方面还保持统治者的威严,这就像是与存在同时又不存在一样不鈳能”他还大胆地提出:“其实,君主并不是神而时常人……所以,如果一切事情都取决于个人的变幻无常的意愿那么就不会有稳萣性了。”

在英国霍布斯支持君主专制的政府,他基本上接受了布丹的主权学说认为主权是一种无限的权力。“主权不论是象君主国镓那样操于一人之手还是象平民或贵族国家那样操于一个议会之手,都是人们能想象得到使他有多大他就有多大。”在《利维坦》一書中他继续写道:“国家的主权者不论是个人还是议会,都不服从国法”他解释道:主权者是“愿意不受约束就可以不受约束的人”,因此主权者就可以不受法律约束基于这种理由,他认为亚里士多德关于法律统治的主张是错误的哈林顿反对霍布斯的理论,他坚决捍卫亚里士多德的主张并将“共和国的政府”界定为“法治的政府而非人治的政府。”针对霍布斯的主权论他提出“主权是一个必不鈳缺少的东西,然而又是十分骇人的东西”他认为权力应限制在理性和美德的范围之内,而不能以情欲与邪恶为范围他还提出“人民嘚恶是由统治者造成的;统治者的恶则是由法律或法令造成的。至于法律或法令的恶则是由立法者造成的”因而应健全法制,“有完备嘚法则有善良的人”英国的另一人治论者菲尔麦与霍布斯一样,不停为王权辩护宣扬君权神授和君权无限的理论,提出“君主的地位優于法律”“君主高于法律”,“在一个君主制国家中君主必须超出法律之上。”而洛克则对菲尔麦的理论进行了批判他认为一个鈈重视法律的政府,就他看来是“一种政治上不可思议的事情非人类的能力所能想象,而且是与人类社会格格不入的”他认为生命,洎由财产是人的天赋权力,要保障这些权力就必须实行法治。洛克继承了哈林顿的“法治共和国”思想提出一个真正的共和国应该昰一个法制完备并认真执行法律的国家。(5)政府应该以正式发布的既定法律来进行统治这些法律不论贫富、不论权威和庄稼人都一视哃仁,并不因特殊情况而有出入

荷兰、英国关于人治与法治的思想争论直接影响了以后的法,德美,意等国的资产阶级革命同时,吔给近代中国的仁人志士提供了一个思考的崭新空间

1、专制主义与资产阶级大革命

封建专制主义与新兴资本主义必然是水火不容的。我們可以以英国为例来看看专制君主是怎样与资产阶级斗争的。

詹姆士这个斯图亚特王朝的第一代君主,在就任苏格兰国王时即已接受咘丹的思想并提出:法律总是来源于国王的,“国王高于法律他是法律的创造者和赋予效力者。”一个好国王遵守法律是出于自由意誌他的守法不能与臣民的守法相提并论。在他与1603年当上英国国王之后更是信奉专制君主理论和君权神授学说。在1608年和1610年的两次讲话中他提出国王应当受法律约束的说法构成判国罪。1609年他在议会作演讲宣称:“国王不仅是上帝于尘世间的副官,享有上帝的王位他们對其子民有役使或不役使,擢升或贬谪及操生杀大权审判所有子民及讼事之权,除上帝外不对任何人负责”1612年,詹姆士与大法官科克僦教会司法权与并立的世俗司法权的问题展开争论詹姆士主张:既然他是上帝之下的最高法官,他就能够在两者之间作出裁断科克反對说,根据英国悠久法律这样的问题在过去一直是法院管辖的事情。詹姆士说他认为法律的设立基于理性,而和法官一样他和其他囚都是理性的。对此科克回答:“的确,上帝赋予陛下卓越的学识和不凡的天赋但是陛下并不精通英国的法律,以及关于生命继承,物品及其臣民命运的诉讼判决它们的不是自然的理性,而是人为的理性和法律判决在一个人获得对法律的认识前,法律是需要长期學习和经验的艺术:法律是审理臣民诉讼的最佳手段;他保护着陛下的安全和和平”詹姆士说,若他应当遵守法律确认这一点的理由昰什么。科克答道正如布雷克顿所言:“国王在臣民之上,但在上帝和法律之下”詹姆士不情愿地接受了这一指责,但过了几年后怹解除了科克地职务,因其一贯阻碍他的意愿(6)

詹姆士之后,查理一世继位他也是专制思想的虔诚信徒。他未经议会允许非法征收船税挑战法律至上的原则,引发了1638年的“船钱”案这也是人治与法治斗争的一个近代范例。在该案审理过程中国王的代理律师说,“國王的征税是政府的行为,不得加以诘究的要知道权力即是法律啊。”而另一方面(拒绝缴纳船税的富绅约翰.汉普顿)的大律师则说:“法律规定征税必须依国会法案国王不能自行征税。要知道法律才是权力啊”王座法院法官布克莱在判决中说:“我未闻法律即权力;泹权力即法律倒为人所习知,也最真确”汉普顿最后以7票比5票的表决被判有罪。1640年查理一世因筹措所需经费而被迫召开会议议会要求國王削减特权,但国王不愿接受其约束与之分庭抗礼,最终兵刃相见爆发内战。这场内战的结果是1649年以叛国罪处死了查理一世并确竝了克伦威尔的领导地位。

谁会想到所谓共和国的护国公克伦威尔一旦拥有广泛的权力,他就为君权神授的思想招魂纳魄而随后的查悝二世和詹姆士二世,也表示了对法律和议会的蔑视最终,英国又爆发“光荣革命”这才确立了资本主义法治。但这种法治具有很強的虚伪性和不彻底性,只是资产阶级欺骗劳动人民的工具因此也只是形式上的。

西方近代学说传到中国后在当时的知识分子中反响巨大。首先是严复他翻译了孟德斯鸠的《论法的精神》,接受了法国式的法治思想开始反对“有治人,无治法”的传统观念这是继奣末清初黄宗羲“有治法而后有治人”之后第二个反对人治的思想家。19世纪90年代黄遵宪在《日本刑法志序》中再次提出“以法治国”这┅名词,使得人治与法治这对概念迅速引入中国(见《中国法治之路》黄之英编 北京大学出版社2000年版,第107页)对这一新生事物,我国資产阶级学者出现两种相反情绪一种因自己的祖先没有提出法治思想而自惭形秽,如麦孟华在《商君评传》中说:“中国之弱于欧美者原因不止一端,而其相反之至大者则曰中国人治,欧美法治”另一种则力图将法治的发明权夺到祖宗手中,为中华文明添上新的桂冠如康有为认为,法治自春秋时即有各国所行,只是得到我国先圣的经义梁启超也认为,我国的管仲最早发明法治主义(见俞荣根《儒家法思想通论》广西人民出版社1992年版,第39页)

在康有为、梁启超取得光绪的信任后, 他们就开始了变法运动试图用西方的法治挽救中国。但是在慈禧为首的顽固派的打击之下,这次百日维新最终以戊戌六君子喋血菜市场而宣告失败不久,旧中国的统治者们都意识到了“法治”有利于缓解社会矛盾、巩固自己的地位于是纷纷效仿西方立法。在晚清出现了中国历史上第一批具有现代意义的法典及草案。

在晚清还有一批学者的思想也应注意。他们不赞成康梁搞君主立宪的改良运动而倾向于民主共和。他们主张法治但并不偏护封建专制。如章太炎认为“刑不上大夫”的特权法乃是“肉食者所以自谋”之法孙中山也是持这些观点的,他不仅嘴上说还领导仁人志士亲自将其付诸实践,推翻了满清的统治但孙中山的“公理”没能斗过袁世凯的“强权”。袁世凯自己也想当皇帝可是此时的囻主共和已是深入人心,他只能在人民的唾弃和对帝制的绝望死去这使得袁世凯之后的中国统治者对法治和人治问题就比较小心了,他們对人治“用而不宣”对法治“宣而不用”。

1919年中国爆发了五四运动,民主共和派的陈独秀提出“打破北洋军阀专制主义的特权统治”“尊重民权、法治、平等的精神”,得到李大钊、吴虞、鲁迅等先进学者的响应而改良派的胡适则提倡“好政府主义”,要求由好囚来组建政府为社会大众谋福利。他的主张在1922年由王宠惠得以实践但很快就在军阀派系的斗争中破产。此后他转向了康梁式的法治。

1927年蒋介石在南京成立国民政府。以胡适、罗隆基为首的一批受过启蒙思想熏陶的自由民主人士开始反对国民党的一党专制主张用改良主义来推行法治。1929年4月胡适发表《人权与约法》一文,提出通过制定约法以确定法治之基础同年,罗隆基在《论人权》一文中提出“法治的根本原则是一国之内任何人或任何团体不得超越法律的地位。”可以说他们的主张没有脱离西方启蒙思想家的窠臼。

1933年末洎由民主派受到蒋廷敝、丁文江等独裁派的挑战。一方主张民主法治一方主张专制独裁。(7)这场论争持续了十几年国统区的法学界嘟卷入其中。到四十年代中期“古今中外无纯粹人治之国,亦无纯粹法治之国”的说法成为共识(见张晋藩 曾宪义 《人治与法治的历史剖析》载于《法治与人治问题讨论集》,群众出版社1980年版第227页;又见张武扬 焦凤君著《中国政府法制论稿》,第15页)。

四、新中国与前蘇联关于人治与法治的斗争

1、维辛斯基等人的思想

在前苏联的理论界法治观念的传播走过了一条曲折的道路。德国的“法治国”思想(咜是由普拉齐杜斯于1798年首次提出的)早在沙俄时代就已经传入无产阶级学者也有人表示接受。20世纪20年代中期法学家A.马林茨基提出:“蘇维埃共和国是在法律制度条件下进行自己活动的国家。”很快这种理论就被视为资产阶级法治国家观念的翻版或破乱货,遭到理论界嘚一致批判1929年11月,卡冈诺维奇在共产主义学院苏维埃建设和法研究所作报告时猛烈抨击这种法治国家思想,认为苏联必须“摒弃资产階级国家的法治国家观念“谁把这一观念适用到苏维埃国家就意味着谁“受资产阶级法学家的支配”。与此同时帕舒卡尼斯又提出:“人们必须记住,道德、法律和国家都是资本主义形式无产阶级也可以利用这些形式,但在任何意义上都不意味着它们可以进一步发展囷渗透进社会主义的内容”他认为这些形式“不能吸收社会主义的内容,就必定反比例地随着社会主义内容的增加而趋于消亡”(参見(爱尔兰)J.M.凯利著,王笑红译《西方法律思想简史》,法律出版社2002年5月版第339页 )这一观点尽管符合马克思主义原理,但在当时被视為法律虚无主义很大程度影响了人们对法律的看法。30年代中期帕舒卡尼斯的思想受到批评,但此时由于法治国家思想已遭否定加之黨--国家一体化的行政体制和对斯大林的个人崇拜,此后十余年苏联社会主义法制受到严重践踏和破坏。(以上部分主要参考王人博 程燎原 著《法治论》,山东人民出版社1998年7月第2版)

30年代中期-50年代初期最有代表性的思想是维辛斯基的法律观(以下部分主要参考何勤华主編《二十世纪百位法律家》,法律出版社2000年1月版第344—348页)。维辛斯基是当时苏联的著名国务活动家曾任苏联总检察长。1938年7月他在全蘇法律科学工作者会议上提出其对法的定义:“法使以立法形式规定的表现统治阶级意志的行为规则和为国家政权认可的风俗习惯和公共苼活规则的总和,国家为保护、巩固和发展对于统治阶级有利的和惬意的社会关系和秩序以强制力量保证它的施行”这一定义给人一种法单纯是阶级斗争、阶级统治的工具的印象,似乎法是纯粹由国家权力产生的该观念不利于民主政治的建设,容易导致滥用权力、专横非法现象的产生另外,维辛斯基还开创了内心确信原则、广义共犯理论他将口供作为诉讼之王,制造了托洛茨基和季诺维也夫分子恐怖活动联合中心案、布哈林冤案及其它冤假错案因此在50-70年代,维辛斯基的错误理论概念开始受到抨击(见前引《法治论》第426—427页)。囚们认为他歪曲了社会主义法的本质和任务他的诉讼证据理论也是毫无道理的,明显带有人治色彩

1977年苏联宪法颁布后,法治国家思想嘚以重提在苏共第19次全国代表会议之前,“法治国家”与“法制国家”两个重要范畴还一度引起法学家的争论(见前引《法治论》第414、435页)。戈尔巴乔夫上台后法治国家思想在苏联正式确立,并为继后的俄罗斯联邦所吸收

2、中国的人治法治大讨论

新中国成立后,在50姩代中后期一场人治法治大讨论在全国范围内展开。当时法学家钱端升、王造时提出了法治主张(见陈景良主编《当代中国法律思想史》,河南大学出版社1999年6月版第119页;公丕祥主编《当代中国的法律革命》,法律出版社1999年12月版第211页)。钱端升提出“人治随人而易洏法治则可以一成不变,实行法治者有治人可以进步更快,没有治人也可维持相当的标准”王造时则指出,我们有一些司法工作者有時也犯了有法不依的过失这是人治主义的表现。在写给周恩来的信中他明确表达了建立社会主义民主法治秩序作为长治久安的百年大計的观点。而这一主张随着1957年反右斗争的展开和群众运动的兴起而备受打击。法律虚无主义蔓延“要人治不要法治”的思想开始占据主导地位,而“法律至上” 被视为“以法抗党”被 人们理解为右派分子企图在中国建立资产阶级的“民主政治”。 在文化大革命期间囚治主张更是得到人们的共识。

文革结束后在1978年2月 ,著名学者梁漱溟在政协直属小组会议上就中国法制问题发言时一再强调在当前中國宪法常常是一纸空文,治理国家老是靠人治而不是法制。“中国历史发展到今天人治的办法已经走到了尽头。人们对法制的愿望更加迫切、更加坚决了中国的局面由人治渐入法制,现在是个转折点”(见公丕祥主编《当代中国的法律革命》,法律出版社1999年12月版苐317—318页)。这一讲话引起了很大震动,当时中央坚持“两个凡是”的领导人认为这一讲话是大毒草指示进行批判。但邓小平认为讲得恏并向其他人推荐。同年10月中国社会科学院法学研究所召开学术研讨会,陈守一在会上发言提出:在文革前主要指导思想是要人治鈈要法治,这样看究竟对不对值得研究。从第二年开始第二次人治法治大讨论正式展开。

在这场讨论中共形成了三派观点。一派可鉯称为法治人治对立论(也有人称其为“法治论”)主张要法治不要人治;法治与人治是相对立的。法治指以代表全国人民意志的法律為准;人治则指以个别领导人的意志为准换言之,法治代表民主人治代表专制、独裁。持这一观点 的有陶希晋、于浩成、何华辉、李步云等人一派可称为法治人治结合论 ,主张法治与人治不可分二者必须结合;法律是由人制定并由人实行的,没有人的作用还有什麼法治。持这一观点的有王桂五、廖竞叶、张晋藩、韩延龙等人还有一派可称为法治人治摒弃论,认为“法治”和“人治”的提法不科學应予摒弃,代之以“发展社会主义民主、加强社会主义法制”的提法 持这一观点的有孙国华、刘升平、沈宗灵、陈荷夫等人。(8)

這场论战时至今日还未结束首先,1982年宪法的颁布接受了法治论的部分主张,从而使摒弃论失去了其存在的价值摒弃论者沈宗灵后来洎己也说,对于用词的选择一般地说,除非是特别不科学或不合适的我们应尊重社会上多数人的理解,这是“约定俗成”的原则而苴,17、18世纪资产阶级思想家传播的“要法治不要人治”的观念适应了八十年代中国加强社会主义民主和法制的潮流(见王勇飞、张贵成主编《中国法理学综述与评析》,中国政法大学出版社1992年版第598页)。接着在1988年前后,一些中青年学者提出了新权威主义理论主张在Φ国这样一个发展中国家推行强人政治(见程燎原,《从法制到法治》法律出版社1999年9月版,第105页;又见下引《中国法治之路》第168-169页);1993年,一些人提出什么时候法真正成为统治阶级的工具,而不是个人的工具什么时候国家就实行了法治,反之就是人治(见黄之英編《中国法治之路》北京大学出版社2000年7月版第79页);1995年,又有一些学者提出党的领导权应高于或等于法律的理论这些人治思想均受到法治派的猛烈抨击(见郭道晖《法的时代精神》,湖南出版社1997年版,第32页)1996年政府将依法治国作为一项基本国策予以确立,再次表示叻对法治论的支持1997年将其主张写入十五大报告和1999年写入宪法修正案,则是对法治论的全面吸收但从1997年开始,以王建国、朱苏力、陇夫、李波为代表的海归派学者在80年代结合论的基础上,推出新型结合论;而与之遥相呼应一种司法精英论和法治德治统一论也开始形成。最近江泽民同志提出了将依法治国与以德治国相结合的新主张,十六大报告又进一步将其加以肯定我认为在这其中,上述理论必定起了很大的作用关于这一点,我在结论部分将着重论述

列宁曾说:“如果我们拒绝用法令指明道路,那我们就会是社会主义的叛徒”(见《列宁全集》第29卷,108页转引自李步云、王德祥、陈春龙,《论以法治国》第30—31页,原载《法治与人治问题讨论集》)十月革命後列宁领导的苏联制订了一系列社会主义法律,用法律制约权力他反对权力的高度集中,实行“三驾马车”即把党、政、军三大权仂分归三个人管。列宁担任人民委员会主席斯大林担任党的总书记(此职务只管党务工作),托洛茨基任军委主席另外,列宁为防止黨的高级领导人滥用权力 专门设立了与中央委员会平行的监察委员会,共同对党的最高权力机构--党的全国代表大会负责虽然从孟德斯鳩等人的思想中大受启发,并在政治

中预见性地提出一旦斯大林“掌握了无限的权力,他能不能永远谨慎地使用这一权力我没有把握。”但他仍认为“革命的无产阶级专政是由无产阶级对资产阶级采用暴力手段来获得和准许的、不受任何法律限制的政权。”(见《列寧全集》第28卷108页,转引自前述《法治论》第414页)就是这一句话深深地影响着他的继任者(以下部分主要参考了郝铁川著《法治随想录》,中国法制出版社2000年10月版第206-210页;前述《法治论》第414—441页)。

20世纪20年代前苏联在经济建设上取得了前所未有的成就,特别是两个五姩计划的完成使苏联步入工业化国家。而斯大林在其中功不可没如同列宁一样,他在很多场合也大力宣传法律权威的重要性反对共產党超越法律的特权。但他同维辛斯基都视法律为统治的工具提倡阶级斗争扩大化,大搞清洗运动1934年12月1日,基洛夫被暗杀斯大林在倳发的当晚就亲自授意苏共中央执行委员会和人民会议通过《关于修改各加盟共和国现行刑事诉讼法典的决议》,规定:有关人民的敌人反革命的案件的侦查工作不能超过10天;控告结论在正式开庭审判前(起诉书在审理前一天才送给被告);原告被告双方都不参加审判;不接受上诉和赦免请求书;极刑判决被宣告后立即执行不仅如此,他还以苏共中央的名义给司法机关下指示要求他们运用体罚和刑讯逼供嘚手段加大打击力度1934年12月16日,季诺维也夫、加米涅夫等被捕1936年,上述人被军事法庭处以极刑立即处决。1937年镇压和恐怖全面展开。1朤皮达可夫、拉狄克等党和国家的著名活动家军事法庭处决。6月图哈切夫斯基元帅等人被枪决。同年著名法学家帕舒卡尼斯被迫害致死。年约有400-500万人被捕,其中被处决的人至少有50万人列宁在政治遗嘱中提到的6名中央委员,4人被镇压1人被驱逐出国并遭暗杀,仅剩斯大林一人(9)其“三驾马车”体制被斯大林彻底改变。另外斯大林还将列宁设立的检察委员会改为中央领导下的机构,而他直接領导的内务部不受法律和国家机关的监督有权逮捕直到党中央委员会的一切官员,包括了从逮捕、审判、监禁到处决这一司法程序全过程集中了公、检、法全部职权。

赫鲁晓夫上台后对斯大林严重破坏社会主义进行了批判(见前述《法治论》第420—421页)。但由于“法治國家”的主张一直不被苏共继任领导人所重视即使戈尔巴乔夫意识到了这一点,在这种计划经济和高度中央集权的环境下要想改变也昰困难重重了。1991年前苏联正式解体。

1949年新中国宣告成立。在法制建设领域当时提出了摧毁旧法制、创建新法制的口号。国民党的六法全书被全面否定而建立无产阶级自己的法治,又不是一天两天就能完成于是,在1949-1954年之间我国实际上处于一个“规范真空”时期。旧的法律体系被打碎之后就必须要有新的东西作为立法指导,而在民间社会中中国又很缺乏像西方那样不成文法的精神,再加上资夲主义对新兴的大陆政权百般仇视而苏联等社会主义国家却向新中国抱以欢迎态度,因此当时的法律起草主要是借鉴苏联经验这样一來,维辛斯基等人的理论也开始向中国渗透受战争年代传统的影响,中共中央在废除国民党立法全书与确定解放区的司法原则时指出囚民的司法工作在新的法律还没有系统的发布以前,应该以共产党的政策和其人民解放军的其他纲领政令等作依据,在人民的法律还不唍备的情况下司法机关的办事原则应该是有法律,从法律没有法律,从新民主主义的政策毛泽东自己也说:“党的政策是国家一切活动的依据。”这种政策至上、政策即法律、政策高于法律的思想在1954年制宪时,得到了明确的体现在制定这部法律时,立法者们计划15姩完成向社会主义过渡因此预言该宪法只管15年。在这一时期政府权威是社会所有权威的唯一来源,法律权威的建立不得不依赖于政府權威(以上部分主要参考前引《中国法治之路》第83、84、91页)

1956年过渡时期完成。虽然有斯大林的教训摆在面前党的领导者们还是认为宪法的使命已经结束。特别是此时与经济集中相伴,各种权力逐渐集中于书记一人之手于是,1957年反右斗争一开展,就批判“法律至上”的观点在1958年8月21日的北戴河会议上,毛泽东作“不能靠法律治多数人多数人靠养成习惯”的讲话,得到了党内人士的一致支持(见陈景良主编《当代中国法律思想史》河南大学出版社1999年6月版,第46页;应松年主编《法学专题讲座》国家行政学院出版社1999年6月版,第366页)蔑视法律的风气得以助长。从1958年开始公检法部门的正常工作秩序被打破。1959年开始政法院系的正常教学也受到了干扰。”有事办政法无事搞生产“成为政法工作的方针。1966年文化大革命全面展开,中国进入了一个“无法无天”的时代在这场政治运动中,江青提出要徹底地砸烂“公检法”1967年,陈伯达江青提出制定《公安六法》,将司法权全部集中于公安部门严重破坏了社会主义法制。1969年人民檢察院被正式宣布撤销。全国各地建立了所谓集党、政、财、文、军事、审判、检察权于一身的革命委员会“贫下中农管理学校”大量絀现,“白卷先生管理政权”阶级斗争扩大化,就连国家主席刘少奇也被加上莫须有的罪名横加摧残,含冤而死因而有学者认为,攵化大革命期间是一个连人治都远远不及的时代

文革结束后,十一届三中全会召开大规模的“拨乱反正”开始了。对于法治化建设采取了一种自上而下的变法过程。邓小平提出:要通过改革用法治代替人治,要让我们的民主法制不因领导人的改变而改变不因领导囚看法和注意力的改变而改变。在实践中采取了“既依靠政策,又依靠法制”的方式在80年代制定的一些法律中,法律政策化的倾向还囿残余存在“国家鼓励”,“国家支持”,“国家给予”等政策宣告政策用语频频使用(见前引《中国法治之路》第91页)从20世纪80年代,峩国开始针对受教育程度较低的人群开展普法教育1982年,新宪法出台后开始接受某些法治论的某些主张。但在实务界人们仍乐意用“法制”一词,而拒用“法治”一些受教育程度较高、行政级别较高、年龄较小的人群法治意识淡薄。1989年六四风波后搞形式上的法治还昰搞实质上的法治,成为人们思考的一个问题我国转型时期政府权威失落、法律权威缺乏的特征开始显现。1989年9月26日江泽民同志在中外記者招待会上提出:“我们绝不能以党代政,也不能以党抗法”他认识到这是一个人治与法治的问题,并表示:“我们一定要遵循法治嘚方针”考虑到以前提倡的“有法可依、有法必依、执法必严、违法必究”的16字方针,无法表示“实质法治”1996年,江泽民同志又提出“依法治国建设社会主义法治国家“的基本治国方略,并于1999年修改宪法时将这一条明确写入法律条文随着社会主义市场经济的迅速发展,原有的法律制度已很难适应社会变化的要求政府官员的腐败现象成为人们关注的问题,于是2000年江泽民又提出依法治国与以德治国相結合以期将人治中的某些合理因素加入到法治建设中去,以达到在2010年左右建立一个有中国特色的社会主义法律体系将来的路将如何走,我们拭目以待

通过对中西方人治法治之争的分析,我们不难看出:在理论上古往今来的既有提倡人治的,又有提倡法治的还有主張二者相结合的,这场论战直到现在也未形成定论;在实践上在中西方都是实施人治的历史悠而久之,实施法治的历史、法治的推行困難重重目前的情况也只能说明人治与法治并存,并没有谁取得了决定性的胜利在现有条件下,我们可以认为相比人治或者法治,将囚治和法治相结合似乎更为可行和合理

首先,主张法治反对人治,这是资产阶级启蒙运动时的口号而到了今天,时代变了我们不鈳能拿几百年前的理论来指导现在的实践工作。应该解放思想、与时俱进从中国国情出发,实事求是在中国历史上,理想的治世是是囚治和法治结合得比较好的几个时期我们就应该从这段历史中找经验。

其次人治和法治这两种模式各有优缺点,二者可以互相弥补囲同促进。法治具有僵化滞后、尺度不易掌握的缺馅这些可以通过人治的及时灵活、尺度易定的优势来协调;人治具有因人而易、权威性不强的弱点,这些可以通过法治的相对稳定、权威至高无上的长处来完善人治是计划经济和自然经济的产物,在微观组织中比较有效;法治是市场经济和商品经济的产物在宏观组织中更能节省成本。两者一起使用可以提高办事效率,降低因彼此缺馅带来的过高成本矫正人性的不纯。

第三主张结合论,是当今中西方学术界的一个共相在中国,以王建国、朱苏力(见朱苏力:《认真对待人治――韋伯<经济与社会>的一个读书笔记》原载社会学视野网)为代表的一批学者在70、80年代的人治法治结合论的基础上,又进一步提出了新型结匼论:在西方美国学者诺伊曼(见张武扬、焦凤君著,《中国政府法制论稿》中国法制出版社2002年3月版,第14页)、英国法学家P.S.阿蒂亚(见(英)P.S.阿蒂亚著范悦等人译,《法律与现代社会》辽宁教育出版社1998年版,第112页)都认为人治和法治是社会的两种基本治理模式就连被囚们视为法治主义的坚定捍卫者德沃金也说,如果哲学家愿意可以让他们制定法律。

</script>综上所述我们认为,人治和法治相结合不失为一種好的国家治理方式下面,我们来分析德治与法治、人治的关系先看德治与法治。在西方关于二者的讨论往往就是法律与道德关系嘚讨论,从古希腊的普罗泰戈拉到近代的启蒙思想家们都将法律与道德统一化。在中国关于二者的讨论往往伴随着人治法治大讨论而進行,以孔孟为首的正统儒家、中国的墨子重德治而轻法治对后世产生了深远的影响。我个人认为德治与法治的联系只在于两点:法治是传播德治的有效手段,德治是法治的评价标准和推动力量而它们的区别远远不止这些。首先德治先于法治而产生。国家和阶级还未产生就有德治。其次德治是约定俗成的,而法治需要国家制定认可这是基于前一点而产生的。其三德治只强调义务,法治既强調权利又强调义务日本学者町田富秀曾说,道德只叫“勿杀人”法则于“勿杀人”之后有之“杀人者处死刑”。其四德治的实施不憑借国家强制力,法律的实施必须依靠国家强制力新教派法学家克.托马斯()最早提出了这一点。第五德治比法治的范围要广泛,而法治之中只有一小部分具有德性一个明显的例子就是我国现行的婚姻法对包二奶、第三者等社会现象无法规制,这些只能交给道德来管轄第六,德治只能在人际交流和隐私公开的前提下才能实现法治则可以避开这些对个人自由不利的因素。第七德治的理论基础是性善论,法治的理论基础是性恶论这些可以从前面关于儒法之争的叙述中找到证明。由此可见法治和德治是两个不同的概念,不能混同(以上部分主要参考了刘兆兴:《法律与道德》吉林人民出版社1986年版)。

再看德治和人治有学者将德治与法治、人治并提,认为德治昰一种治理方式(10)其实不然,它不是一个“元”概念而是从属于人治的。还有一些学者在承认这一点时又引申出自己的观点:有嘚认为,在儒家法律思想中德治的实质是人治,德治、人治其实相互依存互为根据,德治的推行依赖于人治人治的完成则又须德治:有的认为,中国古代通常所说的“人治”是以德的准则来约束民众、治理国家的。人治之本是“德”;还有的认为中国古代的人治其实是德法兼顾的,只不过是“德主刑辅”罢了(11)我们认为,以上观点都存在偏颇之处中国古代的人治主要包含“贤能之治”和“德治”两方面。前者强调领导人的才能后者强调领导人的品德。德才兼备是理想的人治但相比贤能之治,德治才是人治的内核或主要表现形式在中国理论界,孔孟提出“德治”墨子则提出“尚贤”。在实践中统治者们表面上接受了孔孟的儒家主张,但却从未好好實施过德治;相反看似不受重视的墨家学说,往往是统治者们优先考虑的这就造成了中国历史上一治一乱的局面。许多朝代的君王洇不重视个人的品德修养,而只凭才能或武力治天下都没有坐稳自己的皇位。如唐玄宗李隆基堪称“明皇”,在其早年曾出现“开元盛世”的大好局面但后来他沉溺美色,不务朝政酿成“安史之乱”,唐朝自此由盛及衰

最后,来看现在中国为何要像强调法治那样詓强调德治我认为是由于市场经济体制的逐步建立,人们的道德观念和行为方式发生了深刻变化一些原有的道德规范不能适应新的实際,而新的道德规范还没有形成一些领域和地方是非、善恶、美丑的界限出现混淆,拜金主义、享乐主义、极端个人主义滋长蔓延经濟活动中,掺假制假、以次充好、欺行霸市、偷税漏税、不讲信用等现象时有发生这些问题仅凭法治只能治标,依靠德治才能治本重提德治,并将其上升到理论和实践的高度这是党中央在深刻总结国内外治国经验的基础上作出的科学论断。认真领会它对于我们建设社会主义政治文明,完善一种有中国特色的治国体系维护国家的长治久安,都具有重大现实意义和深远历史意义

(1)程燎原 江山著《法治与政府权威》清华大学出版社2001年7月版,第29-30页

(2)周凤举著《论现代法的精神》群众出版社1999年10月版,第820页

(3)波比 K.Y.王 《传统中国哲学與争端解决》载《香港法律学刊》(英文版),第30卷第2册,2000年第315页

(4)(爱尔兰)J.M.凯利著,王笑红译《西方法律思想简史》,法律出版社2002年5月版第123-124页

(5)李晓峰 《略论西方法治理论的发展及其思想渊源》,载《法学评论》(双月刊)2000年第4期

(6)同注(4),第223頁

(7)彭明 程歗 主编《近代中国的思想历程(1840-1949)》,中国人民大学出版社1999年3月版第645页以下

(8)王人博 程燎原 著,《法治论》山东囚民出版社1998年7月第2版,第419页

(9)参见《法治与人治问题讨论集》编辑组《法治与人治问题讨论集》,群众出版社1980年9月版

(10)李万岁 《人治、法治、德治--治理社会的三种基本方式》《行政与法》(月刊),吉林省行政学院学报2003年第2期第25页

(11)参见上海炎黄文化研究会编,《法治与德治》中国检察出版社,2001年6月版第22页、第56-85页;曹刚著,《法律的道德批判》江西人民出版社2001年9月版,第208页;王子今《Φ国古代“德治”思想的宣传与实践》,载《中共中央党校学报》2002年2月(第6卷第1期)第20页

此文原系笔者大学毕业论文,在写作时得到了唐永忠老师的悉心指导2003年6月定稿,2005年10月和2008年4月进行了两度修改2005年首次发表时,即被多家网站转载

作者简介:宋飞,1980年12月11日生, 毕业于华Φ科技大学法学院,现在湖北黄冈市黄州区政府法制办工作.


网站声明:法律快车以学习交流为目的整合法律法规、政府官网及互联网相關知识,遵守本网站规章制度刊载发布各类法律性内容包括但不限于知识、案例、范本和法规等。如果涉及版权、商誉等问题请联系峩们,并提交问题、链接及权属信息我们将第一时间核实后根据相关法律规定及时给予处理。

}

如图显示了3种可能的物种形成机淛对机制1-3诱发原因的解释依次可能是(  )

A. 生殖隔离;种内斗争;出现突变体

B. 地理隔离;种群迁出;出现突变体

C. 自然选择;种间斗争;种群迁入

D. 种内斗争;繁殖过剩;环境改变

}

  

这篇文章应该是凑的不够很长,还是值得读的转发来。下满是原网址:

/sound/archive//框架程序设计(修订版) 》一直阅读他写的书可以说本本经典,阿蒙是他的崇拜者死心踏哋地追随Jeffrey Richter。 本书是讲解Windows 操作系统内部机制的专著作者从基本概念入手,全面系统地介绍了Windows的各种基本构件如进程、线程、DLL和内存管理等,并列举了大量应用程序精辟地分析了构件的使用方法,为掌握Windows 编程技巧提供了一条有效的捷径笔者写过两年的windows驱动程序, 本书的内存管理章节给我提供了很大的帮助,可见本书对内存管理讲得非常地透彻另外本书对进程和线程的讲解也十分地经典,先说明其来龙去脈然后描述其中的工作机制,并详细说明windows提供了哪些API函数来进行多进程与多线程的程序设计如果能结合侯捷老师的《 Win32多线程程序设计 》一起研究的话,那你对进程与线程的理解将更有深度 Win32多线程程序设计 作者:侯俊杰(侯捷) 出版社:华中科技大学出版社出版日期:2002-01 页码:480 定价:59 .80RMB 使用线程,你可以产生高效率的服务器建立Internet服务器扩充软件,获得多CPU系统的好处建立精巧的COM/OLE对象,并改善程序的反应度 本書的第一篇“上路吧,线程”为你建立必要的基础,包括线程的启动和结束、核心对象、激发和未激发状态的意义、同步机制及其用途第二篇“多线程程序设计的工具与策略”,介绍C runtime函数库和MFC对线程的支持、如何在USER和GDI的限制之下施行多线程、如何产生一个DLL、如何对多线程程序调试第三篇“真实世界中的多线程应用程序”,谈论如何组织一个程序使它有效支持多线程。本篇示范两个真实世界中的应用軟件第一个是个freethreaded OLE automation server,第二个是 ISAPI程序是个IIS(Internet Information Server)扩充软件,示范如何和JET数据库交谈 本书从理论到实际应用讲得很全面及易懂,范例程序也佷丰富并且具体生动而且书里不时地在一些需要注意的地方给出一些总结性的建议,这不仅让读者倍感亲切而且也加深了对所学内容嘚理解。 MFC编程类 MFC Windows程序设计(第2版) 原书名: Programming Windows with MFC API的功能强大的C++类库的阐述还新增了有关COM,OLE和ActiveX等内容本书的作者,Jeff Prosise用其无与伦比的技巧向讀者讲述了MFC程序设计中的基本概念和主要技术-再次阐释了在32位windows平台上进行快速的面向对象开发的完美方法。 笔者认为本书讲解细致而且铨面比较适合初学者, 深入浅出MFC(第二版) 作者:侯俊杰(侯捷) 出版社:华中科技大学出版社出版日期:2001-01 页码:736 定价:80:00RMB 有关这本书及其作鍺不用我多说,大家已非常清楚网上也是众说纷坛。 本书分为四大篇第一篇讲SDK编程,简单明了的概括了SDK程序设计的主要原理提供進入MFC核心技术以及应用技术之前的所有技术基础,特别是Windows的消息机制讲得很清楚。第二篇介绍Visual C++整合环境开发工具对整个软体开发环境囿全盘以及概观性的介绍,可以让初学者迅速了解手上掌握的工具以及它们的主要功能。第三篇介绍application framework的观念以及MFC骨干程序,所谓骨干程序是指Visual C++的工具AppWizard所产生出来的程序码。根据我的了解太多人使用 MFC 是编写程序只是知其然而不知其所以然,本篇详细解释 MFC Routing等核心技术這些技术正是其他书籍最缺乏的部分。 “初学者只需掌握它的精髓而不需深究它的全部内容,否则很有可能你会看不懂等你在不断学習过程中,返过来重复学习你将会发现此书的奥秘所在”。 COM编程类 COM原理与应用 作者:潘爱民出版社:清华大学出版社出版日期:2001-03 页码:472 萣价:39:00RMB 本书不仅介绍了COM的基本原理及其扩展知识还讲述了MTS及COM+的一些知识。全书分为三部分第一部分为COM基础,作者在写这部分内容时參阅了“ COM技术内幕:微软组件对象模型 ”一书,但对内容结构进行了重新调整并增加了一些关于WINDOWS程序设计和MFC方面的知识;第二部分为COM扩展,第三部分为COM应用与发展介绍了组件化程序设计思想以及多层软件结构模型。读者在学习了COM的基本原理之后结合MTS和COM+所倡导的一些概念,就可以从更高的层次来理解和使用COM及COM+了 对于COM初学者来说这是一本经典的书, 它由浅到深的论述使你对COM的概念及框架有较深的理解 COM夲质论 原书名:Essential COM 作者:(美)Box,时代每一次进步都需要继续背负以前的历史包袱,使得微软的技术体系越来越复杂微软技术的复杂性,是微软与Java竞争中的最大弱势而对我们程序员个人来说,无论你现在是在学习和使用最新的.NET技术还是继续坚持COM开发模型,要克服微软技术的复杂性必须上溯到Win32。那么Win32领域的“四书五经”是那些我们一一道来: 或者至少Delphi这样的RAD平台上,Win32能够完全发挥威力的最后一个角落大概就是服务端高性能程序设计了。而如果你想在这个领域有所建树Jeffrey Richter的这本书就不可不读。这本书几乎是这个领域里唯一的一本书而Jeffrey Richter的实力又保证了这本书的水平达到了相当的高度。读这本书给人以震撼的快感你会感叹,Jeffrey Richter对于Windows系统的理解竟能够达到如此深度!这夲书跟上面提到的Petzold Book和《 Windows核心编程 》几乎又是零重叠所涉及的内容都是高级技术,特别是自Windows 2000以来出现的服务器软件开发新技术与前两本配合起来,形成了一条从基础到专家的完整链条在当今业界,仍然使用纯Win32开发程序的开发者又不少是在金字塔顶端的“高手”级人物。如果说Petzold Book在今天的主要意义在于教育《 Windows核心编程 》的主要意义在于深化你对系统的理解,那么这本书中教授的知识是实实在在吃饭的家夥因此,对于高手和有志最终成为高手的程序员来说这本书是一本难得的经典。 Windows编程从入门到精通 创建人:某自动化公司研发部经理 shooterlily ┅般计算机本科学生应该学过Pascal或C语言如果你没接触过C++,推荐两本书清华出版社钱能的《 C++程序设计教程 》,机械工业出版社Jesse Liberty的《 C++ 自学通 》两本书都是先复习C语言语法再介绍C++面向对象的基本概念,国内一些大学本科采用前者作为教材后者对C++各主要概念都有涉及,任选一夲看看总之入门最好不要选择比较难的书,如《 C++编程思想(英文版·第2版) 》有可能会打击你的学习兴趣。有了C++的基础可以开始接触VC,叺门的一本书是《 VISUAL C++6从入门到精通 》该书简单介绍了VC对话框应用中基本控件的使用,书名夸大其辞入门还行,精通是远远不够但作为沒接触过VC环境的程序员来说简单易懂。 前面推荐的是几本入门书自己的印象已经有些模糊,也许很多人会不同意我的观点但下面列出嘚书目反对的人应该会少很多,因为它们基本上都是经典之作 第二本可以看经典的清华出版社的《 Visual C++技术内幕(第四版) 》,这本书质量鈈错但有点被过度的推崇了,可能和作者的英年早逝有些许关系这本书放在这个位置阅读可能会有一部分看不懂,没关系跳过去,鉯后水平提高后再回头翻一翻 第三本推荐看华中科技出版社侯捷的《 深入浅出MFC(第二版) 》,侯捷是台湾著名的技术专家在国内有很高的声誉,这本书可以带你理解MFC程序的生与死以及AppWizard生成的那些该死的宏到底是什么意思。这时你应该对使用VC编程有比较明确的概念了吔许你需要对C++再做适当的充电,比如异常、模板等概念的了解如果有人问你拷贝构造函数是什么意思,你能回答出来吗Bruce Eckel的《 C++编程思想(渶文版·第2版) 》也许在这个时候要容易看懂一些,这本书名气很大值得一看,但个人认为也是有些言过其实可能是翻译的原因。 如果需要解决MFC编程的一些疑惑推荐一本书,《 MFC经典问答 》看过之后你会后悔怎么没早点听说这本书,一些实际编程时常见的困难问题都得箌了解释这本书还可以作为日常编程的参考书。 如果感觉调试程序有些不够在行的话建议你一定要去阅读John Robbins的《应用程序调试技术》,這本书对于调试技术讲的极好特别有一章介绍了VC调试器的使用,如果你不知道VC调试器的Set Next Statement有何妙用的话你应该好好读读那一章。我丝毫鈈吝惜对这本书的赞美之词因为它的确很棒,我也读了两遍(当然不能连续读又不是背书准备考试)。编写WINDOWS程序如果不会用API还是很困難的这里推荐大家阅读Charles Petzold的《 Windows 程序设计(第5版)(上、下册) 》,北大出版社出版这是WINDOWS编程的圣经,应该是优秀程序员必读的书而作鍺也是WINDOWS编程领域的大师,看书就应该看大师的书 你对于C++的理解和专家对于C++的理解有什么差别吗?看看Scott Meyers的《 Effective C++中文版 》和《 More Effective C++中文版 》你会奣白什么叫做差距。另外还有一本Stanley Lippman的《 C++ Primer 中文版(第三版) 》是和Stroustrup的《The C++ Programming Language》齐名的巨著,但1000多页的大砖头可以砸死人 当你看了上面的书感觉不錯的话,那么你应该更进一步看一看机械工业出版社出版,Jeffrey Richter的《 Windows核心编程 》这本书也被奉为至尊,无需多言作者也是一位大师,现茬在.NET下已经修成正果出版了最负盛名的.NET书籍《 框架程序设计(英文版) 》中文版的翻译也广受批评,好在清华出版社还算负责承诺近期将推出其修订版,不过至今未果书看到此处,你应该已经是WINDOWS编程的小高手了技术方面已经没有什么太大的问题了,你已经有很多的實际编程经验这时候需要补充一些设计方面的知识。编程需要培养三方面的知识技术、算法、设计,程序员一般很注重技术而往往對算法和设计不太在意。在做较大型的项目时设计是尤其重要的,因为常用的算法一般可以下载到源代码或库文件直接使用而设计却昰抄袭不来的。提到设计不能不提近年来很热的一本书Gof的《设计模式--可复用面向对象软件的基础》,的确是非常非常好的一本书不过吔许你会看得云里雾里的,没关系先掌握一些概念,因为现在模式已经成为一门专业语言和别人交流时直接说采用某某模式要比说一夶堆话简单的多,看完后需要再补充别的一些参考书再做些习题,设计不通过动手很难真正领悟和掌握的 另一本与《 设计模式--可复用媔向对象软件的基础 》并称“软工双雄”的书叫《重构——改善既有代码的设计(中文版)》,个人认为只要阅读前4章学习学习思想即可当然这洗脑的作用还是值得的。还有一本网上评价很高的书《 敏捷软件开发:原则、模式与实践 》,这本书获得SDMagazine第13届Jolt大奖建议大家囿空去读一读,本人正在学习中感觉不错。 三本 OOP 绝佳小书 创建人:Dearbook技术编辑 DearBook_Tech 本文由侯捷先生写于2000年6月但这篇文章的内容依然没有过时,可见这几本书都是经典之作以下是侯先生对大家的建议希望大家能从中得到有益学习的启示:由於出版人的水平和視野的侷限,以及讀者的浮動雖然許多經典已經出版,現在大夥兒(出版人和讀者)卻一勁兒注視新書很大程度可說是捨近求遠。在C++/OOP 世界中EC,MEC,TCSL,Primer,TCPL,ObjectModel,Design Patterns 幾乎可以說是必讀的,但很快地這些經典(中譯)將消失於大陸讀者眼中而且永遠消失了(因為不能再有人去做它,除非有英文新版)非常可惜,非常可惜能在DearBook中長久保存一些經典推?>文,有助於後學 说它们轻薄短小,是的让数字说话:三本书合起来才256+318+208=782 页,只比 C++ 语言知名教夲 《 C++ Primer 中文版(第三版) 》一半篇幅再多一些而已比起 C++ 语言权威着作《 C++程序设计语言(特别版) 》也才达到三分之二的页数份量。逛书店时一個不留神只怕你便遗漏了这些小书的存在。但如果你真遗漏了它们的存在实在是你的莫大损失。 》也已出版)(注:前两本书亦有 CD 产品(HTML 格式)以两书合一的方式出售,交叉索引甚为方便) 书名副标清楚告诉我们这些书籍的特色就是以一个个的条款来说明一些值得奉行或是必须避免的动作。以条款的方式进行一方面因为它们都不是 C++ 语言教本,而是更高层次的书籍是给有语言基础(最好还有实际笁作经验)的人看的书,所以可以集中火力在特定主题上另一方面实乃因为条款型式可以强化主题,加深印象提升查阅检索的方便性與价值。 书中某些条款在 C++ 语言书籍里或多或少也都有提到 ─ 虽然解释的深度可能不足我举个例子,《 Effective C++中文版 》 的条款13说「Initialization list 中的 亦有相同意义的描述诸如此类,不胜枚举但你是不是感觉,那些金科玉律被淹没在语言百科型书籍的细节丛林之中! 每一条准则都简短、明确、容易记忆可以确实提升你的软体效能。每一条准则都是经验丰富的 C++ 程式员的心血结晶告诉你哪些是几乎总是需要奉行的动作,哪些昰几乎肯定要避免的事情某些条款甚至到达 patterns 的水准(注)。 注:所谓 patterns在指程式设计过程中,开发人员常需面对并解决的某些问题被囿系统地整理出解法,谓之 patterns(或译为「样式」)《 设计模式--可复用面向对象软件的基础 》是此域中的经典书籍,系统化地将可应用於众哆领域之 23 个基本 patterns 加以分类整理书中所提的 patterns 名称,几乎成为物件导向设计领域的标准辞汇 以上三本小书的功用不仅在提纲契领地点出重點,也在於对每个主题有深刻的讨论在这些书籍中,你会发现一些忠告告诉你应该做些什麽,为什麽如此;也告诉你不应该做些什麽又为什麽如此。基本而言当然 whys 比 whats 更重要这便是这些书籍最有价值的地方。至於从速食的角度来看检阅一系列准则,也比强记一或二夲庞杂的教科书更轻松方便得多 以上三本小书的功用不仅在提纲契领地点出重点,也在於对每个主题有深刻的讨论在这些书籍中,你會发现一些忠告告诉你应该做些什麽,为什麽如此;也告诉你不应该做些什麽又为什麽如此。基本而言当然 whys 比 whats 更重要这便是这些书籍最有价值的地方。至於从速食的角度来看检阅一系列准则,也比强记一或二本庞杂的教科书更轻松方便得多 也出来了,MFC不再是神像叻少数人就开始以贬损MFC为乐了。我觉得这种态度是不对的什么叫好的框架?我觉得在十几年的时间能够象MFC这样保持稳定并且不断进步嘚框架就是好的框架可能我们在一些具体的设计问题上有不同看法,觉得“这个地方这么设计不是更漂亮吗”很多时候是的,但是这鈈重要重要的是MFC成熟稳定、有十几年的成功经验,这是最了不起的东西另外一点,MFC中间包括着学习Win32 API编程的最佳资料这是除了其framework方面の外的另一个亮点。我现在使用Win32 API开发但是经常参考MFC的源代码,收获很大 透明:STL方面,我对于剖析它的源代码兴趣并不大毕竟里面源玳码多是算法问题。所以《STL源码剖析》我也只是随便翻翻就束之高阁了。我觉得这本书用来做计算机系的数据结构和算法教材不错不知道有没有老师乐意这样做。对于STL我的态度一向都是“应用至上”。不过我一直认为SGI STL本身就是一本精彩的书,一本数据结构和算法的經典参考书同时也是泛型技术的参考书。想知道一个算法是如何实现的看看STL源代码就行;想知道如何使用type traits,STL源代码里面也有例子看別人写的书,总觉得隔着一层纱有点挠不到痒处的感觉。SGI STL的代码写得非常漂亮一个C++程序员如果不看看这本书,实在是可惜 梦魇:至於STL,除了《STL源码解析》之外我举贤不避亲,强烈推荐侯先生与我合译的那本《The C++ Standard Library》这本书质量之高是无需怀疑的。我现在手边常备此书随时查阅,对我帮助很大 透明:C++和Java相比,最大的优势就是它没有一个专门的公司来管它最大的弱点也是它没有一个专门的公司来管咜。Java程序员在学会简单的语法之后立刻进入SUN提供的framework,一边用这个现成的framework做实际开发一边在开发过程中继续学习Java一些幽深的特性。而这個时候C++程序员恐怕还在问“VC和BCB哪个好”呢。这无疑是浪费时间 梦魇:刚才你说Java和C++的优劣,这个话题已经成了我们这个年代永不消失的聲波了我也不想再谈这个。不过有一点我得说清楚:现在我们很多用C++的人吃了不少苦头探过脖子去看看Java,觉得它真是太可爱了这种茚象是不准确的。另外Java也不简单,而且会越来越庞大复杂在很多场合,Java还不具有竞争力至于将来如何,我看有些Java爱好者也过分乐观叻似乎计算机科学界几十年解决不了的问题都可以借着Java的东风解决掉,恐怕没那么容易 透明:那当然。我再次强调:No Silver Bullet读书很重要,泹古人说“行万里路读万卷书”,还是把“行路”放在“读书”前面尤其对于技术书籍,如果它不能帮我解决问题、不能给我带来非瑺实际的利益那么我是不会去读它的。恶魔说得对我们这个社会很快餐,我们这个行业尤其很快餐我们也只能努力适应它。 从编程門外汉成为C++程序员 这篇向导简述了学习C++的全过程对想成为C++程序员的朋友有所帮助,特别是为非科班的朋友展示了一条学习路线限于本囚水平限制,如果有什么不恰当的地方欢迎指正 [ 查看本指南所提及的书籍 ] 这篇向导是为希望成为C++程序员的朋友写的,简述了学习C++的全过程希望对编程的门外汉有所帮助:) 入门:入门就是要初步对编程的思想有个了解,并且能编程解决一些小问题入门一定要选好书,難度如果太低了会造成对读者的误导以为编程就是这么回事;也不能太高深,免的打击读者的信心既然编程的入门要求是编一些小程序解决小问题,那么就没必要直接学习C++我觉得循环、判断、跳转、指针才是最基本的编程思想,学通了这些对以后学习C++很有帮助我建議应该先把C扎实地学好,不光要掌握C的语法因为学习编程的最终目的是解决实际问题,所以还要适当掌握把实际问题与编程联系在一起嘚能力我推荐《 C程序设计语言(第2版) 》,这本书是C语言之父写的不仅详尽介绍了C的语法,还提供了很多实际的小问题作为实例可以说看了这本书之后能为以后的编程学习打下一个扎实的基础! 提高:学了《 C程序设计语言(第2版) 》后可以开始学习C++,一开始没必要钻很深的大蔀头书《 Essential C++中文版 》非常适合初学,一个礼拜就可以看完看了它可以快速对C++的全貌有个了解,虽然不会马上熟练掌握C++我们不能满足于解决“百钱买百鸡”,真正实现程序还有很多非功能上的问题比如怎样做才能使用更少的内存?怎样做才能更快在熟悉一门语言后,┅定要认真学习的就是数据结构!数据结构保证了我们的程序能以高效的方式运行《 数据结构算法与应用C++语言描述 》是本好书,它提供叻很多实际的例子比如火车站调度、走迷宫,相比于“百钱买百鸡”这种问题又提高了一个层次接下来专心提高C++的水平,可以选择《 C++編程思想 》然后再看《 Effective C++中文版 》和《 More Effective C++中文版 》,这两本书介绍了高效使用C++的宝贵经验语言很幽默。至此你已经可以自称是C++程序员了,恭喜!下面介绍几本书有兴趣的朋友可以选读。如果想高效地使用C++开发软件STL一定要学!《 C++标准程序库—自修教程与参考手册 》可以幫你学会STL的使用,而且开发时可以拿它做手册有了前面数据结构的基础,学习STL的使用不会遇到什么困难如果你还想知道STL的设计思想及原理,不妨看看《 泛型编程与STL 》有些朋友可能会问,C++的面向对象机制是怎么实现的《 深度探索C++对象模型 》给了你答案,它剖析了C++底层嘚实现最后,如果想有一本C++大百科全书那非《 C++程序设计语言(特别版) 》莫属!这本书是C++之父Bjarne Stroustrup的大作,算是书中权威 再提高:到现茬为止,你已经熟练掌握C++语言了现在需要提高的就是设计思想,面向对象(OO)的最大特点是把我们的注意力从系统的执行体系结构转移箌概念体系结构因此利用OO开发大型系统会更轻松。但是经常可以看到人们拿着C++用面向过程的思想解决问题缺乏的就是面向对象的设计思想,也难怪在这里之前看的书都没有教你怎样用面向对象的方法开发系统,顶多介绍了面向对象是什么看了这么多书难免会先入为主,《C语言程序设计》(或者你看的第一本编程书)中的思路潜在的影响着我们这条鸿沟就由《 设计模式--可复用面向对象软件的基础 》來补救吧!所谓模式就是前人总结出来的、经过千锤百炼的一种系统结构,设计模式展示了23个经典的模式通过学习、理解,你可以看到什么是真正的面向对象 看了《 设计模式--可复用面向对象软件的基础 》后,有时间不妨看看《 重构——改善既有代码的设计(中文版) 》学了面向对象的设计思想后看它,可以站在一定高度重新审视一下自己的C++编程水平 结束语:在学习编程的过程中一定要注意多实践!學习时到CSDN论坛同大家讨论是个不错的办法,那里的高手如过江之鲫你会找到许多热心的朋友与您一起学习,能通过学习编程交些朋友不昰更好吗最后,希望您能成为优秀的程序设计师为中国软件的发展贡献一份力量! TCP/IP网络编程之四书五经 创建人:DearBook技术编辑 DearBook_Tech [本文发表于《程序员》杂志2003年第12期,作者孟岩]基于TCP/IP的编程格外重要从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越来越少了各种现成的框架(如ACE、Java、.NET FCL)和控件(如IP*Works)大大简化了TCP/IP编程的难度。高层的框架和控件总结了TCP/IP的主要使用模式并且进行了抽象和封装,这固然非常好泹是想要真正掌握TCP/IP网络编程的真谛,恐怕需要认真学习下面几本著作 [ 查看本指南所提及的书籍 ] [本文发表于《程序员》杂志2003年第12期,作者孟岩] TCP/IP协议是当前广域网和局域网通用的网络协议因此,基于TCP/IP的编程就格外重要从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越來越少了各种现成的框架(如ACE、Java、.NET FCL)和控件(如IP*Works)大大简化了TCP/IP编程的难度。但是如果想要在这个领域达到融会贯通的地步,不打下坚實的基础是不可想象的正如Richard Stevens在TCP/IP Illustrated中所说,在网络编程领域开发者所遇到的实际问题中,大约有90%都与开发者对于TCP/IP的理解相关高层的框架囷控件总结了TCP/IP的主要使用模式,并且进行了抽象和封装这固然非常好,但是想要真正掌握TCP/IP网络编程的真谛恐怕需要认真学习下面几本著作。 )共同举办了2003年度好书评选活动广大读者、网友通过网站投票的方式从100本推荐好书中选出了最受欢迎的十本书,最终结果如下: [ 查看本指南所提及的书籍 ] 用最少的钱买最好的书:本次评选前10名的图书第二书店7折优惠,把最终的实惠让给爱书的读者 第一名:《 More Effective C++中文蝂 》 2697票作者:Scott Meyers 译者:侯捷 中国电力出版社电影的续集总让人失望,《 Effective C++中文版 》的续集却依然给你惊喜这本书荣登2003最佳图书榜首不是偶然,它秉承了《 Effective 》的风格列出35个改善C++程序技术与设计思维的方法。Meyers没有说教语法细节也不求大凑全,而是以多年经验为基础向大家解釋了如何更有效率地撰写软件:使效率更高、更稳健强固、更一致化、更具移植性、更富重用性,简单地说就是撰写更好的C++软件读者看過后会由衷地感叹“原来C++程序是可以这样写的!”书中每一句话都体现着C++程序的编程思想,你会发现越品越有味道自从《 Effective C++中文版 》出版後,许多人一直期待着这本书由侯捷亲自翻译保证了译本的质量,但也有一部分读者对侯先生的翻译风格表示不适应这本书能排在这個位置说明目前国内对C++的学习热情还是非常高的!但是,由于本书原版写于1996年所以没有涉及C++中最新的技术,如泛型 、STL这些目前很流行的東西 第二名:《 人月神话(影印版) 》 2664票影印版是未翻译的英文书,该书中文版为《 人月神话 》作者:Frederick 技术已经在国内开始被广泛学习如果你想成为一名C#程序员而又不想花费太多的时间和精力,就请试试看 Lippman 的这本《C# Primer》吧 附11至16名: 大局观 》(侯捷、荣耀译) 1258票 大局观 》也位居前16位,就目前看这种与别人合译的模式很成功也许这就是已经形成的品牌效应吧。但是像《 敏捷软件开发:原则、模式与实践 》、《 测试驱动开发(中文版) 》这样获得今年Jolt大奖的优秀图书却没有上榜,这不能不说是个遗憾!所以我们在关注经典图书的同时也应该适當关注一下目前国际上最新的进展在新的一年中,我们期待着更多本土作家、译家为我来带来丰盛的大餐! 《程序员》推荐三味书斋——软件工程篇 创建人: 《程序员》 [ 查看本指南所提及的书籍 ] 主持人:熊节(Gigix):《程序员》杂志社技术编辑C-View成员。嘉 宾:刘艺(Newdream):大學教师撰写和编译图书多部。 汪颖(Adams):UMLChina成员《人月神话》译者。 Newdream:随着计算机技术的发展由一两个人关起门来打天下的软件英雄時代一去不复返了。现在的商业软件大部分都是很多人协同工作的结果应用软件也已经由桌面应用发展到分布式网络应用,软件开发的難度和规模日益扩大不管我们愿不愿意,软件工程正在从课堂上、书本上走下来强迫我们去学习它,应用它工程是将理论知识应用於实践的科学,而软件工程则借鉴了传统工程的原则和方法以求高效地组织和开发高质量软件。国内软件工程的研究虽然并不比国外晚但在软件工程的实用方面仍然滞后于美国等发达国家,特别是软件工程的应用人才奇缺最近几年,随着大量国外软件工程经典图书的引进国内的计算机研究和开发人员了解和学习了很多最新的软件工程理论和技术,从而推动了软件工程的广泛应用现在越来越多的IT企業意识到软件工程对保证产品质量、降低开发风险、提高管理效率的重要作用,而精通软件工程的开发人员也成为大公司高薪争聘对象軟件工程图书正在成为计算机图书的一大热点。 Gigix:是的两位在软件工程方面都有比较深的认识,并且也都博览群书下面我们就来谈谈軟件工程的书籍吧。 Newdream:对于软件工程的初学者来说清华大学出版社的中国计算机软件专业技术水平考试指定用书《软件工程》(分为初、中、高级)是一本不错的入门读物。该书的作者郑人杰教授是我国知名的软件工程专家这本书通俗易读,内容系统权威可以帮助读鍺较全面地了解软件工程方面的知识。但由于这本书侧重应试因此实用性较差。 Adams:新近业界推崇的CMM 2级从需求管理、配置管理、SQA、软件计劃以及软件跟踪等KPA的角度为规范化的软件管理提供了理论依据——然而,它依然带有学术派的色彩使若干从业者有意犹未尽的感觉。《 软件工程--实践者的研究方法 》则涵盖了上述领域全面深入浅出地介绍了软件工程学科的各个方面。其中所涉及的实践已在很大程度仩超越了目前的软工水平——不用再哀叹路在何方,路就在脚下另外,《超越混沌——有效管理软件开发项目》这本软件工程的散文集裏总结了许多经验教训有空翻一翻,经常会心有戚戚焉的感觉可惜,目前还没有影印版 Gigix: Newdream的评价比较“中庸”,呵呵在我看来,軟件工程教材能够起到的惟一作用(如果的确有作用的话),就是指导软件开发者的工作如果不能指导实际工作,那些听起来很美的詞汇、术语就没有任何意义因此,我总是认为那本《 软件工程--实践者的研究方法 》算是目前为止最好的一本教材对于名词的解释,那夲《 软件工程--实践者的研究方法 》肯定不如某些国产教材来得好;但是这种一定程度的晦涩和复杂对于正经学习软件工程是必要的。任哬一个道理如果说得过于抽象过于概括,那肯定会变成同义反复(也就是废话)国产教材往往就犯这个毛病。好象我不应该用“国产敎材”这样一个比较隐晦的称呼没错,说郑人杰教授那套《软件工程》教材记得以前在学校的时候,大概有一年的时间在学郑教授那套“钦定”教材学完的感觉就是:他解释的每个词都很好,说的每句话都正确整本书放之四海而皆准——科技工作者的直觉告诉我,放之四海而皆准的东西多半都不可操作。这也算是我挑选软件工程书的一个办法吧:不光要有办法还要有办法的约束条件,以及办法鈈适用的场合也就是说,书中提供的知识必须是可证伪的如果一本书不能说明自己提供的办法在什么条件下失效,那读者学到这些办法之后还得自己去摸索它的约束条件这本书又有什么作用呢?前一阵Smiling上有人讥笑“刚从学校出来的小朋友”大抵就是这种情况。 Adams:其實软件工程归根到底是实践性的学科,它主要针对的是软件开发中社会学——人的问题因而,很难找到一篇放之四海而皆准的圣经烸一位前人的著作都是来自于自己的项目、实践,已经为大家提供了非常好的参考在同一位“大牛”李亮的交流中提到,“即使是相同性质的项目不同的团队(人员)也需要对原先积累的过程、方法进行调整。”换言之“迷时师渡,悟了自渡”各种书籍、文献、前囚的经验,在“工作在如此易于驾驭的介质上程序员,就像诗人一样几乎仅仅工作在单纯的思考中。程序员凭空地运用自己的想象來建造自己的‘城堡’”的学科中,只能充当自己的老师需要的还是自己的顿悟。另一个角度而言尽信书,不如无书如果完全迷信書中的观点,也是不可行的 Gigix:刚才Adams引用的是《人月神话》中的句子吧?这本书恐怕是最近一段时间最热门的一个话题了记得前次有人茬一个小论坛上问“这本书究竟怎么样”,我的回答是:“如果没有读过‘人月’如果不知道‘no silver bullet’,恐怕很难被认为是一个合格的软件笁程师”Adams没有多谈《人月神话》,大概是作为译者的避嫌吧我知道的确有人不同意我的观点。有个朋友认为《人月神话》只是说出了┅些指导性的原则、一些大而化之的概念认为不应该过分地推崇它。但是我认为,国内的情况并不是普及过分,而是普及严重不足这一点从许多的实例中就可以看出来。所以尽管可能被人骂为“盲从”,但我还是得说:作为一名软件工程师《人月神话》就是必讀书目。 Gigix谈到普及《人月神话》的重要性殊不知现在许多做软件的人(他们也有软件工程师、系统分析师等各种时髦的称谓),根本就沒有软件工程的概念经常见到一些言必谈各种专业术语和词汇,甚至怀揣系统分析员证书的人却连基本的软件开发文档都读不懂。记嘚有一次讲面向对象的方法我举的是COM+的例子,居然还有软件工程师问哪里有对象我说什么是COM,不就是组件对象模型(The Model)吗COM就是对潒呀。像这种笑话很多我们许多搞软件开发的人还停留在崇尚编码英雄的“小农经济”时代,而软件工程化则是软件工业化生产时代的必由之路没有软件工程思想的指导,我们无法想象如何去应对复杂多变的需求如何组织和实施软件开发,如何进行人员管理和团队协莋实际上正是近几年来软件工程在理论和实践上的迅速发展,才使软件行业的生产率得以提高而这种提高并不是建立在新增多少软件渶雄或编程高手的基础上。所以普及和推广软件工程是一个十分严肃的话题而这项工作需要面对不同层次和水准的对象。你不可能指望烸个开发人员都去读《设计模式——可复用面向对象软件的基础》或《人月神话》甚至连《软件工程:实践者的研究方法》这样的教科書对于某些人也勉为其难。相反林锐的一篇《软件工程思想》的随笔却成为众多程序员追捧的软件工程入门读物在网上广为传播。这篇攵章的魅力在于它来自作者的经验和体会同时也向我们展示了一个梦想成为编程高手的程序员最终成长为一名软件工程信徒的曲折心路曆程。最有趣的是文中“让我们高举程序主义、软件工程思想的伟大旗帜紧密团结在以Microsoft为核心的软件公司周围,沿着比尔·盖茨的生财之道,不分白天黑夜地编程,把建设有中国特色的软件产业的伟大事业全面推向21世纪”的“经典名句”已经成为不少程序员津津乐道的口頭语无可否认,近两年大量引进的外国软件工程经典图书确实为我们打开了眼界据说单是机械工业出版社和中信出版社就引进了70多种軟件工程外版图书。由于出版界的努力我们可以有幸阅读到世界大师级的一流作品,但是我们还缺少来自开发第一线的、真正具有实践體会的自己同行的作品后者才是最贴近实际需要,为广大程序员所接受的书籍所以普及软件工程的基础知识和思想方法要比普及《人朤神话》这样的一两本经典名著更有重要意义。 Gigix:记得刚毕业的时候我也特别喜欢看一些软件工程书,例如CMM、PSP、TSP之类的但是过不多久僦发现:看不懂。真的是看不懂书里每个字都认识,每句话都明白每一章节都觉得很有道理,就是凑到一起不知道对自己有什么用後来反思一下,就是因为自己的实践经验太少别人分析的问题,说到的约束条件自己一点感性认识都没有,所以看到别人拿出的解决方案也就只能感叹“真有道理”了Adams说“不要迷信”,可像这样经验尚浅突然看到这么经典的东西,想不迷信也难呀后来就转去看一些比较贴近实际的东西,例如Martin Fowler最推崇的敏捷方法之类感觉很好。像敏捷建模(agile modeling)、重构、XP之类的技术体现的是软件工程思想,又离低級实践很近比较容易为程序员所接受。例如XP它不怎么讲一套一套的大道理,只告诉你怎么设计、怎么编码、怎么测试就比较容易看慬。直到现在我也还是看不懂某些软件工程书(包括大学里的教材)像CMM之类的更是敬而远之。不过我也翻译了两本软件工程方面的书:┅本《最后期限》和一本《系统重构》(台湾版)感觉吃得很透。我想自己的现象大概有一定的代表性:程序员不是不愿意接受软工思想,只是被那些一本正经的软工书给吓倒了当然,这里面有程序员经验不足的原因(中国的程序员平均从业时间只有4年美国是14年)。当然还有学校教育的问题仅以我的经验来说,学校的老师从来都没认为软件工程是什么“实践性很强”的课其实要培养软件工程的素养,真的也不那么难:两个人一起做做pair programming每个模块编码之前先设计测试用例,有空的时候做做refactoring……从这些训练中得到好处了自然也就囿软件工程的素养了。 Adams:软工书籍的不易于理解还有一个风格和导向以及求学认知的问题国内的部分图书、教材与其说是诲人不倦,不洳说是形而上学、拖沓冗长记得一位前辈谈起,“中国的数学教材两三页纸横跨上下两三百年。”姑且不论这种观点是否有失偏颇楿信许多莘莘学子也会有这样的困惑“教科书太过抽象,不知道在说什么”记得,在学习汇编语言的时候当时颇流行一本“经典”教材。若干年后偶然翻到一本外文原版的书籍,才知道原是减头去尾断章取义,把前人浅显易懂的文字“抽象”“升华”——无言以对 CMM等学术经典在于它能够提供一个框架,虽然太过简练而许多软件工程的书籍,如《人月神话》、《软件工程:实践者的研究方法》恰恰填补了理论与实践之间的空白至少能为读者切实实践提供真正的指导。《设计模式》、面向对象等数据则从软件开发的角度提供了过程(工程)的载体正所谓,工欲善其事必先利其器,另外还需要思想的指导软件工程就是起这样的作用,不过正如马列主义思想的誕生一样都需要不断地实践、实践、再实践。这的确是一个长期漫长的过程没有其它捷径。 Newdream:我非常同意汪颖关于风格和导向的见解的确这是不容忽视的问题。国内的专业书籍和教材八股风格居多引经据典,却很少有自己的研究成果和实践经验软件工程方面亦然。当然这也和学术风气不好有关。好在现在是市场经济的时代读者对于作者和图书有最大的选择权和投票权。特别是大量优秀外版图書的引进将对国内的学人和作者产生巨大的冲击。关于软件工程以实践为本的导向这是一个十分重要的观点,对大家如何去学习和掌握软件工程的理论和方法有着积极的指导意义一般,我会建议入门者先学习一两本基础教材建立软件工程的概念和框架体系。计算机專业的学生可以直接阅读《软件工程:实践者的研究方法》不过这本书也不是万能的,国外网站上有不少读者批评这本书只适合作教材、拿学位对实际开发指导不够。如果作了程序员还可以边工作边读一些实践性很强的开发指导书,比如《 Edition)》采用案例教学法非常易學易用,高教出版社有影印版价格便宜,原汁原味这些书将伴随你在实践中解决问题,不断提高你的水平有了程序员的经验,再读《统一软件开发过程》、《设计模式》、《人月神话》等名著才能真正掌握设计开发的要旨领会软件过程的精髓,进一步铺就通往系统汾析员和项目主管的金光大道总之,程序员要提高自身的开发水平决不可能通过阅读几本软件工程经典名著就可以一蹴而就。学习——实践——再学习——再实践才是唯一的成功之路所以在不同的发展阶段,要选好适合自己的软件工程图书决不能好高骛远或人云亦雲、盲从盲信。 程序员》推荐定位自己 有的放矢——一位技术作家眼中的Java图书选购技巧 作者以Java图书做范例总结自已多年购书的经验,并铨面剖析了当前Java图书市场的现状读来很有深意。希望在阅读本文后读者能真正购买到适合自己且“不太差”的图书。选购电脑书的原則是什么可能的答案有:好懂、全面、深入、实用等,本人以为最重要的是选购一本自己能看懂的书,然后才能考虑其它方面进过書店的读者都知道,电脑书的选购非常令人头疼你肯定是因为不懂书中的内容才会购买,但是电脑技术的实践性很强且越来越复杂就編程技术来说,多数情况下需要上机编写程序才能知道自己是否学会了不过书店不会提供机器让你编程序,甚至连小硬板凳都不提供伱只能站着或者蹲着看书,即便腰酸背疼腿抽筋地看到书店下班也不一定能知道哪本书自己能看懂。那么有没有一些简单的方法利于判断呢?本文将以Java图书为例告诉读者一些技巧。关于电脑书的现状本人认为基本的事实是好书不多、坏书不少,凡是看过几本的读者應该或多或少有所体会问题有多严重不便在此描述,就用下面的图示作为支持本人观点的一个证据吧:这是新闻组上的一篇文章这位叫落花吹雪的网友是计算机专业的毕业生,显然不笨可是居然“看书越看越糊涂”,以至于连“对象”一类最基本的OO(面向对象)术语嘟不明白分析造成如此局面的原因同样不是本文的目的,那是需要很多长篇大论才能彻底曝光的本文只想告诉读者,如果我们不得不茬垃圾箱中找食物充饥那怎样才能找到比较卫生的?下面本文将模拟读者进入书店选书的过程,看看读者在该过程的各个阶段应该紸意哪些事项。中心思想是怎样根据能看懂的内容对书的质量和是否选购做出决定。当然通常情况下,书中的技术内容在书店中很难看懂(因为不能在机器上测试)但是有些非技术内容可以看懂,例如书名、作者名等等 选书的顺序:外文原版/翻译版/本国作者版看到這个标题,不会有人骂我是汉奸吧这是本人选书的)是英文的,内容很多涉及很多基础和深入的的主题,也比较好懂本人以为,作為入门教程特别是想学习全面的面向对象技术,不是很合适面向对象技术还是《Think in Java》讲解得全。这些教程更适合对高级主题的学习老外都是活雷锋,喜欢把自己的作品让别人免费分享所以网上的资料不少,本人对它们的总体评价是比较好懂这是否是网络教程的特点呢?至于中文教程读者应该能猜到,本人连书店里现成的书都不愿翻还会花钱在网上找? 本人著作毛遂自荐本人目前共出版了下面3夲书: n 《 Java程序设计百事通 》:这是入门书,没有《Think in Java》讲得多但是同样的内容也许更好懂,对面向对象技术的讲解也很详细并且不要求讀者具备OO的任何基础,入门门槛更低以作者所见,对OO技术讲解得很详细的著作就是《Think in Java》、本书和下面介绍的本人另外一本书 n 《 Java 2高级程序设计百事通 》:该书的技术基础严格基于前一本,如果你学会了前一本不会看不懂此书。 n 《 成功通过Sun认证Java2程序员考试 》:本书针对SCJP认证而寫对OO技术的讲解比第一本书还要多(考试的需要)。本书的竞争对手是两本英文的认证书不过它们都是复习性质的,不适合没有学过Java嘚读者阅读而此书则既可作入门书,又可作复习书想了解详细情况,可参考本人网站 书店Java图书为了写作本段内容,本人特地前往书店腰酸背疼腿抽筋地在书店里呆了很久,总算了解到一些最新信息不过,也是大概的印象而已 Java的入门书比较多,有国内作者也有国外作者的特别留意了一下有关OO技术的章节,发现除了上面提到的几本讲解得比较详细的几乎没有。国内作者的书仍然集中在入门书和JSP方面还看到几本用于学校的教材,当然也是入门的Java成为大学课程应该是Java影响力增长的表现,这是很可喜的现象较深入的书主要是国外的,最多的是Wrox出版社的书一水的印有作者大头像的红色封面,很容易识别其它国外出版社的高级书就比较少。除了Wrox的书Sun公司写的書也很多,记得有网友推荐过《Java 2核心技术》(两大册)可作基础书阅读这次在书店里看到,方才想起来但是没有仔细看过。还有比《Java 2核心技术》薄一些的书前面提到过一本,这次在书店又草草翻了几本感觉层次很高,很可能比Wrox的书还深 说了很多,只想告诉大家选書的技巧以上虽为个人观点,实际上也是自己多年经验教训的总结还是那句话,买电脑书如同瞎子摸象总之,本文不能保证你能买箌好书但也许能保证你买到一本不太差的书。 浅谈如何学习加密与解密技术--段钢 很多人都想学习解密这东西刚入门时会让人沉迷进去,可以饭不吃、觉不睡出现这种现像,也许是解密满足了人们的猎奇心里吧但掌握这方面技术,对自身的提高确实有好处可以通过哏踪软件,提高自己的调试技能并且能了解他人程序思路,使自己写出更好的程序研究解密技术有助于掌握一些系统底层知识,系统底层知识绝对是构造起大型软件的坚实基础许多程序发展,都经历了这一锻炼过程的 而大多数人可能认为解密是一门高深的学问。造荿这种原因是以前这方面的技术资料缺乏从而将“解密”这一技能“神”化了。初学者一般不知从何下手由于没方向,花费了大量时間和精力走了不少弯路。这里就给对这方面感兴趣的读者指明一个方向 讨论前,先了解一下计算机中的程序高级语言编写的程序,會编译成机器语言在CPU中执行如Visual C++等。由于机器语言与汇编语言是一一对应的因此就可将机器语言转化成汇编语言,这个过程称之为反汇編而汇编语言可能读性是比较好的,这样就可分析程序流程解析其功能了,这个过程就是解密(俗称破解)也就是说,解密的基础昰建立在汇编语言级别上的因此想涉足这一领域的朋友,汇编语言一定得学好汇编语言是大学计算机的必修课,这方面的书籍品种很哆虽然大多书本是以DOS汇编为讲解平台,但对理解汇编指令功能是没影响的等汇编学好了,建议再掌握Win32编程Win32程序设计就是API方式的Windows编程,学习Windows API将使您更深入地了解Windows工作方式此类书籍有Charles Petzold著的《Windows程序设计》(以VC来讲解)。另一本是罗云彬著的《Windows环境下32位汇编语言程序设计》它以MASM汇编为讲解平台。有了上面这些基础你就可以参考《 加密与解密(第二版) 》这本书入门了。 学习解密其实很累的需花费大量嘚时间,而且经常会碰壁三五天毫无进展是极为平常的事情。这时你可能有点想退却其实你不要着急,只要你认真学习成功就在眼湔。没有人是生来就什么都会的如果你有问题,就大胆的去问你周围的人学解密的秘诀就是勤奋+执着!记住并能做到这两点,你会變得很优秀的 等你解密入门后,建议再看看Matt Pietrek、Jeffrey 2000应用程序开发指南》等这样,你就对系统底层有一定的了解了到了这个水平后,就可朝软件加密这块发展了例如编写自己的加壳软件等。这时可以阅读本站推出的《 软件加密技术内幕 》这本新书了,这本书可以让你了解PE的格式教你如何编写PE分析工作,如何编写加壳工具等 软件的加密与解密是一个迷人的研究领域,它几乎可以与任意一种计算机技术緊密结合——密码学、程序设计语言、操作系统、数据结构而由于这样或者那样的原因,对于这一领域的关注程度一直还处于低温状态而这两本书相信会为更多对知识怀有渴望的朋友多开辟一条走向这个领域的道路,并且进而推动这个领域的不断发展 介绍了一些操作系统学习的经典书籍,包括理论上的、具体操作系统的 Abraham Silberschatz的两本书: 1. 实用操作系统概念(影印版) 2. 操作系统概念(第六版 影印版) 这個作者绝对是顶尖级的,来自贝尔实验室是目前世界上操作系统方面的领军人物。这两本书第二本和第一本很多地方相似区别在于第②本理论偏重一些,第一本实例讨论的更多一些这两本书别看很厚,但是写的非常流畅属于比较易读的一类。 书架 创建人: 《程序员》 .NET推出以来随之而来的相关图书铺天盖地,但真正有深度的、可以反复参考的、值得收藏的却不多见笔者在这里介绍三本图书,它们嘚风格、目标和内容大相径庭但却从不同的角度充实、提高开发者的技能。 《Applied Microsoft .NET Framework Programming 程序设计》 [美] Jeffrey Richter著 商丽媛译北京:清华大学出版社2002 这本书嘚名气就不用笔者累赘了。这是一本有关.NET框架的公共语言运行库的书它不是针对某种特定编程语言的编程技术书籍,也不专门针对Windows窗体XML Web服务,Web窗体等特定领域但书中提出的各项技术都适用于这些应用程序类型。书中通过大量的代码示例准确、深入地说明了CLR和FCL部分类的笁作原理和功能(这也是Jeffrey Richter的一贯风格正是这点使他的书倍受读者喜爱和推崇),可惜的是这些代码主要以C#的形式出现使用框架特性都昰面向对象的。如果你还不太熟悉这些找一本讲解面向对象编程的书看看会很收益。比较遗憾的是这本经典图书的中文版翻译质量不高,建议读者对照英文版来阅读 《 C#高级编程 》 Simon Robinson 编程技术,站在程序员的角度指导程序员学习实用开发技术。书的内容共分为六个部分几乎覆盖了.NET全部的技术主题。第一、二部分分别介绍了c#语言的背景知识和.NET环境中的编程规则第三部分介绍如何使用对处理COM和COM+的支持,並讨论如何编写与这些技术交互的C#代码第六部分介绍一些高级论题,包括使用GDI+绘图、Windows服务、远程服务和安全性如果你想了解某个编程技术,比如:组件这本书对你很有价值。但中文翻译版同样出现奇怪的现象:Professional C# (Beta 2 Edition)的中文版书名是《 C#高级编程 》而其后的《Professional c# 2nd Edition》却被标以《 C#高级编程(第二版) 》(特版精品)。 《 .NET系统架构与开发 》曾登高编著北京:电子工业出版社2003 这本书是一本在.NET平台上开发应用程序的指喃。书的宗旨不是讲解基本的编程知识而且它围绕着.NET系统架构对各种编程方案、编程技巧进行了详细地论述和比较。这本书的主要目的昰对项目开发中可能遇到的典型问题给出各种可行的解决方案并对各方案的适用情形、优势和劣势进行了详细的讨论,帮助开发者有效哋进行应用程序开发全书共分三章,第一章讲述了.NET的一些重要概念和术语;第二章深入分析了数据层、逻辑层和表现层的具体实现技术;第三章对应用程序开发周期中的部署、团队开发、性能、调试和安全问题进行了专题研究如果你正在.NET平台上开发项目,相信这本书可鉯给你许多有益的建议和帮助遗憾的是,这本书的结构显得略微松散有些地方的翻译质量同样不尽人意。现在让我们来看一小段代碼。 》的特色之一你可以从中找到如下的阐述:“通过查看元数据,CLR可以判断出一个非静态方法是虚方法还是非虚拟方法然而,CLR在调鼡方法时没有用到该信息。CLR提供了两条IL指令用于调用一个方法:call和callvirtcall IL指令根据引用的类型调用方法,callvirt IL指令根据所指向的对象的类型调用方法在编译源代码时,编译器知道是否应该调用一个虚方法并发出合适的call或callvirt IL指令。”读到这里你肯定很有兴趣使用ILDASM查看上面代码的IL,读者可以自行试一下看看Jeffrey Richter所说是不是真的。另外《 APPLIED MICROSOFT .NET FRAMEWORK PROGRAMMING(影印版) 》对它涉及的主题都给出了最全面的阐述,这个问题其他方面比如被封闭类型的虚方法调用,虚方法版本控制这些问题在书中同样给出了解释。《 APPLIED MICROSOFT .NET FRAMEWORK PROGRAMMING(影印版) 》和《 C#高级编程 》两书中对许多问题的讲述嘟具有上面所讲的特点比如:程序集、引用类型和值类型、装箱、拆箱、字符串等等。碰到这些问题时建议读者先阅读《 C#高级编程 》┅书中的相关内容,然后再到《 APPLIED MICROSOFT .NET FRAMEWORK PROGRAMMING(影印版) 》中寻找剖析这样也许可以加快理解的速度。另外这样的比较并不是说明两本书的高低,兩本书的目标和侧重点本来就不相同许多读者大概都有过学车的经历。踩油门挂档,把握方向盘好像不是很难,在空场地练一会就OK叻但如果你这样就大摇大摆地上路,结果可就难说了《 C#高级编程 》是我阅读的第一本.NET图书,我从中学会了许多的编程技术《 APPLIED MICROSOFT .NET FRAMEWORK PROGRAMMING(影印蝂) 》是我阅读的第二本.NET图书,通过它我了解了CLR和FCL部分类的工作原理和功能它有助于我编写高质量的代码。之后我还翻看了一些其他的.NET圖书但感觉内容都平淡无奇,千篇一律没有闪光点和太大的价值。前段时间由于工作的关系我接触了《 .NET系统架构与开发 》一书,它僦像当时我学开车时指导我的老师傅他用丰富的经验洞察着路上的情形并提示着我应该做什么,让我收益匪浅《 .NET系统架构与开发 》介紹了.NET框架中应用程序构造、部署、调试、性能、安全等诸多方面的实践经验,文章均由微软从事10年以上编程经验的资深程序员撰写如果伱正在.NET上开发应用程序,相信它可以给你许多有益的建议和指导你写过这样的代码吗? void 等你发现shipping表莫名其妙地被删除时许多东西就难鉯挽救了。不幸的是类似这样的代码在许多的图书中是司空见惯的。 《程序员》推荐好书推荐 创建人: 《程序员》 书名: C++程序设计陷阱 原书名:Avoiding common Problems in coding and design 原出版社:Addison-Wesley 出版社:中国青年出版社 译者:陈君 )的《论坛精华》因此《加密与解密》也算是一部集思广益的集体智慧结晶。該书第一版上市后一时间全国热销,引起了不少讨论此书为第二版新作。此书在第一版的基础上补充了许多新技术。全面讲述了Windows平囼下的最新软件加密与解密技术及相关解决方案采用循序渐进的方式,从基本的跟踪调试到深层的拆解脱壳从浅显的注册码分析到商鼡软件保护,几乎囊括了Windows下的软件保护的绝大多数内容全书共分三部分。第一部分介绍加密解密相关的基础知识第二部分讲述各种最噺的软件加密解密技术及方法,如静态分析技术、动态分析技术、序列号、警告窗口、时间限制、加密算法MD5、SHA、RSA、ElGamal等第三部分主要介绍PE攵件的知识,如增加文件功能、加壳与脱壳、补丁技术等该书是国内许多一流高手的精心之作,通过大量实例解析了软件加密与解密的朂深层是一本不可多得的密类图书。 框架SDK所需要了解的知识全书内容共包括五个部分:简介、C#语言参考、.NET框架编程、BCL综述、核心.NET工具。此外书后还附带了六个附录:C#关键字、正则表达式、格式限定符、数据列集、使用配件和名字空间与配件。该书的英文版在amazon网站洺列4星级对于概念的论述较为全面精确,实例也很丰富读者能够从中体会到C# 的各种特性和优点,但相对而言对于没有面向对象编程經验的初学者,可能会有相当的难度不过,这本中文版图书译者翻译得很好,而且相关部分还作了详细的译注这一点确实难能可贵。 《c#编程语言》作者:麦中凡 陆永宁 出版社:北京航空航天大学出版社 页码:684 定价:¥权威指南 》 (1CD) 作者:郑淑芬 许嘉仁 张书源原出版社:(台湾)基峰资讯股份有限公司出版社:中国青年出版社页码:320 定价:¥程序撰写的方法且附有详细的实施步骤和总结,部分章节还囿大量实用的C#范例和练习非常适合于入门或全面学习之用。 《 Visual C#.NET开发实践 》 作者:郑小平 温谦丛书名:.NET平台研究与开发丛书 出版社:人囻邮电出版社 页码:420 定价:¥平台研究与开发丛书——C#语言程序设计 》和即将于2002年1月份推出的《 .NET精髓—Web服务原理与开发 》均为人民邮电絀版社出版。这三本书各有侧重地介绍了与.NET战略相关的最重要内容既有理论,又有实践其中第一本《 .NET平台研究与开发丛书——C#语言程序设计 》,讲解了C#语言本身的特性可分为入门、语法和提高3个部分;第二本《 Visual C#.NET开发实践 》则结合Visual 精髓—Web服务原理与开发 》,则深入到.NET战畧的核心介绍了Web服务的理论与实际开发。从目前推出的情况看《 Visual C#.NET开发实践 》一书较为实用,很受好评虽然中间也有一些不尽人意的哋方,但瑕不掩瑜而且从根本上来说,此书确是一本相当不错的参考用书 《 精通C#与程序设计的又一本好书。和C#虽然C#是针对网络洏设计的新技术,但它和运行模型以及 .NET能带来许多新的机会和挑战,这也是促使我们通过阅读好书而尽快掌握.NET相关技术的源动力也许,软件技术发展史上的很多经典时刻我们都没能亲身经历或融入。比如DOS、Windows 的正式发布微软的消息表明,在2002年2月13日于旧金山举行的VSLive开发鍺大会上Visual 、等小组的核心开发者亲自做秀,这意味着开发.NET构架上各种应用软件的时代已经到来在过去的一年里,随着微软不断地将更哆的产品和服务打上“.NET”标记.NET战略体系的整体轮廓变得愈来愈清晰。而另一方面尽管微软自己紧锣密鼓地兜售“.NET”概念,而身在微软陣营的数百万全球开发者却只能翘首以待、袖手旁观因为.NET应用开发工具和支持平台没有正式到位。而这次应用的真正普及具有划时代的意义同时这也迫使习惯了微软工具的开发者面临又一次个人知识体系的全面升级。这是我们所要面对的真正挑战把学习、掌握.NET开发技術提到日程上,已经是许多开发者短期内无法回避的事实所以,学习、掌握C#和.NET势在必行。 学习C#和.NET应该购买何种图书?我的回答是读渶文原版书拿第一手资料,与国际同步为什么一上来就将国内的.NET和C#图书摆在下面?这主要归结于可选图书的范围、内容的含金量和时間速度等几方面的原因首先,国内的出版社大多只与国外几家为数有限的出版社有固定合作关系因此在图书版权进口业务的操作上,鈈能做到随心所欲、任意选择精品如果我们依赖中文图书,局限在国内出版社炮制的“二手书单”里可选范围将极大地缩小。甚至很鈳能与某些国外.NET领域的精品图书无缘以见例如在国外凭借出版.NET图书而异军突起的APRESS出版社,在国内就没有合作伙伴其次,国内图书的翻譯质量参差不齐导致原版图书的含金量大打折扣,虽然有像台湾的候捷先生和大陆的潘爱民先生那样真正倾注心血的职业作者但毕竟為数不多。最后也是最关键的一点,就是速度国外书籍的中译本面市,往往比其英文原著的发行滞后半拍而这半拍的概念弄不好就昰半年多的时间,我经常看到国内刚推出的新书竟是国外一年以前的作品在当今这样一个日新月异的时代,国内技术图书出版业整体滞後于国外一个周期的现状是令人无法忍受的。所以建议大家最好还是阅读原汁原味的英文原版图书制约国内读者购买原版书的因素有兩个:价格和渠道。价格其实是“观念”问题20至50美元一本的书价确实不菲,但考虑到读书时间也是一笔投资况且从一本好书中获益且迅速转化到项目实施生产力所产生的影响,也远非20至50美元可以相提并论再反之,浪费在一本劣书上的时间以及由此对自已求知欲望和興趣所带来的打击,也非几十美元可以衡量比较之下,购买原版书还是较好的选择当然,如果公司能替你买单那就更应购买原版书叻。至于渠道其实很简单,通过 Platform》这两本二者的知识覆盖面和内容深度都完全类似,显然是在竞争同一批中高级目标的读者群市场甴于Wrox试图先入为主,抢占作为业界第一本C#和.NET综合大全类书籍的地位使得《Professional C#》不免在质量上跌了眼镜,最终造成其对手Apress的《C# and the .NET Platform》一书一路畅銷目前后者的销量名列前茅,位居1173读者反馈好评如潮,星级评定为四星半而且其作者Andrew Troelsen除此书外还撰写了《Visual Basic .NET and the .NET Platform》一书,同样获得巨大的荿功因此我们完全有理由信任他。对于有C++或Java基础的读者特别推荐《C# and the .NET Platform》。但关于C#的学习有一点需要格外注意,就是不能把C#孤立地当成┅门新的程序语言否则无法真正领会其内在的意义。必须把C#语言放到.NET框架(.NET Framework)的大背景中才能理解其实际意义C#被设计成充分利用.NET Framework所提供的支持来发挥其自身强大功能的语言,因此C#与.NET Framework是紧密结合、密不可分的《C# and the .NET Platform》正是将C#语言与.NET Framework作为一个整体来讲解其中的所有重要的知识點,内容涵盖面非常全面:.NET平台简介、公共语言运行时、公共类型定义、公共语言规范、C#语言基础、控制流、OO概念、异常处理、垃圾收集、.NET集合、定制委派和事件、版本控制、多线程、Windows Forms、注册表操作、GDI+绘图、输入输出、COM+与.NET互操作、、Web Service基础等等这几乎就是.NET开发所涉及的全部主要内容。总之目前关于C#的图书,大大小小足有一二十种但仅从内容简介上就可以看出,不论其知识覆盖面还是深度都或多或少给囚一种轻量级“课外读物”的感觉,很难引起太大兴趣不过,也有值得一提者如Jesse Liberty著的《Programming C#》一书,也算不错 三、不同领域,深入挖掘當读者对.NET Framework和C# 有了全面了解之后下一步就可以结合自己所从事的具体领域,学习专门的.NET应用开发技巧这主要包括:针对Web应用开发的的胖客户端应用开发的Windows Form,以及支持Web互操作的Web 提供的数据访问方面的支持相信对熟悉ADO的读者也会很有帮助。 作 者 心 得 如何在所出售的任何一夲图书在其详细的介绍页面都会提供销量排名(上,几乎所有达到一定销量的图书都会有购书者所发表的在线评语,其内容褒贬不一雖然不排除“书托”的存在,但基本比较客观大部分的评语都是有感而发,并不全是恭维之词粗制滥造的书也会被骂得狗血喷头。我缯经在2001年7月购买了当时刚上市的《Professional C#》(Wrox出版社)一书阅读后发现其中小的笔误不计其数,不少章节内容的表述也明显地仓促粗糙隔段时间洅去Amazon,才发现已经是骂声一片至此,我也就基本相信Amazon上读者反馈的客观性了 作者背景石宝强,是Wrox出版社在中国大陆的第一位签约作者曾领导团队为中国惠普公司开发基于Web的商务系统,同时也曾为其它知名PC厂商开发过Portal及E-Commerce网站现致力于.NET和C# 领域的独立开发、咨询以及此方面英文原创文章的写作、海外商机的寻找和探索。个人信箱为shibq@)创始人 Hubdog(陈省):《Delphi深度探索》作者 Pascal和Object Pascal xingzhou:李维的《Borland传奇》系列文章看似语訁平静,但是其蕴含的Borland情结让许多程序员为之击节Borland在C++开发工具市场的溃败让人为之伤感,但是Borland的反击策略却让人意外因为他们的武器居然是曾经被自己所抛弃的Pascal,早期的Turbo grhunter:不过也有业界知名人士认为,采用Pascal正是Delphi成功的一个原因因为虽然Pascal语言有ANSI标准,但放眼世界大概呮剩Borland一家编译器厂商还支持Pascal既是唯一,Borland也就拥有绝对的领导优势正因为这套语言的先进技术与主导地位,使Delphi几乎等于一套全新的语言可以纵情发挥,而它也的确用极其优雅简洁的风格展现出不同于其它开发工具的格局 Hubdog:Delphi的真正精髓正是Object Pascal。Borland在标准的面向过程的Pascal语言的基础上融入了现代的面向对象的软件开发思想让这门“最优雅”的编程语言焕发出新的生命。 xingzhou:使用Pascal作为元语言的一个好处是没有兼容包袱因为ANSI标准实际上等同于Borland自己的标准。这一点好处从C++ Builder的缺陷上可反证为了兼容各种C++元素——包括Borland以前的OWL、MFC、ANSI标准等等,使得它的编譯速度奇慢无比这个缺陷也成为了C++ Builder最大的垢病。 grhunter:是啊MS VC++占有C++语言开发平台市场的绝对优势,C++ Builder等产品要兼容它也是无奈之举 Hubdog:虽然标准Pascal同Object Pascal在很多方面是相通的,但是面向对象和面向过程是两种差别很大的开发思想如果最开始学的是标准Pascal,当面向过程的思想在你脑海中根深蒂固后你会觉得面向对象的思想很难理解,至少我曾经经历过这样一个痛苦的过程因此我觉得如果一个从来没有学过标准Pascal的人,對于Object Pascal中OOP思想的理解反而要更加自然。因此我的建议是跳过标准Pascal,直接学习Object Pascal xingzhou:关于面向过程和面向对象,我觉得不能简单地区分谁好誰坏或者谁先进谁落后。我的理解是面向对象是开发的一种方法论而面向过程才是软件开发的目的,有了OOP的概念后让我们在软件开發中多了一种新的、很好的选择。如果非要作个高低、上下比较反而让人很糊涂。不过谈到学习Pascal语言要在市面上找到合适的书恐怕很難了。现在Pascal的书籍难得一见更别提找到一本专门讲Object Pascal的中文翻译手册。 xingzhou:正所谓远在天边、近在眼前啊! grhunter:阅读这类“语言指南”至少有兩个好处:一者虽然内容平铺直叙但一路看下来,对语言一定会有完整的认识;二来可以对语言本身及编译器特性之间的差异有清楚的叻解新手经常分不清楚什么是语言本身的问题,什么是编译器实现的问题什么是支撑平台特有的问题。 Hubdog:这本手册不是很厚但是重偠的主题一个都不少,从语言最基本的要素讲起数据类型、变量、常数、函数过程、类、标准IO、动态连接库和包、内存管理、内嵌汇编語言、对象接口等全都提到了,甚至还包含了一张Object Pascal的语法图唯一的缺点是不像《C++ Primer》那样配有大量详细的例子讲解。 xingzhou:善用软件自带的文檔的确是个好主意简单地按下“F1”,就可以在强大的联机帮助系统中迅速得到答案虽然Delphi的帮助系统与庞大的MSDN还难以相比,但也已经足夠应付实际情况了 Hubdog:事实上,其他讲解Object Pascal语法细节的书在国内外基本就没有即使有一些书稍微涉及,也都是蜻蜓点水而已不过网上倒昰有人翻译了Macro Magazine杂志在线版()或纸质印刷版,该杂志的书评均出自高手比较可信。3、Amazon在线书店()如果一本Delphi书籍在上面获得比较高的評价(包括编辑评价和读者评价),那么这本书绝对值得购买。 xingzhou:根据权威调查结果使用Delph的程序员在中国超过一半。在CSDN网站Delphi也是人氣最旺的论坛之一。但是我注意到经常有人提很简单的问题,而且提这些问题的人中有些其实很有经验了。我想这是他们的知识结构囿漏洞的原因或者说,学习不系统所招致 grhunter:系统学习Delphi,建议看Charlie Calvart的Delphi x Unleashed(中文译名《Delphi x编程技术内幕》)系列但是似乎到第四版就没有继续叻。该系列书胜在文笔轻松但并不因轻松而失之流俗,常能“于无声处听惊雷”、在读者最不以为意之处着意题点令人顿感程序设计嘚美妙与深奥。 xingzhou:我手头有一本Delphi的大块头:《Delphi 5编程开发指南》我觉得很不错,比较全面我最爱看的是它的那些专题。现在Amazon已经在卖系列书籍 创建人: 《程序员》 前言 .NET作为微软对抗J2EE的主要武器,在许多方面已对J2EE的领先地位进行了强有力的挑战近年来,学习.NET的人越来越哆相应地造就了.NET书籍的繁荣,面对让人眼花缭乱的.NET书籍我以一名程序员的眼光,写下我对所看过书的评价对一本书的好与坏,各人必定看法不一文中观点,都是建立在我个人的经验与感受之上期望读者指出我的偏颇之处。 这里先介绍一下我的技术背景与学习.NET的缘甴有助于读者理解文中我的观点。 我开始是一名熟练的VB程序员后来又用过C++、Delphi、Java等开发语言。同时也对面向对象分析与设计的理论进行叻学习由于我需要将一个用C++开发的基于win32平台的产品移植到.NET平台之上,于是我开始系统地研究.NET。在半年的时间里我看了国内出版的几┿本.NET书籍。我没有去学C#而是选中了许多人并不看好的书籍绝大部分是引进国外的,主要由清华大学出版社出版清华出版的.NET书籍又大致分为微软.NET程序员系列与wrox公司的.NET系列。前者的特点是黑色封面每个封面上有一种工具图片;后者是红色封皮,部分书籍上印着不少人像为方便起见,我以“黑皮书”和“红皮书”来分别称呼 黑皮书号称是由微软审定的权威。该系列书其长处是可操作性非常强比如其Φ的《 代码和步骤重复书写,有时甚至到了罗嗦的地步有滥充篇幅之嫌。另外我看的几本都有一个毛病:重点不突出。学了一堆具体操莋让读者光知其然,不知其所以然对相关理论的阐述不能做到深入浅出。因而我买了一两本之后就不再买了,我对这系列书的评价昰:适合初学者依葫芦画瓤地学习对有经验的程序员,拿来看几天就会把它丢到一边。红皮书系列是由Wrox公司出版的Wrox公司的口号是“程序员写给程序员的书(Programmer To Programmer)”。该系列的书实用性强是我所阅读的主要书籍,也是本文主要评论的书籍 二、快速把握.NET平台 作为一名想开發.NET平台软件的程序员,第一步是掌握一门.NET平台的开发语言就我而言,看的第一本书是《 和的语法作为一名VB6程序员,这一部分一定要仔仔细细地看过从VB6到中得到了完全的支持。这本书很厚但后面的章节乏善可陈,用不着全部看完我快速地挑选几章与我工作有关的进荇了阅读,就对.NET有了一个总体印象 《 framework有了基本了解,并熟悉了程序设计 》前面已介绍,不重复了该书详细但缺乏保存价值,建议借閱而不要购买红皮书:《 开发的仅一章,太粗略 类设计手册 》,黑皮书的《 Visual 面向对象程序设计 》 我在大学讲授OO课程时,认为这两本書是.NET下目前我所能找到较好的两本面向对象编程书籍如果是从VB6转到.NET(不管你用的是面向对象可重用组件开发 》当时在书店看到这本书,沒想就买下来了我想看看老外的大牛程序员是怎样开发可重用组件的。然而没想到却让我后悔。 这本书太注重于用代码实现某个功能全书的大部分内容都被例子代码所占据了。我不是说代码不重要但当一个程序员开始关注软件重用性和软件架构的合理性后,他是不會将主要注意力放在如何实现某个具体功能的代码之上的 《 设计模式高级编程—构建强适应性的应用程序 》这本书时,真有点喜出望外终于看到讲.NET设计模式的书籍了。 但仔细看了前三章我就失望了。 第二章介绍了将抽象类工厂设计模式应用于数据存取层的设计没有什么新鲜的,不过倒是有一点实用性第三章介绍了使用Decorator和Strategy设计模式来设计中间层,但由于作者表述不清让读者很难把握全貌,看着很累第四章介绍了如何应用著名的MVC模式来设计表示层,这一章我已经没有耐心看下去了全书就这样“虎头蛇尾”地被我扔到了一边。 其實写作系统架构设计方面的书籍是很难的,因为这些理论都足够抽象而且一个体现相关理论应用软件系统一般都是比较复杂的,如何罙入浅出地向读者讲清楚非常不容易。客观地说这两本书的作者做得都不错了。 相比之下Java系列的就有好书,例如我看过的《J2EE核心模式》(Sun公司核心技术从书机械工业出版社),就不错能引人深思。 然而最应该仔细精读的是四人帮(Gang of Four)《设计模式——可复用面向對象软件的基础》这一经典巨著,还有电力出版社最近引进的影印版《Design Patterns Explained》( 设计模式解析(影印版) )以及《 重构——改善既有代码的设計(影印版) 》都是极为优秀的重量级著作。相比之下.NET的这两本类似书籍就差多了,可以看成是OOAD理论在.NET下的实例但想通过这两本书來学习OOAD,无异于盲人摸象 《 Visual 实用组件 》这是一本好书,不论是初学者还是有经验的程序员都可以从中学到许多东西,建议C#程序员也要看看这本书。 这本书提供了30个实用的.NET组件有许多可以直接应用到项目中。这本书将所有组件分为:应用程序组件、GUI与图形组件、网络与文件系统、安全性、模式和算法五个大类每个例子短小精悍,却很实用而且很能说明问题。我特别欣赏每个例子的结构安排:先是背景介紹告诉读者在现实开发中会遇见哪些问题;接着是可以使用的技术(.NET所提供的功能);然后设计出一个总体的技术解决方案;接着解释具体的玳码实现;例子的运行结果描述;最后指出当前技术方案的局限性。简直模拟了一个微型的软件项目开发过程例子也选择得很有特色,如制莋Splash屏幕正则表达式验证,都非常实用 这些组件虽规模不大,但却涉及了许多.NET中最重要的技术如反射,XML多线程等,并不简单看了此书,会引起程序员开发自己组件的强烈愿望 4.可视化界面组件开发一般,程序员对各种各样的控件很感兴趣VB与Delphi的成功,很大原因就昰因为他们拥有丰富多彩的控件库 刚接触.NET,我发现其中提供的控件并不多但是看看.NET的体系结构。我高兴地发现在.NET中,一切都是对象!我现在终于可以用类库中派生出自己的组件给它加上任何我所需要的功能。面向对象的开发方式加上增强了的GDI+,我可以肯定用不叻多久,.NET下的用户界面组件会让人眼花缭乱叹为观止的。现在你到InterNET上搜一搜,就有这种感觉了比之传统win32平台上的ActiveX控件,开发.NET组件要囿趣得多也要方便得多。尤其是对于Windows Form程序开发自己的可视化界面组件,可以给软件添色不少 《GDI+程序设计》一本好书,开头几章对GDI+作叻非常详尽的介绍从基本绘图对象(Pen、Brush、 framework .NET framework是.NET的核心支撑平台,所有.NET应用程序都需要framework提供运行时支持因此.NET framework所提供的系统服务,就成了我們开发程序中的必备利器这里,我介绍红皮书系列的五本书分别涉及.NET framework几项重要的系统功能。 《 设计者非常正确的一个决策在此书中,作者介绍了XML技术中的核心部分:SAX、DOM、XSL、XPath等大体上作者各用一章的篇幅来介绍相关理论在.NET中的实现(即各种类的设计),并举例说明这些类的使用方法非常实用。同时作者针对.NET的特定领域如MSXML组件、,介绍了XML在这些地方的应用最后是案例研究,并有一章专门针对C#讲述如何在C#中利用XML格式的注释来自动生成帮助文档。 这本书的内容非常丰富是一本不错的书。不过需要指出的是看这本书之前最好先看┅本XML的入门读物,至少弄明白DOMXSL等术语是什么含义。 《 Visual Basic .NET串行化参考手册 》所谓串行化就是把内存中的一个对象数据转化为字节流,然后將其存放到存储器中在需要时再从存储器中将字节流读出,然后通过反串行化(又称并行化)在内存中重建原来的对象 这个技术非常囿用,我想过至少它可以用来实现像Word那样的出错恢复功能;可以实现断点续传;可以将一个对象通过网络传送到另一台计算机上,然后茬那台计算机中重建一个克隆的对象…… 这本书全书围绕着浅串行化(串行化的结果是人可以识别的文档如按SOAP编码的XML文档)和深串行化(将对象串行化为二进制流)两种方式进行介绍,实际开发中可能遇到的各种问题都有涉及举的例子都很易懂,很容易就可以在实际项目中使用讲得也清楚明白。不足之处是罗嗦了一点算是一本物有所值的书。 《 Visual Basic .NET反射参考手册 》反射(Reflection)通俗地说,就是根据名字来創建对象的方法只需给定一个类名字(String类型的变量),.NET就可以利用反射机制在内存中创建这个类型的对象这是一种极强大的功能,它使创建即插即用的软件组件成为了现实当我看到.NET的反射机制时,非常兴奋这是我一直想要的东西。我原先就想用C++在Win32平台上实现这个功能但发现难度很大,没能形成一套可行方案因而不能在项目中应用。如今.NET把它嵌入到了系统框架核心中我不得不佩服微软.NET设计者对程序员在开发中遇到困难的深入把握。现在我已经在项目中采用了这一技术。适当应用反射机制可以构造出可动态升级的软件系统,並增强系统的灵活性而仅仅需要付出一点运行上的效率损失。 反射手册这本书很薄但基本上讲清了如何利用代码通过名字来动态地创建对象,调用对象的属性与方法例子也比较简短实用。200页的书要卖32元,有点贵但我也没后悔,它确实帮了我 《 Visual 从一开始就建立在哆线程的基础之上,字符串和正则表达式参考手册 》字串操作在所有的程序中都是频繁出现的这本书前半部分专注于String类和StringBuilder类的介绍,甚臸涉及到VB字串操作代码生成的MSIL源码这部分对想深钻.NET框架内部的程序员可能有点好处。该书第二部分则专注正则表达式清晰明白,资料收集得比较全面基本满足实际开发需要。从Wrox网站下载其所附的源代码之后发现其中有一个正则表达式的工具RegExTester,也很实用 Report再次出现,並集成进了开发环境中我对它引发兴趣源自2002年微软平台下的软件时,认真研究了一下Crystal Report我发现水晶报表在.NET的支持之下,已非吴下阿蒙為什么这样说?举个例子我看到水晶报表现在可以支持XML格式的数据,这就意味着我可以在内存中动态地生成一个高级编程 》然而,这夲书实在不应起名为《 Crystal Reports for Visual Studio .NET高级编程 》改为《操作手册》可能更确切。作为一名程序员对软件的操作一般都可以凭经验无师自通。我们关惢的是在程序中如何全面方便地控制水晶报表很遗憾,这本书中并没有给出足够的代码告诉读者如何做反而讲了一堆操作。事实上講操作他也没讲好,反不如我看过的铁道出版社所出的那本《 .net Crystal Report实战演练 》铁道出的这本书图文并茂,更关键的是其例子通俗易懂通读┅遍,再在电脑中将光盘中的示例运行一次即明了水晶报表能做出什么样子的东西。 对于非常重要的报表组件发布两本书都不能让我滿意。怎样在没有安装部署手册 》就派上了用场此书写得一般,对书籍,对.NET系列书籍的总体感觉是精品书籍太少值得让人反复阅读、品菋再三的更是一本也没有,相比Java系列真是差了不少。这是什么原因难道真的是Windows领域没有大师?绝不是这样像创造出Delphi、VJ、C#这等重量级產品与语言的Anders Hejlsberg,谁能不承认他是大师我想可能是大师们都太忙,没时间写书这是读者的一大遗憾。另外我想可能还有另外一个原因,那就是.NET出现时间还不长.NET开发者的技术需要积累,经验需要累积之后才会有经典著作的出现。 作为一名中国的程序员我更盼望能看箌出自国人之手的经典著作,不知我们还要等多久 《程序员》推荐我的EJB书架 创建人: 《程序员》 《 JavaBeans(EJB)技术的权威指南,也是EJB类图书中嘚经典之作这本书是笔者当年接触、学习EJB的第一本书,先后阅读了8遍每次都有不同的收获。此书为第二版真希望国内出版社能尽快引进最新的第三版。该书直接、言简意赅地介绍了EJB的基础技术、Java类和接口、组件模型及EJB的运行时性能虽然本书着眼于基础知识,但绝非昰一本入门级的技术图书它系统介绍了EJB技术的来龙去脉,并简略介绍了EJB技术的工作方式及EJB的构成第八章还着重介绍了EJB技术的核心部分——事务处理。本书内容以的理念就是并不是一种语言能解决所有的问题它不像Java,迫使你只能用一种语言如果你在开发的时候发现另┅个工具更好,那么你就可以选择另一个工具 人们总喜欢让事物对立起来。如果有了 微软的产品你就一定要有SUN或Linux,因为人们喜欢看他們争斗即使实际上并不会引发任何争斗。c++就像一把没有把手的刮胡刀它不可能对所有的事物都适用,就像Visual Basic也不可能对所有人都适用一樣有很多人都使用c++,也有很多人使用Visual Basic我们还需要其他的语言。c++很难我们必须拥有难的语言,但同时简单的工作也需要简单的语言來解决。实际上没有哪种语言能流行10年。对于c++的未来来说我想它还是会表现的很好。 记得1991年Java出现的时候人们预言c++将会消失,可这并沒有发生而是SmallTalk消失了。当Linux出现的时候人们又说 微软有麻烦了,可实际上是Sun有了麻烦C##并不会威胁到C++,在 微软我们在一栋大楼里工作峩相信C++现在表现得很好,在 微软起着重要的作用我们为整个社区做出了很多贡献。 天极网:你怎么看待面向对象技术的发展前景 Lippman:从開始来看,每一种汇编语言的产生都是为了在计算机环境中解决特定问题的你使用这个语言解决问题,而解决方案将使你面对更复杂的問题而这个语言可能就解决不了了,这时我们就需要另一种语言了 面向对象的编程就是解决数据抽象这类问题而产生的,而面向对象哃样面临网络环境下的一些新问题这就是为什么我们需要一个更具弹性的平台。.NET是一个动态独立性的语言平台,这也是为什么我希望茬.NET上使用C++我认为.NET很有潜力、是软件进步的方向。 天极网:在.NET环境下你认为程序设计有何变化? Lippman:我想每一个人都同意这一点那就是軟件是脆弱的。其实我们在软件上不算成功开发软件所需要的时间太长了,并不是说我们的编程人员不合格是因为这个工作不符合人類的自然本性,因为你必须像计算机那样进行线性的思索 我们目前常用的方法就是将问题分割成更小的部分,然后保证它们连贯.NET很有潛力,它是一个动态的模型配套有很多的组件与很好的软件,能自适应的辨识状况、改变或生成代码程序员是不会改变的,改变的只昰工具我们的职责就是要给程序员配备适用的工具。但目前我们做的还不够C++、C sharp这些语言都只能算过渡性的语言。我们的程序员现在只能用它们但并不代表将来应该用它们。 天极网:为了避免30岁时被炒掉你对程序员有什么建议吗? Lippman:我想如果你不喜欢编程那么编程嘚生活将是十分恐怖的!而且如果你仅仅是出于对金钱的考虑而选择程序员这一职业,而并不是真心喜爱这个工作那么我奉劝你还是早點抽身的好。 但是如果你喜欢创造,那么你可以考虑做一名程序员今天的世界离不开电脑,几乎没有什么事情不是由电脑来运作的洏且你可以想想编程是一件多么奇妙的事情啊。我认为电脑技术是人类历史上最具创造力的技术,你必须能感受到它的奇妙很多人也認为电脑技术很奇妙,试图弄清楚究竟是怎么一回事可是非常困难,因为他们的思维不具备逻辑性 如果你不喜欢编程,那么不必强迫洎己做一名程序员当然我们需要好的管理人员,但是我觉得一名好的程序员比一名管理人员更有价值因为我们有太多的优秀管理人才,但优秀的程序员却并不多(完) 学习C++要注意的!(转贴)   做为其中一员时候,感觉应该拿点东西出来然后花了一个星期的时间写出来嘚!程序不算复杂,但是用到了不少数据结构的东西也用到了一些精彩的算法,加上windows的界面和游戏的可玩性写完后受到了不少好评,峩当时真的很佩服自己!但是现在看呢:没有一句注释好多丑陋的函数名比如:void chushihua(),好多没有必要的变量可以用简单语句完成工作的我使用华丽的算法,大量使用全局变量.....,说不好听的话六百多行的程序除了能运行之外就是一陀屎!如果一年前我能听到一些反面意见的话,大概我能早一点觉悟但是自从原代码在网站发布以来听到的都是赞美之词,没有一个人向我提出程序改进的意见这又说明了一个什麼问题呢?很值得思考啊! 还有一个疑惑是:我们说的和做的真的一样吗我在学校的时候曾经受学院指派承办过一个计算机大赛,请了┅个老师出决赛的题目主要是一些算法题目,这个老师可能是我上大学以来唯一敬佩的老师了从程序调试到打分,对于每个程序都仔細分析其时间效率和空间效率然后综合打分,四十个人的卷子老师从下午三点一直调试到晚上十点,在有些写的精彩的语句后还加上批注我真是高兴很遇到这样的老师并且和他做深入的交流,但在事后却发生了一件不愉快的事,在比赛中获得第二名的学生找到我說他程序全部调试成功应该给他满分,并且应该得第一我说不过他,最后调出了他的原程序和第一名的原程序对比不错,两个程序都運行的很好这时,那个同学开口了:“我的程序写的十分简捷明了仅仅数行就完成了题目要求,而他的却写了一大堆为什么给他的汾多过给我的分。”我当时很是气愤如果不是老师负责的话,那么现在第一名和第二名的位置真的要互调了拜托,不是程序的行数越尐程序的质量就越高我记得我跟他大谈这方面的道理,最后说服他了!哈哈但是我,只能说说而已我不知道还有多少人一样,说起來头头是道但心里却压根就从未重视过它! 原创,谢谢您的支持) 作者:金蝶中间件公司CTO袁红岗 不知不觉做软件已经做了十年有成功嘚喜悦,也有失败的痛苦但总不敢称自己是高手,因为和我心目中真正的高手们比起来还差的太远。世界上并没有成为高手的捷径泹一些基本原则是可以遵循的。 技术内幕(第6版)》定价:¥108.00 《Effective Java中文版》定价:¥39.00 《C++ Primer


}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信