国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Hello 2019! Hanjst/漢吉斯特 模板語言及引擎創(chuàng)新發(fā)布

shiguibiao / 2277人閱讀

摘要:值此一元復(fù)始之際,恭祝朋友們新年萬事如意寄望漢吉斯特能幫助大家從各種模板中解脫出來,為人類做出更大的貢獻。漢吉斯特模板語言及引擎是一種基于的模板語言及解析引擎,她可以運行在客戶端,也可以運行在服務(wù)器端。年元旦,漢吉斯特正式對外公布。

Hello 2019! Hanjst/漢吉斯特 模板語言及引擎創(chuàng)新發(fā)布。

值此一元復(fù)始之際,恭祝 朋友們新年萬事如意!
寄望 Hanjst/漢吉斯特能幫助大家從各種模板中解脫出來,為人類做出更大的貢獻。

1. 背景

網(wǎng)頁模板語言/引擎緣起于 MVC 思想的引入。當(dāng)軟件項目膨脹復(fù)雜到足夠大時,軟件研發(fā)人員與UI/UE設(shè)計人員就需要分別獨立出來,其中設(shè)計制作人員工作的V(View)部分需要用模板語言與引擎。

模板語言及引擎的設(shè)計與研發(fā)工作是一項既簡單又復(fù)雜的工作。簡單地說,模板就是一種變量替換的工作,在模板中預(yù)留相應(yīng)的占位符和變量標(biāo)記,模板引擎在工作時在相應(yīng)的占位符將對應(yīng)的變量替換為實際對應(yīng)的數(shù)值即可。

復(fù)雜地說,模板語言是一種全新表達語言的設(shè)計,設(shè)計一門語言,其難度是可想而知的,這門語言要能夠滿足日常溝通之需要,首先或入門的是語言設(shè)計者要考慮的,是該模板語言能夠普遍接受和廣泛使用,這樣語言才有生命力。無疑,簡潔而表意豐富是重要而優(yōu)先的考慮項。

先行者已經(jīng)在模板領(lǐng)域創(chuàng)制出大量符合各種需求的模板語言與模板引擎,這里是一個簡單的歸集 -R/U2SJ , 為了更好的梳理其發(fā)展類別,我們繪制了一個 Mind map:

Fig1. 網(wǎng)頁模板語言分類概括

2. 問題討論

如在Fig1中所展示的,模板語言及引擎有很多種類,每個分類下面又有不同的應(yīng)用實例,可謂多姿多彩,琳瑯滿目。實際上,在網(wǎng)絡(luò)上搜索一下可能會發(fā)現(xiàn),網(wǎng)頁模板語言和引擎多到不勝枚舉,連JSP、PHP這樣的開發(fā)語言都可以歸類為某種模板語言的范圍。

通過腦圖的分析,我們發(fā)現(xiàn)在這一領(lǐng)域還有兩個問題沒有得到解決,或者沒有得到很好的解決:1)服務(wù)器端,有沒有一種模板語言與引擎可以實現(xiàn)跨開發(fā)語言的? 2)客戶端/瀏覽器終端,有沒有一種模板語言與引擎能夠不需要Script tags的?

針對第一個問題,我們搜索了多次,發(fā)現(xiàn)的確有針對不同開發(fā)語言而設(shè)計的模板語言與引擎,多數(shù)只是針對某幾種主流語言開發(fā)了模板編譯引擎,只是做到“準(zhǔn)跨開發(fā)語言”,另外就是,這些看似高級的模板語言與引擎,大多數(shù)都是私有軟件,非開源,需要購買獲取授權(quán)才能使用。

至于第二個問題,Script tags,一般的定義是這樣的,如果我們在客戶端使用JavaScript來寫一個模板,通常都需要先聲明一段區(qū)塊頭部,然后完事之后再聲明一下區(qū)塊尾部,這個區(qū)塊的頭尾部使用Script tags來實現(xiàn)的,如下:


這是令人不悅的,為何要表述一句 “Hello {{name}}”, 無辜地多寫了第一行和第三行,不能省掉嗎?

