開發周記(2017/3/26-2017/4/2)

(2017年3月26日)

進行技術分享的同時,決定自己做一個基礎項目,先進行技術可行性研究。

以每周為單位,如實的記錄每天做的事情,遇到的問題以及解題思路。

如果有項目,也可以和我聯系哦。

如果有好的合作,也可以找我哦。

簡書目前已經成為我記錄生活點滴的平臺了,就目前markdown體驗來說,簡書的確是做的最好的。

2017/3/26(周日):

更新nodejs相關全局庫到最新版:
  • nodejs
  • typescript
  • typings
  • angularjs-cli
  • loopback-cli
  • node-gyp
  • bower
  • cordova
安裝nodejs相關全局庫:
  • nodemon
  • vue-cli
初始化一個Typescript項目:
  1. npm init 生成package.json

  2. tsc --init 生成tsconfig.json

  3. bower init 生成bower.json

  4. typescript 2 已經可以不用typings 了,直接用npm install @types/xxx 來安裝typescript 版的 node 模塊

  5. 例如:ctrl + shift + c在當前路徑下打開cmd:
    npm install @types/gl-matrix --save

  6. bower貌似無法像npm一樣安裝typescript的定義文件?

  7. ctrl + shift + p 輸入task runner 選擇一個監控編譯任務,每次.ts文件ctrl+s后,就會自動生成 .js文件

  8. vscode貌似無法實現這種需求:按ctrl+shift+b時,根據當前的文件后綴,調用不同的command,例如當前文件為.html,則調用chrome,如果當前為.ts,就調用tsc。我不確定是否能實現上述需求?

計劃做個仿餓了嗎早餐預定的前后端Demo
以前做個一個頁面,修正一下
用來作為nodejs rest 服務器開發和客戶端開發教程的例子
計劃本開發周完成這個Demo
具體內容,會逐步求精,提煉出來
(2017/3/29注:目前看來希望不大,先搞定服務端吧)

終于備份完另外一臺筆記本的數據,recovery后,
開始下載宇宙無敵的偉大的vs2017社區版

2017/3/27(周一)

很遺憾,vs2017沒有完全下載下來,半夜斷網了!!

今天的計劃:

一直想了解一下JS引擎方面的東西,想做個項目:
前端使用JS
后端使用C++

因此先考察一下各個JS引擎與C++的互相調用流程
然后下午整理nodejs loopback庫以及仿餓了嗎訂餐頁面的數據

因為以前用過一些spidermonkey,因此先從spidermonkey起

上午:

  開始編譯mozila spidermonkey javascript引擎

mozila spidermonkey 的編譯還是有點技巧的,具體的編譯我會拍一段5分鐘左右的視頻。

  測試運行編譯后的js引擎,研究spidermonkey的用法
  突然發現微軟的ChakraCore JS引擎,感覺真是好棒的東西啊。
  編譯方便,微軟的項目都提供VS解決方案,編譯無警告。
  編譯后尺寸還是蠻小的,才5m大小。
  這兩天每天抽點時間來研究一下這個JS引擎的用法以及
  與C++的相互調用。記錄下研究結果,形成分享教程。
  我蠻喜歡微軟技術的,并且現在的微軟越來越開放了,
  JS現在以及未來肯定會占主導地位。

下午:

研究ChakraCore的文檔以及寫幾個測試Demo,發現的確是干凈利落啊!應該是值得研究的好東西!!
接孩子,監督功課,這段時間也是我的主要工作之一
構造looback開發環境,npm相關開發包,為服務器開發做準備
調試html網頁,數據來自服務器
QQ圖片20170327202825.png

餓了嗎早餐只能預定明天開始的早餐,且周六周日節假日等也不接受預定

晚上開始學習vue2一直到半夜,vue2還是非常好的東西

上面的頁面完全是jquery編寫的,大量操作DOM,我希望能使用vue等組件方式改寫原來的頁面。

把整個vue2的開發環境安裝完畢,并運行簡單demo

QQ圖片20170328093247.png

參考文檔 Vue2.0 新手完全填坑攻略——從環境搭建到發布

