页面

2010年8月31日星期二

CMD命令大全


CMD命令大全
关某个命令的详细信息,请键入 HELP 命令名  
XP.CMD命令大全   有关某个命令的详细信息,请键入 HELP 命令名 
ASSOC 显示或修改文件扩展名关联。
AT 计划在计算机上运行的命令和程序。 
ATTRIB 显示或更改文件属性。 
BREAK 设置或清除扩展式 CTRL+C 检查。 
CACLS 显示或修改文件的访问控制列表(ACLs)。 
CALL 从另一个批处理程序调用这一个。 
CD 显示当前目录的名称或将其更改。 
CHCP 显示或设置活动代码页数。 
CHDIR 显示当前目录的名称或将其更改。 
CHKDSK 检查磁盘并显示状态报告。 
CHKNTFS 显示或修改启动时间磁盘检查。 
CLS 清除屏幕。 
CMD 打开另一个 Windows 命令解释程序窗口。 
COLOR 设置默认控制台前景和背景颜色。
COMP 比较两个或两套文件的内容。 
COMPACT 显示或更改 NTFS 分区上文件的压缩。 
CONVERT 将 FAT 卷转换成 NTFS。您不能转换 当前驱动器。 
COPY 将至少一个文件复制到另一个位置。 
DATE 显示或设置日期。 
DEL 删除至少一个文件。 
DIR 显示一个目录中的文件和子目录。 
DISKCOMP 比较两个软盘的内容。 
DISKCOPY 将一个软盘的内容复制到另一个软盘。 
DOSKEY 编辑命令行、调用 Windows 命令并创建宏。 
ECHO 显示消息,或将命令回显打开或关上。 
ENDLOCAL 结束批文件中环境更改的本地化。 
ERASE 删除至少一个文件。 
EXIT 退出 CMD.EXE 程序(命令解释程序)。 
FC 比较两个或两套文件,并显示 不同处。 
FIND 在文件中搜索文字字符串。 
FINDSTR 在文件中搜索字符串。 
FOR 为一套文件中的每个文件运行一个指定的命令。 
FORMAT 格式化磁盘,以便跟 Windows 使用。 
FTYPE 显示或修改用于文件扩展名关联的文件类型。 
GOTO 将 Windows 命令解释程序指向批处理程序 中某个标明的行。 
GRAFTABL 启用 Windows 来以图像模式显示 扩展字符集。 
HELP 提供 Windows 命令的帮助信息。 
IF 执行批处理程序中的条件性处理。
LABEL 创建、更改或删除磁盘的卷标。 
MD 创建目录。 
MKDIR 创建目录。 
MODE 配置系统设备。 
MORE 一次显示一个结果屏幕。 
MOVE 将文件从一个目录移到另一个目录。 
PATH 显示或设置可执行文件的搜索路径。 
PAUSE 暂停批文件的处理并显示消息。 
POPD 还原 PUSHD 保存的当前目录的上一个值。 
PRINT 打印文本文件。 
PROMPT 更改 Windows 命令提示符。 
PUSHD 保存当前目录,然后对其进行更改。 
RD 删除目录。 
RECOVER 从有问题的磁盘恢复可读信息。 
REM 记录批文件或 CONFIG.SYS 中的注释。 
REN 重命名文件。 
RENAME 重命名文件。 
REPLACE 替换文件。 
RMDIR 删除目录。 
SET 显示、设置或删除 Windows 环境变量。 
SETLOCAL 开始批文件中环境更改的本地化。 
SHIFT 更换批文件中可替换参数的位置。 
SORT 对输入进行分类。 
START 启动另一个窗口来运行指定的程序或命令。 
SUBST 将路径跟一个驱动器号关联。 
TIME 显示或设置系统时间。 
TITLE 设置 CMD.EXE 会话的窗口标题。 
TREE 以图形模式显示驱动器或路径的目录结构。 
TYPE 显示文本文件的内容。 
VER 显示 Windows 版本。 
VERIFY 告诉 Windows 是否验证文件是否已正确 写入磁盘。 
VOL 显示磁盘卷标和序列号。 
XCOPY 复制文件和目录树。   
appwiz.cpl------------添加删除程序  
control userpasswords2--------用户帐户设置  
cleanmgr-------垃圾整理  
CMD--------------命令提示符可以当作是 Windows 的一个附件,
Ping,Convert 这些不能在图形环境下 使  用的功能要借助它来完成。  
cmd------jview察看Java虚拟机版本。   
command.com------调用的则是系统内置的 NTVDM,一个 DOS虚拟机。它完全是一个类似 Virtual PC 的   虚拟环境,和系统本身联系不大。当我们在命令提示符下运行 DOS 程序时,实际上也 是自动转移到   NTVDM虚拟机下,和 CMD 本身没什么关系。   
calc-----------启动计算器  
chkdsk.exe-----Chkdsk磁盘检查  
compmgmt.msc---计算机管理  
conf-----------启动 netmeeting  
control userpasswords2-----User Account 权限设置  
devmgmt.msc--- 设备管理器  
diskmgmt.msc---磁盘管理实用程序  
dfrg.msc-------磁盘碎片整理程序  
drwtsn32------ 系统医生  
dvdplay--------启动Media Player  
dxdiag-----------DirectX Diagnostic Tool  
gpedit.msc-------组策略编辑器  
gpupdate /target:computer /force 强制刷新组策略  
eventvwr.exe-----事件查看器  
explorer-------打开资源管理器  
logoff---------注销命令  
lusrmgr.msc----本机用户和组  
msinfo32---------系统信息  
msconfig---------系统配置实用程序  
net start (servicename)----启动该服务  
net stop (servicename)-----停止该服务  
notepad--------打开记事本  
nusrmgr.cpl-------同control userpasswords,打开用户帐户控制面板  
Nslookup-------IP地址侦测器  
oobe/msoobe /a----检查XP是否激活  
perfmon.msc----计算机性能监测程序  
progman--------程序管理器  
regedit----------注册表编辑器  
regedt32-------注册表编辑器  
regsvr32 /u *.dll----停止dll文件运行  
route print------查看路由表   
rononce -p ----15秒关机  
rsop.msc-------组策略结果集  
rundll32.exe rundll32.exe %Systemroot%System32shimgvw.dll,ImageView_Fullscreen----启动一个空白  的Windows 图片和传真查看器  
secpol.msc--------本地安全策略  
services.msc---本地服务设置  
sfc /scannow-----启动系统文件检查器  
sndrec32-------录音机  
taskmgr-----任务管理器(适用于2000/xp/2003)  
tsshutdn-------60秒倒计时关机命令  
winchat--------XP自带局域网聊天  
winmsd---------系统信息  
winver-----显示About Windows 窗口  
wupdmgr-----------Windows Update 

