→ hilorrk:不是說軟體的工程方法還不成熟嗎O.O? 01/17 06:33
→ tinlans:可以透過約定強化它,往藝術跟講求天分走一定是開倒車。 01/17 06:51
推 yauhh:本篇概念是所謂漂亮是可以學到的,不一定是天份或信仰 01/17 08:26
→ in09:那怎麼我這麼常看到阿貓阿狗都不如的科班生 01/17 09:02
→ COLDTURNIP:師父引進門,修性在個人。 01/17 09:46
→ yauhh:阿貓阿狗都不如?那你要先看一下你所評估的環境是局限的或開 01/17 10:03
→ yauhh:放的. 可能在局限範圍內,他不是你要的人,所以被你狠批. 01/17 10:03
→ yauhh:但你可要再想想你的評估範圍是不是太狹小. 01/17 10:04
推 revivalworld:看到發文時間... 你沒睡嗎... = = 01/17 11:08
推 ledia:我覺得有必要把 design 跟 implementation 分開來 01/17 11:26
推 damody:軟工不成熟只有在台灣,請多互動,不要只被限在台灣。 01/17 11:28
推 damody:我覺得原po先去把code complete背下來再說。 01/17 11:30
→ ksmrt0123:把the art of programming 的art譯成藝術是誤解了 01/17 11:59
→ ksmrt0123:想想看有那個學校把CS dept放在art school? 01/17 12:00
推 sunneo:淚推 Q_O 我現在想辦法把前人的爛code改寫 01/17 13:05
→ sunneo:但還是得瞞著老闆 得跟他說我不作這樣的事 01/17 13:06
→ sunneo:因為對他而言能動就好 知道表面就夠了 他不管維護性的 01/17 13:07
推 wa120:大部分的大學教授都活在舊時代... 01/17 13:17
推 yauhh:我對本篇的舊時代論點還有點懷疑,不過若要這樣講也沒關係啦 01/17 14:05
→ yauhh:art跟sciense,philosophy一樣是範圍很大的詞,並不是不在art 01/17 14:09
→ yauhh:部門的就不可稱為art. 01/17 14:10
→ erotic:老師有沒有教你寫文章要分段、縮進、使用句號啊? = = 01/17 17:41
推 Savate:推這篇 你的講解套用在我老師的說法和背景真的很符合 01/17 19:41
→ tinlans:樓樓上的疑問我可以解答。如果是傳統的「方塊文」我倒是會 01/17 19:52
→ tinlans:好好的選句號。但因為方塊文通常不易閱讀,所以網路上產生 01/17 19:52
→ tinlans:了一個標點換一行的文體格式。這種狀況可不是胡適當年想得 01/17 19:53
→ tinlans:到的。而這種斷行方式輕易打上句號,很容易讓人引起一種「 01/17 19:53
→ tinlans:然後呢?」的疑惑。 01/17 19:54
→ in09:"講"方法論的人,不見得就不會是爛code的作者..,show個作品吧? 01/17 21:27
→ ksmrt0123:the art of ... 的art的解釋如下: 01/17 22:08
→ ksmrt0123:if you describe something as as art, you mean that 01/17 22:08
→ ksmrt0123:it requires skill and that people learn to do it by 01/17 22:09
→ tinlans:樓上那句話害我 google 了「NDA 失效」翻了半小時...XD 01/17 22:09
→ tinlans:嗯,是樓樓上才對。 01/17 22:09
→ ksmrt0123:instinct or experience, rather than by learning 01/17 22:09
→ ksmrt0123:facts or rules. 01/17 22:10
→ ksmrt0123:programming是art, 但不應被解釋成藝術 01/17 22:13
→ ksmrt0123:然後污名化 "舊時代" 的 the art of programming 01/17 22:14
→ ksmrt0123:什麼時候對「漂亮」的定再是「奇怪」了? 01/17 22:17
→ ksmrt0123: 定義 01/17 22:17
→ ksmrt0123:亂講一通 01/17 22:18
→ tinlans:其實我講的是透過大量 casting 和操弄 pointer 出現的特技 01/17 22:18
→ tinlans:跟它的附加效果,跟你想的那個不一樣。 01/17 22:19
→ tinlans:看過很多純 C 的 source code 就會知道我在說什麼了,很多 01/17 22:20
→ tinlans:過去 trace 那些 code 的人,看到「程式居然還能這樣寫」 01/17 22:20
→ tinlans:,然後衍生出「這種寫法很神」等等的觀感,演變出一些莫名 01/17 22:21
→ tinlans:的崇拜和濫用,並被擴大解釋為藝術,跟你講的完全不相干。 01/17 22:21
→ ksmrt0123:你把某些人的行為解釋成一般普遍現像 01/17 22:24
→ ksmrt0123:要寫易讀易懂易維護的code在"舊世代"已是基本原則 01/17 22:25
→ tinlans:可是呢,某些「概念」在當代的語言機制並不支援,在這時候 01/17 22:27
→ ksmrt0123:用strict aliasing跟restrict pointer來說明 01/17 22:28
→ tinlans:人們就會想出各式各樣的「解決方案」。而這些解決方案就是 01/17 22:28
→ tinlans:問題的來源。 01/17 22:28
→ ksmrt0123:「奇怪到被認為很優美」更是不妥... 這兩個東西是隨個 01/17 22:28
→ ksmrt0123:architecture/optimizing compiler演進才有比較顯著的好 01/17 22:29
→ ksmrt0123:處... 用現在的環境去挑剔過去不需要的東西不是正確的 01/17 22:31
→ ksmrt0123:態度... 01/17 22:31
→ tinlans:你似乎搞錯了因果關係。起因及前提在於到了「現在」還有人 01/17 22:32
→ tinlans:在提倡將「過去」的遺跡拿到現在來用,所以我當然可以用現 01/17 22:33
→ tinlans:在的角度去重新審視它。 01/17 22:33
→ tinlans:strict aliasing 被標準化的背景不光是最佳化考量,當年 01/17 22:45
→ tinlans:放棄允許用 incompatible pointer 之間的 casting 建立 01/17 22:45
→ tinlans:aliasing relation,其中一個考量就是那種 code 本身就不 01/17 22:46
→ tinlans:易閱讀,否則其實只要加入 restrict pointer 這個新要素 01/17 22:46
→ tinlans:就相當充足了。 01/17 22:47
→ tinlans:再來,「易讀易懂」的定義在當代會因「主流寫法」而改變, 01/17 22:55
→ tinlans:如果一個「大師」用了相當難懂的寫法去實現一項功能,接著 01/17 22:56
→ tinlans:大家認為他是大師所以一定是好方法而學著用,那麼這種複雜 01/17 22:56
→ tinlans:難懂的寫法,瞬間就變成「老手」認知裡「本來就該會」的東 01/17 22:57
→ tinlans:西,但是對新手或是該圈子之外的人來說卻完全不是這回事。 01/17 22:57
→ tinlans:而所謂「要寫得好就是要多看人家的程式」就是這麼回事了。 01/17 22:59
→ tinlans:這句話在 15 年前我也說過,但在現代我絕不這麼說。 01/17 23:02
→ tinlans:而我在現在聽到了這句話,結果就是回了這麼的一篇。 01/17 23:02
→ tinlans:要說抱持著「大師都用這種寫法,你看不懂就是孤陋寡聞、看 01/17 23:13
→ tinlans:得太少、經驗淺、程度差」這種想法的人在當代是少數,那我 01/17 23:14
→ tinlans:可是完全不同意。 01/17 23:14
→ tinlans:回的順序雖然是倒過來的,不過應該每個點都有回到了,之前 01/17 23:28
→ tinlans:有過漏看幾句就被說避重就輕挑想回的回這種經驗,不得不謹 01/17 23:28
→ tinlans:慎一點。 01/17 23:29
推 abovelight:推這篇 以前的我看不懂 現在多少了解了 01/20 13:15