「全遠端」工作建立於信任關係與產值,從科技業轉換「全遠端」工作 2.5 年心得 轉換成遠端工作約莫在後疫情時代左右,也剛好是我自 ASTRO Camp 結訓後拿到第一份 ROR 工作滿一年的時間(有關我成為工程師的歷程,可以參考這篇從佛系到高效學習,「偽」本科生成為工程師之路),至今也大約兩年半左右的時間,當時我想著「遠端工作」比我們想像中來得快速,想親身體驗這種工作模式是否適合我。非常幸運的遇到了目前的老闆,印象很深刻在面試時他直接跟我說,相信「遠端工作」會成為主流,未來勢 2023-12-01 5xcampus 5xcampus remote
冒險村30 - Handle API response with value objects 30 - Handle API response with value objects本篇將介紹撰寫 Rails 的過程中整個重構的過程,比較偏向一個方向,以一個簡單的例子為例,假設我們請求 API 獲取 Active 的 User 列表: 以下的程式是一個很常見的方法,但這段程式碼中,不只打 Api + parser + 過濾 active user,這樣的方式並沒有辦法讓程式碼只負責一件事情。 2021-10-15 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村29 - API - exchange_rate 29 - API - exchange_rate本次範例以 exchangerate-api 為例,需要先註冊信箱並有 key 才可以使用。 Usage以 Net:HTTP Ruby 內建 Library 為例 123456uri = URI('http://example.com/some_path?query=string')Net::HTTP.start(uri.host 2021-10-14 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村28 - Validate Params 28 - Validate Params上篇 最後有看到在 Concern 內又 include ValidateParams,覺得是不錯的整理方式,所以抽出來另外寫一篇,簡單來說其實也是放在 concern folder 內,並另外的取個適合在做什麼的名字而已。並沒有說這是制式的規範,比較像個概念,不管是要額外處理其他的項目,都可以用相同概念變化,同樣放在 Concern 內。 Create c 2021-10-13 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村27 - Concern 27 - Concern最後整理的方式再來講到 Rails 提供功能,主要目的在把相同邏輯 code 整理在一起,需要使用的時候再 include 近來即可使用,有點類似繼承的概念,但又不想要所有東西都繼承起來。或許會發生有一兩個特別的不需要使用到,這時候就可以使用 Concern 來處理。 用途主要在: 用於將程式寫在同一個 concern,提高可讀性也方便重構。 把 model or con 2021-10-12 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村26 - Design Pattern(6) - Form Object 26 - Design Pattern(6) - Form Object相信從名字上就很好知道,主要在處理 form 表單打到後端時,到資料庫的驗證問題,可以先來看一先如果沒有額外拆出來通通寫在 model 內會發生的狀況,不只邏輯會變非常的長,還會發生如果到時候整個重新設計要改邏輯,其他地方也要全部一起重新驗證,甚至是把其他的驗證改壞了。 光看可能一堆的邏輯,想完就忘了,結果要邊改邏輯的時候, 2021-10-11 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村25 - Design Pattern(5) - Service Object 25 - Design Pattern(5) - Service ObjectService 相對於來說是最單純的,主要目的在做一件事情。舉例來說,我的網站可能有跨時區的問題,常常需要換算 time zone 與其他時區之間的計算,所以會需要知道其他時區目前的時間,就以 us_east_time 來舉例: Create app/services folder us_east_time.rb Ad 2021-10-10 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村24 - Design Pattern(4) - Calculator 24 - Design Pattern(4) - CalculatorCalculator 的 design pattern 在平常算是沒看到的,主要是之前專案的規範裡面有看到這樣子的做法,覺得也算滿清楚且實用的。主要目的在偏向計算像是某服務的剩餘使用天數總和,或者是目前的價格,過去五天的價格平均計算。 Create app/services folder service_price_calcul 2021-10-09 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村23 - Design Pattern(3) - Builder 23 - Design Pattern(3) - BuilderBuilder pattern 常常也被叫做 adapter,主要目的是提供一種根據情況 return,給 class 或 instance 的簡單方法,通常被拿來解析文件的內容,可以依照以下的方式來建立一個 builder: Create app/parsers folder base_parser.rb file_parser.r 2021-10-08 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村22 - Design Pattern(2) - Presenter 22 - Design Pattern(2) - PresenterPresenter pattern 的原理是,是 Model-View-Controller(MVC) 架構模式衍生出來的一個部分,主要用於建立使用者的介面接口。 在 MVP 中,Presenter 承擔了 中間人 的功能。在 MVP 中,所有邏輯的部份都會寫在 Presenter 內。事實上,其實與 Decorator 有點相似 2021-10-07 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails