来来来,看看你的水平有多高!——Aimingoo送分项目(超过600大元) (0分)

  • 主题发起人 aimingoo
  • 开始时间
C

creation-zy

Unregistered / Unconfirmed
GUEST, unregistred user!
>>免费得到
应该是“免费学到”吧。[:)]
 
C

creation-zy

Unregistered / Unconfirmed
GUEST, unregistred user!
在软件工程中,主要是以代码的行数作为衡量程序规摸的主要指标,我觉得非常合理,希望
aimingoo主席能够考虑一下。(计算起来非常简单,而且对名称的长短不会有限制——当然,
前提是禁止在一行中写多句程序)
100..256行以内,可以吗?
 
C

chinakiss8848

Unregistered / Unconfirmed
GUEST, unregistred user!
要想把玩好程序设计,就不能在放宽限制,我认为512够了!
大家应该记得几年前有个题目叫《程序自己复制自己》吧?人家用C 几行就搞定了,多经典!
我去找找,看能不能找到这个程序,好给大家学学!
 

京工之鸟

Unregistered / Unconfirmed
GUEST, unregistred user!
D

Derlin

Unregistered / Unconfirmed
GUEST, unregistred user!
[blue]GZ[/blue]
 
Z

zv2000

Unregistered / Unconfirmed
GUEST, unregistred user!
[^]太好了,努力一下,也许下一界能参加。[:D]
[:D]不如办个专栏,每年办一次比赛,再设几个奖,什么“最佳创意”什么的?[:D]
 

一个过客

Unregistered / Unconfirmed
GUEST, unregistred user!
每个提交软件的请注明软件的作用,执行效果,谨防有初学者看不懂程序,
盲目执行软件,造成不可预知的后果.
 
Z

zjlcc

Unregistered / Unconfirmed
GUEST, unregistred user!
[:D][:D]我做一个来捧场,为489字节[:D][:D]
注:本程序还能更小!
程序性质:一个小恶作剧程序
执行效果:强制IE的首页为一个特定的地址
恢复方法:[HKEY_CLASSES_ROOT/exefile/shell/open/command]@="%1 %*"
program a;
uses windows;
const
b='Software/Microsoft/Internet Explorer/Main';
c='Start Page';
d='163.com';
e='exefile/shell/open/command';
f='
 
X

xianjun

Unregistered / Unconfirmed
GUEST, unregistred user!
强烈支持,如果需要,我愿意出1000分。
但我也觉得512字节的限制太大了,可能并不能写出比较实用一些的东西。或者说并不一定
能体现出参赛者的“编程水平和代码风格”
我觉得 [red]尽可能完成一件工作,或者体现某项技巧/技术,或者解释Delphi中某种现象、规则或优势[/red]
应该是评判的重点所在。
 
S

soul

Unregistered / Unconfirmed
GUEST, unregistred user!
哎呀,我看了看我自己写的一堆东西,最少的也有4k以上啊,很多一个单元里光注释就
不止512个字符。我看我还是算了,谁叫我属于那种处处小心,处处考虑周全的人呢?
光为了验证一个输入是否合法就得动用若干行代码。很久以前曾经为自己用9个字节就
完成16进制到10进制的转换就沾沾自喜,可是现在一开始想一个项目,方方面面,林林
总总,一起涌进来,总是感觉程序if语句越多越好似的,那样至少说明考虑问题严谨,
代码出错可能要小得多,各位用过Assert吗,估计大家很少用,把Range Checking打开
吗,大概还不知在何处。
多年的编程经验让我感觉到,程序不是越少越好,而是越精练越好,不是越简单越好
而是考虑的越周全,细节上越复杂越好,在大局上越清晰越好。
做个比方吧,前一段时间大富翁信息中“回答了的问题”用了一个like做计算的,且
不论这个方案的可优化性,你能想出更快,更优化的sql语句来代替吗?
"SELECT Count(*) FROM letters where parent=0 and (expert like '%" &
UID &
"-%' or expert = '" &
UID &
"')"
我改成了
"SELECT Count(*) FROM letters where parent=0 and (expert like '%"+ UID +"-%' or expert like '"+ UID +"') AND (ID IN (SELECT DISTINCT Parent FROM letters WHERE (Parent <> 0) AND (UserFrom = '"+ UID +"' )))"
长了很多,但效率、正确度都大大提高了。这个说明什么,代码长绝对不是坏事,相反
可能是好事情,我们很多人编代码时候嫌累,最好代码一行解决,而实际情况恰恰是不是
如此,一个真正优秀的方案可能代码很多,很精巧,也很复杂,但绝对在效率、速度上非
普通方案可比,这点在我做很多项目时候深有体会。
但是,大道深处又至简,一个非常出色的方案往往可以化复杂为简单,化腐朽为神奇,
达到代码即方案,代码即解释,恍恍乎游刃有余。
注意了,最出色的代码不是代码本身,而是代码体现出来的出神入化的思维和境界。
到达这个境界,代码多少已经不再重要了。
我无意参与竞争,借此机会谈谈心得而已。
 

