如何成為真正的代碼機器的


最近網上瘋傳一牛皮,說某女兵90天編40萬行程序。按每天十二小時算,相當於一分鍾出6-7行,不思考不調試,不拉屎不放屁,連續不斷的凈出代碼。唉,吹牛好歹靠譜點,不懂行就找個懂的先咨詢一下,凈出畝產萬斤的笑話,老革命傳統不能丟啊。為什么這破爛牛皮吹出這大動靜呢?一是這些習慣於樹典型的人,有宣傳機器和大筆經費,二來,相比畝產多少,對編程效率問題,多數人外行,看到新奇就跟風轉發。

今天,我是來給各位秀一個靠譜的事情,用真實的視頻說話,如何在4分鍾內產出1780行程序的。雖然比每分鍾6行的牛皮速度還多出60倍,但這卻是真的,有視頻為證。 

其實,這背后用的是軟件工廠技術。微軟推出Software Factory概念和一些相關技術,已經有幾年了,我從一開始就覺得這是好東西,並應用到日常的編程中去。前兩天,覺得一個模板有需要修改的地方,本來以為工作量不大,但是,最后居然花了我兩天時間。終於弄好,用起來非常順當。高興之余,趕上那牛皮到處流行,故秀一下。它的核心是用模板(template)和集成的IDE來讓開發人員方便快速的產生代碼。這些代碼是以調試和優化好的程序模版為藍圖自動生成的,所以質量非常高,還省去很多因小錯誤而需要的修改和調試時間。其次,架構師可以把自己對架構的要求,包括異常處理了,事務管理等等,具體的實現在模版中,這使得所有人編寫的相應模塊(比如數據獲取層DAL)都能自動的滿足架構要求,滿足代碼規范性要求。所以,這項技術的優點是很突出的。我常用此工具,很多代碼都能自動生成。

但是,使用這項技術,首先要能夠編出有代表性的高質量的模版。使用T4 語言來編,而且還要和IDE集成,需要了解IDE的又大又繁的object model,編模版挺費勁的。所以,最終的很快的代碼生產速度,是以架構師花在軟件工具本身上面的高質量高價位的時間為代價的。砍柴還是要好好的磨刀啊。所以,模版越有代表性,使用人員越多,使用頻率越高,總的回報越高。

這對於架構師來說,可以說又多加了一項技能要求,就是要會使用這些技術為團隊編制軟件工具。

 

 

關於軟件工廠,再多說兩句。如今,工廠也好,(創新)工場也好,都時髦。微軟軟件工廠的最終目標是,從 DSL和圖形化的設計工具開始,到代碼模板和集成的IDE,等等一系列的工具,從而實現從概念到代碼的一個流水化生產線。然而,微軟想實現軟件工廠的最終目標,從其復雜程度,和其難以使用程度上來說,仍然是畫中的餅,空中的樓。盡管如此,其中還是有不少好的概念和工具可以為我們所用的。創新工場,大概也是出於類似的想法,具體沒打過交道,就不瞎扯了。

透露一點秘密,如何在一分鍾內寫出400行程序的秘密,就是把最普通,最常用的",",寫成下面的樣子, :

<#= HasIdentityConstructor(identity) ? ", ":"" #>
<# private static bool HasIdentityConstructor(Identity identity)
{
   if (identity.ParameterMappings.Count == 0) return false;
   foreach (PropertyParameterMapping parameterMapping in identity.ParameterMappings)   
       if (parameterMapping.ParameterInstance.Direction != ParameterDirection.ReturnValue)
           return true;
   
   return false;
}#>

 

有人或許會說,沒准那女兵也用類似的工具。我的回答是,首先,代碼產生工具並不普及,特別是,要根據實際問題,編制代碼模板以及一整套的和IDE集成的條件輸入UI,技術要求比較高,我懷疑那女兵甚至沒聽說過這套技術。就算她什么都會,一般代碼產生工具至多提高生產效率20-30%(因為,用工具自動生成所有代碼是不現實的),扣除這部分,她的編碼速度仍然有每分鍾4-5行,這仍然遠遠超出人類的能力!

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM