node gRPC *.proto 生成 js/ts

最近項目增加node的bff(Backends For Frontends)層,后端用了golang&gRPC。node端使用了nestjs框架,為了ts能夠識別proto定義的接口,希望通過proto生成gRPC接口文件,期間繞了不少彎路,簡單分享下。

首先組內同學找到這個庫
https://github.com/agreatfool/grpc_tools_node_protoc_ts
按照示例,命令如下,發現不好用

查看更多...

seajs amd 改造

說起來seajs,早些年接觸前端的同學應該都有所了解,經常被我們拿來和requirejs對比,而今,webpack等構建工具盛行,這些加載器的使用逐漸退出了我們的視野。

但是,目前手上就有個在用webpack的項目遇到了一些問題——不能在構建階段拿到或者預期到即將加載的代碼有哪些,換句話說頁面框架的構建與業務代碼是完全分離的,甚至不是同一個團隊寫的。于是想到了早期的模塊化方案,我們知道,webpack支持打包umd、commonjs2、amd等形式的輸出物,但是,在web端我們的選擇只有amd。

查看更多...

golang函數究竟是值傳遞還是引用傳遞?

接上文,踩完php的坑,又遇到golang,golang和之前提到過的Java、JavaScript類似。

在golang中只存在值傳遞(要么是該值的副本,要么是指針的副本),不存在引用傳遞。之所以對于引用類型的傳遞可以修改原內容數據,是因為在底層默認使用該引用類型的指針進行傳遞,但是也是使用指針的副本,依舊是值傳遞。

查看更多...

php函數之值傳遞&引用傳遞

由于工作忙碌,博客已經斷更整一年,最近終于抽出點時間,來分享一些近一年經歷中印象深刻的經歷。

大概三年前,曾經整理過這樣兩篇文章《JavaScript函數究竟是值傳遞還是引用傳遞?》、《Java方法究竟是值傳遞還是引用傳遞?》,不為別的,只因為在工作中有人遇到類似問題,查閱資料后加以整理。巧的是,前陣子做php的同事又造出了相似的bug,不同的是,php并不像前兩者一切皆值傳遞。

在php的世界里,存在傳值和傳引用兩種方式

查看更多...

使用mpvue開發小程序——vuex、router的支持

繼續前面話題,mpvue提供了vue的語法編譯為小程序的能力,但語法上局限實在有點多。

當然,其根因還是小程序官方的限制,以致于我們vue中常用vuex、router都支持有限,截止發文時間,mpvue對vuex全局store的支持也有所提升,目前可以說基本滿足需求,這里不再贅述。

使用上,vuex和以往類似,不同的是,小程序以多頁形式渲染,故每個頁面都需要創建vue實例并引入相應的store模塊 查看更多...

使用mpvue開發小程序——axios發送ajax請求

依托于熱門的小程序,美團最近開源的mpvue一下子火了,剛好項目上有需求想試用下mpvue,發現眾多限制下,連目前常用的ajax請求庫axios都不能正常構建。

默認添加了axios,你可能得到如下錯誤

thirdScriptError 
 sdk uncaught third Error 
 util.inherits is not a function 
 TypeError: util.inherits is not a function

因為項目為開發平臺,不少用戶重度依賴axios,一開始建議小伙伴嘗試寫adapter支持小程序請求,小伙伴反饋了如上錯誤,并建議使用社區宣傳比較火熱的fly。fly其實api和axios幾乎一致,但還是有差異,未防止核心庫變更對平臺客戶帶來不便,決定展開axios代碼一探究竟。 查看更多...

在 Spring(Spring Boot) 中應用 Kotlin

Kotlin 已悄然成為 Spring 繼支持 Groovy 后的第二個 JVM 語言。持續關注 Java 的同時,也順手在 Spring 上體驗了一把。

本例簡單記錄 Kotlin 的初始化以及配置文件的輸出,建立在熟悉 Spring、Spring Boot 及 Kotlin 的基礎上,如對 Spring 框架或 Kotlin 語言比較陌生,建議先行了解。

1、創建項目

springboot-1
查看更多...

Webpack4.0.0(4.0.1)正式發布,最高提速98%

最近兩天前端界有個熱門話題,就是 webpack 發布了4.0.0版本,隨之又發布了4.0.1修復了4.0.0發現的bug,那么 webpack 4的發布到底有什么大改變呢?

詳見官方發布日志:

https://github.com/webpack/webpack/releases/tag/v4.0.0
https://github.com/webpack/webpack/releases/tag/v4.0.1

至于升級嘛,經測試,在 webpack 3.x基礎上升級至 webpack 4,首先出現的就是 UglifyJsPlugin、CommonsChunkPlugin 兩個插件的廢棄,改為內置提供,其余常用 loader(如file-loader、url-loader等)也都提供了想對應的兼容版本,升級 webpack 4后移除 UglifyJsPlugin 和 CommonsChunkPlugin 兩插件(以 optimization 配置取代),再逐一升級其余 loader,基本滿足需求。 查看更多...

Java命令行信息國際化輸出造成的困擾及解決

最近使用一個第三方開源程序,maven的項目,啟動前會跑一遍測試用例,以保障程序正確性,可在本地啟動的時候發現一直通不過,重復clean install多次無果。

本地-X打開maven日志,發現某個用例是根據java底層拋出的錯誤信息做比較,但由于是國外框架,用例都采用英文,而本地由于國際化原因,錯誤信息是中文,故此類直接拿java底層錯誤信息做對比的用例都會失敗。

解決方法 查看更多...

iOS下AJAX請求遇HTTP狀態碼401持續pending問題解決

最近項目上遇到這樣一個問題,iOS 系統,在 AJAX 請求發出后,因授權原因返回 401,發現一直 pending,查了很久發現 SO 上有類似提問。

主要原因是,當 AJAX 返回帶 WWW-Authenticate 信息的 401 響應時,Web 容器 (瀏覽器或 WebView )會嘗試彈出彈出框讓你輸入認證信息。但是在 iOS 平臺,系統的某些默認行為會導致請求沒有被發送到應用層。因此,AJAX請求會處于 pending 狀態。

因為項目并不是基于 HTTP 認證的,而服務端采用的 IIS,默認開啟了相關配置,最終為解決問題,選擇了刪除響應頭中所有的 WWW-Authenticate 信息。 查看更多...

黑龙江22选5开奖