目前,已經(jīng)在完善第六版,所以就免費(fèi)開(kāi)放第一版。
BOTC軟件開(kāi)發(fā)模型,Based on the core code to plan of data processing 's Model 簡(jiǎn)稱 (BOTC 軟件開(kāi)發(fā)模型)
基本理論:
任何一門編程語(yǔ)言包含的四元素:語(yǔ)法、類型、運(yùn)算符、流程控制;
任何項(xiàng)目的開(kāi)發(fā),在確定了核心代碼的基礎(chǔ)后,剩下的就是組合代碼的游戲。
任何項(xiàng)目要比較快捷組合代碼,都需要一個(gè)比較系統(tǒng)的功能規(guī)劃做藍(lán)圖。
編程語(yǔ)言=語(yǔ)法+數(shù)據(jù)類型+運(yùn)算符+流程控制。
相當(dāng)于,一個(gè)對(duì)象的外表,類別,行為準(zhǔn)則,遇事機(jī)制。
數(shù)據(jù)類型,一般由函數(shù)改變其值,包含初始化、賦值、修改、注銷等。
不管任何框架、核心技術(shù),其知識(shí)都能分為成:語(yǔ)法、數(shù)據(jù)類型、運(yùn)算符、流程控制四個(gè)基本分屬。
PS:很多人覺(jué)得,這樣區(qū)分沒(méi)啥卵用...真沒(méi)卵用???
基于編程知識(shí)歸屬于最基本的4類,可以進(jìn)一步衍生一下觀點(diǎn):
任何一個(gè)項(xiàng)目模塊,都是在處理數(shù)據(jù)與傳遞數(shù)據(jù)。
所以,能跟蹤每一步的處理數(shù)據(jù),通常就能規(guī)劃與重構(gòu)整個(gè)功能模塊。
進(jìn)一步,函數(shù)的存在意義,是為了處理數(shù)據(jù)(數(shù)據(jù)值或數(shù)據(jù)類型)。
最立馬可見(jiàn)效的應(yīng)用是——以后大家不用死記一大堆函數(shù),因?yàn)楹瘮?shù)都是依托數(shù)據(jù)而存在,那確定要處理的是啥樣的數(shù)據(jù),即構(gòu)思或直接查找用啥樣的函數(shù)。
再進(jìn)一步,用知識(shí)歸元的角度,亦可解釋為嘛,項(xiàng)目開(kāi)發(fā)最后會(huì)夭折。
大部分軟件項(xiàng)目開(kāi)發(fā)壞死胎中的原因:
需求前期不確定,導(dǎo)致后期需求改動(dòng)過(guò)大,很容易就死;
--這是需要不確定引發(fā)工作量不確定,項(xiàng)目成果從而不可控。
開(kāi)發(fā)木有自己的規(guī)范或沒(méi)用統(tǒng)一的規(guī)范,這樣多人開(kāi)發(fā)的話,容易死;
--沒(méi)有標(biāo)準(zhǔn),多人開(kāi)發(fā)時(shí)就會(huì)代碼格式各類奇葩,同時(shí)團(tuán)隊(duì)協(xié)同把自己人堵死。
架構(gòu)不徹底,就直接動(dòng)工寫功能代碼--國(guó)內(nèi)大部分都這樣弄的,一旦遇難題即卡死。
--項(xiàng)目可行性分析時(shí),若對(duì)核心實(shí)現(xiàn)沒(méi)把握,最好不要做,不過(guò),國(guó)內(nèi)基本是接單再說(shuō)的。
在確保具備核心實(shí)現(xiàn)代碼的前提下,編程就很容易。
人只能以確定的代碼實(shí)現(xiàn)確定的代碼。
--因?yàn)槿瞬皇巧瘢窨蓜?chuàng)造未知的東西,而人只能探索未知的東西,組合現(xiàn)有的東西為自己所用。
但是,大部分編程者苦逼,根源是在未確定代碼(沒(méi)核心實(shí)現(xiàn)代碼)的前提,就去實(shí)現(xiàn)確定的代碼(功能實(shí)現(xiàn)代碼)。
基于上一個(gè)觀點(diǎn),可以推倒出下一個(gè)結(jié)論:
大部分公司都在玩人肉堆碼的游戲,而不是真正在設(shè)計(jì)項(xiàng)目玩開(kāi)發(fā)。
程序員入職后,低中高級(jí)都只是以編寫功能模塊實(shí)現(xiàn)為主要工作內(nèi)容。
所謂人肉堆碼:
1,有功能需求文檔,但沒(méi)其他太多的設(shè)計(jì)文檔。
2,日常工作流程是——項(xiàng)目經(jīng)理自認(rèn)很聰明——弄個(gè)效果圖或其他的,程序員只負(fù)責(zé)看需求寫代碼;
3,沒(méi)對(duì)項(xiàng)目的實(shí)現(xiàn)做核心與非核心區(qū)分;
4,代碼的優(yōu)劣由編碼人員決定,而不是編程規(guī)范決定。
基于以上觀點(diǎn),構(gòu)思出BOTC軟件開(kāi)發(fā)模型理論。
應(yīng)用步驟
第一步:需求分析——確定滿足顧客需要的功能有啥效果?
第二步:流程設(shè)計(jì)——根據(jù)需求效果,設(shè)計(jì)功能實(shí)現(xiàn)流程;
第三步:功能模塊實(shí)現(xiàn)流程 轉(zhuǎn)為 數(shù)據(jù)處理流程
因?yàn)橹暗慕Y(jié)論,任何功能開(kāi)發(fā),都是在處理數(shù)據(jù)(數(shù)據(jù)值或數(shù)據(jù)類型=數(shù)據(jù)的屬性)
第四步:功能模塊構(gòu)思的數(shù)據(jù)處理流程編寫代碼(初稿)
根據(jù)數(shù)據(jù)處理流程,不同的數(shù)據(jù),采用不同的函數(shù)或自定義函數(shù)實(shí)現(xiàn)處理效果。
第五步:調(diào)試與測(cè)試
調(diào)試與測(cè)試——驗(yàn)證效果與性能。
這部分,也是基于數(shù)據(jù)處理。
以上觀點(diǎn),還不足以解決:
1,【會(huì)】與【不會(huì)】的精準(zhǔn)定義;
2,如何識(shí)別與提取一個(gè)項(xiàng)目的核心實(shí)現(xiàn),重點(diǎn)花費(fèi)精力做攻克?
項(xiàng)目遇上難題,要是致命的,必定是核心實(shí)現(xiàn)脫節(jié)。
而大部分項(xiàng)目管理者,傻傻的分不清核心與非核心實(shí)現(xiàn),或者沒(méi)方法如何做到區(qū)分。
3,多人交互開(kāi)發(fā)更好溝通?
為了應(yīng)對(duì)以上幾個(gè)問(wèn)題,構(gòu)思第二版...抽空發(fā)布。
聯(lián)系客服