2017年1月25日 星期三

[ Elixir ] Enum, Stream, Flow 有什麼不一樣?



最近看到一篇 Blog ,內容是如何調教 Flow.from_enumerable, 與 Flow.partition 的 :stages 與 :max_demand 參數。

第一篇是版主探討他怎麼用 flow 打造他期望的工作模型。
TUNING ELIXIR GENSTAGE/FLOW PIPELINE PROCESSING

第二篇是版主應回應的要求,教大家怎麼建立第一篇使用的工具。
MEASURING AND VISUALIZING GENSTAGE/FLOW WITH GNUPLOT

該版主用
1. File 作為紀錄時間搓的工具,並以 stage_work_name.log 為檔名。
2. gnuplot 讀取 log 並繪圖。

這種作法很好上手,大概一個小時內你就可以套在自己想要檢測的 flow 上了,其他需要尋找資料流卡點的,也可以套用這手法。

如何 log 與 製作圖表的 blog 包含 elixir code ,可以直接拿來用。所以本文不重複這塊。



推薦大家花一個小時左右的時間,把 log 與圖表那篇實作起來。
圖表工具與檢視併發執行情況的小套路講完了。

回到正題。其實是要嘗試呈現下圖描述的東西。



Elixir 不同的 Collection 的資料流,到底是怎麼一回事呢?上述的行為,跑起來真實樣貌是長怎樣的?

2016年6月11日 星期六

關於藍圖

2016/6/12

以一個程式開發者的角色為起點,建立連結與減少 gap 為使命。這是技術上的說法。接地氣詞彙則是以己之貢獻解決他人的問題。

這半年累積的主要詞彙有, 微服務、 DevOps 、 Growth Hack 、 成年人 、 CI/CD 、 阿德勒心理學。再濃縮一次的詞彙,效率、餘裕、連結、 gap 。

瓶頸處即成長的關鍵點,發現問題即是發現瓶頸處,針對瓶頸處解決問題,才能真正帶來成長/解決問題,類似在提昇程式效能時,會先統計出最耗時又經常被執行的功能,提昇這一個功能的效率,整體效能就提高不少了。所以要成長,要會找到關鍵的瓶頸處。

怎麼找到瓶頸?就是觀察,就是蒐集數據、取得系統的回饋,有了資訊才容易識別出瓶頸處,發現了問題才有著力點進行改善,然後才有成長。身為技術職,這邊就有著力點。 DevOps 面向的是 如何 減少 gap , Growth Hack 面向的是 建立連結(使用者的信心),都靠著數位工具作為輔助。一次又一次迭代的持續改善,獲得成長。

是說要怎麼累積以上的經驗值呢?若公司的產品長不大怎麼辦?或著是,要是使用者變多了,要怎麼規劃系統的成長?微服務是個可選的起點。打造一個小應用,嘗試微服務的架構方式,然後一步步埋入  CI/CD, DevOps , Growth Hack  的實做經驗。

成年人法则, show , don't tell. 走進一次又一次的的迭代吧。 2016/6/12

2015年12月19日 星期六

TDD 課程整理

在今年五月的三個周六,上了 91 的 TDD 課程。近日回顧一下各個 Lab 的內容。

首先,我們面對的案子有兩種,舊的與新的。新的案子我們可以從TDD/BDD起步。那舊的怎麼辦?怎麼加入自動測試來驗證需求?

2015年3月3日 星期二

nodejs

@2015/3/3

開始玩 nodejs 的 coding, 現在只是照著書上實作一個 Blog 。 用 mongoDB 作資料的儲存。
目前完成的步驟為

1. 安裝 nodejs , mongodb
2. Init 一個 web site的目錄
3. 修改 web的 start page
4. 修改 package.json ,增加要用到的 js 套件
5. 學 ejs 的使用的方法
6. 頁面布局
7. 寫 註冊、登入 機制的程式碼 ,與 mongoDB有互動了。

2015年2月7日 星期六

My Stack

更新一下今年要學會的技能

Docker

jenkins ( CI )
+ github
+ git
+ msbuild
+ nUnit

2014年9月10日 星期三

MEAN stack

MEAN stack 是指利用 JavaScript 堆疊起來的開發框架。
MongoDB,  Express, AngularJS, Node.js  , 而且都還是 Open Source 的 Project