Soft_Job 板


LINE

※ 引述《Hertzfeld (Google+)》之铭言: : 很多明星大学的数学系毕业生也不会写程式。 : 我最近和十几位这一类的学生聊天,他们都告诉我一件事, : 他们的老师从来不教他们如何画流程图。 : 对这些老师而言,写程式最重要的是要熟悉电脑语言,而不是利用逻辑思考。 : 其结果是,学生搞不清楚程式是如何产生的。 : 我实在不懂,为什麽现在的老师们不重视逻辑思考, : 也不教学生如何画流程图?画流程图其实是写程式的第一步, : 如果你不会画流程图,就表示你不知道程式是如何写出来的, : 也表示你根本不会设计程式。 : 很多学生写程式的时候是乱写一阵,其中的来龙去脉根本搞不清处, : 写完以後,如果程式有问题,你也不会侦错。 : 我强调流程图的重要性已经很久了,可是显然没有什麽效用, : 因为这几天我碰到的学生都是才从大学毕业的, : 他们虽然毕业於资讯相关科系,却都不会写程式。 : 但是我还是要再呼吁一次,学生如果不会画流程图, : 就表示他没有逻辑思考的能力,不可能会写程式的。 我作开发也差不多快15年,我自己个人的经验是: 只要用的程式语言支援Object Oriented programming 或 Funtional programming,正常开发情境下是非常少会用到流程图的 因为任何语言只要支援这两者,那『定义』也就是『正确的命名』 行为或物件才是开发的重点,而程式的决策树,会被命了名的 物件或程序给分割抢食,只留下许多的情境,与当中特定的角色 如何互动 命名对了,介面开好,流程图用javadoc的叙述就能取代了 所以,把流程画得很清楚,有那种闲功夫不如直接写Code 而画得不清楚,那通常流程图就会退化成混杂特殊语法的用例图 或甚至是几行叙述 而且流程图在我来看有个很不好的缺点:就是他会引诱不成熟的 开发者写出非常imperative programming的程式,因为照着写, 分支就是开if else,然後加个後回圈、里面再if else,如此一行 一行的写下去 有没有看过一个Java class 2000行,其中主要的public methods 动辄300行起跳,indent 深到可以打波动拳的? 这种Code 就是看着流程图、把程式码当做指令才会写成这样的 所以,我什麽时候才会用流程图呢? 就是我得接手上述这种明显照着流程图作开发的程式的时候 对,原作者可能有把流程图留下来,但,流程图是维护成本最高的一种图 而只要专案一忙、bug一多,那文件肯定是过时的,所以最後常常 只能照着程式码重建整个流程,才能推断不同内容的资料流流进来的时候 会发生什麽事,但很多时候即使面对这种情况我也是不画流程图的, 我会乾脆开始写单元测试搞重构 若要讲到我最常用的图,那肯定是循序图第一、用例图第二,以及非常不规范 的组件图第三 特别在开发的系统遵循Micro service 设计思维的时候,循序图画不出来等 同於我根本不知道我在干嘛 当然,也有可能是我写的跟李家阿伯写的领域不一样,所以会这样吧? 身为programmer,我最喜欢的一套小说,就是梦枕貘的『阴阳师』 写程式就是命名,命名就是下咒,咒下得好,程式就会有强烈的生命,你 只要看着它,它就会透过你的眼睛操作你的手去敲键盘,把该有的其他部分 程式码给打出来。 命名得不好,程式是死的,那就只好自个一个字、一个字慢慢敲了 -- 『你知道人有脑子,所以不要只是单纯的满足它,偶尔也要使用它啊。』 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 73.202.151.144
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1552463692.A.443.html
1F:→ pttworld: DFD是SA文件必备的 03/13 16:16
2F:→ testPtt: 其实asm,vhdl这种接近硬体的还是会画看看 03/13 16:18
3F:→ thefattiger: 我也觉得循序图实用得多,不过非开发者看流程图 03/13 16:31
4F:→ thefattiger: 应该是比较好懂 03/13 16:31
5F:→ bcew: asm是循序语言和流程图天然匹配,vhdl还是架构图、FSM、和波 03/13 17:21
6F:→ bcew: 形图比较好描述,loop和while在电路上很不直觉^^ 03/13 17:21
7F:推 jhjhs33504: 流程图也没那麽不堪 尤其很多framework底下逻辑照着跑 03/13 17:31
8F:推 jhjhs33504: hard code的话反而是特殊案例吧毕竟涵盖范围有限bug多 03/13 17:36
9F:推 ripple0129: 推,最大的问题其实是图文不符啊XD 03/13 18:22
10F:推 es8603: 推zanyking! 03/13 21:27
11F:推 atpx: 任何文件最後都会落得与程式码不符吧, 除非不断投入人力改 03/13 21:50
12F:→ atpx: 问题对管理者来说, 程式码才是产出, 文件不是 03/13 21:50
13F:→ brucetu: 我觉得不是UML图那种很文件的东西 03/13 22:10
14F:→ brucetu: 而是规划程式的时候随便画的几个框框几条线写一些重点 03/13 22:11
15F:→ brucetu: 跟同事讨论或者跟主管说明的时候也都会用到 03/13 22:11
16F:→ brucetu: 开会总不能拿code出来讨论商业逻辑吧 03/13 22:12
17F:→ brucetu: 至於UML那种图 真的很难跟程式一致 还是算了 03/13 22:12
18F:→ brucetu: 就像是一个新成员加入专案 要让对方快速了解 03/13 22:13
19F:→ brucetu: 有图还是比较快 03/13 22:13
20F:→ Masakiad: 讲UML很难跟程式一至的只是没认真做而已吧,扣除UML维护 03/13 22:20
21F:→ Masakiad: 的问题,第一次按图施工不一样铁定有人不认真 03/13 22:20
22F:→ testPtt: 微软派来的有code map可以用就不会想画那些图了 03/13 22:49
23F:→ lazarus1121: 施工的时候设计图一直改 是要怎麽按图施工XD 03/13 22:59
24F:→ lazarus1121: 改到最後时间压力出来 你会先改程式还是设计图 03/13 23:01
25F:→ atst2: 流程图有用, 但不是对应在程式细节上. 03/13 23:25
26F:→ atst2: Android的Activity生命周期就是使用流程图的一个好例子. 03/13 23:26
27F:→ atst2: 不过对实作细节而言,流程图确实比不上程式本身来得清楚. 03/13 23:28
28F:推 neo5277: 推循序我第一个一定先弄这个 03/13 23:40
29F:推 shter: 我是写好 function 名字後先在内部用注解写判断步骤 03/14 01:22
30F:→ shter: 然後每一行的步骤下面写 code,每行注解的 code 都写完就完 03/14 01:22
31F:→ shter: 如果某一步骤的可以重复使用时就再开一个 function 直接写 03/14 01:23
32F:→ konkonchou: 流程图主要是拿来沟通用,SA用很多,拿去当SD文件给PG 03/14 01:42
33F:→ konkonchou: 自然是用错地方了,至於文件过时所以才要持续修正 03/14 01:43
34F:→ konkonchou: 小专案一个人作当然是耗费人力资源,专责分工才有效益 03/14 01:44
35F:推 ku399999: 像是slack推播判断流程图 沟通 debug还是很有用吧 03/14 09:04
36F:→ buwa56: 感觉是一人战队 03/14 11:20
37F:推 layolayo: 300行code小意思 03/14 18:38
38F:→ tinlans: 很难一致是惰性问题,拆成 microservices 做就很难偷懒了 03/15 03:01
39F:→ superpandal: 流程图的确是给外行人看的 架构还是要够飘逸才可以 03/15 04:03
40F:推 ruokcnn: 同意你 03/16 14:10
41F:→ supermmi: 我是程式写完後才画流程图,算是笔记,将来要回头看cod 03/18 00:23
42F:→ supermmi: e时会有帮助 03/18 00:23
43F:推 bowin: 推好文分享 09/11 18:17







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灯, 水草

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

TOP