LayUI
創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元紅旗做網(wǎng)站,已為上家服務(wù),為紅旗各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
由職業(yè)前端傾情打造,面向全層次的前后端開(kāi)發(fā)者,低門檻開(kāi)箱即用的前端 UI 解決方案,layui是一個(gè)采用自身模塊規(guī)范化編寫的前端UI框架,它依照原生HTML/CSS/JS的書寫與組織形式,入門簡(jiǎn)單,使用也非常簡(jiǎn)單。從核心代碼到API的每一處細(xì)節(jié)都經(jīng)過(guò)精心雕琢,非常適合界面的快速開(kāi)發(fā)。
JEUI
它是一款國(guó)產(chǎn)前端UI框架,遵循原生HTML/CSS/JS的書寫與組織形式,國(guó)內(nèi)很多程序員javascript不熟, 大大影響了開(kāi)發(fā)速度. 因此JEUI不需要開(kāi)發(fā)人員去關(guān)心javascript怎么寫, 只要寫標(biāo)準(zhǔn)html就可以了,門檻極低,拿來(lái)即用。其外在極簡(jiǎn),卻又不失飽滿的內(nèi)在,體積輕盈,組件豐盈,從核心代碼到API的每一處細(xì)節(jié)都經(jīng)過(guò)精心雕琢,非常適合界面的快速開(kāi)發(fā)。
JEUI基于jQuery的UI框架,包括表單、布局、表格等等常用UI控件,使用JEUI可以快速輕松地創(chuàng)建風(fēng)格統(tǒng)一的界面效果。
瀏覽器兼容非常牛皮,能兼容IE8以上的瀏覽器。
DWZ
DWZ富客戶端框架(jQuery RIA framework), 是中國(guó)人自己開(kāi)發(fā)的基于jQuery實(shí)現(xiàn)的Ajax RIA開(kāi)源框架. 設(shè)計(jì)目標(biāo)是簡(jiǎn)單實(shí)用,快速開(kāi)發(fā),降低ajax開(kāi)發(fā)成本。
DWZ 支持用 html 擴(kuò)展的方式來(lái)代替 javascript 代碼, 基本可以保證程序員不董 javascript, 也能使用各種頁(yè)面組件和 ajax 技術(shù). 如果有特定需求也可以擴(kuò)展 DWZ 做定制化開(kāi)化.
MDUI
MDUI 是一個(gè)基于 Material Design 的前端框架。
19 種主色、16 種強(qiáng)調(diào)色、1 種夜間主題,只需添加一個(gè) CSS 類即可切換。CSS 僅 26.7KB,JavaScript 僅 14KB,加載更迅速。移動(dòng)優(yōu)先,從小屏逐步擴(kuò)展到大屏,最終實(shí)現(xiàn)所有屏幕適配。不依賴任何第三方庫(kù),節(jié)約網(wǎng)絡(luò)流量,使加載更迅速,提高用戶體驗(yàn)。使用 CSS3 來(lái)做動(dòng)畫交互,平滑、高效,讓 Web 應(yīng)用的動(dòng)畫更流暢。提供自定義打包功能,按需打包需要的主題和組件,使文件體積驟然減小。MDUI 包含了 20 余個(gè)組件,且每個(gè)組件都可以適應(yīng)不同主題。
只需懂一點(diǎn) HTML、CSS、JS 的基礎(chǔ)知識(shí),就能使用 MDUI。
ElementUI
element ui框架的按鈕組件,這款由餓了么前端開(kāi)源的UI框架,一經(jīng)面世,就收獲大量程序員的芳心,在github 上更是高達(dá)29.8k的star早已說(shuō)明一切,用于開(kāi)發(fā)PC端的頁(yè)面還是綽綽有余的,如果說(shuō)你是用vue開(kāi)發(fā)者,卻沒(méi)用過(guò)element UI,那你肯定不是合格的vue開(kāi)發(fā)者。
WeUI
jQuery WeUI 是專為微信公眾賬號(hào)開(kāi)發(fā)而設(shè)計(jì)的一個(gè)簡(jiǎn)潔而強(qiáng)大的UI庫(kù),包含全部WeUI官方的CSS組件,并且額外提供了大量的拓展組件,豐富的組件庫(kù)可以極大減少前端開(kāi)發(fā)時(shí)間。
jQuery WeUI 的最大特點(diǎn)是它只提供UI組件,并不會(huì)對(duì)項(xiàng)目所使用的框架和其他庫(kù)有任何的限制,幾乎可以在任何環(huán)境下使用。無(wú)論你的項(xiàng)目是基于jQuery,還是 React, Angular, Vue, 你都會(huì)發(fā)現(xiàn) jQuery WeUI 能非常方便的和他們結(jié)合使用。既是你的項(xiàng)目是一個(gè)有很悠久歷史的老項(xiàng)目,也幾乎可以做到拿來(lái)即用。
Flutter
Flutter是谷歌的移動(dòng)UI框架,可以快速在iOS和Android上構(gòu)建高質(zhì)量的原生用戶界面,前端對(duì)于 Flutter 的熱忱度之高一度讓人有點(diǎn)驚訝,事實(shí)上在 Flutter 社區(qū)內(nèi)見(jiàn)到的客戶端開(kāi)發(fā)者遠(yuǎn)多于前端開(kāi)發(fā),不過(guò)前端對(duì)于跨端解決方案確實(shí)有著天然的渴求。
Flutter可以與現(xiàn)有的代碼一起工作。在全世界,F(xiàn)lutter正在被越來(lái)越多的開(kāi)發(fā)者和組織使用,并且Flutter是完全免費(fèi)、開(kāi)源的。
iView ui
iViewui一套基于 Vue.js 的高質(zhì)量 UI 組件庫(kù),搭配使用 iView UI 組件庫(kù)形成的一套后臺(tái)集成解決方案,由 TalkingData 前端可視化團(tuán)隊(duì)部分成員開(kāi)發(fā)維護(hù)。iView Admin 遵守 iView 設(shè)計(jì)和開(kāi)發(fā)約定,風(fēng)格統(tǒng)一。
Mint UI
Mint UI 包含豐富的 CSS 和 JS 組件,能夠滿足日常的移動(dòng)端開(kāi)發(fā)需要。通過(guò)它,可以快速構(gòu)建出風(fēng)格統(tǒng)一的頁(yè)面,提升開(kāi)發(fā)效率。
真正意義上的按需加載組件。可以只加載聲明過(guò)的組件及其樣式文件,無(wú)需再糾結(jié)文件體積過(guò)大。
考慮到移動(dòng)端的性能門檻,Mint UI 采用 CSS3 處理各種動(dòng)效,避免瀏覽器進(jìn)行不必要的重繪和重排,從而使用戶獲得流暢順滑的體驗(yàn)。
依托 Vue.js 高效的組件化方案,Mint UI 做到了輕量化。即使全部引入,壓縮后的文件體積也僅有 ~30kb (JS + CSS) gzip。
YDUI Touch
YDUI Touch 專為移動(dòng)端打造,在技術(shù)實(shí)現(xiàn)、交互設(shè)計(jì)上兼容主流移動(dòng)設(shè)備,保證代碼輕、性能高。
使用 Flex 技術(shù),靈活自如地對(duì)齊、收縮、擴(kuò)展元素,輕松搞定移動(dòng)頁(yè)面布局。
實(shí)現(xiàn)強(qiáng)大的屏幕適配布局,等比例適配所有屏幕。什么?用得不開(kāi)心?輕松切換 px。
自定義Javascript組件、Less文件、Less變量,定制一份屬于自己的YDUI。
SUI Mobile
SUI Mobile 是一套基于 Framework7 開(kāi)發(fā)的UI庫(kù)。它非常輕量、精美,只需要引入我們的CDN文件就可以使用,并且能兼容到 iOS 6.0+ 和 Android 4.0+,非常適合開(kāi)發(fā)跨平臺(tái)Web App。輕量的UI庫(kù)
SUI Mobile 非常輕量,核心庫(kù)壓縮Gzip后的JS、CSS網(wǎng)絡(luò)傳輸體積總共只有52K,卻提供了20+個(gè)常用的組件。
Amaze ~ 妹子 UI
中國(guó)首個(gè)開(kāi)源 HTML5 跨屏前端框架
Amaze UI 以移動(dòng)優(yōu)先(Mobile first)為理念,從小屏逐步擴(kuò)展到大屏,最終實(shí)現(xiàn)所有屏幕適配,適應(yīng)移動(dòng)互聯(lián)潮流。
Amaze UI 含近 20 個(gè) CSS 組件、20 余 JS 組件,更有多個(gè)包含不同主題的 Web 組件,可快速構(gòu)建界面出色、體驗(yàn)優(yōu)秀的跨屏頁(yè)面,大幅提升開(kāi)發(fā)效率。
相比國(guó)外框架,Amaze UI 關(guān)注中文排版,根據(jù)用戶代理調(diào)整字體,實(shí)現(xiàn)更好的中文排版效果;兼顧國(guó)內(nèi)主流瀏覽器及 App 內(nèi)置瀏覽器兼容支持。
Amaze UI 面向 HTML5 開(kāi)發(fā),使用 CSS3 來(lái)做動(dòng)畫交互,平滑、高效,更適合移動(dòng)設(shè)備,讓 Web 應(yīng)用更快速載入。
cube-ui
質(zhì)量可靠:由滴滴內(nèi)部組件庫(kù)精簡(jiǎn)提煉而來(lái),歷經(jīng)考驗(yàn),并且每個(gè)組件都有充分單元測(cè)試,為后續(xù)集成提供保障。
體驗(yàn)極致:以迅速響應(yīng)、動(dòng)畫流暢、接近原生為目標(biāo),在交互體驗(yàn)方面追求極致。
標(biāo)準(zhǔn)規(guī)范:遵循統(tǒng)一的設(shè)計(jì)交互標(biāo)準(zhǔn),高度還原設(shè)計(jì)效果;接口標(biāo)準(zhǔn)化,統(tǒng)一規(guī)范使用方式,開(kāi)發(fā)更加簡(jiǎn)單高效。
擴(kuò)展性強(qiáng):支持按需引入和后編譯,輕量靈活;擴(kuò)展性強(qiáng),可以方便地基于現(xiàn)有組件實(shí)現(xiàn)二次開(kāi)發(fā)。
一直以來(lái),前端工程中的配置大多都是 .js 文件或者 .json 文件,最常見(jiàn)的比如:
這些配置對(duì)前端非常友好,因?yàn)槎际俏覀兪煜さ?JS 對(duì)象結(jié)構(gòu)。一般靜態(tài)化的配置會(huì)選擇 json 文件,而動(dòng)態(tài)化的配置,涉及到引入其他模塊,因此會(huì)選擇 js 文件。
還有現(xiàn)在許多新工具同時(shí)支持多種配置,比如 Eslint ,兩種格式的配置任你選擇:
后來(lái)不知道什么時(shí)候,突然出現(xiàn)了一種以 .yaml 或 .yml 為后綴的配置文件。一開(kāi)始以為是某個(gè)程序的專有配置,后來(lái)發(fā)現(xiàn)這個(gè)后綴的文件出現(xiàn)的頻率越來(lái)越高,甚至 Eslint 也支持了第三種格式的配置 .eslintrc.yml 。
既然遇到了,那就去 探索 它!
下面我們從 YAML 的 出現(xiàn)背景 , 使用場(chǎng)景 , 具體用法 , 高級(jí)操作 四個(gè)方面,看一下這個(gè)流行的現(xiàn)代化配置的神秘之處。
一個(gè)新工具的出現(xiàn)避免不了有兩個(gè)原因:
YAML 這種新工具就屬于后者。其實(shí)在 yaml 出現(xiàn)之前 js+json 用得也不錯(cuò),也沒(méi)什么特別難以處理的問(wèn)題;但是 yaml 出現(xiàn)以后,開(kāi)始覺(jué)得它好亂呀什么東西,后來(lái)了解它后,越用越喜歡,一個(gè)字就是優(yōu)雅。
很多文章說(shuō)選擇 yaml 是因?yàn)?json 的各種問(wèn)題,json 不適合做配置文件,這我覺(jué)得有些言過(guò)其實(shí)了。我更愿意將 yaml 看做是 json 的升級(jí),因?yàn)?yaml 在格式簡(jiǎn)化和體驗(yàn)上表現(xiàn)確實(shí)不錯(cuò),這個(gè)得承認(rèn)。
下面我們對(duì)比 YAML 和 JSON,從兩方面分析:
JSON 比較繁瑣的地方是它嚴(yán)格的格式要求。比如這個(gè)對(duì)象:
在 JSON 中以下寫法通通都是錯(cuò)的:
字符串的值必須 k-v 都是 "" 才行:
雖然是統(tǒng)一格式,但是使用上確實(shí)有不便利的地方。比如我在瀏覽器上測(cè)出了接口錯(cuò)誤。然后把參數(shù)拷貝到 Postman 里調(diào)試,這時(shí)就我要手動(dòng)給每個(gè)屬性和值加 "" 號(hào),非常繁瑣。
YAML 則是另辟蹊徑,直接把字符串符號(hào)干掉了。上面對(duì)象的同等 yaml 配置如下:
沒(méi)錯(cuò),就這么簡(jiǎn)單!
除了 "" 號(hào),yaml 覺(jué)得 {} 和 [] 這種符號(hào)也是多余的,不如一起干掉。
于是呢,以這個(gè)對(duì)象數(shù)組為例:
轉(zhuǎn)換成 yaml 是這樣的:
對(duì)比一下這個(gè)精簡(jiǎn)程度,有什么理由不愛(ài)它?
說(shuō)起增加的部分,最值得一提的,是 YAML 支持了 注釋 。
用 JSON 寫配置是不能有注釋的,這就意味著我們的配置不會(huì)有備注,配置多了會(huì)非常凌亂,這是最不人性化的地方。
現(xiàn)在 yaml 支持了備注,以后配置可以是這樣的:
把這種配置丟給新同事,還怕他看不懂配了啥嗎?
除注釋外,還支持配置復(fù)用的相關(guān)功能,這個(gè)后面說(shuō)。
我接觸的第一個(gè) yaml 配置是 Flutter 項(xiàng)目的包管理文件 pubspec.yaml ,這個(gè)文件的作用和前端項(xiàng)目中的 package.json 一樣,用于存放一些全局配置和應(yīng)用依賴的包和版本。
看一下它的基本結(jié)構(gòu):
你看這個(gè)結(jié)構(gòu)和 package.json 是不是基本一致? dependencies 下列出應(yīng)用依賴和版本, dev_dependencies 下的則是開(kāi)發(fā)依賴。
后來(lái)在做 CI/CD 自動(dòng)化部署的時(shí)候,我們用到了 GitHub Action。它需要多個(gè) yaml 文件來(lái)定義不同的工作流,這個(gè)配置可比 flutter 復(fù)雜得多。
其實(shí)不光 GitHub Action,其他流行的類似的構(gòu)建工具如 GitLab CI/CD,circleci,全部都是齊刷刷的 yaml 配置,因此如果你的項(xiàng)目要做 CI/CD 持續(xù)集成,不懂 yaml 語(yǔ)法肯定是不行的。
還有,接觸過(guò) Docker 的同學(xué)肯定知道 Docker Compose,它是 Docker 官方的單機(jī)編排工具,其配置文件 docker-compose.yml 也是妥妥的 yaml 格式?,F(xiàn)在 Docker 正是如日中天的時(shí)候,使用 Docker 必然免不了編排,因此 yaml 語(yǔ)法早晚也要攻克。
上面說(shuō)的這 3 個(gè)案例,幾乎都是現(xiàn)代最新最流行的框架/工具。從它們身上可以看出來(lái),yaml 必然是下一代配置文件的標(biāo)準(zhǔn),并且是 前端-后端-運(yùn)維 的通用標(biāo)準(zhǔn)。
說(shuō)了這么多,你躍躍欲試了嗎?下面我們?cè)敿?xì)介紹 yaml 語(yǔ)法。
介紹 yaml 語(yǔ)法會(huì)對(duì)比 json 解釋,以便我們快速理解。
先看一下 yaml 的幾個(gè)特點(diǎn):
相比于 JSON 來(lái)說(shuō),最大的區(qū)別是用 縮進(jìn) 來(lái)表示層級(jí),這個(gè)和 Python 非常接近。還有強(qiáng)化的一點(diǎn)是支持了注釋,JSON 默認(rèn)是不支持的(雖然 TS 支持),這也對(duì)配置文件非常重要。
YAML 支持以下幾種數(shù)據(jù)結(jié)構(gòu):
先看對(duì)象,上一個(gè) json 例子:
轉(zhuǎn)換成 yaml:
對(duì)象是最核心的結(jié)構(gòu),key 值的表示方法是 [key]: ,注意這里 冒號(hào)后面有個(gè)空格,一定不能少 。value 的值就是一個(gè) 純量 ,且默認(rèn)不需要引號(hào)。
數(shù)組和對(duì)象的結(jié)構(gòu)差不多,區(qū)別是在 key 前用一個(gè) - 符號(hào)標(biāo)識(shí)這個(gè)是數(shù)組項(xiàng)。注意這里 也有一個(gè)空格 ,同樣也不能少。
轉(zhuǎn)換成 JSON 格式如下:
了解了基本的對(duì)象和數(shù)組,我們?cè)賮?lái)看一個(gè)復(fù)雜的結(jié)構(gòu)。
眾所周知,在實(shí)際項(xiàng)目配置中很少有簡(jiǎn)單的對(duì)象或數(shù)組,大多都是對(duì)象和數(shù)組相互嵌套而成。在 js 中我們稱之為對(duì)象數(shù)組,而在 yaml 中我們叫 復(fù)合結(jié)構(gòu) 。
比如這樣一個(gè)稍復(fù)雜的 JSON:
轉(zhuǎn)換成復(fù)合結(jié)構(gòu)的 YAML:
若你想嘗試更復(fù)雜結(jié)構(gòu)的轉(zhuǎn)換,可以在 這個(gè) 網(wǎng)頁(yè)中在線實(shí)踐。
純量比較簡(jiǎn)單,對(duì)應(yīng)的就是 js 的基本數(shù)據(jù)類型,支持如下:
比較特殊的兩個(gè),null 用 ~ 符號(hào)表示,時(shí)間大多用 2021-12-21 這種格式表示,如:
轉(zhuǎn)換成 JS 后:
在 yaml 實(shí)戰(zhàn)過(guò)程中,遇到過(guò)一些特殊場(chǎng)景,可能需要一些特殊的處理。
在 shell 中我們常見(jiàn)到一些參數(shù)很多,然后特別長(zhǎng)的命令,如果命令都寫在一行的話可讀性會(huì)非常差。
假設(shè)下面的是一條長(zhǎng)命令:
在 linux 中可以這樣處理:
就是在每行后加 符號(hào)標(biāo)識(shí)換行。然而在 YAML 中更簡(jiǎn)單,不需要加任何符號(hào),直接換行即可:
YAML 默認(rèn)會(huì)把換行符轉(zhuǎn)換成 空格 ,因此轉(zhuǎn)換后 JSON 如下,正是我們需要的:
然而有時(shí)候,我們的需求是 保留換行符 ,并不是把它轉(zhuǎn)換成空格,又該怎么辦呢?
這個(gè)也簡(jiǎn)單,只需要在首行加一個(gè) | 符號(hào):
轉(zhuǎn)換成 JSON 變成了這樣:
獲取配置是指,在 YAML 文件中定義的某個(gè)配置,如何在代碼(JS)里獲???
比如前端在 package.json 里有一個(gè) version 的配置項(xiàng)表示應(yīng)用版本,我們要在代碼中獲取版本,可以這么寫:
JSON 是可以直接導(dǎo)入的,YAML 可就不行了,那怎么辦呢?我們分環(huán)境解析:
在瀏覽器中
瀏覽器中代碼用 webapck 打包,因此加一個(gè) loader 即可:
然后配置 loader:
在組件中使用:
在 Node.js 中
Node.js 環(huán)境下沒(méi)有 Webpack,因此讀取 yaml 配置的方法也不一樣。
首先安裝一個(gè) js-yaml 模塊:
然后通過(guò)模塊提供的方法獲?。?/p>
配置項(xiàng)復(fù)用的意思是,對(duì)于定義過(guò)的配置,在后面的配置直接引用,而不是再寫一遍,從而達(dá)到復(fù)用的目的。
YAML 中將定義的復(fù)用項(xiàng)稱為錨點(diǎn),用 標(biāo)識(shí);引用錨點(diǎn)則用 * 標(biāo)識(shí)。
對(duì)應(yīng)的 JSON 如下:
但是錨點(diǎn)有個(gè)弊端,就是不能作為 變量 在字符串中使用。比如:
此時(shí) key2 的值就是普通字符串 _my name is *name_,引用變得無(wú)效了。
其實(shí)在實(shí)際開(kāi)發(fā)中,字符串中使用變量還是很常見(jiàn)的。比如在復(fù)雜的命令中多次使用某個(gè)路徑,這個(gè)時(shí)候這個(gè)路徑就應(yīng)該是一個(gè)變量,在多個(gè)命令中復(fù)用。
GitHub Action 中有這樣的支持,定義一個(gè)環(huán)境變量,然后在其他的地方復(fù)用:
這種實(shí)現(xiàn)方式與 webpack 中使用環(huán)境變量類似,在構(gòu)建的時(shí)候?qū)⒆兞刻鎿Q成對(duì)應(yīng)的字符串。
如果本文對(duì)你有啟發(fā),請(qǐng)甩手一個(gè)贊
1、概念不同。
應(yīng)用程序(application software或?application?Program)是計(jì)算機(jī)軟件的主要分類之一,是指為針對(duì)用戶的某種特殊應(yīng)用目的所撰寫的軟件。
應(yīng)用程序在分類上也比較多,系統(tǒng)應(yīng)用程序,桌面應(yīng)用程序,驅(qū)動(dòng)應(yīng)用程序,網(wǎng)絡(luò)應(yīng)用程序,手機(jī)應(yīng)用程序,物聯(lián)網(wǎng)應(yīng)用程序等。
根據(jù)《軟件工程:實(shí)踐者的研究方法》中的定義,軟件(software)是一系列按照特定順序組織的計(jì)算機(jī)數(shù)據(jù)和指令,是計(jì)算機(jī)中的非有形部分。計(jì)算機(jī)中的有形部分稱為硬件,由計(jì)算機(jī)的外殼及各零件及電路所組成。
軟件由一個(gè)或多個(gè)應(yīng)用程序組合而成,分類上有編程語(yǔ)言、系統(tǒng)軟件、惡意軟件,嵌入式軟件,游戲軟件,應(yīng)用軟件和介于這兩者之間的中間件。
系統(tǒng)軟件就是常見(jiàn)的操作系統(tǒng),Windows,Mac OS,Linux都是操作系統(tǒng)軟件。
應(yīng)用軟件是需要運(yùn)行在操作系統(tǒng)上的軟件,比如常見(jiàn)的文檔處理軟件,圖像處理軟件,編程軟件等。
惡意軟件會(huì)故意造成隱私或機(jī)密數(shù)據(jù)外泄、系統(tǒng)損害(包括但不限于系統(tǒng)崩潰等)、數(shù)據(jù)丟失等故障及信息安全問(wèn)題。
中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。
軟件包括所有在計(jì)算機(jī)運(yùn)行的程序,和其架構(gòu)無(wú)關(guān),例如可執(zhí)行文件、庫(kù)及腳本語(yǔ)言都屬于軟件。軟件不分架構(gòu),有其共通的特性。
應(yīng)用程序只是軟件的一部分,而軟件的概念及其廣泛,不是只有應(yīng)用程序。
2、功能不同
軟件由多個(gè)應(yīng)用程序組合而成,功能及其復(fù)雜,比如常見(jiàn)的office 軟件,能做表格,做PPT,處理文檔等功能。
而應(yīng)用程序功能比較單一,只能處理一類工作。PPT只能用來(lái)處理幻燈片,沒(méi)有辦法處理復(fù)雜表格,想要錄制音頻需要調(diào)用office軟件包里錄制音頻的應(yīng)用程序。
3、開(kāi)發(fā)難度不同。
軟件的開(kāi)發(fā)難度要比應(yīng)用程序大得多,由于需要多個(gè)應(yīng)用程序配合,而且需要在不同的操作系統(tǒng)平臺(tái)上發(fā)布,都是用不同的編程語(yǔ)言混合開(kāi)發(fā)而成 。
軟件對(duì)性能有一定的要求,很少選擇性能比較差的腳本語(yǔ)言開(kāi)發(fā),一般都是使用C++,Java這類編譯型語(yǔ)言開(kāi)發(fā)。
但編譯型語(yǔ)言的問(wèn)題是,有的語(yǔ)言設(shè)計(jì)不合理,歷史積累,不夠成熟等原因,造成開(kāi)發(fā)起來(lái)較繁瑣,調(diào)試比較困難,開(kāi)發(fā)時(shí)間較長(zhǎng)。因此一個(gè)功能完整的軟件開(kāi)發(fā)起來(lái)通常需要幾年才能完成。
最常見(jiàn)的游戲軟件就是如此,很多游戲軟件的游戲引擎都是C++,C#這種編譯型語(yǔ)言開(kāi)發(fā)(有現(xiàn)成的也需要二次開(kāi)發(fā)),也是整個(gè)游戲的靈魂,開(kāi)發(fā)難度也是最大的。
而游戲的動(dòng)作,事件等則選擇LUA,JavaScript或者Python這些腳本語(yǔ)言開(kāi)發(fā)。很多游戲大作都是跨平臺(tái)的,開(kāi)發(fā)周期最少的都在1年以上。
應(yīng)用程序的功能相對(duì)比較單一,遇到的業(yè)務(wù)場(chǎng)景也不會(huì)很復(fù)雜。通常開(kāi)發(fā)一個(gè)功能完善的應(yīng)用程序,只需要幾個(gè)月時(shí)間,復(fù)雜的應(yīng)用程序最多1-2年就能完成。
應(yīng)用程序通常對(duì)性能的需求沒(méi)有軟件那么大,很多解釋型的腳本語(yǔ)言也可以開(kāi)發(fā)。開(kāi)發(fā)一個(gè)移動(dòng)端手機(jī)應(yīng)用程序(web應(yīng)用程序),功能不算很復(fù)雜,開(kāi)發(fā)周期都不長(zhǎng)。通常一個(gè)完整的web應(yīng)用程序,會(huì)分為客戶端和服務(wù)端兩部分。
客戶端軟件技術(shù)選型上,常用React Native 或者 flutter(IOS有自己的一套UI),服務(wù)端軟件一般常用C++、Java、PHP、Python、Ruby等編程語(yǔ)言開(kāi)發(fā),通常都會(huì)同時(shí)在安卓和IOS平臺(tái)上發(fā)布。
參考資料來(lái)源:百度百科——應(yīng)用軟件?
參考資料來(lái)源:(美)?Rosger?S?Pressman 著 ,《軟件工程:實(shí)踐者的研究方法 (原書第六版)》第一章
臭氧發(fā)生器是用于制取臭氧的設(shè)備裝置,凡是能用到臭氧的場(chǎng)所均需使用臭氧發(fā)生器。臭氧發(fā)生器在自來(lái)水,污水,工業(yè)氧化,空間滅菌等領(lǐng)域廣泛應(yīng)用。本文還介紹了臭氧發(fā)生器的安裝步驟和維護(hù)保養(yǎng)指南,和臭氧發(fā)生器采用介質(zhì)阻擋電暈放電法和臭氧發(fā)生器的電源采用H型全橋逆變電路的示意圖。
臭氧發(fā)生器的安裝與維護(hù)保養(yǎng) 臭氧發(fā)生器的9大安裝步驟
1、臭氧發(fā)生器安裝:
現(xiàn)場(chǎng)安裝工作是影響日后深度處理系統(tǒng)能否成功運(yùn)行的最根本因素之一。由于臭氧是一種強(qiáng)腐蝕氣體,它的氧化性在自然界中僅次于氟。當(dāng)環(huán)境中臭氧100 mg/L會(huì)對(duì)人體造成不可恢復(fù)的危害,所以安裝質(zhì)量不僅影響系統(tǒng)的成功運(yùn)行,同時(shí)也對(duì)工作環(huán)境及人身安全有著極其重要的影響。
臭氧系統(tǒng)安裝應(yīng)注意:
(1)目前水廠規(guī)?;径荚?0萬(wàn)m3/d以上,所采用的臭氧發(fā)生器的單臺(tái)發(fā)生量往往在10 kg/h以上,所以必須考慮設(shè)備的運(yùn)輸?shù)跹b以及定位工作。
(2)管道工程的安裝必須按照管道圖紙進(jìn)行。管道與閥門必須用適當(dāng)支座加以固定,支座數(shù)量充足,強(qiáng)度要足夠。
(3)加工安裝管道時(shí),必須要保證有一個(gè)清潔的管道系統(tǒng),不受到油、脂、塵粒等污染。加工好的管件在其兩端必須堵上,然后存放在一個(gè)干燥而又清潔的地方;安裝好的管路也必須在其敞開(kāi)的端頭一直加以保護(hù),以免臟物和碎片進(jìn)入。
(4)閥門和儀表在打開(kāi)包裝后馬上進(jìn)行安裝,這點(diǎn)對(duì)那些已經(jīng)進(jìn)行了清潔的精密設(shè)備而言,顯得尤為重要。
(5)管道上的吸入口及通風(fēng)進(jìn)出口要有合適的保護(hù)設(shè)施,防止雨水,臟物或小鳥(niǎo)、蟲(chóng)子的侵?jǐn)_。一般的做法是,加用一個(gè)防風(fēng)罩和采用適合于管路的材料制作的絲網(wǎng)。
(6)必須采用惰性焊接法來(lái)焊接管線。V形焊縫間隙必須焊得適當(dāng),要在焊縫根部面積上有一個(gè)平滑的表面。所有焊縫都應(yīng)進(jìn)行無(wú)損探傷,焊縫質(zhì)量須符合相關(guān)標(biāo)準(zhǔn)。
(7)由于氧氣和含臭氧的氧氣都會(huì)產(chǎn)生火險(xiǎn)和生命危險(xiǎn),所有的氣體管路要求經(jīng)過(guò)壓力密封測(cè)試。
(8)后臭氧氧化的曝氣系統(tǒng),在安裝中應(yīng)注意臭氧曝氣頭的安裝水平及曝氣管安裝中的清潔,曝氣頭的上緊采用固定的力矩板手。
(9)建議在臭氧發(fā)生器放電罐進(jìn)氣端安裝氣體過(guò)濾器,這對(duì)保護(hù)放電管至關(guān)重要。
2.維護(hù)保養(yǎng)方面:
由于臭氧發(fā)生器是一個(gè)非常專業(yè)的設(shè)備,國(guó)外通常采用定期由供應(yīng)商進(jìn)行維護(hù)保養(yǎng)的方式。但由于費(fèi)用較高,國(guó)內(nèi)很少會(huì)采用這種有償長(zhǎng)期保養(yǎng)的方式。所以在平時(shí)使用過(guò)程中,定期進(jìn)行小維護(hù)、小保養(yǎng)能夠非常有效地延長(zhǎng)設(shè)備的壽命,可注意以下幾點(diǎn):
(1)通過(guò)PLC操作控制柜顯示屏定期察看系統(tǒng)各個(gè)節(jié)點(diǎn)的壓力、流量值是否在允許范圍。
(2)定期釋放空氣壓縮機(jī)、尾氣破壞裝置的排泄水。
(3)監(jiān)測(cè)臭氧接觸池是否處于負(fù)壓狀態(tài)。
(4)定期檢查尾氣破壞裝置的加熱系統(tǒng)是否正常,定期更換臭氧吸附用觸媒等。
(5)及時(shí)清洗或更換空氣過(guò)濾棉。
(6)定期校驗(yàn)監(jiān)測(cè)儀表準(zhǔn)確性,及時(shí)更換相關(guān)器件。
1
夏天的飛鳥(niǎo),飛到我的窗前唱歌,又飛去了。
秋天的黃葉,它們沒(méi)有什么可唱,只嘆息一聲,飛落在那里。
2
世界上的一隊(duì)小小的漂泊者呀,請(qǐng)留下你們的足印在我的文字里。
3
世界對(duì)著它的愛(ài)人,把它浩翰的面具揭下了。
它變小了,小如一首歌,小如一回永恒的接吻。
4
是大地的淚點(diǎn),使她的微笑保持著青春不謝。
5
無(wú)垠的沙漠熱烈追求一葉綠草的愛(ài),她搖搖頭笑著飛開(kāi)了。
6
如果你因失去了太陽(yáng)而流淚,那么你也將失去群星了。
7
跳舞著的流水呀,在你途中的泥沙,要求你的歌聲,你的流動(dòng)呢。你肯挾
瘸足的泥沙而俱下么?
8
她的熱切的臉,如夜雨似的,攪擾著我的夢(mèng)魂。
9
有一次,我們夢(mèng)見(jiàn)大家都是不相識(shí)的。
我們醒了,卻知道我們?cè)窍嘤H相愛(ài)的。
10
憂思在我的心里平靜下去,正如暮色降臨在寂靜的山林中。
11
有些看不見(jiàn)的手,如懶懶的微(風(fēng)思)的,正在我的心上奏著
潺(氵爰)的樂(lè)聲。
——泰戈?duì)枴讹w鳥(niǎo)集》