代碼生成器技術(shù)亂彈五十一,百喻代碼生成,有沒有”萬能“的代碼生成器

代碼生成器技術(shù)亂彈五十一,百喻代碼生成,有沒有”萬能“的代碼生成器
有些人反對通用代碼生成器,常見的理由是需求千變?nèi)f化,而代碼生成器在他們眼中,就是只能完成CRUD等常規(guī)操作,不能像神一樣從開發(fā)的泥潭中把他們拯救出來。我們要分析一下,是不是存在神一樣的萬能代碼生成器。您只需要描述規(guī)格,它能替你完成所有的工作。
這個問題,其實是需求能不能規(guī)范化,能不能形式化,能不能自動化。對這三個問題,我是這么認(rèn)為的,能規(guī)范化,形式化的需求就可以自動化。所以,提升代碼生成器能力的關(guān)鍵,其實是業(yè)務(wù)的規(guī)范化和形式化。一旦業(yè)務(wù)可以規(guī)范化和形式化,就可以自動化。比如,CRUD,比如登錄系統(tǒng)。比如工作流系統(tǒng)。這些因素在常見的代碼生成器和低代碼上都很常見。但是,如果從終極意義上說,一切業(yè)務(wù)系統(tǒng)能否規(guī)范化和形式化,我覺得這個問題的答案是否。一切業(yè)務(wù)需求的復(fù)雜性和領(lǐng)域知識是不可化約的。
這其實是一個好消息,機器完全替換人是不可能的。那有人問,一個并不萬能的代碼生成器有何意義?讓我從一個單項技術(shù)說起。這項技術(shù)就是在一個金屬塊中鏜銑出一個圓柱型孔。你可能覺得這個單項技術(shù)沒什么了不得的。不就是一個圓柱形的孔嗎?但是您使用這項技術(shù)來鉆炮膛就顯示出優(yōu)越性了。原來,炮和炮膛都是澆鑄出來的,形狀復(fù)雜,難免有缺陷。而有了鏜銑工藝,你就可以澆鑄一個實心的炮,這樣,形狀簡單了,炮的缺陷就少。而后,你的炮膛是鏜銑出來的,形狀準(zhǔn)確,閉氣就好,射程就比較遠(yuǎn)。所以,這個工藝,你的君王甚至可以建筑一個海洋帝國。當(dāng)然,前提是你的對手的炮膛是澆鑄出來的。
那么,對可以以百倍速度狂飆的動詞算子式代碼生成器,是不是你可以想想它的好處,試著使用一下呢。
如果說,我說的沒有規(guī)范化和形式化就不能自動化是不對的,只有一種可能。您對這樣的一個軟件說到:“請給我一個人類還不知道的曲速引擎的圖紙?”他說:”好的,主人,圖紙已經(jīng)給你打印好了。順便說一下,為了您的安全,請不要離開您的家。要不然,我們只能對您保護性逮捕了。”
