基于流程的編程(FBP):70年代概念的現(xiàn)代復(fù)興
>
基于流程的編程(FBP)是源自1970年代的概念,正在技術(shù)界重新崛起。 其視覺直觀的程序流程方法為面向?qū)ο蟮木幊烫峁┝肆钊诵欧奶娲桨福型岣叽a清晰度和靈活性。
由Henri Bergius和Forrest Oliphant開發(fā)的FBP景觀的關(guān)鍵參與者 最初會遇到開發(fā)人員懷疑主義,但FBP的優(yōu)勢變得越來越明顯。 它固有的模塊化和可重復(fù)性,清晰的數(shù)據(jù)流可視化以及對并發(fā)執(zhí)行的支持提供了重大好處。 但是,對于習(xí)慣傳統(tǒng)控制流范式的程序員來說,學(xué)習(xí)曲線可能很陡峭。
自成立以來,莫里森的FBP系統(tǒng)在軟件開發(fā)圈中引起了有限的關(guān)注。 然而,F(xiàn)BP悄悄地在視覺效果,電影制作,人工智能和業(yè)余愛好者編程等各個領(lǐng)域中找到了應(yīng)用。
>>視覺代表程序流并遠(yuǎn)離嚴(yán)格面向?qū)ο蟮慕Y(jié)構(gòu)的吸引力指向更易于理解和靈活的代碼。 問題仍然存在:為什么FBP的廣泛采用速度很慢?
> FlowHub網(wǎng)絡(luò)的出現(xiàn),尤其是JavaScript的Noflo,提供了潛在的答案。探索noflo
在成功的Kickstarter廣告系列的支持下,Henri Bergius和Forrest Oliphant的Noflo Project將自己與早期的FBP式系統(tǒng)(例如,Yahoo Pipes,Quartz Composer)區(qū)分開來:
-
基于JSON的Graph Creation
- >開源框架(盡管有封閉的托管基礎(chǔ)??架構(gòu))。
> UI代碼生成不存在。 - 正在為各種語言(包括Java和Objective-c)開發(fā) runtimes。
- > 支持 自定義組件創(chuàng)建和測試。
- >
“這就是建筑軟件;這是您可以在自己的體重崩潰之前可以架設(shè)多少腳手架……您從事它工作的人無關(guān)緊要……軟件開發(fā)項(xiàng)目可以進(jìn)行一定在您增加一個人的位置,與該人交流的能量實(shí)際上大于他們對項(xiàng)目的凈貢獻(xiàn),因此它會減慢。” - 史蒂夫·喬布斯
NOFLO組件處理多種輸入(HTTP請求,API等)和輸出(數(shù)據(jù)庫等),挑戰(zhàn)了常規(guī)編程邏輯的順序性質(zhì),尤其是在具有廣泛I/O和數(shù)據(jù)源的現(xiàn)代接口中相關(guān)的。 ??> 可以理解的是,向FBP邁出的轉(zhuǎn)變引起了開發(fā)人員之間的關(guān)注。 由于設(shè)計師和產(chǎn)品經(jīng)理可以使用簡化的組件連接而導(dǎo)致的工作位移的恐懼是有效的。 但是,F(xiàn)BP的靈活性可能超過潛在的缺點(diǎn)。 關(guān)于自定義組件開發(fā),與現(xiàn)有代碼的集成以及潛在的UI限制有關(guān)的問題。 實(shí)用的示例
>讓我們探索Noflo的FBP接口。 注冊(需要GitHub帳戶)后,您可以部署到存儲庫。 界面可能會根據(jù)您的計劃的運(yùn)行時間而有所不同:
地圖有助于復(fù)雜網(wǎng)絡(luò)中的導(dǎo)航。 縮放是直觀的。
接口導(dǎo)航很簡單(點(diǎn)擊式拖拉)。 搜索欄列出了預(yù)構(gòu)建的組件(CSS,數(shù)據(jù)庫調(diào)用,數(shù)學(xué)功能等)。 通過文本編輯器接口可以進(jìn)行自定義組件的創(chuàng)建和測試:
最終想法
一旦克服了初始學(xué)習(xí)曲線,F(xiàn)BP的視覺性質(zhì)就會提供獨(dú)特的自由。 對于復(fù)雜的項(xiàng)目,邏輯流的視覺表示變得更加有價值。 協(xié)作方面類似于草圖或偽代碼,在編碼之前提供了清晰的概述。 這表明未來的文本較少,視覺編程更少。>使用NOFLO的代碼或?yàn)g覽器接口(GitHub登錄后)。
(省略了常見問題部分,因?yàn)樗诤艽蟪潭壬弦愿啙嵑鸵巳雱俚姆绞街貜?fù)了信息。)
以上是與NOFLO的基于流程的編程的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

javascriptisidealforwebdevelogment,whilejavasuitslarge-scaleapplicationsandandandroiddevelopment.1)javascriptexceleatingingingingingingingbeatingwebexperienceswebexperienceswebexperiencesandfull-stackdeevermentwithnode.js.2)

在JavaScript中,選擇單行注釋(//)還是多行注釋(//)取決于注釋的目的和項(xiàng)目需求:1.使用單行注釋進(jìn)行快速、內(nèi)聯(lián)的解釋;2.使用多行注釋進(jìn)行詳細(xì)的文檔說明;3.保持注釋風(fēng)格的一致性;4.避免過度注釋;5.確保注釋與代碼同步更新。選擇合適的注釋風(fēng)格有助于提高代碼的可讀性和可維護(hù)性。

是的,javascriptcommentsarenectary和shouldshouldshouldseffectional.1)他們通過codeLogicAndIntentsgudedepleders,2)asevitalincomplexprojects,和3)handhanceClaritywithOutClutteringClutteringThecode。

Java和JavaScript是不同的編程語言,各自適用于不同的應(yīng)用場景。Java用于大型企業(yè)和移動應(yīng)用開發(fā),而JavaScript主要用于網(wǎng)頁開發(fā)。

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

評論arecrucialinjavascriptformaintainingclarityclarityandfosteringCollaboration.1)heelpindebugging,登機(jī),andOnderStandingCodeeVolution.2)使用林格forquickexexplanations andmentmentsmmentsmmentsmments andmmentsfordeffordEffordEffordEffordEffordEffordEffordEffordEddeScriptions.3)bestcractices.3)bestcracticesincracticesinclud

JavaScripthasseveralprimitivedatatypes:Number,String,Boolean,Undefined,Null,Symbol,andBigInt,andnon-primitivetypeslikeObjectandArray.Understandingtheseiscrucialforwritingefficient,bug-freecode:1)Numberusesa64-bitformat,leadingtofloating-pointissuesli

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)
