Sunday, September 13, 2020

MVC - three pattern

 




架构, 框架, 设计模式

MVC 是 Observer pattern, Strategy pattern 和 Composite pattern 三个设计模式的演变.

Design Pattern 的核心是 Pattern

MVC这个级别的东西怎么都不可能归类到Pattern(小花样)这一类的东西上。当然更不可以是框架,因为框架不是抽象的,而 MVC 是抽象的。

MVC是一种模式。在Martin Fowler的《企业应用架构模式》中,它属于表现层的架构模式。 (Mode)

MVC 在架构模式中的实现不同可能还会用到工厂模式 (Factory) 和装饰器 (Decorator) 模式。

框架通常是代码重用

设计模式是设计重用

架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。

在软件生产中有 3 种级别的重用

1. 内部重用,即在同一应用中能公共使用的抽象块;

2. 代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用

3. 应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。



设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;

框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示

设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

简而言之:框架是大智慧,用来对软件设计进行分工;

设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。

Thursday, September 3, 2020

Encryption String

Decoder/Encoder Tool 

ASCII (Tool)

Base64 原理 (Tool)

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/中的字元作為編碼後的輸出,直到全部輸入資料轉換完成。


用 objdump 指令觀察 ELF 檔案

 



 編譯 gcc -o test test.c

查看區段

objdump -h test

objdump -s test

s 這個參數表示要使用 16 進位表示法顯示出 object code 中的各個區段,可以看到一些 read only的資料室蠻明顯的,但是 .txt 基本上不是人看得,最後可以觀察到 .comment 這個 section 是可以省略掉的資訊

d 這個參數讓object code 可以反組譯成 assemble code,方便我們觀察程式,有些時候只能拿到library 的時候,就只能從這裡挖到一些資料了,雖然可讀性沒有 C 好,但是至少比 binary code強

objdump -x test

最後x參數可以所是列出了所有資訊,不只包含了 h 這個參數,還列出了許多 symbol table 跟一些需要重新定位 label 資訊 這裡觀察到兩個有趣的地方,兩個變數被寫進了不同的區段,有初始化的m被寫入了.data內,沒有的則被寫入了.bss,printf 不見了,其實被取代成了puts,這是compiler 優化的結果,puts 在處理只有字串的資訊比 printf 有效率,UND 表示尚未定義在這個object code 中

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能