2021年11月27日

寫給 PHP 新手的物件導向教學(三):封裝,可見度與繼承

在上一回《寫給 PHP 新手的物件導向教學(二):建構子、方法及屬性》中,

我們說明了類別的建構子、方法跟屬性,這一回我們會來聊聊物件的封裝、可見度,以及一點點的繼承。

2021年11月22日

PHP Laravel 小知識:hasOne 跟 belongsTo 差別在哪裡?

hasOne 跟 belongsTo 都是 Laravel Eloquent 所提供的方法,負責處理一對一的關係。

那一樣都是一對一,這兩個用法的差別在哪裡呢?簡單來說是這樣:

  • hasOne 指的是「擁有一個東西」,我擁有一個東西,我在它的身上貼上了我的名字。
  • belongsTo 指的是「屬於某個人」,我屬於別人,我被貼上了他的名字。

2021年11月20日

寫給 PHP 新手的物件導向教學(二):建構子、方法及屬性

 

在上一回《寫給 PHP 新手的物件導向教學(一):建立類別與物件》中

我們講到了如何建立類別,

那這一回我們會接續著講解一個重要的概念:建構子,

不過在進入建構子之前,我想優先提一下「方法」及「屬性」。

2021年11月17日

寫給 PHP 新手的物件導向教學(一):建立類別與物件

前言

PHP 過去在物件導向的實現上有許多的缺陷以及令人詬病的地方,

然而自從 2015 年推出了 PHP 7 、以及 2020 年推出 PHP 8 以後,

PHP 已經擺脫了過去的陰霾,不但效能提升許多,也成為了一個相當完整可靠的物件導向程式語言。

 

經過多年的發展,目前許多流行的 PHP 框架遵循著物件導向的概念,

這些框架充分地利用 PHP 在 OOP 上的特性,設計出許多優良的機制,

讓工程師們可以更快速地開發出符合市場需求的系統。

 

本系列希望能夠一步一步講解物件導向的概念,

希望讀者最後能夠理解複雜的物件導向程式碼,

並可以自行設計出良好的程式。

 

2021年11月14日

面試心得:軟體工程師如何挑選適合自己的公司?

俗話說的好,面試的時候,不只是公司在挑選你,你也在挑選公司。

有些人比較沒自信,面試的時候會覺得有工作就好,而不敢對公司太挑剔,但其實一份工作短則半年,長則三至五年,甚至十年,而且每天都要在辦公室花上八個小時以上,對於一個要待這麼久的地方,挑錯了會相當痛苦,再說每次換工作的成本並不低,所以選工作的時候應該要挑剔一點才好。

只是說該怎麼挑比較好?又有哪些點應該要注意的呢?以下我想分享一些看法,讓大家在挑選工作的時候可以參考看看~

2021年11月6日

設計模式 | 單例模式 Singleton Pattern 介紹,以 PHP 程式重構為例

大家寫程式的時候,有沒有遇過這樣的情況呢?

有某一種資源,經常被使用,而且每次使用前都要做初始化,比如說資料庫,每次使用前都要設定連線;或是,有些資源如果被重複使用,會造成一些問題,例如同樣以資料庫為例,多次的連線,會影響效能。

如果大家也有這樣的困擾,那本篇將要介紹的單例模式 Singleton Pattern 就是被設計出來解決這個問題的,有興趣的讀者可以繼續往下閱讀哦。

2021年10月25日

變數命名好困難!6個程式碼命名建議,撰寫會說話的程式碼!

好的變數命名可以提升程式碼的可讀性,也能減少錯誤的發生,

最主要的宗旨是,讓看的人可以更容易理解程式碼內容,

所以並沒有標準的做法,只要大家容易理解即可,最重要的是取得團隊共識。

 

以下歸納一些命名方式,第 6 點有一些命名靈感的來源,可以往下看。這些建議沒有對錯的問題,只是個人習慣,提供給大家參考一下。

2021年10月22日

PHP 節省 Array 記憶體用量的神秘機制:Copy on write

本篇為PHP系列。

Copy-on-write 是一種用來的節省記憶體用量的機制,

在很多地方都有使用到,而 PHP 的 Array 也有用到這樣的機制,

不過在開始正式討論 Array Copy-on-write 之前,我們先來稍微看一下 PHP Array 的複製機制。

2021年8月29日

如何自學寫程式,從零開始的開發之路 - 初階篇

本篇是《程式開發之路》系列文

邁向職業之路

每個人開始寫程式的理由不太一樣,有些人是因為科系,有些人是因為工作,而有些人則是因為個人興趣。

當我們認真學習程式一段時間後,大概就可以知道自己適不適合寫程式了。也許會發現,自己其實對寫程式沒有擁有自己想像中的熱誠,或者是發現,自己其實並不擅長寫程式。

而這樣的認知,並不是一件壞事。人們如果可以更早的了解自己的能力跟興趣,對未來長期的發展是有很大助益的。

相反地,那些可以撐過程式開發入門階段的人,願意花很多時間跟程式相處,不排斥學習相關知識的人,或多或少代表未來這些人會想要朝著這個方向前進,更明確的說,作為一份職業。

2021年8月20日

如何自學寫程式,從零開始的開發之路 - 入門篇 | 建立寫程式的基礎

本篇是《程式開發之路》系列文

第一步

學習電腦程式語言的第一步是:挑一個常見的程式語言。

可以參考TIOBE的熱門程式語言指數

在學校,因為目標比較不明確,教授也不希望這麼快讓學生定型,所以通常會使用比較通用的語言來做教學,例如C、C++或Java。

但在職場中,不同的領域會有不同的慣用語言。例如網頁開發,前端就是JavaScript、後端會是PHP、Java、Go等等;資料分析相關,會選擇用R、Python等;APP是Java、Swift等;韌體硬體相關多半會是C、C++等。

學習一個程式語言,其實是學習跟電腦的「溝通方式」,我們利用程式語言來指揮、操作電腦,來完成我們的需求。現在的電腦架構大致上已經固定了,如果用學習的角度來看,學習哪一個語言並不是那麼重要,重要的是學習觀念。用比較漂亮的話來說,只要有任何一個語言的扎實基礎,跳到另一個語言都是相對容易的。

2021年8月7日

為什麼規格總是不清楚?為什麼談需求那麼難?有沒有可能改善?

需求方常常一句:「我想要做一個簡單購物車功能。」就把事情丟過來了。

開發者團隊只能默默地深呼吸,在心裡翻個小白眼,接著親切的詢問對方:「請問你他媽,呃,抱歉,請問你想像中的購物車是什麼樣子呢?」