80-20法則是什麼?
不曉得大家有沒有聽過這個法則?應該或多或少有聽過,那我自己對80-20法則有這樣的解釋方式:
80%的產出,來自於20%的時間/心力。
更進一步說80、20對我來說只是虛數,其實可以翻譯成:
大部分的產出,來自於少部分的時間/心力。
或是反過來說:
大部分的時間,花在無產出的事情上。
不曉得大家有沒有聽過這個法則?應該或多或少有聽過,那我自己對80-20法則有這樣的解釋方式:
80%的產出,來自於20%的時間/心力。
更進一步說80、20對我來說只是虛數,其實可以翻譯成:
大部分的產出,來自於少部分的時間/心力。
或是反過來說:
大部分的時間,花在無產出的事情上。
每個人大學快畢業的時候,都會面臨選擇,是繼續念研究所,還是離開學校就業、或是趁年輕還有精力時圓夢?大四時,我跟隨同學的腳步,送出了推甄的申請,後來也幸運錄取了,那是還不錯的系所,所以我當時相當開心。
只是這樣的開心並沒有持續太久,在愉悅的心情沉澱下來後,我開始進行仔細地的自我評估,考慮了各種面向,包含自己的個性和能力、念研究所的目的與收穫、以及未來職涯等等,終於在經歷一段掙扎後,決心放棄錄取資格。
文章開始前稍微補充一下個人背景,給大家一個參考依據,簡單來說,我大學就讀的是資訊相關科系,算是前段的大學,並且成績維持在中上。
在反思的過程中,我透過不斷詢問自己的方式,來評估自己是否要唸研究所,像是:是因為比較好找工作嗎?是因為起薪比較高?或是我對研究有熱誠?還是只是大家都在唸我也去唸一下好了?
還在念大學的時候,我曾經去一家剛成立一年的小新創公司實習,職位是實習網頁工程師。
那這家公司有多小呢?我剛進去的時候,包含老闆,員工總數只有4人,2個共同創辦人及2個(實習)工程師,除了員工人數少以外,公司的資本額更是只有一百萬。
坊間或教科書上有一些量化的方法可以用來衡量可維護性。不過我想要用比較含糊點的方式來表示這個「可維護性」這個概念。
就一個運行良好且成熟的系統來說,日常的維護並不會有大幅度的變更或修改程式碼的需求,通常只是一些小調整,或是bug的修正。
但是對於還在成長中的系統來說,除了要修復bug以外,還要配合公司、業務發展,大幅度調整現有功能,修改範圍會橫跨多個模組或程式、甚至跨越不同系統,而基於系統現有架構上擴充功能也很常見(調整架構也有機會發生)。
本篇為PHP系列
兩個問號 ??
及問號冒號 ?:
的差別其實不大,兩者在使用方式上的差異,主要在於什麼時候回傳第二個變數。
要聊 ??
跟 ?:
不得不先提一下三元運算子 (ternary),三元運算子的用法是像這樣:
$a ? $a : $b;
MySQL跟MariaDB常用的時間類型有DATATIME
及TIMESTAMP
,在比較新版本的MySQL中,是支援在這些類型中儲存毫秒(10^-3
秒)、微秒(10^-6
秒)的。
透過phpMyAdmin介面,可以設定DATATIME及TIMESTAMP的長度(精準度),長度的值域為0~6
,長度的意思是儲存到小數點下第n位,也就是10^-n
。
或是透過SQL的方式建立或修改時間類型的欄位時,也可以加上長度的設定。
CREATE TABLE `test` (
`created_at` DATETIME(3) NULL ,
`updated_at` TIMESTAMP(6) NULL
)
舉例來說,TIMESTAMP
設定為長度設定為6的話,會得到TIMESTAMP(6)
的類型,代表在資料庫中,此欄位最多可以儲存到微秒,像是:
Photo by Jordan Harrison on Unsplash
在提到網頁開發的時候,常常會提到前端工程師跟後端工程師。前端聽起來也許比較好理解,大概就像是前台、使用者介面吧?多少可以想像的到。但後端呢?後面是指哪邊?螢幕的後面嗎?
當然不是XD
為了釐清大家的一些疑惑,本篇會聊聊前、後端的區別,並針對後端的部分多補充一些資訊,希望對大家有幫助。
RabbitMQ支援四種Exchange,Direct、Fanout、Topic、Headers。本篇主要想聊聊Topic Exchange以及Routing Key、Binding Key用法。
全部依賴都應該要被注入嗎?如果不、怎樣的依賴需要被注入?
當代的程式開發框架,通常可以找到很方便的依賴注入、控制反轉容器工具,像PHP Laravel Framework就內建了很方便的IoC Container,讓開發者可以輕鬆地處理類別的依賴注入。但有時候太方便反而會造成濫用,或是有怪味道的產生。