首先證件照:前端
線上小程序:git
本指南目前能夠查看近日火星的天氣,包括氣溫、風速、風向、氣壓等數據,從此將支持更多功能以知足漫遊者們進行星際漫遊的需求。 本指南的火星天氣數據來源於洞察號火星探測器提供的每日天氣數據,因爲地火間惡劣的通信環境,可能會有延遲、數據丟失等問題發生,請漫遊者們 DON'T PANIC. 一切盡在掌握中。程序員
隨着地球宇宙空間探索技術的發展以及地球資源的日漸枯竭,必將有部分地球人繼承大航海時代探險家們的遺志,向廣闊的外太空進發。雖然目前星際航行技術還尚不完善,可是已經有一部分先行者踏出了第一步,爲了向星系漫遊者們提供充分且完善的情報支持,本人特開發了星系漫遊指南這一小程序,該小程序可在任何安裝了微信(WeChat)的手持智能設備上使用,而無需考慮平臺兼容性,界面簡潔大方,功能簡單易用,真正作到了即開即用,即用即走,實乃居家旅行,殺人滅口必備應用。github
這個小程序是源於在微博上看到 NASA 提供了一個查看火星天氣的頁面,因而我就去扒了一下 API,作成這個小程序。代碼很簡單,只是拉取API,展現數據。難點主要在於產品和設計,好在本身瞎看過幾篇關於產品和設計的文章,再加上 dribble 和公司設計師的幫助,算是把這個簡陋的初版給上線了。小程序
小程序的技術比較簡單,我用到最近大火的號稱跨端開發的 Taro 框架,一邊查文檔一邊寫,好在功能簡單,沒遇到什麼難搞的地方,可是因爲一開始沒有規劃好,致使轉 H5 的時候遇到了一些跨端兼容的樣式問題,後面我會修一下這部分的問題,並部署 H5 版本。跨端開發仍是有不少問題要注意的,有太多坑要踩,比當年兼容 IE 麻煩多了,幸虧我這項目還算簡單…… 對微信小程序這種強行製造割裂封閉的環境的行爲,我只能說:始做俑者,其無後乎。不過技術烏托邦歷來都是夢想,我們對此也無能無力,只能提升本身了。後端
爲小程序開發者所周知的是,小程序對 API 地址有嚴格的限制,要求必須爲 HTTPS、指定範圍內的、國內備案的域名方可訪問,可是 NASA 的 API 地址怎麼可能在國內備案呢?因而我只好在 leancloud 的雲引擎上部署了一個用於代理的API,轉發個人請求,可是這樣一來這個低級的應用層的代理就會致使 API 變慢,並且免費版的 leancloud 在沒有請求的時候會自動休眠,這樣一來有時候接口就更慢了,可是往好處想的話,也算模擬了地火間高延遲的通訊環境了(笑)。微信小程序
小程序分享是能夠設置分享圖片的,我調用了 unsplash 提供的免費接口來獲取一張隨機的關於太空的圖片,其實我本意是計劃用這個圖片做爲背景的,可是實際作起來發如今隨機背景圖上很難實現完美的文字顯示效果,因此,最後放棄了這個方案,unsplash 的圖片接口只用於設置分享的圖片了。固然這個接口也存在備案的問題,解決方法跟 NASA 的 API 的同樣的。這個接口還存在的一個問題是 demo 版本每小時只能訪問50 次,超出次數會出錯,可是好在不會反映在前端 UI 上,後期再優化吧(但願 unsplash能經過個人 API 申請)。微信
對於一個程序員來講,這個小程序遇到的最大困難實際上是產品和設計,在這個簡陋的版本出來以前,我還用我淺薄的產品和設計知識作了一個更簡陋的版本,實在是慘不忍睹,沒臉拿出來見人。框架
我在 dribble 上選擇的第一張設計稿是這個:工具
好看是真的好看,並且背景是火星日落的實拍(調整過),可是這個卡片存在一個問題:卡片以外的部分怎麼辦呢?我很難去擴展啊,這個卡片連一屏都不到,很難拿來直接用的(也許是應用場景的問題)。因而我只好換了一個,也就是如今這一版的樣子了。最近在讀《Refactoring UI》這本書,我發現對於開發者而言設計仍是一個比較難的事情,尤爲是配色,雖然市面上有那麼多幫你選擇顏色的工具和網站,可是當真正要作一個產品的時候,仍然很難找到一個舒服的配色。
關於產品我也想了不少,可是又要設計又要 coding,期間想出了不少產品上的設計,而後又不斷推倒,最終去繁就簡,只作了這樣一個簡單的版本出來。我以爲,一個產品迭代中很重要的一點是保持概念的完整性,創建了概念的完整性以後,就不要輕易改動,不然這些改動傳導到設計、開發甚至測試階段都會形成很大的效率上的損耗和工做量的提高,這也是爲何產品常常改需求會致使開發的反感。這一點其實我是受到了《人月神話》的啓發,軟件開發的基本流程是須要嚴格遵照的,敏捷開發的思想和實踐也不能推翻這一原則:產品的概念完整性不能輕易改動。我之前對這一原則的重要性認識不足,最近在各類經驗和教訓中深入體會到這一原則。
最後,我想說,這不是一篇技術文章,文中沒有涉及到什麼技術,主要是分享我在開發這個小程序的過程當中的一些思考,涉及到方方面面吧,但願你們不要說我水,我以爲不管對於我的成長仍是對於工做而言,程序員都不要把本身限定於技術開發這一身份,見多識廣才能更好地跟後端、產品、設計討論出更好地方案嘛,對我的而言,擴寬本身的思路也有助於我的職業道路的發展。更深一步地說,也有助於我的人生價值的實現,擺脫資本主義對本身我的的異化(強行裝 bi)。