令人無可忍受地還有其他的,
3)logicless 。如果一種模板語言無法表達邏輯,這是什么邏輯?
4){{name}}。為何必需用兩個“{{” ,而不是一個“{”?
5)<#list>. 為何要用 “<#” , 能再簡潔易懂些嗎?


Fig2 騰訊理財通客戶端等JavaScript模版

從 Fig2 中我們可以看到這些令人不滿意等地方,函數(shù)等調(diào)用 | f2y | n2t 借用了命令行管道等意思,如果有參數(shù)呢?能否寫成:

f2y(n2t(IMonthProfit)) 
or
IMonthProfit.n2t().f2y()

通過Fig2 我們還發(fā)現(xiàn) 模版語言,尤其是 JavaScript 模版語言在App上應(yīng)用等依然存在,模版等使用并沒有隨著Web向App轉(zhuǎn)換而減少。

于是,懷著這些不滿意,我們設(shè)想滿足以下需要來設(shè)計一套新的模板語言與引擎:

A)跨開發(fā)語言,與服務(wù)器開發(fā)語言不做綁定,同時開源,免費使用;
B)去掉 Scripts tags;
C)基于JavaScript提供,同時與服務(wù)器端一致強大而復(fù)雜的表達、表示能力。

如能滿足以上,我們在繼續(xù)研制 -GWA2 / -吉娃兔 的道路上,有望一通各個開發(fā)語言的模板引擎,而不是在開發(fā) Java 版本的 GWA2時 選擇 Velocity, 在 開發(fā) PHP 版本的 GWA2 時選擇 -Smarty 等問題。

以語言學(xué)家的視角來設(shè)計這套模板語言與引擎,
以工程師的思維來實現(xiàn)語法、語義的程序化表達,
這就是 Hanjst 模板語言及引擎。

3. Hanjst, 漢吉斯特 模板語言及引擎

Hanjst是一種基于JavaScript的模板語言及解析引擎,她可以運行在客戶端,也可以運行在服務(wù)器端。

Hanjst能夠表述邏輯控制,能夠?qū)崿F(xiàn)與服務(wù)器端模塊語言相同的功能。

特征/功能
Hanjst運行在客戶端時完全客戶端解析,節(jié)省服務(wù)器端計算資源;

Hanjst模板語言獨立,不與服務(wù)器端開發(fā)語言做任何綁定;

純粹的MVC,層間數(shù)據(jù)用JSON格式傳遞;

常見模板語言功能全支持,附帶復(fù)雜而強大的JavaScript編程能力;

無學(xué)習(xí)成本,直接使用JavaScript書寫模板語言;

開源的,免費使用;
….

Han 是我妻子的姓(韓), 也是出現(xiàn)我女兒和兒子名字中的音節(jié)。Han 也是中文“漢族”的意思。

Hanjst 模板語言及引擎設(shè)計用來終止在HTML模板語言領(lǐng)域不斷地“再造輪子”的活動,盡管這聽起來有些怪異。

Hanjst 的語法與基于 PHP 的Smarty語言有相似的地方,原因是我們借鑒了 Smarty的一些設(shè)計,之所以如此,是我們贊同 Smarty 在語言精煉方面精益求精的探索( -R/x12SU )。

Note that the PHP syntax uses 5 punctuation characters to display a
simple variable: , whereas Smarty uses 2: {}.

Hanjst 依托JavaScript內(nèi)部對象及函數(shù)的功能,賦予了在模板中直接調(diào)用這些功能的能力,實現(xiàn)了媲美服務(wù)端模板語言一致的表示、表達能力。如表達截短一個字符串:

{$myString.substring(0, 10)} 


4. 發(fā)展規(guī)劃及設(shè)想

Hanjst 模板語言及引擎已發(fā)布在 -GitHub 上,地址為: https://github.com/wadelau/Ha... 。

Hanjst 模板語言及引擎的樣例展示地址, -Hanjst , -R/j2SP 。 現(xiàn)在就可以點開嘗鮮。

Hanjst 模板語言及引擎的參考手冊在編輯中,不日將在線發(fā)布。

Table of Contents