2010年8月30日星期一

python标准import

标准Import

Python中所有加载到内存的模块都放在sys.modules。当import一个模块时首先会在这个列表中查找是否已经加载了此模块,如果加载了则只是将模块的名字加入到正在调用import的模块的Local名字空间中。如果没有加载则从sys.path目录中按照模块名称查找模块文件,模块文件可以是py、pyc、pyd,找到后将模块载入内存,并加入到sys.modules中,并将名称导入到当前的Local名字空间。

可以看出了,一个模块不会重复载入。多个不同的模块都可以用import引入同一个模块到自己的Local名字空间,其实背后的PyModuleObject对象只有一个。

说一个容易忽略的问题,import只能导入模块,不能导入模块中的对象(类、函数、变量等)。如一个模块A(A.py)中有个函数getName,另一个模块不能通过import A.getName将getName导入到本模块,只能用import A。如果想只导入特定的类、函数、变量则用from A import getName即可。

嵌套Import

嵌套import,我分两种情况,一种是:本模块导入A模块(import A),而A中又有import语句,会激活另一个import动作,如import B,而B模块又可以import其他模块,一直下去。

对这种嵌套比较容易理解,注意一点就是各个模块的Local名字空间是独立的,所以上面的例子,本模块import A完了后本模块只能访问模块A,不能访问B及其他模块。虽然模块B已经加载到内存了,如果要访问还要在明确的在本模块中import B。

