0%

前言:

AutoMapper 幫我我們方便管理物件跟物件之間屬性值格式轉換

模型轉換

這裡有兩個類別

UserInfoModel 當作我們從DB撈取出來 模型資料

1
2
3
4
5
6
public class UserInfoModel
{
public int RowId { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}

UserInfoViewModel 是呈現在UI或其他地方的模型  

其中 Detail 欄位由 UserInfoModel  Name Age 屬性組成的

1
2
3
4
public class UserInfoViewModel
{
public string Detail { get; set; }
}

這時我們就會引用 AutoMapper 幫我們統一管理轉換模型上的問題

Read more »

前言:

前陣子在被面試官說:我有電子發票開源專案,是否有上到Nuget上

我回答:沒有.

我就突然想到我也可以把我的專案放到Nuget上讓更多人方便使用

我就查詢資料去了解整個上板流程,並打成文章跟大家分享


下載Nuget Commandline Tool

下載Nuget Commandline Tool

之後你會取得 nuget.exe 這個檔案

Read more »

前言:

大家都知道float和double會有誤差 

但原因是什麼呢? 

今天就跟大家分享Float和Double會誤差的原因

一. 浮點數介紹

一開始先對於float和double做身家調查

浮點類型的範圍

類型 最小值 最大值
float 1.175494351 E – 38 3.402823466 E + 38
double 2.2250738585072014 E – 308 1.7976931348623158 E + 308

浮點類型

類型 有效數字 位元組數
float 6 – 7 4
double 15 – 16 8
Read more »

前言:

SO 發現蠻多人有遇到 Gaps and Islands problem

count of last continuous inserted records based on date 

之前有跟大家分享過 解決連續範圍的思路  [SQL連續範圍] 數字,日期連續範圍

今天針對發問者實際例子來一步步 解決問題…

提問出處:count of last continuous inserted records based on date 


問題說明:

提問者希望可以獲得最近一次連續日期的次數

例如:

Read more »

前言:

狀態者模式

優勢在可將複雜的物件狀態條件,以物件方式來減少條件式的判斷程式

可由物件自身的狀態,決定之後的動作行為.

狀態者模式 說明:

需求簡易流程如下

這是一個簡單的訂單流程圖

我們可看到從建立訂單開始->最後判斷成功或取消訂單 看似簡單但需要寫一定程度的判斷條件式,而且也要做一定程度的逆向流程防呆.

這裡先貼上 未使用狀態者模式的程式碼: PaymentContext.cs

Read more »

說明

系統模塊存在很多複雜的耦合問題,很適合使用中介者模式來解耦合

在現實中如果組織有一定規模可能構通如下圖那般複雜

如果有一個人或組織負責幫大家協助溝通,就可解決上面複雜問題

這就是我們這次的核心中介者

中介者模式有幾個角色

  • AbstractMediator (抽像中介者):定義中介者和各個同事者之間的通信的介面
  • ConcreteMediator (中介者):知道每個同事物件,實現抽像中介者,負責協調和各個具體的同事的交互關係
  • AbstractColleague (抽象同事者):定義同事者和中介者通信的接口
  • ConcreteColleague (同事者):實現自己的業務,並且實現抽象方法,跟中介者進行通信

中介者模式特點是

Read more »

說明

系統模塊存在很多複雜的耦合問題,很適合使用中介者模式來解耦合

在現實中如果組織有一定規模可能構通如下圖那般複雜

如果有一個人或組織負責幫大家協助溝通,就可解決上面複雜問題

這就是我們這次的核心中介者

中介者模式有幾個角色

  • AbstractMediator (抽像中介者):定義中介者和各個同事者之間的通信的介面
  • ConcreteMediator (中介者):知道每個同事物件,實現抽像中介者,負責協調和各個具體的同事的交互關係
  • AbstractColleague (抽象同事者):定義同事者和中介者通信的接口
  • ConcreteColleague (同事者):實現自己的業務,並且實現抽象方法,跟中介者進行通信

中介者模式特點是

Read more »

介紹RabbitMQ

RabbitMQ是個訊息仲介(broker),主要是利用消息把生產者跟消費者解耦合

在RabbitMQ主要有以下角色

  1. 產生者(producer)
  2. 接收者(consumer)
  3. 佇列(Queue)
  4. 交換器(Exchange)
  5. 訊息(Message)

上面太抽象?  讓我來舉一個簡單點的例子

我們要寄信會把信投進郵筒,信件統一送到郵局,由分配至各個區域郵差去寄送信件

在此可把上面的角色對應在RabbitMQ上

  1. 產生者(producer)= 寄信人
  2. 接收者(consumer) = 收件人
  3. 佇列(Queue)= 郵差
  4. 交換器(Exchange) = 郵筒
  5. 訊息(Message)  = 信件

下面是我畫RabbitMq運作流程圖

Read more »

RabbitMQ是什麼?

RabbitMQ是一個訊息中介軟體 (broker), 他實作​AMQP標準, 特點是消息轉發是非同步並且可靠.

主要用來處理應用程序之間消息的儲存與轉發可讓消費者和生產者解耦合, 消息是基於二進制

因為RabbitMQ Server是用Erlang語言編寫,所以在安裝RabbitMQ Server前須先安裝Erlang環境

安裝完後可到RabbitMq官網下載安裝Server .

以下是常用在CMD使用的使令

  • 開啟RabbitMq Server. 

    rabbitmq-server -detached

  • 查看RabbitMq狀態 

    rabbitmqctl status

  • 查看Queue列表狀態

    rabbitmqctl list_queues

  • 查看交換器(Exchange)

    rabbitmqctl list_exchanges

  • 查看綁定狀態

    rabbitmqctl list_bindings

RabbitMQ Server UI

RabbitMq Server 很貼心也有UI版的控制面板,只需在CMD中輸入這個指令 啟用Server UI套件

rabbitmq-plugins enable rabbitmq_management

Read more »

前言:

為何我會選用Hxeo來當作Blog框架?

有下面幾個原因:

  1. 因為建立於本地端,所以可以更方便離線進行編輯
  2. 使用 Markdown 語法撰寫Blog,更方便、通用、容易上手
  3. 搭配線上CICD工具部署於 Github 上,完全零成本
  4. 中文文件資源多
  5. 支援多樣不同樣板,可隨心所欲切換風格
  6. 開源社群活躍
  7. 基於NodeJs擁有豐富的差件

建立自己的Hexo

安裝 Node.js

首先先安裝 Node.js 官網下載安裝

安裝完後使用CMD

 node -v
npm -v

查看是否安裝成功.

Read more »