李艷偉 洪運(yùn)維
關(guān)鍵詞:ThinkPHP;生物觀察;小程序;系統(tǒng)設(shè)計(jì)
0引言
任何觀察對(duì)生物多樣性科學(xué)的認(rèn)知都有所貢獻(xiàn)。目前,觀察方式仍相對(duì)有限。為拓展公眾生物觀察方式,幫助用戶以更科學(xué)、高效的方式記錄生命之旅,了解自然,成為公民科學(xué)家,設(shè)計(jì)并實(shí)現(xiàn)一款由公眾、科學(xué)志愿者及生物專家支持的在線共享生物觀察小程序,通過(guò)自然觀察記錄的方式,完成生物多樣性記錄[1]。該小程序可供用戶識(shí)別生物物種,科學(xué)家可借助它開(kāi)展生物多樣性項(xiàng)目與數(shù)據(jù)記錄,教師利用它進(jìn)行生物分類學(xué)教學(xué)和評(píng)估,公眾使用它進(jìn)行生物觀察學(xué)習(xí)。結(jié)合不同用戶對(duì)生物觀察的需求,開(kāi)發(fā)一個(gè)生物觀察小程序具有重要意義。
1功能設(shè)計(jì)
通過(guò)整理不同用戶對(duì)生物觀察小程序的需求,對(duì)功能模塊進(jìn)行設(shè)計(jì)。該小程序須具備生物觀察項(xiàng)目、生物觀察記錄、生物圖鑒、統(tǒng)計(jì)、地圖、發(fā)布等主要功能,如圖1所示。
2開(kāi)發(fā)技術(shù)
2.1ThinkPHP
生物觀察小程序采用ThinkPHP開(kāi)發(fā)服務(wù)端,為小程序端和管理端提供業(yè)務(wù)數(shù)據(jù)接口。ThinkPHP是一個(gè)廣受歡迎的面向?qū)ο蟮拈_(kāi)源PHP框架,以高效、簡(jiǎn)潔和安全為核心的設(shè)計(jì)理念,適用于各種規(guī)模的應(yīng)用開(kāi)發(fā),是為了簡(jiǎn)化企業(yè)級(jí)應(yīng)用和敏捷Web應(yīng)用而開(kāi)發(fā)的框架[2]。它采用MVC(Model—View—Controller)架構(gòu),使代碼清晰易讀,協(xié)作便捷;ThinkPHP框架技術(shù)具有豐富的內(nèi)置類庫(kù)和擴(kuò)展類庫(kù),涵蓋了常用的功能模塊,如驗(yàn)證、過(guò)濾、分頁(yè)、上傳、縮略圖、驗(yàn)證碼、郵件、日志、調(diào)試等[3],內(nèi)置ORM(Object—RelationalMapping)支持,可以方便地調(diào)用和使用,降低開(kāi)發(fā)難度;同時(shí)提供多種緩存機(jī)制,提升應(yīng)用性能。此外,ThinkPHP還具備豐富的擴(kuò)展機(jī)制、安全機(jī)制、強(qiáng)大的路由支持、多樣的庫(kù)支持以及靈活的配置機(jī)制,使得開(kāi)發(fā)人員能夠更快速、更安全地開(kāi)發(fā)出符合需求的應(yīng)用程序。
2.2微信小程序
生物觀察小程序端使用原生微信小程序框架開(kāi)發(fā)。微信小程序框架系統(tǒng)分為兩部分:邏輯層(AppService)和視圖層(View)。微信小程序提供了視圖層描述語(yǔ)言WXML和WXSS,以及基于JavaScript的邏輯層框架,并在視圖層與邏輯層間提供了數(shù)據(jù)傳輸和事件系統(tǒng),讓開(kāi)發(fā)者能夠?qū)W⒂跀?shù)據(jù)與邏輯[4]。小程序開(kāi)發(fā)框架的目標(biāo)是通過(guò)盡可能簡(jiǎn)單、高效的方式體驗(yàn)原生App的服務(wù),只要打開(kāi)微信通過(guò)掃描二維碼的方式就能夠打開(kāi)應(yīng)用[5]。選用小程序作為客戶端,能夠快速傳播分享生物觀察信息。
2.3MySQL
生物觀察小程序端選用MySQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ)。MySQL數(shù)據(jù)庫(kù)具有靈活多變的存儲(chǔ)引擎選擇、高效穩(wěn)定的性能表現(xiàn)、嚴(yán)格的數(shù)據(jù)安全保障以及跨平臺(tái)的兼容性等特點(diǎn),在Web應(yīng)用方面,MySQL是最好的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)用軟件之一[6]。同時(shí),其高度的可靠性、易用性、可擴(kuò)展性,結(jié)合開(kāi)源免費(fèi)的成本效益和豐富的社區(qū)支持,使得MySQL成為眾多開(kāi)發(fā)者的數(shù)據(jù)庫(kù)解決方案。
生物觀察小程序選用ThinkPHP、MySQL組合開(kāi)發(fā)服務(wù)端具備顯著優(yōu)勢(shì):ThinkPHP的靈活框架設(shè)計(jì)和高效開(kāi)發(fā)流程結(jié)合MySQL的穩(wěn)定性能與強(qiáng)大功能,既保證了生物觀察小程序開(kāi)發(fā)的快速性與便捷性,又確保了數(shù)據(jù)的安全性與處理速度,同時(shí)兩者的可擴(kuò)展性使得組合能輕松應(yīng)對(duì)各種規(guī)模的應(yīng)用需求。小程序服務(wù)端不僅包含用戶身份認(rèn)證、數(shù)據(jù)交互、數(shù)據(jù)安全、數(shù)據(jù)緩存等基本功能,還在這些功能上追求更高的性能和效率[7]。為生物觀察小程序提供了一個(gè)開(kāi)發(fā)穩(wěn)定可靠的服務(wù)端。
3數(shù)據(jù)庫(kù)設(shè)計(jì)
根據(jù)生物觀察小程序功能設(shè)計(jì)需求,設(shè)計(jì)了20張數(shù)據(jù)表,以滿足生物觀察項(xiàng)目、生物觀察記錄、生物圖鑒、統(tǒng)計(jì)、地圖、發(fā)布等功能的業(yè)務(wù)數(shù)據(jù)要求。數(shù)據(jù)表清單如表1所示。主要的數(shù)據(jù)表結(jié)構(gòu)如表2、表3、表4、表5、表6所示。
4主要功能實(shí)現(xiàn)
4.1生物圖鑒數(shù)據(jù)
生物觀察小程序建立圖鑒分類數(shù)據(jù)庫(kù),方便用戶學(xué)習(xí)和觀察。在首頁(yè)模塊,點(diǎn)擊圖鑒欄目,用戶可以查看圖鑒分類,點(diǎn)擊對(duì)應(yīng)的圖鑒分類,查看該圖鑒分類下的物種。點(diǎn)擊感興趣的物種,進(jìn)入物種詳情頁(yè)面,可以查看生物名稱、科屬、俗稱、簡(jiǎn)介、分布等信息。同時(shí)支持圖鑒數(shù)據(jù)搜索、糾錯(cuò)、收藏、分享微信好友。圖鑒分類如圖2所示,物種數(shù)據(jù)如圖3所示。
4.2生物觀察記錄
用戶通過(guò)添加照片、視頻完成生物觀察的記錄。需要選擇記錄類型是否為共享還是私有,是否選擇將記錄添加到已加入的生物觀察項(xiàng)目中,是否添加生物觀察記錄鑒定信息,是否為栽培圈養(yǎng)等,并實(shí)時(shí)記錄當(dāng)前生物觀察的地理位置,提交后會(huì)對(duì)以上數(shù)據(jù)進(jìn)行安全檢測(cè)。點(diǎn)擊生物觀察記錄詳情頁(yè)面,可查看當(dāng)前記錄的所在地圖位置、地理坐標(biāo)、所屬項(xiàng)目、記錄地點(diǎn)、觀察時(shí)間等,還可以對(duì)記錄進(jìn)行收藏、評(píng)論和生物鑒定。管理用戶生物觀察記錄數(shù)據(jù)。生物觀察記錄功能如圖4、圖5所示。
4.3生物觀察項(xiàng)目
用戶能夠加入/發(fā)起自己喜歡的生物觀察項(xiàng)目。項(xiàng)目可根據(jù)時(shí)間段、地點(diǎn)或內(nèi)容等進(jìn)行設(shè)立,例如潮間帶生物、珊瑚、菜市場(chǎng)魚(yú)類等。用戶可以和項(xiàng)目成員分享記錄。項(xiàng)目的成立有兩種方式:一是通過(guò)地圖選擇,圈定地理范圍和項(xiàng)目時(shí)間,在此范圍內(nèi)的觀察記錄都將進(jìn)入該項(xiàng)目;二是通過(guò)掃碼加入項(xiàng)目。項(xiàng)目類型包括團(tuán)隊(duì)、共享和私有三種。進(jìn)入項(xiàng)目后,用戶可以查看項(xiàng)目位置、成員、記錄、統(tǒng)計(jì)數(shù)據(jù)、鑒定匯總分類等信息。同一項(xiàng)目可以創(chuàng)建多個(gè)隊(duì)伍,每個(gè)隊(duì)伍由不同用戶組成。生物觀察項(xiàng)目由創(chuàng)建者進(jìn)行管理。生物觀察項(xiàng)目功能如圖6、圖7所示。
4.4發(fā)現(xiàn)
點(diǎn)擊小程序底部欄“發(fā)布”,用戶可以查看或加入共享生物觀察項(xiàng)目;查看共享生物觀察記錄;查看或評(píng)論用戶發(fā)布的記錄動(dòng)態(tài);可對(duì)共享的記錄、動(dòng)態(tài)進(jìn)行評(píng)論、收藏和搜索、消息提示。發(fā)現(xiàn)功能如圖8所示。
4.5統(tǒng)計(jì)
點(diǎn)擊小程序底部欄“統(tǒng)計(jì)”,可以從時(shí)間上、鑒定類別、記錄上查看當(dāng)前用戶的生物觀察記錄數(shù)據(jù)。統(tǒng)計(jì)功能如圖9所示。
4.6個(gè)人中心(我的)
在個(gè)人中心,用戶可以管理個(gè)人信息和認(rèn)證信息;通過(guò)掃一掃二維碼加入生物觀察項(xiàng)目;管理自己發(fā)布的動(dòng)態(tài);管理收藏的動(dòng)態(tài)和記錄信息;可以對(duì)小程序的使用進(jìn)行意見(jiàn)反饋;管理微信授權(quán)信息接口。
小程序全局設(shè)置登錄態(tài)檢測(cè),如用戶未登錄,需要用戶閱讀并同意生物觀察小程序服務(wù)協(xié)議和隱私協(xié)議,同意協(xié)議后,授權(quán)獲取用戶微信手機(jī)號(hào),調(diào)用微信小程序自帶的開(kāi)放接口獲取用戶的微信頭像、昵稱等信息,完成登錄。個(gè)人中心功能如圖10所示。
5結(jié)束語(yǔ)
結(jié)合公眾、科學(xué)志愿者和生物專家對(duì)生物觀察的需求,采用ThinkPHP框架、微信小程序框架以及MySQL數(shù)據(jù)庫(kù)等開(kāi)發(fā)技術(shù),設(shè)計(jì)并開(kāi)發(fā)了生物觀察小程序。該小程序?qū)崿F(xiàn)了生物圖鑒、生物觀察記錄、生物觀察項(xiàng)目以及統(tǒng)計(jì)等功能。
小程序憑借其簡(jiǎn)單易用的特點(diǎn),傳播速度迅速。微信小程序提供的行為數(shù)據(jù)等分析工具,使專業(yè)機(jī)構(gòu)可以更好地了解用戶需求,提供更優(yōu)質(zhì)的服務(wù)[8]。該小程序有效地幫助用戶觀察和了解生物多樣性,具有較高的實(shí)用價(jià)值。