Programming 板


LINE

※ 引述《realmeat (真肉)》之铭言: : ※ 引述《amppp (Monte-Carlo)》之铭言: : : 我的感想: : : 程式是逻辑思考的实现,是可以被数学化的,所以写程式应该要像写证明一般 : : 简洁清楚,虽然我也想一行程式只做一件事情,但是平行计算程式往往不能这样 : : ,这是序列式程式(serial code)才比较容易达成的。 : : 我的目标一直都是以最短程式码,可改变性程式码为目标。 : : 不断地练习,清楚的逻辑思考,进而建立自己写程式的习惯,好的习惯不会让自己 : : 陷於无穷debug回圈。程式写久了,新的程式只是剪下贴上间就完成了。 : 我的目标则是 : 程式码当中不使用到一行注解, 就能让别人了解你写的程式 程式码只能描述程式要做的事情,无法描述程式为什麽要做这些事。 描述程式码运作的原理与原因必须写在注解或外部文件 如果没有写这些额外的说明 就算其他人看懂程式每一个步骤,也没有办法完全理解其意义 举例而言: window = create_window( image ); pixels = collect_pixels_from( window ); difference = calculate_difference_from( pixels ); similarity = infer_similarity_from( difference ); filtered_pixel = convolution( pixels, similarity ); 上面五行简单的程式段落,看英文就知道 第一步是从 image 建立 window 第二步是从 window 收集 pixels 第三步是从 pixels 计算 difference 第四步是从 difference 推论 similarity 第五步是将 pixels 和 similarity 做 convolution 运算 程式码非常清楚地把程式做的事情写明白了,但是外行人没做过影像增强根本不懂为什 麽要做这些事情。 首先,为什麽要建立 window? window 是什麽? 做什麽用的? 看实作细节可能会懂 但是还不如直接在上面写些注解 // window 是 image 的某一小块区域,用来圈选增强单一像素所需要考虑的范围 再来,为什麽要收集 pixels? // 收集 pixels 了解像素之间的关系,动态且适应性地决定每个像素对增强结果的 // 重要性。 然後,为什麽要计算 difference? 为什麽要推论 similarity? 为什麽要做 convolution? 整个流程到底试图完成什麽事情? 其目的是什麽? 这些事情并不是以变数命名或是函数命名就可以轻松交代的 仍然有很多事情,像是设计样式、多绪陷阱、演算法注记、TODO、FIXME、……等 还是得靠注解和文件帮忙补完 如果有那种完全没有注解与说明文件的程式码维护两年以上的 请务必告知我。 : 要做新的东西, 需要运用原本所写的功能 : 只要把档案搬过去就能work, 做到模组化 : 程式写到现在 感觉只是对不同的资料进行处理 : 看最底层只是 许许多多的指令, 按照自己设计的动作排序好 : 没有啥需要被证明的 : 对我来说真正的课题 则是在程式码的可读性以及可移植上才是重点 可读性和可移植性我也认为很重要 问题是,在完成了足够的可读性和移植性之後 是不是再补上一些注解和文件会更好呢 :D --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.33.235.24
1F:推 bondalin:这篇中肯!218.168.193.212 09/07 08:34
2F:→ ykjiang:立意是不错,但这个例子不好, 218.167.64.111 09/07 12:06
3F:→ ykjiang:此例注解应该指引该参考的文献即可 218.167.64.111 09/07 12:06
4F:→ ykjiang:背景知识只要引用来源即可, 218.167.64.111 09/07 12:07
5F:→ ykjiang:作者自创的东西才需要写进驻解里 218.167.64.111 09/07 12:08
6F:→ neverfly:以上一篇的思维,应该会希望你把程式抽出220.136.221.204 09/07 18:26
7F:→ neverfly:然後放在一个叫function_do_xxxx()的函式220.136.221.204 09/07 18:26
8F:→ neverfly:不过我觉得这种方法,跟注解是同样的事220.136.221.204 09/07 18:27
9F:推 cgcheng:指的是我的思维吗?不全然,太刻意 61.229.216.201 09/08 02:53
10F:推 cgcheng:以这个例子,注解写 影像增强 的专用英文 61.229.216.201 09/08 02:57
11F:→ cgcheng:最多附上网址就算很详尽了 61.229.216.201 09/08 02:58







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP