淺談.NET的垃圾回收機制

這篇的由來其實很奇妙,前幾天在FB有人在討論某個資深工程師不懂method前面加上static的差異,下面一大串的炮火覺得也太不專業了。

直到前幾天群組有個朋友提出

『其實我真的不太敢確切的說static到底是怎麼運作的,他牽涉到記憶體行為,在執行階段有沒有static差在哪裡,記憶體是共用還是指向同一個部』

於是又拉了一長串的討論出來,討論出結果後催生了這篇文章

...繼續閱讀 »

ADO.NET資料連接層效能比較

這篇文章的產生其實滿奇妙的,由於目前在前端維護MVC後台,理應碰不到ADO.NET層,偏偏資料連接層的速度又奇曼無比,甚至還會發出錯誤訊息。

在資料取得慢的情況下,所有後台的UI都極為緩慢,多數時候充當第一線砲灰。

在最近終於加入了幾位夥伴,於是協助後端同仁優化這段程式碼的念頭就產生了。

 

這篇文章會比較DataTable.Load、DataAdapter.Fill、DataReader三者的差異,一起來看看吧。

...繼續閱讀 »

何謂RESTful API?

最近經常跟朋友討論到什麼是RESTful API,從不同人的身上得到了不同的解釋。

有些人說,使用了Web API就是RESTful API了

也有些人說,RESTful API就是就是簡單的CRUD,URL不重要

再細一點會有人討論Session是否可以存在、利用回傳的JSON資料定義狀態,亦或是使用HTTP Status Code?

針對這些疑問,我找了一些資料分享出來,一起來討論這些問題,到底哪些才真正符合RESTful API的風格。

...繼續閱讀 »

我的程式開發原則

進入程式的行業也一年多了,雖然能力不到頂尖,對於CSS還有HTML的排版還是很不熟悉。

但在開發過程中看到許多不正確的開發觀念,進而產生許多程式碼的歷史包袱,尤其是這些包袱多數來自於「資深工程師」的觀念偏差時,實在令人感到遺憾...

 

在某次維護的過程,真的追Code追到跑去廁所吐,於是催生了這篇文章。

這篇文章會針對經常碰到的開發觀念撰寫,不會很艱深,我也沒有那個能力寫得很艱深 > O <

算是拋磚引玉,希望大家可以多參與討論,讓糟糕的程式碼不再禍害工程師。

 

我想...寫出優良的程式碼,是每個工程師應盡的義務。

 

...繼續閱讀 »

C#圖片處理

  在軟體的世界中,經常需要做圖片的處理,這次在圖片優化的過程中,遇到了一些問題,索性趁著年節將這些資訊一併記錄下來

這次紀錄的東西大約有如下

  • Image/Bitmap轉byte、byte轉Image/Bitmap
  • 圖片縮圖
  • 清除圖片資訊
  • PNG轉JPG背景透明
...繼續閱讀 »

5天120H機車環島(東下西上)

早在大學時期就打算來一次環島了(環島是一趟可以認識台灣,又可以苦其心志勞其筋骨餓其體膚的一項自虐活動

環島二個字對於每個人都有不同的意義,對我而言是年輕熱血過的象徵。

或許有些人會說三十歲也可以環島、開車也可以環島,但那是完全不同的情境。

三十歲時多數人身上都會有所謂的責任存在,想要去做這樣的事情,顧慮就會變得多。

雖然開車也能環島,但比起機車環島,不論是行前準備、精神、體力都是無法相比的,因此趁年輕選擇了機車環島,其他選項等未來再說吧XD

 

於是就有了這次的環島之旅,很謝謝朋友 黃士倫 跟我一起說走就走

(結束後問他未來還要不要環島,他瘋狂搖頭XD)

...繼續閱讀 »

JS-基礎概念(上篇)

有在寫JS的朋友,應該或多或少都會有一些感覺,就是覺得JS非常好上手,也知道自己在寫什麼。但是寫起來就是不踏實...

這是為什麼呢?

因為JS的語言特性跟其他語言不大相同,來舉個例子看看

1=="1"

如果這是在C#,會直接報錯,因為型別不同。

而在JS之中呢,卻會發現沒有錯耶!執行也正常耶!那就這樣寫好了> O <

然後事隔多年,悲劇就發生了

...繼續閱讀 »

Delegate、Action、Func的使用時機以及差異(委派型別階段總結)

  • 18551
  • 0
  • C♯
  • 2017-06-29

前面二篇(ActionFunc)我們大致上了解了怎麼在開後門,讓外部實做內部的程式碼,但是如果有多個參數的情形呢?

其實這會套用到泛型的概念,而這篇是早在第一篇就該說明了,之所以延到這篇再來講,是希望降低認識委派的門檻,畢竟泛型跟委派是二種不同的概念。

那我們現在來定義一下

Delegate是基底型別,而Func與Action則是.Net預先定義好Delegate型別,二者差異在於有無返回值罷了,應該對於Delegate有了初步的理解吧。

...繼續閱讀 »