0%

前情提要

筆者在工作環境中,有一個小週邊系統是給分行人員使用,其中有一段是需要透過Barcode Scanner掃描其帳單中的條碼,作為Form表單送出時的一個欄位,筆者看同事一開始的做法是在畫面上放一個Input,其游標須Focus在該Input上,然後按下Barcode Scanner去掃描條碼。

上述情境會延伸一些問題,使用者將游標移至其他表單元件或者系統上會有Toast訊息,使用者可能會點擊其Toast訊息關閉,上述零零總總情境後,若要掃描條碼,必須得將游標自動Focus回條碼所屬的Input上,極為困難,要寫很多code去做到;若沒有自動將游標Focus回對應的Input上,使用者會覺得困擾,每次掃描前都要移動滑鼠,將游標移回條碼所屬的Input上,此篇內容就是要解決上述遇到的問題。

閱讀全文 »

前情提要

筆者這邊主要在Windows環境中安裝好Rust開發環境後,可以透過rustc —version,可以順利顯示出Rust版本號,cargo new也沒問題,但cargo run時,會出現錯誤訊息:

linking with link.exe failed: exit code: 1181

找了一下,是少安裝C++ build tools,其實Rust官方網站上的Install頁面就有提醒,除了安裝檔之外,也要記得安裝C++build tools

閱讀全文 »

前情提要

筆者這邊想要在工作環境中安裝Rust開發環境,以利撰寫部落格會使用到的Demo Project,因此想要在工作環境Windows環境中安裝其開發環境,以Rust官方網站上面的教學,基本上只要下載好Installexe檔案,應該就會搞定。

但由於筆者環境有防火牆設定,需要透過Proxy才能往外連線並下載,就像筆者跟同事們都會設定.npmrc或者vscode中的proxy設定以及.gitconfig皆會設定其http_proxy的連結,但這種按下exe檔案這種安裝方式,筆者還真的第一次遇到,這篇就照著Stackoverflow的教學,透過Powershell設定其http_proxy設定後,從Powershell中執行其安裝檔。

閱讀全文 »

前情提要

來到「猜謎遊戲」的最終篇章了,前面兩篇[Rust]教學系列-猜謎遊戲:取得使用者輸入值[Rust]教學系列-猜謎遊戲:取亂數,我們已經把前置作業該做的都做完了,最終篇就是重頭戲中的重頭戲,將取得的使用者輸入值與隨機產生的亂數做一個比較,若一樣則比賽結束,若不一致則可以讓使用者繼續猜,跟著筆者一起實作吧。

筆者先預告一下此篇主要是會使用到Rust的重要方法match以及若使用者輸入值與神秘數字不一樣時,可以讓使用者一直猜下去的loop技巧。

閱讀全文 »

前情提要

筆者就照著官方教學文件,繼續往下走了,來到撰寫猜謎遊戲的環節,主要是做一個command line互動遊戲,因為尚未講解到語法、資料型別等,因此這個猜謎遊戲就當作初試Rust的撰寫體驗,不了解的部份,由後面章節會繼續介紹其語法、資料型別等。官方文件的策略是先由一個簡單的小遊戲,來入門Rust的程式語法、思考邏輯、Coding Style等。

閱讀全文 »

前情提要

上篇介紹到Rust的特色之一:生產力部份,每個程式語言都要有一個套件管理工具,方便管理相依套件,這篇的主角:Cargo,如同npm對於nodejsnuget對於.net等等,上篇安裝開發環境:rustup時已經安裝好Cargo了,只要使用它即可,上篇介紹Hello World部份是手動的方式建立檔案,透過Cargo可以建立專案,管理相依性套件,跟著筆者實作了。

閱讀全文 »

前情提要

Rust程式語言的介紹

讓每個人都能打造出可靠又高效軟體的程式語言

足夠吸引人了吧,筆者打算花下班與假日時間,持續半年,執行學會一種新的程式語言挑戰,就挑最近火紅的Rust程式語言作為挑戰的對象,Rust程式語言特色如下:

  • 高效能:編譯型程式語言,有好的不執行的函式庫及垃圾回收機制
  • 可靠性:完整且嚴謹的型別系統,在編譯時期就能找到錯誤並改善
  • 生產力:有完整的生態系,如教學文件、套件管理、建置工具等
閱讀全文 »

前情提要

筆者的慣例,使用ORM框架時,會先找一下可以擴充的點,畢竟SelectInsertUpdate這種用到時,查看一下官方文件是可以馬上得到答案的,且用法都大同小異,擴充點好不好,適不適合自己的使用情境,對筆者來說選擇要不要使用這個ORM框架的主要考量原因之一,當然會看一下網路上大神們的文章,效能比較表,筆者會因為語法簡單好用,擴充點又符合自己的使用情境,犧牲一下效能,對筆者來說是ok的,因為比較效能的時間單位都是ns級的,基本上不要差太多,是沒什麼感覺的。這篇主要是講解SqlSugar套件,在操作共同欄位,像CreatedAtCreatedByUpdatedAtUpdatedBy這種,找到對應的擴充點,做統一處理。

閱讀全文 »

前情提要

前幾篇介紹完SqlSugar的應用後,這篇筆者要來實作SqlSugarAOP機制了,基本上就是Sql執行前後,或者發生Error後的事件,應有盡有,剛好符合筆者公司的要求,每個執行的作業出錯時要記錄下來,尤其是出錯時,最好能記錄到完整的SQL指令,釐清問題上更加有幫助,筆者介紹的幾個ORM框架通常都有類似的解決方案,表示這是大家都需要的功能

閱讀全文 »