互聯(lián)網(wǎng)+醫(yī)療快速融合開發(fā)—引擎實(shí)現(xiàn)多端多產(chǎn)品矩陣開發(fā)
原創(chuàng)在大互聯(lián)網(wǎng)的背景下,催生了互聯(lián)網(wǎng)和醫(yī)療的融合。但傳統(tǒng)的醫(yī)藥公司想要通過現(xiàn)有的技術(shù)過渡到移動(dòng)互聯(lián)網(wǎng)和移動(dòng)領(lǐng)域,將面臨著很多的困難。困難的主要根源在于醫(yī)藥行業(yè)的歷史問題和獨(dú)有特性導(dǎo)致。那么傳統(tǒng)的醫(yī)藥公司,要如何才能快速的進(jìn)行互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)化?如何在短時(shí)間擁有B2C官網(wǎng),醫(yī)藥電商APP,新模式APP?如何能快速多端,多平臺(tái)批量開發(fā)?今天我們就跟隨七樂康高級(jí)技術(shù)總監(jiān)曲毅來探討這些問題。
HTML5引擎Crow5開發(fā)多端多模塊的產(chǎn)品——大白云診
如何在有限時(shí)間和有限資源內(nèi)開發(fā)醫(yī)生端,患者端,醫(yī)生助理端,醫(yī)藥代表端呢?曲毅表示,可以采用統(tǒng)一的方法論進(jìn)行多端,多模式的統(tǒng)一編程,HTML5的引擎Crow5將為此方法保駕護(hù)航。 Crow5經(jīng)歷了五版,曾在樂蜂網(wǎng)被商用?,F(xiàn)在這個(gè)引擎被用到醫(yī)療行業(yè),會(huì)給醫(yī)療行業(yè)帶來怎樣的改變?怎樣的便捷呢?
醫(yī)生客戶端
醫(yī)藥代表微信端
上圖是大白云診的醫(yī)生客戶端和醫(yī)藥代表微信端,這樣的產(chǎn)品不是用代碼編寫的,而是由引擎Crow5自動(dòng)生成的。有了這樣的APP,患者就可以和醫(yī)生進(jìn)行隨時(shí)互動(dòng)。醫(yī)療領(lǐng)域里常常會(huì)說“三長(zhǎng)一短”,就是指看病時(shí)間長(zhǎng)、排隊(duì)長(zhǎng)、約號(hào)長(zhǎng),***看病卻很短,幾分鐘而已。還有二次問診,如是一些偏遠(yuǎn)山區(qū)的人去大醫(yī)院看病就需要再次舟車勞頓,其實(shí)可能也就是想知道藥的療效。這樣的情況下,對(duì)于醫(yī)生來說是資源浪費(fèi),對(duì)于患者來講也會(huì)有很多困難。但如通過APP、互聯(lián)網(wǎng)的方式就跟醫(yī)生進(jìn)行時(shí)時(shí)的互動(dòng),如二次問診,開一些藥,簡(jiǎn)單的問診情況,都可以通過APP來解決。
系統(tǒng)結(jié)構(gòu)
一個(gè)健全的移動(dòng)互聯(lián)網(wǎng)的產(chǎn)品光有一個(gè)APP是不夠的,還要有微信端、安卓版、IOS版、PC版等。那么問題就來了,這么多版面至少需要好幾種語(yǔ)言,也需要幾個(gè)團(tuán)隊(duì)去做。那么如何能在最短的時(shí)間內(nèi)用最少的人把這些一次性搞定呢?這就要借助引擎Crow5,可以少寫代碼,讓其自動(dòng)生成。曲毅表示,入職七樂康五個(gè)月以來,一共做了商務(wù)代表端、PC端、醫(yī)生APP、患者微信端,CMS,還有IM通信,全部都基于引擎技術(shù)。***的介入的是它原有電商平臺(tái)。
這樣一系列的產(chǎn)品有什么用途呢?曲毅表示,為醫(yī)生提供一個(gè)屬于自己的虛擬門診,輕松實(shí)現(xiàn)患者管理、在線咨詢、用藥助手和積分收益。讓醫(yī)生成為患者的私人醫(yī)生,通過患者健康檔案的建立,醫(yī)生為患者提供終身醫(yī)療服務(wù)。
這樣一系列的開發(fā)需要多長(zhǎng)時(shí)間?多少人員投入?曲毅表示,從6月8日號(hào)項(xiàng)目開始啟動(dòng),在6月14日完成產(chǎn)品原型的設(shè)計(jì)、用八天開發(fā)、用八天測(cè)試、***推出共用16天。之后幾天,向內(nèi)部種子醫(yī)生推送,整個(gè)項(xiàng)目下來,一共用時(shí)不到20天。此次一共投入了26個(gè)人,平均工作的時(shí)間有11.5個(gè)小時(shí),工作強(qiáng)度非常大。之所以有這樣驚人的速度,是因?yàn)檫@里面全部是由引擎Crow5去做的,那么引擎為什么能承載這么多呢?
Crow5引擎相關(guān)功能的介紹
強(qiáng)勁的Crow5引擎
H5引擎支持結(jié)構(gòu)圖
如上兩圖所示:按需加載、加速器、攔截器、還有緩存脫離,JS管理等是引擎最基本的元素,還有要包含很多的模塊。 以下是關(guān)于HTML5引擎Crow5介紹 :
- 主體購(gòu)物邏輯抽取
- 完善的基于約定的模塊式開發(fā)
- 高效的性能
- 數(shù)十種設(shè)計(jì)模式的實(shí)現(xiàn)
- ***實(shí)現(xiàn)與原生的內(nèi)嵌
- 插件式拼裝,靈活,自主
- 智能自動(dòng)的實(shí)現(xiàn)響應(yīng)式布局
- 前端安全過濾器
- 離線脫機(jī),小伙伴再也不用擔(dān)心購(gòu)物沒有網(wǎng)絡(luò)了 模版引擎漂移
- 日至遠(yuǎn)程調(diào)試
- 心跳保持
- 還有很多很多,沒有不可能只有想不到
Crow5 模板引擎漂移
Crow5模板引擎漂移,就是把所有服務(wù)器上所需要的資源全部都打成一個(gè)引擎包,放在APP里,當(dāng)APP在一運(yùn)行時(shí)它所有頁(yè)面所構(gòu)成的元素,全部都會(huì)在本地,如需要的模板、樣式文件、JS等。當(dāng)沒有網(wǎng)時(shí),APP依然可以點(diǎn)擊,但不能交互。
Crow5心跳控制
Crow5心跳控制,這個(gè)功能可以應(yīng)用到秒殺和實(shí)時(shí)數(shù)據(jù)關(guān)注。當(dāng)我們秒殺到臨界點(diǎn)時(shí),引擎會(huì)通過起搏器促使頁(yè)面的刷新速度加快,系統(tǒng)自動(dòng)保證信息的真實(shí)和變化,心跳起搏器負(fù)責(zé)和服務(wù)器去比對(duì)數(shù)據(jù)。秒殺點(diǎn)過后,心跳可以自動(dòng)停止,服務(wù)器減輕壓力。當(dāng)需要拉取時(shí)時(shí)數(shù)據(jù)信息時(shí),心跳控制就可以控制每隔多少秒去拉。沒有網(wǎng)時(shí),***次去請(qǐng)求服務(wù)器,發(fā)現(xiàn)沒有數(shù)據(jù),心臟起搏器就會(huì)發(fā)出通知。服務(wù)器的聯(lián)絡(luò)不太穩(wěn)定,有網(wǎng)但數(shù)據(jù)回的慢,按照以前的做法就是請(qǐng)求一次,用戶就只能等。心跳控制可以在用戶發(fā)送過去以后,一旦請(qǐng)求超時(shí),沒有數(shù)據(jù)后,就會(huì)立刻讓心跳繼續(xù)請(qǐng)求,請(qǐng)求多次。如沒有網(wǎng)時(shí),會(huì)讓心跳慢慢的減速,嘗試三次或者五次,心跳一旦停止,程序會(huì)自動(dòng)休眠。一旦有網(wǎng)就通知起搏器啟動(dòng)程序,程序會(huì)被自動(dòng)喚醒。
如何來編寫引擎?你對(duì)引擎技術(shù)的研究后續(xù)會(huì)是什么樣子?
如何來編寫引擎?曲毅表示,引擎并沒有那么神秘,它其實(shí)也可以理解成一種框架技術(shù)。前端同學(xué)熟知的jquery、zepto、sea、kissy各自擁有其自身特性,例如jquery豐富的動(dòng)畫特效以及優(yōu)秀的瀏覽器兼容性,再有zepto輕量化最適合移動(dòng)設(shè)備,還有sea.js的javascript模塊加載框架更是將javascript開發(fā)語(yǔ)言上升到了一個(gè)新的高度。每一種框架都是一種設(shè)計(jì)理念,力求用盡量少的代碼去解決更多針對(duì)痛點(diǎn)所對(duì)應(yīng)的實(shí)際問題,并且給出方便使用的API,這雖然是輕量化框架的優(yōu)點(diǎn),但試想他是否能滿足開發(fā)者日益豐富的功能需求呢?例如模塊開發(fā)、動(dòng)態(tài)加載、模板技術(shù)、動(dòng)畫 處理、緩存處理、地理位置、重力感應(yīng)這些細(xì)碎的功能是能通過一個(gè)框架幫我們?nèi)扛愣ǖ?。在開源的世界里沒有什么是不可能的,想要實(shí)現(xiàn)我們的需求就少不了合適的工具。例如YUI、EXT、Anglar.js、Bootstrap這些重量級(jí)框架擁有大一統(tǒng),車同軌,書同文,統(tǒng)一度量衡,而且豐富的插件用于實(shí)現(xiàn)豐富多樣的功能。但是這卻失去了技術(shù)的靈活性,當(dāng)我們習(xí)慣了拼湊和照搬代碼放到項(xiàng)目里的時(shí)候,我們的創(chuàng)造力也被扼殺了。另外一套重量級(jí)框架的學(xué)習(xí)成本不亞于學(xué)習(xí)一門新的編程語(yǔ)言,這樣也增加了使用門檻。由于重量級(jí)框架往往過于臃腫,導(dǎo)致一個(gè)項(xiàng)目出現(xiàn)太多冗余的代碼,因此被開發(fā)者們摒棄,這也是包括YUI這樣的重量級(jí)框架不再更新的主要原因之一。
你對(duì)引擎技術(shù)的研究后續(xù)會(huì)是什么樣子?曲毅表示,對(duì)于未來繼續(xù)研究的是語(yǔ)義方面的抽取,所有引擎的代碼部分是可以通過云平臺(tái)自動(dòng)實(shí)現(xiàn)按需分配, 生成項(xiàng)目的引擎核心。根據(jù)平臺(tái)的配置自動(dòng)實(shí)現(xiàn)配置文件的自動(dòng)生成。這樣在做APP或者demo的時(shí) 候,可以實(shí)現(xiàn)自動(dòng)生成。 探索無(wú)止境,需要很多靈感,很多設(shè)計(jì)靈感就是從動(dòng)物身上得到的,例如在設(shè)計(jì)心跳保持技術(shù)的時(shí)候, 就是觀察青蛙冬眠這個(gè)事情上,抽取總結(jié)心跳加速,減速,停止,蘇醒等。希望能把引擎技術(shù)繼續(xù)往語(yǔ)義方向上突破,可能那個(gè)時(shí)候的編程就變成了問答。
***,曲毅表示,希望能夠在醫(yī)療領(lǐng)域里面看到更多技術(shù)的身影。通過技術(shù)可以能夠把很多傳統(tǒng)的IT方式,最快速的信息化。 HTML5的引擎Crow5,他堅(jiān)持寫了好很多年,希望未來這個(gè)技術(shù)在醫(yī)療領(lǐng)域里面有個(gè)結(jié)果,也希望能給千千萬(wàn)萬(wàn)的老百姓帶來福利,能夠給老百姓看病難解決一些問題。
本文整理自【W(wǎng)OT2015”互聯(lián)網(wǎng)+”時(shí)代大數(shù)據(jù)技術(shù)峰會(huì)】期間, 七樂康高級(jí)技術(shù)總監(jiān)曲毅主題為《互聯(lián)網(wǎng)+醫(yī)療快速融合開發(fā)—引擎實(shí)現(xiàn)多端多產(chǎn)品矩陣開發(fā)》的演講。
講師簡(jiǎn)介
曲毅,從事互聯(lián)網(wǎng)研發(fā)工作11年。曾在高陽(yáng),空中網(wǎng),樂蜂網(wǎng)等互聯(lián)網(wǎng)公司擔(dān)任構(gòu)架師,高級(jí)技術(shù)經(jīng)理,技術(shù)總監(jiān)等職位。近4年專注移動(dòng)互聯(lián)網(wǎng)。多次受邀在中關(guān)村在線,iweb峰會(huì)和GITC全球互聯(lián)網(wǎng)大會(huì)上擔(dān)任嘉賓和專家。