另外一种嵌套指,在模块A中import B,而在模块B中import A。这时会怎么样呢?这个在Python列表中由RobertChen给出了详细解释,抄录如下:

[A.py]   from B import D   class C:pass    [B.py]   from A import C   class D:pass 

为什么执行A的时候不能加载D呢?

如果将A.py改为:import B就可以了。

这是怎么回事呢?

RobertChen:这跟Python内部import的机制是有关的,具体到from B import D,Python内部会分成几个步骤:

  1. 在sys.modules中查找符号"B"
  2. 果符号B存在,则获得符号B对应的module对象<module B>。

    从<module B>的__dict__中获得符号"D"对应的对象,如果"D"不存在,则抛出异常

  3. 如果符号B不存在,则创建一个新的module对象<module B>,注意,这时,module对象的__dict__为空。

    执行B.py中的表达式,填充<module B>的__dict__ 。

    从<module B>的__dict__中获得"D"对应的对象,如果"D"不存在,则抛出异常。

所以,这个例子的执行顺序如下:

1、执行A.py中的from B import D

由于是执行的python A.py,所以在sys.modules中并没有<module B>存在,首先为B.py创建一个module对象(<module B>),注意,这时创建的这个module对象是空的,里边啥也没有,在Python内部创建了这个module对象之后,就会解析执行B.py,其目的是填充<module B>这个dict。

2、执行B.py中的from A import C

在执行B.py的过程中,会碰到这一句,首先检查sys.modules这个module缓存中是否已经存在<module A>了,由于这时缓存还没有缓存<module A>,所以类似的,Python内部会为A.py创建一个module对象(<module A>),然后,同样地,执行A.py中的语句。

3、再次执行A.py中的from B import D

这时,由于在第1步时,创建的<module B>对象已经缓存在了sys.modules中,所以直接就得到了<module B>,但是,注意,从整个过程来看,我们知道,这时<module B>还是一个空的对象,里面啥也没有,所以从这个module中获得符号"D"的操作就会抛出异常。如果这里只是import B,由于"B"这个符号在sys.modules中已经存在,所以是不会抛出异常的。

上面的解释已经由Zoom.Quiet收录在啄木鸟了,里面有图,可以参考一下。

Package(包) Import

包(Package)可以看成模块的集合,只要一个文件夹下面有个__init__.py文件,那么这个文件夹就可以看做是一个包。包下面的文件夹还可以成为包(子包)。更进一步,多个较小的包可以聚合成一个较大的包,通过包这种结构,方便了类的管理和维护,也方便了用户的使用。比如SQLAlchemy等都是以包的形式发布给用户的。

包和模块其实是很类似的东西,如果查看包的类型import SQLAlchemy type(SQLAlchemy),可以看到其实也是<type 'module'>。import包的时候查找的路径也是sys.path。

包导入的过程和模块的基本一致,只是导入包的时候会执行此包目录下的__init__.py而不是模块里面的语句了。另外,如果只是单纯的导入包,而包的__init__.py中又没有明确的其他初始化操作,那么此包下面的模块是不会自动导入的。如:

PA

--__init__.py

--wave.py

--PB1

  --__init__.py

  --pb1_m.py

--PB2

  --__init__.py

  --pb2_m.py

