URN Logo
UNIX Resources » Linux » China Linux Forum » C/C++编程版 » 38 » mplayer的代码写得那么不规范,居然那么多人用
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
mplayer的代码写得那么不规范,居然那么多人用
 
 
 
 
你恐怕不经常看片 - 徐大侠 [2005-02-24 15:46 | 108 byte(s)]
 
Re: 你恐怕不经常看片 - shuyong [2005-02-24 22:48 | 139 byte(s)]
 
Re: 你恐怕不经常看片 - h_falls [2005-02-24 16:33 | 43 byte(s)]
 
 
 
 
 
 
 
 
 
 
 
 
 
Subject: mplayer的代码写得那么不规范,居然那么多人用
Author: h_falls    Posted: 2005-02-23 18:29    Length: 908 byte(s)
[Original] [Print] [Top]
mplayer的主页上说它还得了个什么奖
http://www.mplayerhq.hu/homepage/design7/news-es.html
投票结果:
MPlayer 487 votos (49.85%)
xine 304 (31.12%)
Totem 77 (7.88%).

我个人觉得xine的架构比mplayer漂亮多了。

mplayer虽然功能强大,但是看看它的代码,问题一堆:

1。 全局变量的命名太随意了,一点规则都没有,看代码烦
2。 一个goto语句go到近千行开外的地方,而且goto的数量也太多了点,可读性差
3。 一个while 循环有一千行,可读性差
4。 很多地方没有用assert检查函数参数的有效性。
5。 没有用gettext做国际化(我个人觉得gettext是比较好的方案)
6。 如果用Lint检查mplayer代码的话。。。。

为什么编码风格这么乱的一个软件居然还能取得这样的成功,大家可有什么意见?
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: shuyong    Posted: 2005-02-23 19:51    Length: 104 byte(s)
[Original] [Print] [Top]
臭豆腐很臭, 但很多人所好吃. 说的人多了, 等你碰到的时候就会忍不住尝一尝. 当然, 结果是这个味道不适合你:-)
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: teawater    Posted: 2005-02-23 20:04    Length: 38 byte(s)
[Original] [Print] [Top]
这事证明代码是用来用的 不是用来看的 哈
----
读了这么多年的书 还是觉得幼儿园好混
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: Viperii    Posted: 2005-02-23 20:09    Length: 141 byte(s)
[Original] [Print] [Top]
软件是拿来用的,规范有P用。任何一本经典上都教导世人不要goto,但看看很多大师的code,都是想goto之处无不信手go来,包括Berkeley一些传世代码亦是如此。
----
Where is the RED pill? I want OUT!
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: tclwp    Posted: 2005-02-23 20:16    Length: 85 byte(s)
[Original] [Print] [Top]
kernel source 里 goto 也不少啊,
历史上遗留下来的代码, 都改完要花多少时间呢
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: h_falls    Posted: 2005-02-23 20:33    Length: 167 byte(s)
[Original] [Print] [Top]
用goto没什么,我也常用goto

但是我不会像mplayer那样一个goto就go到十万八千里之外去了,我一般goto的距离最多就百把行。
goto的太远了,看代码难受
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: teawater    Posted: 2005-02-23 20:41    Length: 75 byte(s)
[Original] [Print] [Top]
内个GOTO可不是遗留代码 仔细看看 GOTO是有理由的 goto的使用才可以让代码更规范
----
读了这么多年的书 还是觉得幼儿园好混
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: tclwp    Posted: 2005-02-23 22:05    Length: 30 byte(s)
[Original] [Print] [Top]
其实有些地方用goto确有神妙之处
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: h_falls    Posted: 2005-02-23 22:52    Length: 145 byte(s)
[Original] [Print] [Top]
mplayer 的goto我不觉得有什么特别精妙之处,你可能看出什么来?

一个main() 几千行, 中间插了好几个goto, 这么大的main()真是少见。
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: lonelyflyer    Posted: 2005-02-24 10:54    Length: 102 byte(s)
[Original] [Print] [Top]
还有一个可能是项目启动时写手还是个菜鸟或根本没想到会做到那么大,然后越写越大,又没有几会来个大的重构。
----
General Assembly resolution 217 A (III)
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: 徐大侠    Posted: 2005-02-24 12:39    Length: 345 byte(s)
[Original] [Print] [Top]
mplayer是当前唯一实用的视频播放器。如果没有它,LINUX在多媒体方面就属于不及格了,所以,虽然是拼拼凑凑的东西,怎么评价它的贡献都不过分。
要支持一大堆乱七八糟的视频格式,程序不可能不乱,即使Windows上完全调用Directshow的Media Player Classic也不容易看懂,何况mplayer没有什么现成的底层框架可以依靠,还不得不支持许多Windows上的DLL格式的codec。
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: h_falls    Posted: 2005-02-24 13:31    Length: 247 byte(s)
[Original] [Print] [Top]
唯一实用?

我个人觉得xine也不错。 xine的架构看起来比mplayer舒服,是用lib的形式发布的,很容易使用。比如如果你只想获取一个mpeg4文件的长度,用mplayer就不行(因为mplayer只是个播放器),xine就有专门的API来做这些事。

[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: baifCc    Posted: 2005-02-24 14:19    Length: 52 byte(s)
[Original] [Print] [Top]
精妙的goto使用会似的代码结构清晰无比,了却许多烦恼。
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: baifCc    Posted: 2005-02-24 14:23    Length: 92 byte(s)
[Original] [Print] [Top]
至于xine的代码,具体我没有看过,但仅就xine-lib来说,这样的设计是符合TAOP里说到的一些原则的。
[Original] [Print] [Top]
Subject: 你恐怕不经常看片
Author: 徐大侠    Posted: 2005-02-24 15:46    Length: 108 byte(s)
[Original] [Print] [Top]
除了mplayer以外,其他LINUX媒体播放器能够认识的视频文件格式都极其有限,脱离当今主流,没有实用价值。
[Original] [Print] [Top]
Subject: Re: 你恐怕不经常看片
Author: h_falls    Posted: 2005-02-24 16:33    Length: 43 byte(s)
[Original] [Print] [Top]
我用xine 可以放 rmvb , asf, wmv , 还不够?
[Original] [Print] [Top]
Subject: Re: 你恐怕不经常看片
Author: shuyong    Posted: 2005-02-24 22:48    Length: 139 byte(s)
[Original] [Print] [Top]
说得绝对一些了。xine是mplayer的竞争对手,同时也是合作者。在xine的主页谈到了这一点,同时xine也使用mplayer开发的ffmpeg库,这是mplayer的贡献。
[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: zhangyeming    Posted: 2005-02-25 10:48    Length: 174 byte(s)
[Original] [Print] [Top]
内核代码和应用程序的代码是没有可比性的
对于内核,代码的效率是第一的
但对一般的程序,特别是开源程序
没有那种详细的设计文档,那代码的可读性就很重要了
----
反对一致,拥护等级;反对菠菜,拥护带壳的蜗牛

[Original] [Print] [Top]
Subject: Re: mplayer的代码写得那么不规范,居然那么多人用
Author: ACp    Posted: 2005-02-25 16:50    Length: 42 byte(s)
[Original] [Print] [Top]
开源软件还是有不少有比较完善的设计文档的:)
----
OnlyPc
[Original] [Print] [Top]
« Previous thread
请问如何操作com1口?
C/C++编程版
38
Next thread »
请问printk是在哪一个头文件里被声明的?
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 03:53:10, cost 0.061064958572388 ms.