2017/3/28(周二):

  • google v8引擎的編譯,把目前三大引擎編譯后,了解一下各自的用法以及與C++的互調。
  • loopback服務端user登陸系統實現
  • 仿餓了嗎頁面jquery版的修正

上午:

編譯V8 javascript引擎

原本想編譯v8,通過那個啥,下載速度還是比較慢的。不通過那個啥,則無法下載數據!
還是放到晚上下載吧,睡一覺,應該都能下好。

研究ChakraCore的使用。
微軟的庫的特點就是封裝的好,簡單明了,方便使用。

整個ChakraCore的調用可以使用C風格的JSRT(JavaScript Runtime),也沒多少個API,和spidermonkey的API好像

ChakraCore JSRT參考文檔

原本想截圖演示,發現實在比較麻煩,還是上視頻吧!

包括編譯和SDK包

發現Chakra運行JS還是很流暢,但是如何和C++交互,
JSRT貌似沒有相關API.

stackoverflow提問,歡迎大家回答

how to call C++ function or method via ms chakracore JavaScript engine?

關于視頻制作,我正準備一臺格式化后的電腦
發現視頻是很好東西,把你所學到的記錄下來
慢慢的,只要堅持,就會越來越多
安裝所有的要用到的軟件以及SDK包,好龐大的工程啊
今天早上將VS2017安裝好,還沒來得及試用呢!!

下午:

oauth2.0授權對于剛進行微信服務器開發的人來說具有很大的難度。
由于我現在沒有微信公眾號的開發環境,
因此決定自己實現一個oauth2.0服務器。
用于演示loopback-component-passport的強大功能。

通過google后,發現node-oauth2-server這個庫很不錯,git小星星蠻多的,而且使用起來蠻簡單的。

研究node-oauth2-server的用法

晚上:

調試restful api比較好的工具是postman chrome插件,
可以從google應用商店下載

使用postman測試oauth2服務器

2017/3/29(周三):

上午:

昨天的postman請求,只是了解了user和client的創建,
但是授權,token等不知道如何使用,
具體參數是什么,也不清楚。

node-oauth2-server的文檔很缺乏,
決定花點時間研究一下源碼,看看如何使用。‘
有些庫還是值得花時間研究的。

完成node-oauth2-server的token-handler的源碼閱讀和注釋,
感覺受益非淺啊。
可以學習到bluebird/promisify-any這些優秀的庫的用法。
還有就是深入的了解oatuh2.0的具體流程。
對源碼進行心得注釋,做成文檔分享
QQ圖片20170329105537.png
 token-handler源碼閱讀難度不大,
 authorize-handler難度要大很多。
 但是抱著"紅軍不怕遠征難,萬水千山若等閑"之精神,
  一定可以克服困難,勇往直前!!
QQ圖片20170329111719.png
QQ圖片20170329111831.png

從7:30 -- 11:30,一直研究和注釋源碼,吃飯時間到了,吃飯,休息,然后運動,下午繼續作戰。今天的計劃是將這個庫的源碼注釋出來,并且掌握使用。

下午:

完成authorize-handler.js的注釋,
包括相關聯的其他輔助類以及流程
這個是很關鍵核心的類,代碼量還是有點大
/*根據源碼進行authorize的request參數總結:*/
{
    allowed        :     boolean,
    client_id      :     string,
    client_secret  :    string
    redirect_uri   :     string,   //如果client有該參數,允許request中不設置
    scope          :     string,
    state          :     string,   //allowEmptyState 為true,允許request中不設置
    response_type  :     string,   //具體值:"code" / "token"
    grant_type     :    string,     //具體值:"authorization_code"
    code           :     string
}

/*根據源碼進行Authenticate的request參數:*/
{
    access_token  :  string,
}

/*根據源碼進行token的request參數總結:*/
{
    client_id        :    string,
    client_secret    :    string,
    grant_type    :    string
}
從應用的角度,上述參數足夠了,花這么多時間得到的關鍵應用數據
但是在無文檔的情況下,不從源碼了解,不花這點時間,也無法使用,所以相輔相成啊

2017/4/2備注:上面的描述可能不正確,在解決驗證問題后,我會重新核實,形成正確的版本

