李艷偉 洪運(yùn)維



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