__init__.py都为空,如果有以下程序:

 
  1. import sys
  2. import PA.wave  #1
  3. import PA.PB1   #2
  4. import PA.PB1.pb1_m as m1  #3
  5. import PA.PB2.pb2_m #4
  6. PA.wave.getName() #5
  7. m1.getName() #6
  8. PA.PB2.pb2_m.getName() #7

当执行#1后,sys.modules会同时存在PA、PA.wave两个模块,此时可以调用PA.wave的任何类或函数了。但不能调用PA.PB1(2)下的任何模块。当前Local中有了PA名字。

当执行#2后,只是将PA.PB1载入内存,sys.modules中会有PA、PA.wave、PA.PB1三个模块,但是PA.PB1下的任何模块都没有自动载入内存,此时如果直接执行PA.PB1.pb1_m.getName()则会出错,因为PA.PB1中并没有pb1_m。当前Local中还是只有PA名字,并没有PA.PB1名字。

当执行#3后,会将PA.PB1下的pb1_m载入内存,sys.modules中会有PA、PA.wave、PA.PB1、PA.PB1.pb1_m四个模块,此时可以执行PA.PB1.pb1_m.getName()了。由于使用了as,当前Local中除了PA名字,另外添加了m1作为PA.PB1.pb1_m的别名。

当执行#4后,会将PA.PB2、PA.PB2.pb2_m载入内存,sys.modules中会有PA、PA.wave、PA.PB1、PA.PB1.pb1_m、PA.PB2、PA.PB2.pb2_m六个模块。当前Local中还是只有PA、m1。

下面的#5,#6,#7都是可以正确运行的。

注意的是:如果PA.PB2.pb2_m想导入PA.PB1.pb1_m、PA.wave是可以直接成功的。最好是采用明确的导入路径,对于./..相对导入路径还是不推荐用。

2010年8月28日星期六

事件模型与回调

考虑使用简单的回调代替事件模型。

ActionScript 3.0 事件模型基于对象调度的概念。事件模型是面向对象的,可以进行优化以重复使用代码。dispatchEvent() 方法循环访问侦听器列表,并对各个注册的对象调用事件处理函数方法。然而,事件模型的一个缺点是可能要在应用程序的生存期内创建许多对象。

假设您必须从时间轴调度一个事件来指示动画序列的末尾。要实现此通知,您可以从时间轴中的特定帧调度一个事件,如以下代码所示:

 dispatchEvent( new Event ( Event.COMPLETE ) );

Document 类可以使用以下代码行侦听此事件:

 addEventListener( Event.COMPLETE, onAnimationComplete );

虽然此方法是正确的,但使用本机事件模型与使用传统的回调函数相比,速度更慢且占用的内存更多。必须创建 Event 对象并为其分配内存,而这会降低性能。例如,当侦听 Event.ENTER_FRAME 事件时,将在各个帧上为事件处理函数创建一个新事件对象。在捕获和冒泡阶段(如果显示列表很复杂,此成本会很高),显示对象的性能可能会特别低。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

(自己理解:事件模型遍历所有的侦听器对象,为每个侦听器传递Event消息;而回调则一对一的,直接保存引用,无需查找)

python import模块方法

python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。
下面将具体介绍几种常用情况:
(1)主程序与模块程序在同一目录下:
如下面程序结构:
`-- src
    |-- mod1.py
    `-- test1.py
    若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *;