I. What is Hanjst?
1.
Hanjst Installation
2.
Basic Settings
II. Hanjst for Template Designers
3.
Syntax and Semantic
4.
Variables
5.
Modifiers on Variables
6.
Built-in Functions
7.
Warnings and Errors
III. Hanjst Template for Programmers
8.
JSON Data
9.
Includes
10.
Compile and Cache
IV. Search Engine Optimization
11.
HTML Head Element
12.
Plain Content Div Element
13.
Robot-oriented Links
V. Advanced Applications for Hanjst
14.
Embedded in HTML Elements

5. 不足及改進工作

目前已知的不足之一是在客戶端運行編譯模板文件時,對搜索引擎不夠友好。

針對這一問題,我們提供了優(yōu)化HTML head, 曝露 Hanjstjsondata 等方式進行補充。

其他的,請大家試用并反饋。

2019年元旦,Hanjst/漢吉斯特 正式對外公布。

-R/U2SK

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/101218.html

相關(guān)文章

  • ECMASCript 2019可能會有哪些特性?

    摘要:可能不會包括所有的語法提案。事實上,有些提案已經(jīng)被擱置很多年了。因此,很可能也會在今年月份發(fā)布。 譯者按: 又過了1年... 原文:Whats New in JavaScript for 2019 譯者: Fundebug 為了保證可讀性,本文采用意譯而非直譯。另外,本文版權(quán)歸原作者所有,翻譯僅用于學(xué)習(xí)。 最近這些年,ECMASCript標(biāo)準(zhǔn)發(fā)展節(jié)奏非常穩(wěn)定,每年都會發(fā)布新的特...

    tuantuan 評論0 收藏0
  • 百度世界發(fā)布渡鴉新品,軟硬件結(jié)合更懂生活

    摘要:百度世界發(fā)布劃時代產(chǎn)品,軟硬件結(jié)合更懂智能生活月日,百度世界大會在北京盛大舉行。百度已與一汽集團簽署戰(zhàn)略合作協(xié)議,共同推動該項技術(shù)產(chǎn)品落地。渡鴉在會上同時公布了另外兩款即將面世的產(chǎn)品。 百度世界發(fā)布劃時代產(chǎn)品,軟硬件結(jié)合更懂智能生活 11 月 16 日,2017 百度世界大會在北京盛大舉行。百度在會上發(fā)布了手機百度 10.0 和全新人工智能硬件Raven H等軟硬件產(chǎn)品。百度董事長兼首...

    trilever 評論0 收藏0
  • 百度智能云牽手得,云服務(wù)和IT服務(wù)廠商捆綁作戰(zhàn)進入行業(yè)新高潮

    摘要:同日,雙方還簽署了戰(zhàn)略合作框架協(xié)議,擬在云計算通用管理垂直業(yè)務(wù)等方面進行業(yè)務(wù)合作。不難看出,百度這次投資并與漢得信息合作,亦可看作組織架構(gòu)調(diào)整后的戰(zhàn)略配套動作,即藉由云計算平臺完成布局。年,阿里云領(lǐng)投了數(shù)字化服務(wù)商,并達成戰(zhàn)略合作。互聯(lián)網(wǎng)大佬間的云計算戰(zhàn)爭再起波瀾。3月1日,創(chuàng)業(yè)板公司漢得信息發(fā)布股份轉(zhuǎn)讓公告,簡言之,百度以5.26%的占股比例投資了該企業(yè),成為第三大股東。同日,雙方還簽署了...

    mylxsw 評論0 收藏0
  • 百度智能云牽手“造王者”得,ToB市場將迎大變局?

    摘要:百度需要借助漢得的經(jīng)驗去切市場。年月份的春晚紅包戰(zhàn),應(yīng)對瞬發(fā)的超大流量,百度智能云同樣展現(xiàn)出了應(yīng)對復(fù)雜場景的能力和技術(shù)穩(wěn)定性。緊接著,百度財報中首次公布營收百度智能云營收破億,躋身國內(nèi)云廠商第三。這次投資漢得,這是大舉布局市場的另一個信號。美國大選中有一個詞,叫做Kingmaker(造王者),指的是那些選舉背后為選戰(zhàn)出謀劃策的人,他們經(jīng)驗豐富,幫助過很多人贏得宣戰(zhàn),自己卻從不參加選舉。這個詞...

    YancyYe 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<