n**********2 发帖数: 648 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: xykkkk (asdf), 信区: Programming
标 题: 老码农冒死揭开行业黑幕:如何编写无法维护的代码(zz)
发信站: BBS 未名空间站 (Fri Nov 28 13:28:27 2014, 美东)
如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid... 阅读全帖 |
|
x****k 发帖数: 2932 | 2 如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid latine dictum sit, altum sonatur.
(随便用拉丁文写点啥都会显得高大上。)
想挫败维护代码的程序员,你必须先明白他的思维方式。他接手了你的庞大程序,没有
时间把它全部读一遍,更别说理解它了。他无非是想快速找到修改代码的位置、改代码
、编译,然后就能交差,... 阅读全帖 |
|
h***m 发帖数: 1869 | 3 ☆─────────────────────────────────────☆
lamxdotx (All is well) 于 (Sat Dec 15 03:43:30 2012, 美东) 提到:
标题看了也许有点搞笑,可是其实我是很伤心。我从学校毕业工作刚一年,被其他组
比较senior的人跟我们组的seniors说代码写的是一陀屎,背后说过一次(至少一次我
知道的),当我面也说过一次。我们组senior很生气,帮我跟人吵,背后也安慰我说
别组人就是看我资历浅欺负我(用的bully这个词),说如果我想也可以报告给那人上级,
要那人给我道歉。
这种情况我要怎么处理呢?我被当面说的时候那人也不是指着我鼻子说,只不过是说
有一个地方代码是一陀屎。我当时愣了想可能他不知道是我写的所以才当面说,就当
了包子。回来越想越伤心,我干活也算卖力,代码写的不少,倒有地方让人说一陀屎
了。还有就是大家这么大人了,我是被人多不当算才能被这么说?求开解
update:
给我做code review的人觉得没问题。事实上我根本是按照我们组内的路线写的,别组
人说我写的不好其实也是煽我们组senio... 阅读全帖 |
|
w*********g 发帖数: 30882 | 4 丰田一绝 - 28万行代码竟有1万多全局变量,庞大的bug培养基地
来源: 日理万机 于 2013-11-07 05:22:57 [档案] [博客] [旧帖] [给我悄悄话] 本文
已被阅读:249次 字体:调大/调小/重置 | 加入书签 | 打印 | 所有跟帖 | 加跟贴 |
查看当前最热讨论主题
More Sharing Services
转贴自:http://club.tgfcer.com/thread-6817371-1-1.html 网友Kuzuryuusen的文章
抗日的理论基础 -事后诸葛-
----------------------------
【第一部分】背景简介
前几年闹得沸沸扬扬的丰田刹不住事件最近又有新进展。十月底俄克拉荷马的一次庭审
,2007年一辆2005年凯美瑞暴冲(Unintended Acceleration,UA)致一死一伤事件中
丰田被判有责。引起广泛关注的是庭审中主要证人Michael Barr的证词让陪审团同意丰
田的动力系统软件存在巨大漏洞可能导致此类事件。这是丰田在同类事件中第一次被判
有责。庭审过后丰田马上同意支付300万美元进入调解程... 阅读全帖 |
|
a****a 发帖数: 5763 | 5 我做出了一个可能让很多人遗憾的决定。从今天开始,我曾经开源放在 GitHub 上的代
码,除了教育性质的代码,全部进入私有闭源状态。这些代码包括 PySonar2,
RubySonar 等等,它们已经从 GitHub 上消失。从今以后,除非用于教育目的,我将不
再开源任何代码。当然,你们已经下载的那些代码,仍然可以按照开源许可证免费使用
,然而最新的改进以及将来的新产品,将全部闭源。做出这个决定的大部分原因,是因
为多次对人心的失望。
PySonar2 一度处于开源状态,使用宽松的 BSD 和 Apache 版权。PySonar 的用户包括
了 Google,Sourcegraph,还有其它几个我不能透露名字的,做专业代码管理工具的公
司。很多人崇尚 BSD 这样的宽松版权,因为这样可以最大限度的传播代码。他们甚至
把这作为了一种信仰,对于 GPL 这类严格限制商业用途的版权嗤之以鼻。甚至遮住眼
睛对你说:“你的代码是 GPL 的,我不能看!看了之后写出一样的代码来,你会起诉
我!” 然而多年的经历之后,我才发现 BSD 并不是好的开源版权,它其实会让代码的
作者失去自由,而 GPL ... 阅读全帖 |
|
g***j 发帖数: 1275 | 6 一下都是我面试的经验和教训,欢迎各位大牛指正或者补充
首先,要端正观念,写代码只是最后一步,是在对方完全理解了你的意图之后的最终表
述,所以,在写代码之前,一定要跟对方把你的意图表述清楚,一定不要在对方不懂你
的想法的情况下就开始写代码,大忌,大忌!
其次,写代码之前,大脑里面要有个大picture,不能想到哪儿写到哪儿。是你的大脑
在写代码,而不是白板上你的手在代码。你的手只是一个printer里面的喷头而已,是
它把你大脑里面的代码print到白板上,你的大脑才是控制那个喷头的芯片。所以,写
之前,你要看着那个白板打个腹稿,想想一下白板上可能有哪些代码,比如定义哪些变
量,哪些if else,哪里退出,call哪几个function,等等。
第三,你在白板或者纸上写代码的过程中,一定要跟面试官交流,让他知道自己在干什
么。每次提笔之前,告诉他,我前面写了啥,然后我准备写啥,这个写的过程,是前面
跟面试官讨论问题结束之后的具体反映。
第四,如果有重复的代码,一定要用一个变量或者一个function表示。本来面试的代码
就不长,还有重复的代码会很ugly。比如类似current->ne... 阅读全帖 |
|
g****t 发帖数: 31659 | 7 (1)
例如我有一段依赖于输入x的代码,现在想对输入y重新利用它,一种办法是在代码里定
义函数f(.),然后写下:
定义 f(.)
f(x)
f(y)
三段
另外一种方法是,选出那段代码,替换x为y,然后paste回去。这样最后代码为:
一块包含x的代码
一块包含为y的代码
现在问题来了,哪种脚本语言适合第二种方法这样的任务?有没有现成的工具?第二种
方法的好处是等于实现了一小部分编译器的功能。好处是,第二种方法出来的代码,和
函数定义的语法无关。将来就算语言版本换了,也不需要担心它不work。
简单说,我理解的现在的coding,先按最容易理解最有效率的方式写代码,然后编译。
这两部分任务是分开的。但我认为,写好的代码,应该有个专门的工具给它自动整理下
,或者半编译下,然后这个半编译后的版本对高度抽象复杂的语言定义依赖性较少,今
后换到别的芯片上用,也就没问题。
(2)
我碰到过的一个具体问题就是从一个芯片自有的C代码换到另一个芯片的C。这两个C有
细微不同的定义和编译器。
(例如浮点数不初始化是否自动初始化为0;
例如unsigned number和signed number比较的... 阅读全帖 |
|
z****e 发帖数: 54598 | 8 写出低质量的代码的特征包括但不限于:
心安理得地写出低质量的代码
最终写出了低质量代码却不在之后改善它
自以为写出了质量很高但实际质量很低的代码
低质量的特征包括但不限于:
文件关系混乱
注释过期、不明确或者没有
文档过期、不明确或者没有
架构乱设计
过度设计
不检查用户输入的错误情况
不检查API或者函数返回的errorcode或者exception
没有单元测试等自动化测试过程
编译起来很难
到处复制代码,公用的部分不整理成内部库
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:匿名用户
链接:http://www.zhihu.com/question/24665029/answer/28567915
来源:知乎
我很久很久以前曾经经历的一个公司特别傻比,人力资源和svn管理员不懂程序。作为
服务端的主程序,一直以来都是代码精简,效率最优,没有冗余为毕生追求。突然我无
意中发现了一个秘密,我的绩效居然不如几个公司刚招进来的新手。我每天刻苦努力,
优化代码,让公司的服务端7*24稳稳跑在服务器上,还一心研究各种热切换,换来绩效
考核好久没有优秀了。这究竟... 阅读全帖 |
|
w*********r 发帖数: 42116 | 9 近期,一家名为Aspiring Minds的印度公司对来自500多所印度高校的36,800名学生进
行了编程技能测试,以检测这些印度工程师们的编程能力、编程方法、运行时间复杂度
和测试案例覆盖度。然而检测结果表明:
只有36%的印度工程师
能写出可编译的代码(compileable code)
研究通过使用全球通用自动化检测工具Automata,用两道题目、60分钟时长,对参与测
试者以下四个方面进行测试,来评估测试者是否具有程序员工作要求的专业编程能力。
编程能力(Programming Ability):衡量正确运用算法、数据结构、数据相关性、解
答的相关程度
编程方法(Programming Practices):衡量代码相对工业界的水平以及代码的可读性
和实用性
运行时间的复杂性(Runtime Complexity):比较代码运行时间和最优代码运行时间的
差距
运行正确(Functional Correctness):代码的正确性。
研究结果表明:
只有36%的印度工程师能写出可编译的代码(Compileable code)。仅有14%能够为两道
题都写出可编译的代码,另有2... 阅读全帖 |
|
z**********2 发帖数: 6143 | 10 代码妞和gtalk的bug战斗一直在进行,每天reproduce该bug是代码妞的终极乐趣。该
bug如同二姐般阴魂不散,监督着代码妞的一举一动,而代码妞无奈只有在百忙之中抽
空陪二姐gtalk。
代码妞无法理解为什么她的楼变成了马甲D罩杯的大讨论,代码妞认为自己被大胸打败
了,为了安慰她,二姐告诉她,那是因为她太受欢迎了,大家都爱她。于是代码妞憨厚
的笑了,代码妞问二姐,跟帖的人们都是2.1姐,2.2姐,2.3姐…到2.X姐么。
代码妞在百忙的lunch break,再次做了份project给二姐。第一个文件,是Readme,详
细解说该软件运行过程,并威胁如果二姐不按此方式操作,电脑即会爆炸。
第二个文件,是个Memo,在IE浏览器下打开,并且输入任何一个日期,就会跳出二姐那
天说想做的事,例如某日,二姐想用头撞扁代码妞。而总有些日子,二姐的大脑放空了
。于是那些日期下写着:
你不爱我了!你都没有想做的事了!
二姐知道,人类已经无法阻止代码妞了,二姐也只能顺应其颠覆二姐大脑系统的整个过
程,二姐已经被同化了,因为今天二姐脱口而出,这个东西好吃,是不用test的。。。 |
|
g**1 发帖数: 10330 | 11 https://www.leiphone.com/news/201902/9YfZWlPuyNa2m2l5.html
HCSEC是可以看到华为的源代码的,(代码)是不是可读,是不是易修改、易构建都知
道,好比一个人是赤裸在那里。
现在CESC的问题是,你们的代码不够漂亮。代码是华为三十年在通信行业,像windows
一样累积起来的三十年代码,华为的代码要在不漂亮,易读、易修改等方面进行改进,
还要把过程改进。不但结果是高质量,可信的,过程也要是可信的,才能证明可信。这
就把焦点聚焦到整个软件的生产过程,我们叫做软件工程与实践,而且用面向未来的标
准来对应历史上三十年的所有代码。
过去面临的安全风险、使用的软件技术、编程能力跟现在是有差别的,跟未来要求肯定
更有差别。把历史上三十年的所有代码进行重构、重写。这个投资是巨大的,而且对华
为现在进行的满足客户需求进度产品上是有冲击的。
在这件事情上,我们跟NCSC有相当一段时间剧烈的冲突,(华为)只愿意对新增代码达
到要求,而不愿意对历史的代码进行重构。几乎所有的高管都去碰撞过,但在碰撞过程
中,不断地加深理解,重构也好、过程质量做好也好,这... 阅读全帖 |
|
r*****g 发帖数: 7139 | 12 全球期货代码
代码 名称 交易所 合约大小
外汇期货板块,比如JPY,GBP,AUD,CAD,CHF
ZN 美国十年国债期货 CBOT 乘数1000(新增)成交占CBOT的大半
CL 轻甜原油 NYMEX 乘数1000
NG 天然气 NYMEX 乘数10000
COIL 布伦特原油 IPE 乘数1000
SI 白银 NYMEX 乘数5000
QI 小白银 NYMEX 乘数2500
QM 小原油 NYMEX 乘数500
HG 铜 NYMEX 乘数25000
GC 黄金 NYMEX 乘数100
ZS 黄豆 ECBOT 乘数5000
ZL 豆油 ECBOT 乘数60000
ZM 豆粕 ECBOT 乘数100
ZC 玉米 ECBOT 乘数5000
ZW 小麦 ECBOT 乘数5000
ZG 黄金 ECBOT 乘数100
YG 小黄金 ECBOT 乘数33.2
DD $25 大道指 ECBOT 每点$25
YM $5 小道指 ECBOT 每点$5
ZI 5000盎司白银ECBOT 乘数5000
K200 韩国指数 KSE 乘数50万
HSI 恒生指数 HKFE 乘数50
MHI 小恒指 HKFE... 阅读全帖 |
|
h*h 发帖数: 27852 | 13 发信人: blaze (狂且), 信区: Programming
标 题: Re: 王垠的40行代码是干嘛的
发信站: BBS 未名空间站 (Fri May 20 19:51:38 2016, 美东)
我来用中文给大家解释一下吧。
王垠的代码在数学上严格的定义了goto(callcc in FP)的形式语义。这个结果的确是经
过了多年研究才得到的。在此之前,人们认识到有goto这个东西,也知道怎么用,但是
没有严格的数学模型来描述其语义。所以goto是停留在炼金术的阶段。有了这个数学定
义,goto才进入了化学的殿堂。如果王垠一周内通过全自研得到了goto的形式语义定义
,那的确不是一般人能做到的。至少我做不到。
发信人: hci (海螺子), 信区: Programming
标 题: 王垠的40行代码是干嘛的
发信站: BBS 未名空间站 (Thu May 19 15:26:35 2016, 美东)
https://github.com/yinwang0/lightsabers/blob/
6a66c294d4c4217efebfdeae18ee4697d802f79e/cps.... 阅读全帖 |
|
c***s 发帖数: 70028 | 14 一名被指控盗窃联邦储蓄银行价值近千万私有软件代码的华人电脑工程师29日在法庭认罪。
被告人名叫张波(Bo Zhang,音译),32岁,中国公民,住纽约皇后区。除了盗窃私有软件代码外,张波还犯了移民欺诈罪,向移民局提供虚假文件,为他自己电脑公司至少一名从国外聘来的雇员取得美国签证。如果罪成,最多可判20年监禁。
据纽约南区联邦检察官的起诉书,2011年5 月至8月11日期间,张波作为一名合同雇员在联邦储蓄银行纽约分行(FRBNY)工作,为一套财务出纳软件撰写部分代码。这个软件名为 “Government-wide Accounting and Reporting Program (GWA)”,财政部用该软件来记录财政部与联邦政府机构之间的拨款划账记录,财政部投入950万元,委托联美联储纽约分行进一步开发该软件。
张波签署了保密协议,保证他所接触的软件源代 码不得被复制到联储纽约分行以外的任何电脑上,而且每次使用代码之前和之后都必须登陆和退出相关保密系统。但在去年8月份左右,张波突然向一名同事声称他 丢失了一个载有源代码的外置硬盘,而该硬盘属于美联储资产,根据规定不得被带出大楼。这名同事随... 阅读全帖 |
|
s*****r 发帖数: 43070 | 15 【 以下文字转载自 Military 讨论区 】
发信人: wsnonline (卫所南次郎-哥们儿要火啦!), 信区: Military
标 题: 王垠的[40 行代码]: 普通琐男码工们都跪安吧!
发信站: BBS 未名空间站 (Thu May 19 01:59:08 2016, 美东)
https://www.zhihu.com/question/20822815
"我有什么资格说话呢?如果你要了解我的本事,真的很简单:我最精要的代码都放在
GitHub 上了。但是除非接受过专门的训练,你绝对不会理解它们的价值。你会很难想
象,这样一片普通人看起来像是玩具的 40 行 cps.ss 代码,融入了我一个星期的日日
夜夜的心血,数以几十计的推翻重写。这段代码,曾经耗费了一些顶尖专家十多年的研
究。一个教授告诉我,光是想看懂他们的论文就需要不止一个月。而它却被我在一个星
期之内闷头写出来了。我是在说大话吗?代码就摆在那里,自己去看看不就知道了。当
我死后,如果有人想要知道什么是我上半生最重要的“杰作”,也就是这 40 行代码了
。它蕴含的美,超越我给任何公司写的成千上万行的代码。"
... 阅读全帖 |
|
t******4 发帖数: 134 | 16 这代码过不了任何code review吧
:【 以下文字转载自 Military 讨论区 】
:https://www.zhihu.com/question/20822815
:"我有什么资格说话呢?如果你要了解我的本事,真的很简单:我最精要的代码
都放在 GitHub 上了。但是除非接受过专门的训练,你绝对不会理解它们的价值。你会
很难想
:象,这样一片普通人看起来像是玩具的 40 行 cps.ss 代码,融入了我一个星期的日
日夜夜的心血,数以几十计的推翻重写。这段代码,曾经耗费了一些顶尖专家十多年的
研究。一个教授告诉我,光是想看懂他们的论文就需要不止一个月。而它却被我在一个
星期之内闷头写出来了。我是在说大话吗?代码就摆在那里,自己去看看不就知道了。
当我死后,如果有人想要知道什么是我上半生最重要的“杰作”,也就是这 40 行代码
了。它蕴含的美,超越我给任何公司写的成千上万行的代码。"
:有没有人来说说这个东西,我想知道他有没有说大话。
:附代码:
:;; A simple CPS transformer which does proper tail-cal... 阅读全帖 |
|
a*****s 发帖数: 5562 | 17 【 以下文字转载自 Military 讨论区 】
发信人: wsnonline (卫所南次郎-哥们儿要火啦!), 信区: Military
标 题: 王垠的[40 行代码]: 普通琐男码工们都跪安吧!
发信站: BBS 未名空间站 (Thu May 19 01:59:08 2016, 美东)
https://www.zhihu.com/question/20822815
"我有什么资格说话呢?如果你要了解我的本事,真的很简单:我最精要的代码都放在
GitHub 上了。但是除非接受过专门的训练,你绝对不会理解它们的价值。你会很难想
象,这样一片普通人看起来像是玩具的 40 行 cps.ss 代码,融入了我一个星期的日日
夜夜的心血,数以几十计的推翻重写。这段代码,曾经耗费了一些顶尖专家十多年的研
究。一个教授告诉我,光是想看懂他们的论文就需要不止一个月。而它却被我在一个星
期之内闷头写出来了。我是在说大话吗?代码就摆在那里,自己去看看不就知道了。当
我死后,如果有人想要知道什么是我上半生最重要的“杰作”,也就是这 40 行代码了
。它蕴含的美,超越我给任何公司写的成千上万行的代码。"
... 阅读全帖 |
|
h***o 发帖数: 1494 | 18 关于Florian Mueller发布的关于Android抄袭Java代码的文章里,存在两个疑问。
首先是第一组的7个抄袭的java文件(PolicyNodeImpl.java, AclEntryImpl.java,
AclImpl.java, GroupImpl.java, OwnerImpl.java, PermissionImpl.java 和
PrincipalImpl.java)都属于源代码里的测试分支。任何程序员都不会将测试代码放到
最终发布的
产品里。这些测试代码都是内部测试之用,以确保软件发布前的质量。
然后是另外一组的37个抄袭文件,他们确实被打包成一个叫做MMAPI.zip的文件里了,
并为了对某个类
型的芯片组进行支持而进入了音频驱动原生代码库里。这其实是值得深入挖掘的部分,
但仔细检查之后
你会发现这些文件也并未随Android发布出来,Google里确实有人开始不小心将它们放
进了最终代码
里,但后来都删除了。
再说说第一组的7个文件,他们都是Sun发布在自己网站上的,帮助开发者测试自己的代
码debug之用。
但有Android或Harmony开发者用他们反... 阅读全帖 |
|
u**c 发帖数: 17972 | 19 http://www.chinesenewsgroup.com/dzgyw/main/news/show.php?conten
(大中报秋枫报道)《环球邮报》转载路透社的报道称,33岁的华裔程序员张博(Bo
Zhang)承认从纽约联邦储备银行(Federal Reserve Bank of New York)盗窃了数百
万美元的软件代码后,12月4日被美国联邦法庭判处6个月的家中软禁,他也因此免除了
牢狱之灾。
张博在今年5月向法庭认罪,承认他将软件代码非法拷贝到一个移动硬盘上,并带回家
中。同时他还供认犯有另一项移民欺诈罪。张博的案件在国会调查人员和其他人中引发
了安全担忧,他们担心纽约联储可能会受到网络攻击。
美国政府称,张博下载的软件代码是用于一套帮助追踪其财务状况的系统,其开发成本
约为$950万美元。
当天张博穿着蓝色衬衫和灰色休闲裤,在曼哈顿联邦法庭上对联邦地区法官加德佩(
Paul Gardephe)称:“我希望就此事引起的混乱向政府、法庭、我的前雇主及我的客
户表示道歉。”张博称,他感到十分后悔。
在调查期间,张博一直很配合调查人员,这一调查始于他告诉一名同僚他丢失了储... 阅读全帖 |
|
H********g 发帖数: 43926 | 20 【 以下文字转载自 Military 讨论区 】
发信人: wsnonline (卫所南次郎-哥们儿要火啦!), 信区: Military
标 题: 王垠的[40 行代码]: 普通琐男码工们都跪安吧!
发信站: BBS 未名空间站 (Thu May 19 01:59:08 2016, 美东)
https://www.zhihu.com/question/20822815
"我有什么资格说话呢?如果你要了解我的本事,真的很简单:我最精要的代码都放在
GitHub 上了。但是除非接受过专门的训练,你绝对不会理解它们的价值。你会很难想
象,这样一片普通人看起来像是玩具的 40 行 cps.ss 代码,融入了我一个星期的日日
夜夜的心血,数以几十计的推翻重写。这段代码,曾经耗费了一些顶尖专家十多年的研
究。一个教授告诉我,光是想看懂他们的论文就需要不止一个月。而它却被我在一个星
期之内闷头写出来了。我是在说大话吗?代码就摆在那里,自己去看看不就知道了。当
我死后,如果有人想要知道什么是我上半生最重要的“杰作”,也就是这 40 行代码了
。它蕴含的美,超越我给任何公司写的成千上万行的代码。"
... 阅读全帖 |
|
w*******e 发帖数: 15912 | 21 https://www.zhihu.com/question/20822815
"我有什么资格说话呢?如果你要了解我的本事,真的很简单:我最精要的代码都放在
GitHub 上了。但是除非接受过专门的训练,你绝对不会理解它们的价值。你会很难想
象,这样一片普通人看起来像是玩具的 40 行 cps.ss 代码,融入了我一个星期的日日
夜夜的心血,数以几十计的推翻重写。这段代码,曾经耗费了一些顶尖专家十多年的研
究。一个教授告诉我,光是想看懂他们的论文就需要不止一个月。而它却被我在一个星
期之内闷头写出来了。我是在说大话吗?代码就摆在那里,自己去看看不就知道了。当
我死后,如果有人想要知道什么是我上半生最重要的“杰作”,也就是这 40 行代码了
。它蕴含的美,超越我给任何公司写的成千上万行的代码。"
有没有人来说说这个东西,我想知道他有没有说大话。
附代码:
;; A simple CPS transformer which does proper tail-call and does not
;; duplicate contexts for if-expressions.
;; auth... 阅读全帖 |
|
h*i 发帖数: 3446 | 22 他用的是正常风格在写代码。他这段代码的功能,是自动把正常风格的代码转换成CPS
风格的代码,所以叫CPS transformer。
CPS是啥? 就是一种编程风格,每个函数结尾,不是直接返回结果,而是调用并把结果
传给一个“下一步”函数。CPS有啥用?很多编译器需要。代码转成CPS之后,很多事机
器更容易干。
比如说,你想发明一个高大上的能自动作贝叶斯推理的编程语言,就是现在前沿的所谓
叫probablistic programming language的东东,这种语言的执行不是常见的按代码顺
序执行,而是基于对一些随机变量抽样的结果来决定下一步作什么。要实现这样的一个
语言,一个容易的办法,就是把常规代码先转成CPS风格的,在每次调用“下一步”函
数之间作抽样。 |
|
h*h 发帖数: 27852 | 23 绝大多数人不懂他的语言scheme
发信人: hci (海螺子), 信区: Programming
标 题: 王垠的40行代码是干嘛的
发信站: BBS 未名空间站 (Thu May 19 15:26:35 2016, 美东)
https://github.com/yinwang0/lightsabers/blob/
6a66c294d4c4217efebfdeae18ee4697d802f79e/cps.ss
他那段代码的功能,是自动把正常风格的代码转换成CPS风格(Continuation-passing
style)的代码,所以叫CPS transformer。
CPS是啥? 就是一种编程风格,每个函数结尾,不是直接返回结果,而是调用并把结果
传给一个“下一步”函数。当然这个“下一步”函数,也是从外面传进来的,所以CPS
风格的函数要比正常风格的要多一个参数。
CPS有啥用?很多编译器需要。代码转成CPS之后,很多事机器更容易干。
比如说,你想发明一个高大上的能自动作贝叶斯推理的编程语言,就是现在前沿的所谓
叫probablistic programming language的... 阅读全帖 |
|
t******n 发帖数: 2939 | 24 ☆─────────────────────────────────────☆
l63 (l63) 于 (Sun May 26 03:44:32 2013, 美东) 提到:
我对素数的定义是:
"a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除"
C代码如下:
bool judge_prime(int a)
{
int b;
if (a<=1)
return 0;
else
{
for (b=0;b
{
if(judge_prime(b)&& a%b==0)
return 0;
}
return 1;
}
}
☆─────────────────────────────────────☆
l63 (l63) 于 (Sun May 26 03:46:21 2013, 美东) 提到:
看了这个还认为我的定义有什么 "循环定义" 的问题的人, 我只能说, 你的智商连... 阅读全帖 |
|
l*****z 发帖数: 3022 | 25 【 以下文字转载自 JobHunting 讨论区 】
发信人: RichPerson (富婆), 信区: JobHunting
标 题: 程序员掉入传销组织用"代码"求救 同事"秒懂" (转载)
发信站: BBS 未名空间站 (Wed May 24 22:59:54 2017, 美东)
发信人: repeating1 (国民党不倒,中华民国不会好), 信区: Military
标 题: 程序员掉入传销组织用"代码"求救 同事"秒懂"
发信站: BBS 未名空间站 (Wed May 24 19:46:39 2017, 美东)
南京一家大型软件企业的年轻程序员小张(化名)万万没有想到,当他被传销组织控制
、几近绝望之时,自己尝试利用计算机“代码”向同事传递求救信息,他的程序员同事
们竟然“秒懂”,并赴天津协助警方,将他成功解救出来。
“五一”出游,不慎掉入传销组织“包围圈”
今年“五一”劳动节假期,小张买了一张去天津的火车票找同学玩。4月30日抵达天津
火车站时,他发现一位乘客一脸痛苦,于是上前询问。对方表示自己身体不舒服,而且
钱包被偷了。善良的小张拿出两百元给乘客,并将她护送到汽车... 阅读全帖 |
|
v*****1 发帖数: 2200 | 26 【 以下文字转载自 Dreamer 讨论区 】
发信人: Dreamer (不要问我从哪里来), 信区: Dreamer
标 题: 掉入传销程序员用代码求救 首字母组合“SOS”同事秒懂
发信站: BBS 未名空间站 (Wed May 24 23:25:05 2017, 美东)
要说知识改变命运,这话还是很有道理的。今年五一小长假期间,南京一年轻程序员掉
进传销组织,他尝试用代码求救,同事秒懂报警将其救出。
小张(化名)是南京一家大型软件企业的程序员,今年五一劳动节假期,他买了一张去天
津的火车票找同学玩。
4月30日,小张抵达天津火车站时,发现一位乘客一脸痛苦,于是上前询问。善良的小
张得知对方身体不舒服,而且钱包被偷后,不但拿出200元给该乘客,并将她护送到汽
车站。
5月1日,小张打算返程时,接到那位乘客的电话,对方表示要还钱给小张并请他吃饭。
小张答应见面,万万没有想到,那位乘客将他带进传销组织,十多个人把他身上的手机
等东西全部抢走,还限制人身自由,将其关在一处平房内。
小张说,传销组织派人和他“聊天”,打探其家庭及工作情况,希望通过控制小张,转
而欺骗小张的父母、亲戚索要... 阅读全帖 |
|
b*****d 发帖数: 61690 | 27 新华网首尔3月20日电 (记者张青)韩国政府20日初步证实,当天下午韩国广播公司、
文化广播电台和韩联社电视台等韩国主流媒体及新韩银行、农协银行等部分金融机构的
计算机网络瘫痪由恶意代码所致。
当天,韩国政府从广播通信委员会、警察厅、韩国网络振兴院抽调专业人员,组成
联合应对小组,前往韩国广播公司等机构,从受攻击的电脑里获取恶意代码样本并展开
研究。分析结果显示,网络瘫痪是由于恶意代码破坏了计算机的“启动系统”。
韩国广播通信委员会当天下午对媒体说,依据分析结果推测,此次网络瘫痪是由恶
意代码侵入上述机构的“更新管理服务器”所致,但目前尚不能确定散布恶意代码的具
体始发地。
“更新管理服务器”是对信息系统的文件、“免疫”设置等进行更新的服务器。据
联合应对小组判断,当天侵入“更新管理服务器”的恶意代码可能顺势感染了与服务器
有联系的计算机。如果计算机“启动系统”被感染,会导致计算机无法启动或重启。
联合应对小组表示,韩国国家主要公共机关未遭受此次网络攻击,为防范类似事件
再次发生,将要求所有机构强化警戒、采取必要措施,以确保受到网络攻击时能迅速启
动、恢复计算机系统。
自当天下午3时起... 阅读全帖 |
|
w*****s 发帖数: 2896 | 28 我不知道王垠是谁,没去查过,也不知道他为什么火了。咱们仅仅从楼主所给出的信息
中做个推断,就事论事。
王垠的这段代码,是不太容易看得懂,但短小精悍有美感。他用不常见的的编程语言,
实现了一个高大上的研究成果,应该说是达到了他的目的:就是我很牛,你们拜服吧。
王垠提到,他用很短的时间,只一个星期,搞懂了一项成果,而这,是一些顶尖专家花
了十多年的才研究出来的。由此看来,普通人肯定是都不懂的,即便是专业人员,也需
要花“不止一个月的时间”,你说他牛不牛啊,牛!
读懂了这项成果之后,还得把这方案转化为程序算法,就是把抽象的概念和他们之间的
逻辑联系,具体实现的过程以程序流程的方法表示出来。这算法的好坏差别太大了,差
几个数量级都有可能。看王垠这洋洋得意的样子,这算法应该是相当不错,这应该也是
他引以为豪的亮点之一。算法是个黑箱,不给你讲解一下,外人根本无从知晓,因为实
现的方法可以有很多,条条大路通罗马,所以这是一个隐秘的东西。
接下去是编程了,王垠不用常规的编程语言,而选了一个cps.ss,有其原因。一是程序
简短,二是程序漂亮,外行人看着象看天书,却依然叹服它的美感,而这正是王垠要达
到... 阅读全帖 |
|
D****y 发帖数: 2207 | 29 你除了说你们不懂以外还有什么论据可以支持你的观点的么?
这里有一个研究Compiler出身,在Compiler,Interpreter,Simulator,Virtual
Machine上摸爬滚打了20来年的Ph.D。我承认我不会他用的语言,但是我能看懂别人说
的人话,能在5分钟内理解他到底在做什么,好处是什么问题在哪里。
我的观点如下:
1.他所实现的不过是一个20来年前已经上教科书的经典编译优化的扩展,熟悉编译优化
技术的人完全可以在5分钟内理解这个问题的本质。而这个扩展本身在10多年前就已经
被学术界讨论过,也发表过。
2.我不认为工业界会欢迎这样的优化,因为这个破坏了一些系统级的假设,而所得到的
好处并不是很大,并且它所解决的问题也不是没有其他替代方案可以用的。引入如此优
化的工具可以单独工作,但是无法与其他通用软件协作(这一点与这段代码本身的不可
读性有着高度的自洽性),这在今天的计算机世界是非常可怕的一件事。
3.计算机发展到今天,写代码更多的已经不是给机器看了,而是给人看的。怎么把人看
的代码翻译给机器看那是编译器的工作,在这个方向上,人做得再好也不过是给编译器
省力气。... 阅读全帖 |
|
D**s 发帖数: 6361 | 30 12月9日消息,据科技网站CNET报道,近日美国总统奥巴马参加了由非盈利组织
Code.org举办的编程大会。会上,奥巴马熟练地习得一小段JavaScrip代码,并成功
地画出了一个正方形。使得他成为了美国史上首位会编程的总统。
周 一,即美国时间12月8日,美国总统奥巴马参加了由白宫协办的一场编程大会。会
上,奥巴马与一群中学生相互交流编程体验,随后一位中学生教授奥巴马一些简 单的
编程代码。而奥巴马使用谷歌的Blockly工具,熟练地利用了一小段代码画出了一个正
方形。虽然这是一个十分简单的编程,但是奥巴马的表现实则释放 出这样的讯息:编
程并非难事,谁都可以。
奥巴马在编程大会后发布了一段视频,并给年轻人提出了一点建议:“别总是充当消费
者,试着去创造点什么。花上一个小时的时间,你就可以了解更多关乎我们生命一部分
的科技。”
本次的编程大会,只是由非盈利组织Code.org举办的第二届“年度代码时间”项目的一
部分。而Code.org组织的使命是让计算机科学进入到小孩子的视野,让他们更多了解
代码,了解到这些关乎他们生活的重要部分。
同时,本周也被称为计算机科学教育周,届时代码活... 阅读全帖 |
|
k******0 发帖数: 2438 | 31 【 以下文字转载自 Joke 讨论区 】
发信人: voidcinder (ashesoftime), 信区: Joke
标 题: 起诉书详细披露了郑小清在日落风景照中隐藏代码的过程 (转载)
发信站: BBS 未名空间站 (Fri Aug 10 18:42:07 2018, 美东)
发信人: zlltt (我要去WestWorld), 信区: Programming
标 题: 起诉书详细披露了郑小清在日落风景照中隐藏代码的过程
发信站: BBS 未名空间站 (Sat Aug 4 17:43:42 2018, 美东)
发信人: alwayswet (总湿), 信区: Military
标 题: 五毛们不用给郑小清洗地了
发信站: BBS 未名空间站 (Sat Aug 4 17:00:22 2018, 美东)
-----------------------------------------------------
起诉书详细披露了郑小清在日落风景照中隐藏代码的过程。
7月5日,郑小清将39个MATLAB文件和一个Excel表压缩成一个名为“optimization.zip
”... 阅读全帖 |
|
h*********n 发帖数: 915 | 32 【 以下文字转载自 Working 讨论区 】
发信人: heavyburden (nothing), 信区: Working
标 题: 白板写代码还是自带电脑写代码?
发信站: BBS 未名空间站 (Thu Feb 10 22:57:44 2011, 美东)
最近有个on-site,要白板写代码。我提前练习了一下,觉得在白板上写又慢又不好看
。就问recruiter能不能自带笔记本,在电脑上写。他说可以,但有些面试的员工会觉
得不舒服。还说他经手的候选人里,以前自带电脑的几个最后都没拿到offer,建议不
要。
我知道同一个公司有个朋友自带电脑也拿到了,其实还是看面试表现。但这个
recruiter这么说是不是也有几分道理?
想调查一下作为面试员是怎么看候选人在电脑上写代码的。另外还想调查一下大家去面
试时自带电脑普遍吗?我觉得对我写代码而言肯定舒服很多。 |
|
b***i 发帖数: 3043 | 33 这个基本上是对数关系,自己写过1k行的算初学者(自己写的,不是说你的项目里本来
有别人的代码,或者编译器帮你生成的),和写过2k行的熟手差一个档次,写过4k行的
基本上算是研究生毕业的高手,拿几个面试不成问题,8k可称大侠,入门工作随便挑,
16k的就是大牛了,算是做过比较重量级的应用,32k基本上大师了,做过多个重量级应
用,64k的可以算作功夫深不可测,应该是跨越多个领域的应用,比如从网页到网站到
app,128k算是沃兹尼亚克级别的可以开创一个领域了。
基本上,写过64k行代码的,那些很难的题目都遇到过。工作中没遇到过还是代码写得
不够多。比如我就用到过好几次递归,Trie。别笑,你能用到递归说明你的项目很有意
思。大部分项目连递归都用不上。还有多线程,项目中能用到过是福气,可遇而不可求。
还有一个关键是是看你用了多长时间写代码,有人从8岁开始写C语言代码,或者java,
写到20岁,每天花时间研究,没有3万也有16k,这种年轻有为的当然是面试的重点。所
以关键是你写下几万行代码的年龄,如果20-25,达到16k以上,就认为是高手。从20岁
开始学C/java,到30还没到4k,... 阅读全帖 |
|
m****7 发帖数: 69 | 34 当你review了一个很狗屎的同事的代码后,你就会发现代码行数产量高是一件多么令人
痛苦的事情,因为每一行代码都会需要无数的人去test,质量低的代码除了浪费硬盘空
间,编译器资源,和目标机器资源之外,还会有无数多的bug,以及无数的维护工作。
。。一个好的码农应该是在不影响可读性的原则上让自己的代码行数越少越好,一个不
知道如何精简代码的码农绝对不是一个合格的码农。 |
|
z****e 发帖数: 54598 | 35 前面看到有人说写出来的代码让人一眼就看出是没有工作经验的
这个的确是有可能的,从我自身经验判断
一般来说,具备以下一个或几个特点的代码
会被认为是写java代码写不够多的人写出来的
1) 变量名和方法名首字母大写
这个是大忌,一般遇到了,不让过是很正常的
从某种意义上说,这个不是风格的问题
跟goto一样,其实是个错误
2) 命名中使用下划线
尤其是自定义的系统变量,喜欢用下划线开始
这说明程序猿喜欢介入系统内部实现
which正好是java不提倡的做法
java提倡非侵入式编程
也就是对于已经做好的东西,比如jvm
采用输入参数形式来tune
其次,对于具体对象的管理,采用反射等高级手段来做
直接介入系统内部实现,比如介入jvm内部实现
的方式,其实是不提倡,甚至可以说是禁止的
对于下划线的命名,能不用就不用
所以当你遇到了_myInstance的时候,嗯
3) static关键字的使用
能写出static方法是好事
说明你懂static是干什么的
但是多数时候,static其实并不是那么频繁滴被使用到
static的代码实现多数时候交给了框架去做
一般如果你要用static
建议单... 阅读全帖 |
|
z****e 发帖数: 54598 | 36 所有代码都是重写比修改容易,其实就没遇到过多少修改容易的代码
但是资本家基本上都不会答应你重写
因为重写意味着前面的投入全部打水漂
等你跳槽走了之后,换个人,还是会有同样的问题
最后一而再再而三滴在同一个地方投入,那资本家的钱就哗哗流没了
所以修改维护代码的工作必需做
这个时候就知道了,java代码看起来实在是太可爱了
其他换个语言我考,js,c,scala,多的是让你抓狂的地方
java虽然也有很多烂人,但是要写出让你看不懂的代码,不那么容易
你认真看,还是能看懂的,而且有的是方法收拾这种代码
各种frameworks弄上去,可读性就更高了 |
|
R********n 发帖数: 3601 | 37 【 以下文字转载自 Military 讨论区 】
发信人: repeating1 (国民党不倒,中华民国不会好), 信区: Military
标 题: 程序员掉入传销组织用"代码"求救 同事"秒懂"
发信站: BBS 未名空间站 (Wed May 24 19:46:39 2017, 美东)
南京一家大型软件企业的年轻程序员小张(化名)万万没有想到,当他被传销组织控制
、几近绝望之时,自己尝试利用计算机“代码”向同事传递求救信息,他的程序员同事
们竟然“秒懂”,并赴天津协助警方,将他成功解救出来。
“五一”出游,不慎掉入传销组织“包围圈”
今年“五一”劳动节假期,小张买了一张去天津的火车票找同学玩。4月30日抵达天津
火车站时,他发现一位乘客一脸痛苦,于是上前询问。对方表示自己身体不舒服,而且
钱包被偷了。善良的小张拿出两百元给乘客,并将她护送到汽车站。5月1日,小张打算
返程时接到那位乘客的电话,表示要还钱给小张,请他吃饭。小张爽快答应见面,没想
到竟然被那位乘客带进了传销组织的“包围圈”。
“到了目的地,一下子出现了十多个人,把我身上的手机等东西全部抢走了,还限制人
身自由,关在一... 阅读全帖 |
|
R********n 发帖数: 3601 | 38 【 以下文字转载自 Military 讨论区 】
发信人: repeating1 (国民党不倒,中华民国不会好), 信区: Military
标 题: 程序员掉入传销组织用"代码"求救 同事"秒懂"
发信站: BBS 未名空间站 (Wed May 24 19:46:39 2017, 美东)
南京一家大型软件企业的年轻程序员小张(化名)万万没有想到,当他被传销组织控制
、几近绝望之时,自己尝试利用计算机“代码”向同事传递求救信息,他的程序员同事
们竟然“秒懂”,并赴天津协助警方,将他成功解救出来。
“五一”出游,不慎掉入传销组织“包围圈”
今年“五一”劳动节假期,小张买了一张去天津的火车票找同学玩。4月30日抵达天津
火车站时,他发现一位乘客一脸痛苦,于是上前询问。对方表示自己身体不舒服,而且
钱包被偷了。善良的小张拿出两百元给乘客,并将她护送到汽车站。5月1日,小张打算
返程时接到那位乘客的电话,表示要还钱给小张,请他吃饭。小张爽快答应见面,没想
到竟然被那位乘客带进了传销组织的“包围圈”。
“到了目的地,一下子出现了十多个人,把我身上的手机等东西全部抢走了,还限制人
身自由,关在一... 阅读全帖 |
|
H********g 发帖数: 43926 | 39 【 以下文字转载自 Military 讨论区 】
发信人: repeating1 (国民党不倒,中华民国不会好), 信区: Military
标 题: 程序员掉入传销组织用"代码"求救 同事"秒懂"
发信站: BBS 未名空间站 (Wed May 24 19:46:39 2017, 美东)
南京一家大型软件企业的年轻程序员小张(化名)万万没有想到,当他被传销组织控制
、几近绝望之时,自己尝试利用计算机“代码”向同事传递求救信息,他的程序员同事
们竟然“秒懂”,并赴天津协助警方,将他成功解救出来。
“五一”出游,不慎掉入传销组织“包围圈”
今年“五一”劳动节假期,小张买了一张去天津的火车票找同学玩。4月30日抵达天津
火车站时,他发现一位乘客一脸痛苦,于是上前询问。对方表示自己身体不舒服,而且
钱包被偷了。善良的小张拿出两百元给乘客,并将她护送到汽车站。5月1日,小张打算
返程时接到那位乘客的电话,表示要还钱给小张,请他吃饭。小张爽快答应见面,没想
到竟然被那位乘客带进了传销组织的“包围圈”。
“到了目的地,一下子出现了十多个人,把我身上的手机等东西全部抢走了,还限制人
身自由,关在一... 阅读全帖 |
|
h*****n 发帖数: 209 | 40 突然间有点不确定了,以下两个C代码应该是完全等价的吧?
代码 1:
int fooA()
{
//blabla
}
int fooB()
{
int ret;
ret = fooA();
return ret;
}
代码 2:
int fooA()
{
//blabla
}
int fooB()
{
return fooA();
}
代码1是不是把temp的值放在寄存器(e.g., EAX)里面返回了?
代码2是不是也会在stack里面分配一个临时变量(跟代码1一样),然后把fooA()的值赋
给这个临时变量,这个临时变量的值再放在寄存器里面返回? |
|
z*******3 发帖数: 13709 | 41 ide自动生成的占了一半
回头看发现已经有些地方看不太懂了
正在重构部分代码
写代码真的是很容易的一件事
难点永远都是怎么看懂代码
尤其是看懂他人的代码
还有如何让别人看懂自己写的代码
如果不能够让其他人参与
说到底,这种代码都不过是收工作坊式的生产
不是现代意义上的工业化生产 |
|
w***g 发帖数: 5958 | 42 而且生成出来的代码还需要人看!简直就是本末倒置了。
人写代码是为了让机器执行任务,最好的设计自然是应该把人写的代码和机器产生的数
据分开。Linux下也有lex/yacc, gperf, rpcgen等自动生成代码的工具,但那写都只是
作为中间数据直接传入编译器的,不需要人看的,中间代码也不用存入版本管理软件。
有些情况下因为现在技术水平制约,偶尔用机器产生代码是可以提高生产力。但是把这
个看成先进技术是不对的。
我知道你IDE用得很爽。大部分人用IDE都用得很爽,你自己爽爽就可以了。又不是什么
了不起的本事,也值得拿出来吹。 |
|
z****e 发帖数: 54598 | 43 错误
代码分成两部分
一部分是解释给机器去执行,也就是执行效率,这更多的是可行性
另外一部分是可读性,也就是你的代码需要便于他人阅读
不会造成混乱,也就是可维护性,项目之所以失败
很多时候不是因为代码不可执行,而是代码不可维护
别人看不懂,接盘的人看不懂,他自然也就做不下去
到最后,接盘的人发现,与其维护你的代码
不如推倒他自己做,这个时候,你的项目就已经失败了
软件工程最经典的一个图形就是维护成本随着时间的增长
呈指数级上升,最后挂了,没法维护,你这个搞毛
可行性只是第一步,能让机器执行,这个只是软件整个生命周期中
其实很微不足道的一步,谁写的代码机器执行不了了? |
|
z****e 发帖数: 54598 | 44 declarative的目的是
dont make me fucking guess
让你的代码写清楚你要干什么
最好不要让我去看代码,因为我不想看
fp的很多东西做不到这一点
actor和oop可以做到
你见过有人说vert.x难的么?
但是vert.x又能实实在在解决问题哦
这就是为什么我认为vert.x有前途的主因
完全不看,是不可能的
但是如何尽力让别人看懂,这恰恰是oop所擅长的
hello world的确更难,但是java在一大堆代码的时候
其可读性是无与伦比的,项目失败
绝大多数不是因为功能点无法实现
而是因为代码不可维护,其中就包括fp这些老古董
如果这些古董成功的话,就没有java了,因为不需要嘛
就是因为fp的很多语言,外加c,c++做失败了
所以才会有了java的推广和流行
当然java太具体了,oop比较抽象
真正做到declarative的就是java
你的java代码给我,三分钟之内我可以说出这个java代码大概在干嘛
如果用上各种框架的话,比如spring的话,就更快了
我直接看annotation就大概能明白了 |
|
g****u 发帖数: 252 | 45 目前代码的目的是打赌测性能,不是做产品卖钱。
老魏的这个抢票器(要说计数器也行)离整个12306差十万八千里,
但这个和打赌没关系。
各种有志于改进老魏代码的同学能不能稍安勿噪,
看热闹的也不要喊牛。网络那块还没出来,结果怎么样还不一定。
现在如果第三方出来给老魏的代码打补丁,到时候万一老魏
性能超标,goodbug也会不服。
goodbug至今还没有反应。考虑到要让goodbug写客户端评测
这个事情其实是有conflict of interest的,我已经用
C++写了一个客户端了,正等着老魏的服务器出来测试。
大家先不要拿无关紧要的事情让老魏fix。
我这个客户端会在goodbug放出他的客户端,或者goodbug
声明放弃写客户端认输之后放出。
老魏的代码大家都看到了,难道就没兴趣看看goodbug的
代码?
等赌完了,我们再慢慢研究怎么共同提高老魏的代码,
怎么做persistence之类的别的对12306来说是essential的东西。
到时候老魏愿意再写点code就写点,不愿意写反正已有的东西
都在github上,大家fork出来就是。
谢谢大家。 |
|
h*i 发帖数: 3446 | 46 https://github.com/yinwang0/lightsabers/blob/
6a66c294d4c4217efebfdeae18ee4697d802f79e/cps.ss
他那段代码的功能,是自动把正常风格的代码转换成CPS风格(Continuation-passing
style)的代码,所以叫CPS transformer。
CPS是啥? 就是一种编程风格,每个函数结尾,不是直接返回结果,而是调用并把结果
传给一个“下一步”函数。当然这个“下一步”函数,也是从外面传进来的,所以CPS
风格的函数要比正常风格的要多一个参数。
CPS有啥用?很多编译器需要。代码转成CPS之后,很多事机器更容易干。
比如说,你想发明一个高大上的能自动作贝叶斯推理的编程语言,就是现在前沿的所谓
叫probablistic programming language的东东,这种语言的执行不是常见的按代码顺
序执行,而是基于对一些随机变量抽样的结果来决定下一步作什么。要实现这样的一个
语言,一个容易的办法,就是把常规代码先转成CPS风格的,在每次调用“下一步”函
数之前作抽样。
另外一个例子,比... 阅读全帖 |
|
w****e 发帖数: 1883 | 47 这种风格有啥难的?写过PERL或者Q/KDB+的人估计都写过类似的东西。恨不得一个程序
一行就写完,除了作者谁TM都看不懂是干啥的。就连作者,过半年也费半天劲才看明白。
王银(以及给他捧臭脚的那些人),根本就不明白,代码就是工具,不是你装逼的利器
。这种号称用最短的代码解决一个什么大问题,基本上都是本科刚毕业的小屁孩追求的
东西,既是给自己找不痛快也是给同事找不痛快。
我的team,我就明确跟他们说的清清楚楚,Q的代码你给我按C写,KDB的代码按SQL写,
给分行分行,该注释注释,什么匿名函数,统统不许用。写完互相review, 要是谁写的
代码别人不能一目了然知道目的,也不能看两遍就明白细节的,统统给我重写。 |
|
y****g 发帖数: 36950 | 48 有一段代码特别长,索南要花很多时间才知道那里是否有BUG,
另外99个地方都是简单的逻辑问题,索南检查了98个地方都没BUG,现在就剩最难的那
段代码和一段普通的代码没查。
索南觉得这是概率题嘛?一开始就应该查最长的那段代码吧。CTO肯定是知道索南在那
段代码写出了问题。 |
|
发帖数: 1 | 49 【 以下文字转载自 Missouri 讨论区 】
发信人: pangpangchou (一心女神梦,万古感甄赋), 信区: Missouri
标 题: 千人计划"专家郑小清,偷窃GE代码的详细过程
发信站: BBS 未名空间站 (Sat Aug 4 20:54:29 2018, 美东)
起诉书详细披露了郑小清在日落风景照中隐藏代码的过程。
7月5日,郑小清将39个MATLAB文件和一个Excel表压缩成一个名为“optimization.zip
”的文件,然后用AxCrypt加密,并重命名为“F03B336A.axx”,这个文件名看起来是
一个跟工作无关的名称。
接着,他把iPhone手机连到电脑,复制了手机中的一张IMG2064文件到电脑桌面,然后
重命名为dawn.JPG。在编辑dawn.JPG的时候,郑小清把“Happy Forth of July”写进
了照片里。完了之后,他把编辑后的照片放进了“F03B336A.axx”同一个文件夹中。
之后就进入到最重要的环节。
郑小清打开Cygwin Bash Shell,并输入命令cd c:tmp和dir,列出命令行界面上的目录
。... 阅读全帖 |
|