最新消息

關於五倍還有更多你可以發掘的,都在這邊說給你知!

May 25 2018

前言 近年 Docker / Kubernetes 已經逐漸成為 DevOps 的主流,不管是開發任何網路服務應用都可能會有使用 Docker 做部署的需要,在此我以近期經手開發且有部署到 Kubernetes + Google Cloud Engine 的專案為例,示範並說明一般 Rails 專案的 Dockerfile 寫法。 專案環境說明 Rails 4.2 Ruby 2.3.5 Application Server: Passenger Web Frontend: Nginx

May 16 2018

FactoryBot(前身為 FactoryGirl)為知名軟體方案解決公司 ThoughtBot 所開發,其用途非常地單純,就是讓使用者可以輕鬆地生產測試用資料。 而使用 FactoryBot 的方式也相當簡單。只要安裝了 Gem 並新增一個 Factory,就可以產生資料。 Factory 長這個樣子 FactoryBot.define do factory :user do first_name "John" last_name "Doe" admin

May 10 2018

為什麼用 Ransack 在網站中提供搜尋、篩選與排序功能在現在的網站中已是基本需求,畢竟大家的耐心,在 Ruby on Rails 中,由於採用了 ActiveRecord 作為 ORM 框架的緣故,要快速的組出 Search Query 並非難事。 基本上只要搭配上 Form Object 與 Query Object 模式,要優雅的完成好維護的搜尋模組還算是容易,但當你想要快速完成搜尋功能的時候,Ransack 絕對是你的好夥伴。 基本使用 Basic Configuration

May 4 2018

從 sketch 一鍵生產 icon-font Icon font 雖然不是什麼新的技術, 不過從這一連串的實作過程可以學到很多東西, 且順便分享一下使用在專案內會遇到的問題。 實作流程可以拆成以下: 使用 sketch 編輯管理所有的 icon。 使用 sketchtool 匯出所有 icon 並為 svg 格式。 使用 grunt 來實作一鍵生產的任務。 使用 grunt-webfont library 將 svg 圖案轉換成 font 和相關的 css。 Grunt...

Apr 20 2018

之前曾經寫過一篇我們公司專案使用敏捷開發的案例,當時我們在預期的時間讓 MVP 的產品能夠上線,讓敏捷開發的價值得底被證明。不過這一次我想從另一個同樣是跑敏捷開發卻跑的不盡理想的專案中,重新探究敏捷開發的價值。 專案的背景是與國外企業的 RD 部門將部分的產品委外給我們開發,產品的規劃、設計由他們主導,我們只要負責好開發的部分,聽起來是非常單純的委外開發。但短短的半年期間,雙方經歷過多次的調整,才終於催生出產品進到使用者測試的階段。 溝通的高牆 敏捷開發宣言裡提到:個人與互動重於流程...

Apr 13 2018

在 Mac 上使用 Nginx + SSL & HTTP/2 做網站開發的設定 1. 安裝 Nginx 推薦使用 Homebrew 在 Mac 上安裝 Nginx: brew install nginx 安裝完成後,就能用 brew services 來幫我們啟動 Nginx: sudo brew services start nginx 2. 設定 Nginx 用慣用的編輯器打開 /usr/local/etc/nginx/nginx.conf,然後確認裡面有 include servers...

Mar 30 2018

Multi-tenant 應用程式:讓人又愛又恨的 Apartment 隨著現在個人化網站的興起,許多網路服務都提供使用者自訂網站的功能。這些功能涵蓋許多面向,包含論壇、部落格與網路個人商店等。典型的自訂網站例子如 Wix 與 Weebly,個人商店則如 Shopmatic 與 Shopify 等等。在這些服務中,使用者可以在某些限度下自定網站的內容,建立屬於自己的資料,而不會與其他使用這個服務的使用者衝突。換句話說,不同的使用者使用同一個服務,但他們的資料卻是各自分離的,這便是最基本的...

Mar 26 2018

