精選

園丁的話

歡迎到叡揚第一次嘗試的部落格分享,這也是我們從鼓勵內部分享後邁出的另一大步。

不同於公司公開的官方文件或是網頁資料,這些部落格來自公司現在與過去的員工的個人意見 ── 它們表達我們在工作中智慧上的領悟與挫折,或是情感上的喜樂與哀愁。

繼續閱讀 “園丁的話”

【Design Patterns】Decorator 實作與應用

| 前言

前陣子開發了三支產 Word 文件的功能,一開始看了一下範本跟資料,很直覺的把整份文件作為一個範本,再把資料塞進該範本產出最後的文件,不過後來使用者需求調整了好幾次,所以又在這三支功能根據各自需求加上頁碼、空白頁、封面、合併內容 … 等,經歷這幾次的調整後,不知道下一次使用者又要加什麼,有鑑於此,應該要想個好辦法替需求變動留一點彈性,這時就該派上 Decorator Pattern 來預留一下後路。

繼續閱讀 “【Design Patterns】Decorator 實作與應用”

Git Commit大小寫問題

在工作上可能會遇到檔案名稱大寫小編輯錯誤就先Commit 並且Push,又或者未依照Code Style規範,導致後續要進行修改。

在修改會遇到找不到差異的問題。(以下是步驟)

  • 新增test資料夾或檔案
  • Commit>Push test
  • 修改名稱大小換小寫、小寫換大寫
  • Commit>Push Test

繼續閱讀 “Git Commit大小寫問題”

Linux 檔案系統的資料結構

我們在開發應用系統或寫程式時, 大多會使用到檔案來存取資料, 雖然目前許多應用系統會直接連接資料庫, 但是資料庫也會使用檔案對資料做存取的動作, 因此檔案系統在大部份作業系統中都是一個重要的部分.

在 Linux 或其他 Unix-Based 的系統中, C 語言是最主要的語言. 在 C 語言中關於檔案的功能大部份都透過 Standard I/O Library 來完成 (也就是最常見的 printf 和 scanf 等 function). 在此我們要介紹的是更低階的檔案功能, 一般稱之為 File I/O, 這些功能都是直接作系統呼叫. 在 File I/O, 開啟檔案是使用 open 這個 function (在Standard I/O 是使用 fopen). 開檔成功後系統會傳回一個叫做 File Descriptor (FD) 的整數, 後續關於這個檔案的動作及功能都要使用這個 FD, 如檔案讀寫等, 都要傳入這個FD當做參數.  FD 基本上是一個Index, 而 FD 也是檔案系統的資料結構中, 唯一使用者程式能夠看到的部份. 開啟檔案相關的資料結構如下圖所示.  需要注意的是圖中稱為 Table 的資料結構其實都不一定真正使用 Table 的形式. 繼續閱讀 “Linux 檔案系統的資料結構”