Ben { blogging }

software development and blockchain technology

Zcash基本原理

Zcash算是區塊鏈目前發展中隱私性做的最徹底的系統 本篇文章會先講解Zcash的交易結構,驗證交易是否合法的抽象觀念,盡量解釋怎麼產生一個private transaction,以及礦工驗證private transaction的一些原理。 因為Zcash本身是來自bitcoin專案,故相關內容可能會隱含到UTXO相關知識 交易結構與地址種類 上圖是一個Zcash交易在網路中的抽象概念圖......

SOLID 原則

SOLID原則 讓軟體達到高內聚,低耦合的心法 提高面對需求變更的可維護性和應變能力 Single Responsibility Principle Open-Close Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle Singl......

Ethereum智能合約 101

Ethereum智能合約 101 安裝go-ethereum Mac Windows或其他版本 開啟一個私有鏈開發節點 123456789101112131415geth --devWARN [07-03|13:08:30] No etherbase set and no accounts found as defaultINFO [07-03|13:08:30] Starting peer......

Javascript非同步處理 / Promise / Async Await

Javascript非同步處理 / Promise / Async Await Node.js線程模型 單線程且非同步? 請參閱資料 非同步程式碼之霧:Node.js 的事件迴圈與 EventEmitter Javascript非同步程式與處理Callback Hell 使用setTimeout模擬ajax去server side取得message的資料後 每一個工作依賴於前一個先做完才能往......

Javascript Functional Programming

Functional Programming 解決各自的小問題就解決了大問題 FP的好處 大師們怎麼說? FLOLAC’14 唐鳳 函數設計程式的商業用途 part 1 FLOLAC’14 唐鳳 函數設計程式的商業用途 part 2 FLOLAC’14 唐鳳 函數設計程式的商業用途 part 3 那些 Functional Programming 教我的事 ihower 閃亮亮 Refact......

Javascript Function與封裝

Function與封裝 預設值 ES5 此種做法有個缺點,當param1或param2傳入的值對應的boolean值為false時,此種設定就會失效,如:param1為空字串或false時,就會被轉型成false則程式就會使用1當作預設值而失去本來傳入參數的意義。 123456789function testParams (param1, param2) { param1 = p......

Javascript 物件與繼承

物件與繼承 宣告一個物件 ES5中的物件 宣告一個最簡單的物件 1var a = {} javascript中函式也是一種物件,稱一級函式(First class functions) 意思是任何你對其他類型(Objects, String, Boolean, Numbers)做的事 你也可以對Function做 對於支持函式可如數值一樣指定給變數的語言 我們稱函式在這個......

Javascript 101 ES5/ES6環境設定

Javascript 101 ES5/ES6環境設定 本書透過介紹Javascript ES5語法和ES6語法的差異來快速介紹前端開發的演進 ES5 大部分主流瀏覽器完整支援的語法標準,又稱ECMAScript 5,2009年12月修訂,可以看到主流瀏覽器對ES5的支援都是十分完備的 ES6 又稱ES6 Harmony、ECMAScript 2015、ECMAScript 6,為js實作EC......

Singleton Pattern

Singleton Pattern Singleton Pattern 獨體模式 ...