**
現在是下午17:15分,我碰到一個問題
原來oauth2.0僅僅是授權服務器
還需要做登陸認證,貌似需要使用openid方式
研究研究,到底是怎么回事,認證和授權還是蠻難的,有點搞暈了。
**

OpenID 和 OAuth 有什么區別?

OpenID關注的是證明,即:“用戶是誰”

OAuth關注的是授權, 即:“用戶能做什么”

晚上:

餐后一小時,去健身房慢跑/快走3km。
每天午餐/晚餐后慢跑/快走3km,一天6公里
堅持了4個多月了,體重從80公斤減到65公斤
效果倍好,現在已經成為一種習慣了!

2017/3/30(周四):

現在是上午7.48分,出發去浙江老家。全程2小時左右
多年沒回去了,走走親戚會會朋友,不亦樂乎。
和多年不見的朋友一起,還是蠻開心的

2017/3/31(周五):

今天去祭祖并且處理一些老宅相關事宜

2017/4/1(周六):

很久沒去母校看看了,現在變化真的巨大:

小學:

小學1.jpg
小學2.jpg
小學3.jpg

初中:

初中1.jpg
初中2.jpg
初中3.jpg

高中:

高中1.jpg
高中2.jpg
高中3.jpg

還缺個大學,找個時間拍幾張照去 哈哈!

2017/4/2(周日):

上午:

編譯世界三大JavaScript引擎,得到SDK包
這三個引擎的編譯,需要將近2小時。
并且產生的中間文件,超過10個G。
現在的軟件,動不動就是以G來衡量的!!

心得:

1. 微軟的Chakra js引擎編譯最容易,提供vs sln文件,得到的結果干凈利落

ms_chakra_js_engine_sdk.png

2. google v8 js引擎,下載是個很大問題,最方便編譯v8引擎的方式是從nodejs源碼進行編譯

google_v8_js_engine_sdk.png

但是只能編譯出靜態鏈接庫,好龐大,8個lib總計1.8G,太可怕了。如何編譯成DLL庫,還是需要研究研究啊!

3. mozila spidermonkey js引擎的編譯,請從gecko-dev項目中進行編譯,這是最簡單明了的方式。如果從mozjs進行編譯,你會發現要解決很多問題!其編譯方式是經典的linux流程.

mozila_spidermonkey_js_engine_sdk.png

最后,js和c++互調的角度來選擇引擎:

  1. ms的chakra無文檔說明如何進行C++互調。如果微軟的chakra能夠解決與C++的互調,就完美了!(2017-8-15更新:chakra core和c/c++協調還是蠻方便的)

  2. google的v8和C++互調很方便,但是目前我還沒法生成動態鏈接庫。目前的靜態庫達到1.8G,太可怕了!!

  3. mozila的spidermonkey目前來說,是我最佳的選擇。其庫大小小于10兆,并且js/c++互調非常方便。而且基于runtime/context架構,很容易運行多個context并行編譯運行。

下午:

午餐后,出去鍛煉一下。目前減肥中。
午餐后3公里。晚餐后3-4公里。
效果還是蠻不錯的,堅持將近5個月了。體重從160斤下降到132斤,健身房效果還不錯,繼續努力!
下午看看是否能搞定服務器認證問題。
fb_oauth2授權.jpg
通過fb賬號登陸local服務器.jpg
不容易啊,注冊facebook賬號,成為開發者。
配置應用數據,碰到問題,查閱資料。
終于成功通過facebook賬號授權登陸本地服務器

之所以用facebook是因為簡單。
如果用微信的話,審批,80端口問題,
localhost調試等等,讓人崩潰。

但是facebook對國人來說用的并不多
并且不那個啥的話,是無法拿到數據的。
因此需要適配到我自己實現的oauth2.0服務器上去
這個還是需要花點時間研究研究!

當前時間為:Sun Apr 02 2017 20:15:53 GMT+0800 (中國標準時間)

本周記錄結束,很充實的一個禮拜。

想做的事情越來越清晰了。

并且我會繼續進行周記,蠻不錯的方式。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,030評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,310評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,951評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,796評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,566評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,055評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,142評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,303評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,799評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,683評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,899評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,409評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,135評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,520評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,757評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,528評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,844評論 2 372

推薦閱讀更多精彩內容