關於「五倍紅寶石」 第一次看到這個名字的人,不免會有這個疑問。請放心,本公司「合法立案、正派經營」,不是在賣實體寶石,也不走傳直銷體系,更不是宣揚信仰就可以得到五倍的鑽石。紅寶石,是程式語言 Ruby 的意思。 我們是由數位 Ruby Taiwan 社群成員所成立的社會企業,致力推廣 Ruby 程式語言,我們最終的目的是希望在臺灣可以有越來越多的企業與工程師能了解或採用 Ruby 程式語言做為主要開發工具來實現目標。關於「五倍紅寶石實習」我們相信一件事要圓滿達成,需要各專業領域分工合作才得以...

Mar 23 2018

上一篇文章已經討論過關於 Ruby 中的類別是怎樣運作的,這篇文章則會來討論如何拓展 Ruby 類別。 大部分的人寫 Ruby 有很大的原因是因為 Rails 但是上面像是 has_many 跟 before_action 這些可以直接在類別上做的事情,很明顯不是 Ruby 內建的,到底是怎麼運作的呢? Class Method 我們先來看一段範例 class A def self.my_name_is(str) puts str end my_name_is

Mar 16 2018

動手做 Active Record! 探索 Active Record 最直接的方法可能就是自己動手做一個吧!? 這篇文章將會做一個簡單版的 Active Record ,讀者有興趣的話可以跟著說明一起來做一個。這自製的 Active Record 有部分寫法是直接參考現有 Rails 的 Active Record ,也有部分則是依據我們需要的功能直接寫的程式,整體來說不管在效能、複雜度還是嚴謹性都和 Rails 的 Active Record 差很多,但整個 gem 的製作過...

Mar 9 2018

圖片上傳是一個在網路上隨處可見的功能,但是要做起來還真多細節在裡頭。 比方說: 客戶:「那可以預覽圖片嗎?」 客戶:「可以在上傳之前弄個裁切嗎?」 客戶:「可以一次上傳多張圖嗎?」 客戶:「可以拖曳上傳嗎?」 老闆:「加點要等哦~」 圖片上傳 圖片上傳可以使用套件來完成,我會推薦使用 carrierwave。 細節就跳過不講,總之我會先用產生器來生成一個 uploader。 rails g uploader normal 會生成這樣的檔案: class NormalUploader

Mar 1 2018

這是一個不聰明可能還有點障礙的普通人的撞牆之路, 我想講一些一點都不激勵溫馨人心的部分XD, 當初我想尋找像我這種轉職工程師的過來人的文章時,我看到的感覺大家都很順遂,挫折也只會講到一點點, …所以就由我來寫出我當初想要看到的文章吧,我會努力不讓他太黑暗的(?) 既然是要講我的撞牆之路,那麼容我先簡單的介紹一下我自己。 背景 資管系畢業,BUT 就是這個 BUT,畢業之後的這 n 年幾乎不碰程式可能寧願說自己日文系畢業,所以了不起是張灰階 10% 的白紙。 我了解有些 QA 的工作...

Feb 23 2018

Source https://github.com/aasm/aasm 說明 定義 state and event 首先需要有狀態,以及事件。事件為從 A 狀態轉變到 B 狀態。 aasm do state :sleeping, :initial => true state :running, :cleaning event :run do transitions :from => :sleeping, :to => :running end event...

Feb 13 2018

有在用 terminal 操作的人,肯定都多少會需要『兩個以上 terminal』,如果什麼都不知道的人可能會直接開新視窗: 然後就很有可能會變成這樣: 其實不是不好,只是覺得亂,所以其實可以用 ⌘ + t 開新 tab : 如果你用的是 iTerm2,其實功能也蠻豐富的,但是這不是今天的主題,今天的主題是 tmux tmux 是啥? 根據 tmux 自己的官方 manual , tmux 是個 terminal multiplexer , tmux 其實是個 executable...

Feb 9 2018

React 大補帖 主要介紹一些學 React 後期會用到的技巧,不會寫得太多太深入,寫太多大概看一半就關掉跳出去了,給還不知道的人有一點觀念,網路上資源豐富,有觀念之後要實作就不是難事了。 目錄 setState event binding JSX & createElement Pure Component componentDidCatch React.Fragment React.Children ReactDOM.createPortal Hight Order Componet...