(2)主程序所在目录是模块所在目录的父(或祖辈)目录
如下面程序结构:
`-- src
    |-- mod1.py
    |-- mod2
    |   `-- mod2.py
    `-- test1.py
    若在程序test1.py中导入模块mod2, 需要在mod2文件夹中建立空文件__init__.py文件(也可以在该文件中自定义输出模块接口); 然后使用 from mod2.mod2 import * 或import mod2.mod2.

(3)主程序导入上层目录中模块或其他目录(平级)下的模块
如下面程序结构:
`-- src
    |-- mod1.py
    |-- mod2
    |   `-- mod2.py
    |-- sub
    |   `-- test2.py
    `-- test1.py
    若在程序test2.py中导入模块mod1和mod2。首先需要在mod2下建立__init__.py文件(同(2)),src下不必建立该文件。然后调用方式如下:
   下面程序执行方式均在程序文件所在目录下执行,如test2.py是在cd sub;之后执行python test2.py
而test1.py是在cd src;之后执行python test1.py; 不保证在src目录下执行python sub/test2.py成功。
   import sys
   sys.path.append("..")
   import mod1
   import mod2.mod2

 (4)从(3)可以看出,导入模块关键是能够根据sys.path环境变量的值,找到具体模块的路径。这里仅介绍上面三种简单情况。
来自:http://hi.chinaunix.net/?253639/viewspace-25422

2010年8月27日星期五

socket原理

忘了之前是否记录过了
socket相当于或者几乎就是一种文件,创建一个sokcet返回的也是一个文件描述符,只是这个特殊的文件是一种无端数据的映射罢了,所以其具体两个属性:远程地址、缓冲区。

2010年8月6日星期五

Avm2虚拟机浅析与as3性能优化(陈士凯)

Check out this SlideShare Presentation:

最佳编程语录

以前本站发布过《22条经典的编程引言》、《编程引言补充》、《Linus Torvalds 语录》还有《十条不错的编程观点》。今天向大家介绍“最佳编程语录”,条条都是很不错的语录,如同我们的太阳,照亮了我们的方向(所以我们选用了一个红色的图片,希望能够通过五毛们的网络审查)。其中只有一两条在以前本站发布过的文章中出现过。这篇文章的出处在这里,下面是“Neo”和“陈皓”的翻译,我们的翻译水平有限,所以,我们提供了中英文对照,有不当之处,还请各位指正。
A good programmer is someone who looks both ways before crossing a one-way street. — Doug Linder, systems administrator
好的程序员这样一类人,这类人在横穿一条单行道前都要先看一下路两边。– Doug Linder, 系统管理员
A most important, but also most elusive, aspect of any tool is its influence on the habits of those who train themselves in its use. If the tool is a programming language this influence is, whether we like it or not, an influence on our thinking habits. — Edsger Dijkstra, computer scientist
关于工具,一个最重要的,也是最不易察觉的方面是,工具对使用此工具的人的习惯的潜移默化的影响。如果这个工具是一门程序语言,不管我们是否喜欢它,它都会影响我们的思维惯式。 –Edsger Dijkstra, 计算机科学家,著名的“程序=数据结构+算法”的提出者。
Being abstract is something profoundly different from being vague… The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise. — Edsger Dijkstra
抽象和模糊完全地不同,抽象的目的并不是把事情变模糊,而去创建一个新的语义层,在那里是绝对精确的描述。 — Edsger Dijkstra
Besides a mathematical inclination, an exceptionally good mastery of one’s native tongue is the most vital asset of a competent programmer. — Edsger Dijkstra
除了数学爱好,对于一个有能力的程序员来说,出色地掌握自己的母语是最宝贵的财富。– Edsger Dijkstra
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. — Bjarne Stroustrup, developer of the C++ programming language
C很容易使你搬起石头砸自己的脚,而C++把这事变得更难,但是如果一定要这么做,那么你的整条腿都会被炸飞 -Bjarne Stroustrup, C++语言的发明者
Commentary: most debugging problems are fixed easily; identifying the location of the problem is hard. — unknown
修复bug很容易,但是定位bug却很困难 – 匿名
Considering the current sad state of our computer programs, software development is clearly still a black art, and cannot yet be called an engineering discipline. — Bill Clinton, former President of the United States
看看当前计算机程序糟糕的事态,软件开发明显一直是一门妖术,其仍然不能被称为一个工程学。 –比尔.克林顿 美国前总统
For a long time it puzzled me how something so expensive, so leading edge, could be so useless, and then it occurred to me that a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match. — Bill Bryson, author, from Notes from a Big Country
长期以来,有个事一直困扰着我,那就是越是昂贵的,越是前沿的,就越可能是没用的。然后,困扰我的另一个事是,计算机是一个死的机器,却可以不可思议地去完成那些巧妙的事情,而计算机程序员是那么聪明人却在做着不可思议的愚蠢的事情,简而言之,他们真是天生的一对。– Bill Bryson旅游文学作家 Big Country中的笔记
Given enough eyeballs, all bugs are shallow (e.g., given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone). — Eric S. Raymond, programmer and advocate of open source software, from The Cathedral and the Bazaar
足够多的眼睛,就可让所有问题浮现(比如:只要给于足够多的beta测试者和开发人员一起工作,那么,几所所有的问题都会很快的出现,而修正也会是显而易见的)
Good code is its own best documentation. As you’re about to add a comment, ask yourself, ‘How can I improve the code so that this comment isn’t needed?’ Improve the code and then document it to make it even clearer. — Steve McConnell, software engineer and author, from Code Complete
好的代码自己本身就是最好的文档。当你打算加注释的时候,问问自己‘我如何才能把我的代码改善到不需增加注释?’重构自己的代码,然后使文档让其更清楚。 — Steve McConnell《代码大全》的作者
Hey! It compiles! Ship it! — unknown
嘿,编译通过了!出货!–匿名
Inside every well-written large program is a well-written small program. — Charles Antony Richard Hoare, computer scientist
在每个编写精良的大程序里面都是一个编写精良的小程序。 –Charles Antony Richard Hoare,计算机科学家
It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter. — Nathaniel S. Borenstein, computer scientist
需要注意的是,没有哪个经过规范培训的工程师会赞成写一个DestoryBaghdad(摧毁巴克达)的函数。最基本的职业规范会告诉他们应该去写一个叫DestoryCity的函数,然后把“Baghdad”(巴克达)当成这个函数的参数。—— Nathaniel S. Borenstein, 计算机科学家
Managing programmers is like herding cats. — unknown
管理程序员就如同养一群猫一样 –匿名
Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates, co-founder of Microsoft Corporation
用代码行数来衡量编程的进度,就如同用航空器零件的重量来衡量航空飞机的制造进度一样。——Bill Gates,微软创始人
More good code has been written in languages denounced as bad than in languages proclaimed wonderful — much more. — Bjarne Stroustrup, from The Design and Evolution of C++
好的代码都都在的批评声中写成的,而差的则是在表杨声中写成的。——Bjarne Stroustrup, 摘自《The Design and Evolution of C++》
Programs must be written for people to read, and only incidentally for machines to execute. — Harold Abelson and Gerald Jay Sussman, computer scientists and authors, from The Structure and Interpretation of Computer Programs
代码应该是写给其他人来读的,而能让机器运行的仅仅是附带着的。—— Harold Abelson 与 Gerald Jay Sussman, 计算机科学家和作家,摘自《The Structure and Interpretation of Computer Programs》
Real programmers don’t comment their code. If it was hard to write, it should be hard to understand. — unknown
真正程序员从来不写代码的注释,如果代码非常难写,那么同样代码的注释也会非常难懂 –匿名
Simplicity is prerequisite for reliability. — Edsger Dijkstra
简单是可靠的前提条件 — 迪杰斯特拉
The C programming language — a language which combines the flexibility of assembly language with the power of assembly language. — unknown
C语言—— 一门同时具有了汇编语言灵活性和汇编语言强大能力的语言。– 匿名
The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time. — Tom Cargill, object-oriented programming expert at Bell Labs
开始的90%的代码用了90%的开发时间,而剩下的最后的10%的代码会需要另外90%的开发时间。– Tom Cargill,面向对象编程专家,贝尔实验室
The important point is that the cost of adding a feature isn’t just the time it takes to code it. The cost also includes the addition of an obstacle to future expansion. Sure, any given feature list can be implemented, given enough coding time. But in addition to coming out late, you will usually wind up with a codebase that is so fragile that new ideas that should be dead-simple wind up taking longer and longer to work into the tangled existing web. The trick is to pick the features that don’t fight each other. — John Carmack, computer game programmer
增加一个功能特性的成本并不单单是为这些功能编码所花费时间的成本,还这个成本应该包括特性扩展的障碍成本。当然,任何的功能清单都可以被实现,只需要有足够的时间。但是除些之外,你应该对你的代码库的脆弱性感到紧张,而那些新的想法应该足够的简单,而不是去花费更多更多的时间去纠缠于现有的蜘蛛网。这里的决窃是挑选那些不会和别人冲突的的功能。
The key to performance is elegance, not battalions of special cases. The terrible temptation to tweak should be resisted unless the payoff is really noticeable. — Jon Bently and M. Douglas McIlroy, both computer scientists at Bell Labs
表现的关键是精美和典雅的,并不是使用大量的特殊案例。对于任何调整的冲动都应该是被限制的,除非其回报真的是值得注意的。– Jon Bently and M. Douglas McIlroy, 二者都是贝尔试验实的计算机科学家
The last good thing written in C was Franz Schubert’s Symphony Number 9. — Erwin Dieterich, programmer
最后一件用C做的好作品就是弗朗茨.舒伯特的C大调第9交响曲 — Erwin Dieterich, programmer程序员
The problem with using C++ … is that there’s already a strong tendency in the language to require you to know everything before you can do anything. — Larry Wall, developer of the Perl language
使用C++最大的问题是..在C++语言里,存在这一种很强的趋势,就是如果你不明白C++语言的细节,你就无法做好任何事情。– Larry Wall, developer of the Perl language
The sooner you start to code, the longer the program will take. — Roy Carlson, University of Wisconsin
你越早开始都手编码,你所花费来编程的时间就越长 — Roy Carlson, University of Wisconsin
The value of a prototype is in the education it gives you, not in the code itself. — Alan Cooper, software author, from The Inmates are Running the Asylum
原型的价值在于他给你的教训,而不是代码自身 — Alan Cooper, software author, from The Inmates are Running the Asylum
There are only two kinds of programming languages: those people always bitch about and those nobody uses. — Bjarne Stroustrup
世界上只有两类编程语言:人们都抱怨的语言和从来没有人使用的语言 — Bjarne Stroustrup
There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies. — Charles Antony Richard Hoare
世界上有两个设计软件的方法,一种方法是设计的尽量简单,以至于明显的没有什么缺陷,另外一种方式是使他尽量的复杂,以至于其缺陷不那么明显。
Ugly programs are like ugly suspension bridges: they’re much more liable to collapse than pretty ones, because the way humans (especially engineer-humans) perceive beauty is intimately related to our ability to process and understand complexity. A language that makes it hard to write elegant code makes it hard to write good code. — Eric S. Raymond
丑陋的程序就像一座丑陋的吊桥:他们相比漂亮的良好的吊桥起来,更有可能会坍塌,这是因为人类(尤其是工程师)感知漂亮的东西是和我们处理和理解复杂问题的能力相关的。所以,一个程序语言如果很难以优雅地方式编程,那么其就很难写出好的代码。
Weeks of programming can save you hours of planning. — unknown
多做几周的编程可以节省你做计划的时间 —— 匿名 (意思为,只有实践过了,你才更容易做计划,没有实践过,做起计划来将会很头痛)
When a programming language is created that allows programmers to program in simple English, it will be discovered that programmers cannot speak English. — unknown
当程序语言被设计成允许程序以很简单的英语来编程的时候,人们将会发现编写程序的程序员都来自不会说英语的地方。 –匿名
转自:http://coolshell.cn/?p=2753