Re: [討論] code generator
※ 引述《pennymarkfox (潘妮小狐狸)》之銘言:
: 這幾天發覺有個同事對code generator跟code review很不以為然(理由我大概猜的
: 出來不過這不是重點)
: 在版上好像沒有看到相關的討論,其實我好像有映像但是鬼遮眼的找不著(默)
: 我的認知是,code generator是幫你助完成實作的工具,它應該是幫忙你減少實
: 作一些刻版的程式碼的時間。
我通常不是用到Code Gen的人,而是需要寫Code Gen給別人用的人。
Code Generator通常只有一個目的:
Make Common Case Faster.
可以加快的就加快,不能快的就不要想太多,Code Generator的目的不是用來取代
programming,只是用來帶過那些目標語言力有未逮而討人厭的部份(例如Java的
Getter/Setter)。
另外,到底誰那麼了不起可以對Code Review 不以為然啊?
做數學證明與物理模型的都需要一大堆的同儕審查了,他是有多了不起阿?
完全不需要Code Review的程式就是不重要所以可以寫過即丟的程式,一個開發者會
很喜歡寫免洗程式嗎?(『不需要』跟『沒有被』是差很多的。)
我今天一個下午就是在修一個兩年前離職的同事寫的一段程式碼,他因為某些原因
呼叫了一個4年前就被Eclipse官方Deprecated掉的API。
這段程式碼的測試很不幸的與Server-Client端的Protocal狀態有關,我得要花更多
的時間將那個狀態複製出來才能確定我的修改是對的。
這一切如果在兩年前我或是我主管有好好做Code Review的話就不會有今天的浪費了。
而一間軟體公司一旦開始開發產品、累積程式碼,就會因為該做的沒做而累積這樣的
債務。
當累積的設計弱點、架構複雜度大到頃全開發團隊之力在資金燒光前都無法修正時,
那就是該產品熱力學第二運動定律的終點了。
也就是軟體在架構設計上的『死亡』。
: 他覺得"code generator 間接的宣告程式「設計不重要」",因為
: 一段程式不用大腦想就可以寫出來, 就不用設計了. 如果有個工具讓你不用大腦
: 想就可以寫程式, 那不就是間接的告訴你不用設計, 就是間接的告訴你設計不重要
: 當我說出上面code generator應該是當成工具來減少開發時間的想法,他說
: 實作從來不是寫程式裡面花時間的部份
: well, 所以我寫程式很花時間是因為我不會寫程式嘛 T_T
: 其實我自已在開發的時間的確是設計多過實作,但debug又多過於實作。
: 不知道版上的高手對於code generator的看法又是怎麼樣的呢?
作人不要鐵齒,有些東西,你不用Code Generator,你就真的很笨。
出個題目:
請用Java簡單實做一個可以讀取S-Expression的 Lisp Interpreter。
你去問看看除了做IDE的有誰會拒絕用Antlr所提供的Grammar DSL與Code Gen tool,
一定得要自己手工用Java刻 Tokenizer與 Syntax Parser。
--
我所信仰的科學是一種謙卑的理性,承認自身的無知與渺小才能觀察到世界在我們貧
弱的知覺上留下來的痕跡。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.44.37
推
10/15 21:56, , 1F
10/15 21:56, 1F
→
10/15 21:56, , 2F
10/15 21:56, 2F
推
10/15 22:35, , 3F
10/15 22:35, 3F
→
10/16 00:06, , 4F
10/16 00:06, 4F
推
10/16 00:14, , 5F
10/16 00:14, 5F
推
10/16 01:32, , 6F
10/16 01:32, 6F
推
10/16 01:34, , 7F
10/16 01:34, 7F
→
10/16 01:34, , 8F
10/16 01:34, 8F
→
10/16 08:52, , 9F
10/16 08:52, 9F
→
10/16 08:52, , 10F
10/16 08:52, 10F
推
10/16 17:01, , 11F
10/16 17:01, 11F
推
10/16 19:00, , 12F
10/16 19:00, 12F
→
10/17 00:09, , 13F
10/17 00:09, 13F
→
10/17 01:54, , 14F
10/17 01:54, 14F
討論串 (同標題文章)
Soft_Job 近期熱門文章
PTT職涯區 即時熱門文章
87
139
348
642