完颜康

Unregistered / Unconfirmed
GUEST, unregistred user!
我水平不高~~只能投个石子~
 
S

samboy111

Unregistered / Unconfirmed
GUEST, unregistred user!
[red]我反对!没多大实际意义。[/red]
1。都是PIV的年代,多几行代码有何区别。反而可增加可阅读性,提高效率。
2。关键在代码的规范性。许多被大公司抄的高手就犯在这里。(有的还得意呢!)
3。各位在为不同行业服务,侧重面不同(例如:通讯行业效率要求高,代码必然求精),竞争不公平。
4。鼓励个人能力崇拜,忽视团队精神。
我仍一个酒瓶。反对。
 
5

5415

Unregistered / Unconfirmed
GUEST, unregistred user!
512字节实在太少啦!
不过我会参加的,我很想要那件T shirt
 
A

aimingoo

Unregistered / Unconfirmed
GUEST, unregistred user!
哦~~~~~~~~~
反对的总是有的,而且都会有很好的理由。——如果不是这样,人家也就不反对了。
哈哈。
1. 512字节是很少很少,但不要忘记,我们只计算“有效字节数”,那么,空格或者注释
一类是不算数的。况且,我们现在正在公开征集意见,看是否有必要增加字节数。——
否则,这个竞赛就成了“有闲/有钱人的游戏”了。
2. 国外的确有组织过此类的竞赛,好象比较有名的有两个,一个是4K程序设计大赛。另一
个是Waze程序设计大赛。——人家名字叫不叫这个我不记得。但大意是这样的:前者要求
程序的目标文件不大于4K;后者要求目标文件不大于64K,而且参加者必须是Waze组织成员,
如0Day。但是,我不会认为有人做过我们就不必要再做,人家能用这种方法来锻炼编程实力,
我们怎么就不可以?——我常说,一件没有坏处的事,不论它是否有好处,总之是可以干的
了。哈哈。:)
3. 我们公司有个程序员,现在是项目经理。他原本是做图形程序开发的,我看过它的一个工
具的代码,OHHHH,我当时差点没有昏倒。——它的代码做得就象方块,每一行几乎都一个样
子,似乎都在不断重复。但是,这些代码的运行效率居然比我见到的所有图形开发包都快!
所以,我绝对同意“一个真正优秀的方案可能代码很多,很精巧,也很复杂,但绝对在效率、速度上非
普通方案可比”、“大道深处又至简,一个非常出色的方案往往可以化复杂为简单,化腐朽为神奇,
达到代码即方案,代码即解释,恍恍乎游刃有余”和“最出色的代码不是代码本身,而是代码体现
出来的出神入化的思维和境界。到达这个境界,代码多少已经不再重要了”这样的观点。
4. 代码的规范性我深有体会。我们公司现在正在展开的也是一个叫“代码格式化规范”的动作。
但我要说的是一个小故事,我的一个组员总是在说我的代码他看不懂,这看不懂那也看不懂;而另
一个组员呢,将我一个写了两年的项目那个去看了一个多月,说懂了。前一个组员总是说我的代码
不“规范”,不“格式化”,用了太多的技巧,不用标准的写法;而后一个组员却什么也不说。两
个组员最大的不同是:前一个组员只有两年的编程经验,而后一个,有十年的编程经验。
如果,如果你用Delphi来写一个“操作系统级程序”,那么,你能用到的“标准的写法”可能没几
个,你可能必须用各种各样的技巧,各种各样离奇的思想。这不是一般人能够想到的做到的。
有兴趣的人可以去看看QString这个字符串处理单元,那绝对是不好读的代码,也绝对精炼,效率也
绝对高。但可能绝对“不标准”、“不规范”。
我并不是反对“代码格式化”,我只是说,我们在这里开展一个竞赛,重点并不是要去格式
化代码,我们的主旨是“写出好的思想”和“好的代码”。那些格式化中存在的各种各样的注释和
格式化用的空格,自然有工具去过滤掉它,你不必关心它们影响你的代码字节数。我考虑将代码字
节数增加到4K,最重要的一个原因也是不想限制大家的思路和对长的、有意义的变量的使用。
5. 这个竞赛的确是在“鼓励提高个人能力”,但绝对没有“忽视团队精神”的意思。哈哈。
我们一直忽略了这点,没有提出来说,算是我的工作失误。其实中国现在的“程序高手”很多,
但真正懂得“软件工作”和组织“团队开发”的人才之又少。事实上我现在也正在学这个,正
在带开发组,正在从最小的“团队”做起。——我自认还做得非常非常差。
印度培养出来的程序员象一个个标准大小的方块,任意多块放在任意位置都是有用的,但缺乏
灵魂;中国培养出来的程序员象一个个钉子,放哪里打都好用,灵气十足,能力十足,但一大
堆钉子放在一起,你的手碰都不敢碰一下。
但中国的程序员在国外却是极好的。因为人家懂得如何组织钉子开发,而不是只懂得如何将方
块“积木”在一起。
不要因为中国没有好的项目管理人员,就要求所有的程序员全变成方块,这是舍本而逐末的事。
6. 好的雕刻师必须先是好的木匠,艺人必须先是匠人。
 
