呂世浩 coursera 史記課
季札:「始吾心以許之,豈以死倍吾心哉!」
人言為信,說出來的話就要做得到,不是信的最高境界。信不一定要說出口才遵守,說出口才遵守,沒說出口就不遵守,那層次不太高。
信的最高境界,不是對別人守信,是對自己守信。
當自己立下了一個心願,我就無論如何要完成這個心願。
因為我心中已經對你許下了誓言,即使我嘴巴沒有說,即使你也不知道,可是我無論如何都要完成這個誓言,完成這個誓言的目的,是為了對得起自己的心。
太神啦~~層次差太多啦~~
哥每年許下的心願都沒完成啦~~
2015/1/2
2014/12/22
2014/12/11
【問題】 MVC的網站架構中 Model 的最佳實作
我認知中的MVC,是在看完 Stanford University 的 Developing iOS 7 Apps 這堂課之後才完整建立的。
http://youtu.be/ZqKbN_C4Yvg?t=14m20s
從14分到30分講MVC架構。
假設我有三個畫面,要顯示同一個 Table 的內容
第一個畫面需要 Table join A1 才能拿到足夠多的資訊
第二個畫面需要 Table join A2
第三個畫面需要 join A1 跟 A2
如果我要用一個 Model 層把 view 跟 DB 隔開,那我該提供哪些函數?
方法2:
為了解決方法1的問題,分別寫3個不同的SQL
Model.GetData
Model.GetA1
Model.GetA2
好處是我不會取到多餘的欄位
方法3:
為了解決方法2的問題,分別寫3個不同的SQL
Model.GetDataWithA1
Model.GetDataWithA2
Model.GetDataWithA1AndA2
好處是我不會取到多餘的欄位,每次要取資料的時候只會產生1次DB request
缺點是,每當View 需要不同的欄位數的時候,我就要多作一個函數,會造成函數數量爆炸和管理困難,其實這樣寫的結果就等於是在View層上面寫SQL
http://youtu.be/ZqKbN_C4Yvg?t=14m20s
從14分到30分講MVC架構。
假設我有三個畫面,要顯示同一個 Table 的內容
第一個畫面需要 Table join A1 才能拿到足夠多的資訊
第二個畫面需要 Table join A2
第三個畫面需要 join A1 跟 A2
如果我要用一個 Model 層把 view 跟 DB 隔開,那我該提供哪些函數?
方法1:
只寫一個取出所有欄位的函數
Model.GetData (WithA1 And A2)
缺點是會取到多餘的欄位
為了解決方法1的問題,分別寫3個不同的SQL
Model.GetData
Model.GetA1
Model.GetA2
好處是我不會取到多餘的欄位
缺點是DB request 的次數會變多
方法3:
為了解決方法2的問題,分別寫3個不同的SQL
Model.GetDataWithA1
Model.GetDataWithA2
Model.GetDataWithA1AndA2
好處是我不會取到多餘的欄位,每次要取資料的時候只會產生1次DB request
缺點是,每當View 需要不同的欄位數的時候,我就要多作一個函數,會造成函數數量爆炸和管理困難,其實這樣寫的結果就等於是在View層上面寫SQL
問題是,一般情況下遇到這個問題會用什麼方法來解?為什麼選擇這個方法?
我問了幾個人答案都是採用方法1,是不是我想太多了?
2014/12/4
Swift 泛型繼承
class A{}
class A2:A{}
class B<T:A>{}
class B2<T:A2>:B<T>{}
Class A2 繼承 Class A
Class B 有一個泛型T,T繼承 Class A
Class B2 繼承 Class B、B2 有一個泛型T, T 繼承 Class A2
冒號前面的泛型是宣告泛型變數,冒號後面的是使用泛型變數
舉例來說 class B2<T:A2> 講的是 宣告一個泛型T 繼承 A2
:B<T> 這裡的 T 講的是使用剛剛宣告的 T
2014/10/16
Google在 SSL 3.0 中發現設計缺陷
今天 Facebook 登入的那段C#程式掛了,錯誤訊息是「要求已經中止: 無法建立 SSL/TLS 的安全通道。」
在網路上搜尋這個問題,所有的解都是說只要加入下列程式就能解決:
但我的程式裡早有這行,所以不是這個問題。
繼續找的結果是,因為我寫了一行程式:
把這行改成
或是直接把那行註解掉即可
為什麼這樣改就會好?
我查了一下發現是因為SSL3有缺陷,已經要被各大網站棄用啦!
以下節錄:
「2014年10月,Google發布在SSL 3.0中發現設計缺陷,建議禁用此一協議。Google在自己公司相關產品中陸續禁止回溯相容,強制使用TLS協議。計劃於11月25日發布的Firefox 34中,Mozilla 將徹底禁掉 SSL 3.0。」
在網路上搜尋這個問題,所有的解都是說只要加入下列程式就能解決:
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
但我的程式裡早有這行,所以不是這個問題。
繼續找的結果是,因為我寫了一行程式:
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;
把這行改成
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls;
或是直接把那行註解掉即可
為什麼這樣改就會好?
我查了一下發現是因為SSL3有缺陷,已經要被各大網站棄用啦!
以下節錄:
「2014年10月,Google發布在SSL 3.0中發現設計缺陷,建議禁用此一協議。Google在自己公司相關產品中陸續禁止回溯相容,強制使用TLS協議。計劃於11月25日發布的Firefox 34中,Mozilla 將徹底禁掉 SSL 3.0。」
訂閱:
文章 (Atom)