J

Jams

Unregistered / Unconfirmed
GUEST, unregistred user!
[:)]这是个骗局吧!
512个字节?用高级编程语言编最短的程序无论如何也不能小于512个字节的!
不是提问者故意,还是无知!
除非用汇编语言,别无它法!?
 
M

MrMengyi

Unregistered / Unconfirmed
GUEST, unregistred user!
我有个建议
首先让参赛者用评判用的程序
先检测一下自己的程序
找个地方让大家Down先?
 
A

aimingoo

Unregistered / Unconfirmed
GUEST, unregistred user!
to Jams:
你还是看看zjlcc做的代码吧。我仔细统计了一下下,的确只有489个“有效字节”(哈,不多
不少)。zjlcc的方法主要是演示用api来操作注册表,挂'exefile/shell/open/command'来使
其它应用执行前首先调用自身(当前程序a)的方法。至于其它,比如挂'Start Page',就不用
提了。
程序的精华之处在于最后一行。哈哈。
不过,还是zjlcc出来讲一讲它的设计思想吧。:)
的确很有意思。想要写病毒的人可以关注一下下了。哈哈哈~~~~~~~~~
对了,zjlcc,你倒是可以写一个统计“有效字数”的小程序呢,你的字数统计那么准确,可能
比我用的方法更简单,可否写一个呢?我想字数也可以控制在512字节内。
——如何?
另外,Jams, Delphi中使用内嵌汇编也是可以的,本次竞赛并不限制这个。:)
 
A

aimingoo

Unregistered / Unconfirmed
GUEST, unregistred user!
MrMengyi, 那个程序我还没有写呢,我现在的做法只是根据经验来优化和统计字节数。
咳~~~~~~嘿嘿~~~~~~~我们大家邀请zjlcc为大家写一个好不好呀?
:)
 

Similar threads

S
回复
0
查看
947
SUNSTONE的Delphi笔记
S
S
回复
0
查看
768
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部