[疫情學習不中斷]應學員要求整理最近VBA與Python教學課程
因應疫情關係,上實體課慢慢變的很不容易,
所以特別應許多學員的的要求,整理最近上課的課程影片,
其實也算是非同步遠距學習,一次三四小時上課,就存在一個資料夾,
所以只要一次上完三小時,並練習完畢,就等於一周課程,
也提供完整講義和練習檔,講義可以是情況列印,
按照順序,逐一學習,效果顯著,
線上學習的優點是可以反覆重複觀看教學,尤其是比較困難程式解說,
另外,也提供雲端白板資料,可以讓學員複製程式碼,
確保程式的正確性,上課若有疑問,
也可以藉由EMAIL、FB或YOUTUBE下方留言等方式提問,
只要問題明確,幾乎會在第一時間回應。。
整理的目的,主要的目的時希望學習我的課的學員都能學會,
提升上課的品質,學員只需抽空重複聽講,
並不斷練習,再將所學反覆用在工作上,
成效良好,除了效率提高外,
自己的專業技能信心提高,工作自然勝任無虞,
對未來的職涯規劃也更有希望。
最新課程整理如下,2021/5/23更新
單光碟:
光碟01_EXCEL高階函數與樞紐分析基礎班(全球人壽內訓)
光碟02_EXCEL VBA與資料庫雲端設計(入門)(東吳推廣部114)
光碟03_EXCEL VBA與資料庫雲端設計(進階)(東吳推廣部110與112)
光碟04_EXCEL VBA金融數據之網路爬蟲實作(勞工大學)
光碟05_Python程式入門202101(自強SPYDER4版)
光碟06_Python基礎程式語言證照應用班(SPYDER4版)
光碟07_[初階]從VBA的自動化到PYTHON網路爬蟲應用 (自強)
光碟08_[進階]自強網頁資料擷取、分析與資料視覺化能力 (自強)
吳老師 2021/5/23
完整連結:
https://terry55wu.blogspot.com/2021/05/vbapython.html
同時也有8部Youtube影片,追蹤數超過4萬的網紅吳老師教學部落格,也在其Youtube影片中提到,中央Python程式入門與Django架站第3次BMI表單結果&計算圓面積DJANGO說明與表單傳遞&整理計算圓面積DJANGO與YOUTUBE表單&建立Youtube選單步驟&安裝requests與BS4與下載YOUTUBE清單&產生YOUTUBE清單HTML程式碼&將Python轉為Django...
「python 程式碼 整理」的推薦目錄:
- 關於python 程式碼 整理 在 吳老師excel函數與vba大數據教學 Facebook 的最佳貼文
- 關於python 程式碼 整理 在 Kewang 的資訊進化論 Facebook 的最佳解答
- 關於python 程式碼 整理 在 91 敏捷開發之路 Facebook 的精選貼文
- 關於python 程式碼 整理 在 吳老師教學部落格 Youtube 的最讚貼文
- 關於python 程式碼 整理 在 吳老師教學部落格 Youtube 的精選貼文
- 關於python 程式碼 整理 在 吳老師教學部落格 Youtube 的最佳貼文
- 關於python 程式碼 整理 在 用ChatGPT學數學:基本排列與自動產生Python程式碼- YouTube 的評價
- 關於python 程式碼 整理 在 vscode python自動排版套件2022-在Mobile01/PTT/Yahoo上的 ... 的評價
- 關於python 程式碼 整理 在 vscode python自動排版套件2022-在Mobile01/PTT/Yahoo上的 ... 的評價
- 關於python 程式碼 整理 在 Python Coding Style | 辛西亞的技能樹 的評價
- 關於python 程式碼 整理 在 整理了Python + PyQt5 一些資訊分享給有需要圖控的朋友參考 的評價
python 程式碼 整理 在 Kewang 的資訊進化論 Facebook 的最佳解答
最近 Funliday-旅遊規劃 常發一些精選旅遊回憶的 App 通知給使用者,在去年十一二月的時候發通知 Server 還能撐的了瞬時大流量的 request。
但今年開始發這類通知,總共發了三次,三次都造成 Server 被打掛,而且重開 AP 還緩解不了,瞬間手足無措。大概都要等過了十分鐘左右,Server 才將這些 request 消化完。
這裡就來簡單整理一下時間軸,順便分享一下 Funliday 是如何解決這個問題。
---
* 1/6 1900:系統排程發送精選旅遊回憶的 App 通知
* 1/6 1900+10s 開始:Server 收到極大量的 request
* 1/6 1900+20s:Nginx 出現錯誤訊息 1024 worker not enough,並回傳 http status code 503
* 1/6 1900+25s:PostgreSQL 出現錯誤訊息 could not fork new process for connection (cannot allocate memory)
* 1/6 1900+38s:Node.js 收到 PostgreSQL 的 exception。There was an error establishing an SSL connection error
* 1/6 1900+69s:PostgreSQL 出現錯誤訊息 database system is shut down
* 1/6 1900+546s:PostgreSQL 出現錯誤訊息 the database system is starting up
---
看了時間軸就覺得奇怪,先不論 10s 的時候發了極大量 request,造成 20s 在 Nginx 出現 worker not enough 的錯誤訊息。而是要關注 25s 時的 PostgreSQL 出現 could not fork new process for connection 的錯誤訊息。
Funliday 用了同時可承載 n 個 connection 的資料庫,而且程式碼又有加上 connection pool,理論上根本不該出現這個錯誤訊息。但整個時間軸看下來感覺就是 PostgreSQL 的 capacity 問題,造成系統無法運作。
因為就算將 Nginx 的 worker connection size 再加大 10 倍,只是造成 PostgreSQL 要接受的 request 也跟著被加大 10 倍,但 PostgreSQL 那裡因為 request 變多,原本在 69s 直接關機的時間點只會提早,而無法真正緩解這個狀況。
基於以上狀況,小編就開始回去看自己的程式碼是不是哪裡寫錯了。會這樣想也是覺得 PostgreSQL 應該沒這麼弱,一下就被打掛,一定是自己程式碼的問題 Orz
---
這邊來分享一下自己程式碼的寫法,圖一是原始寫法,在每個 API 都 create 一個 db client instance 來處理該 API 層的所有 db request。這是蠻單純的做法,也是 day 1 開始的處理方式。但有個小問題,就是每個 API 層都要自己 create instance,不好管理,且浪費資源。
後來因為想要做 graceful shutdown 的關係,所以調整了一下 db client instance 的建立方式,用 inject 將 instance 綁在 request 上面,如圖二。這樣只要在 middleware 建立 db client instance 就好,好管理,而且只要有 req 就可以取得 instance,非常方便。而這也是 1/6 時的程式碼,就從這裡開始研究吧。
---
直接切入 node-postgres 的文件,認真讀了一下 pool 有下面兩種使用方式:
1. pool.connect, pool.release:文件寫著 checkout, use, and return,光看描述就應該用這個沒錯。
2. pool.query:適用於不需要 pool 的連線方式,文件上也清楚寫著內部實作是直接 call client.query,所以用了這個方式是完全跟 pool 扯不上邊。
但偏偏小編從 day 1 用的就是第 2 種方式 Orz,雖然看起來應該是寫錯,但也是要修改後實測,才知道是不是真的可以解決問題。
---
如圖三,這是修改後的程式碼。想了一下子,覺得目前在 API 層使用 req.pool.query 還不錯,不想用官方的建議做法:先 create client,然後 query 之後,再使用 release。
如果照官方建議做法,API 層的程式碼會多一堆與商業邏輯無關的程式碼,也不好維護。所以在不想動到 API 層的程式碼,只能使用 monkey patch 的方式來達到這個需求。
monkey patch 可以將原方法利用類似 override 的方式,將整個方法改掉,而不改變 caller 的程式碼,這也是 JavaScript, Ruby, Python 這類動態語言的特性之一,但真的要慎用,一不小心就會把原方法改成完全不同意義的方法了。
所以原本應該要在 API 層實作 connect, query, release 一大堆程式碼,可以用 monkey patch 完美解決這一大堆程式碼。
---
在 dev 壓測後至少 capacity 可以達到原本的 4 倍以上,隔天實際上 production 之後也確實如壓測般的數據,可以承載目前的流量。
其實這篇分享的重點只有一點,文件看仔細才是最重要的事啦!如果沒把文件看仔細,然後開發經驗也不足的話,什麼 RCA、monkey patch 都幫不上忙啦!
---
後記:有夠丟臉,其實完全用不到圖三,只要把圖二的 pool creation 放到最外層就好了,因為 pool.query 的內部實作已經有做 connect, query, release 了。
感謝下面的 Mark T. W. Lin 及 Rui An Huang 的幫忙,實在是太搞笑了 Orz
* Pool 的文件:https://node-postgres.com/features/pooling
* 官方建議寫法:https://node-postgres.com/guides/project-structure
* pool.query 的內部實作:https://github.com/brianc/node-postgres/blob/master/packages/pg-pool/index.js#L332
#expressjs #nodejs #javascript #postgresql
python 程式碼 整理 在 91 敏捷開發之路 Facebook 的精選貼文
看著之前用 PyCharm 重構 Python unit test 示範影片,感覺就好爽。
https://www.youtube.com/watch?v=3giSsoBPEU8&feature=youtu.be&ab_channel=JoeyChen
2020 年的最大感想之一,就是 Python 真是個不錯的語言,相見恨晚。如果開發人員本身就具備如何把產品設計得很乾淨、簡單、嚴謹,那 Python 既可以享受 Java/C# 強型別語言的 IDE 好處(透過 type hint),也可以有動態特性的彈性(例如參數個數、型別的不受限制)。
而且,Python 的測試超級好寫!也可以整理地非常乾淨,就像講話一樣的描述需求情境、規格。
Python 越來越多人在用,很多人(駕駛員問題,而非機體問題)卻濫用它的彈性,寫出很糟糕、很難偵錯、很容易出問題的程式碼。有單元測試當保護網,可以更安心建構 enterprise application 等級的系統,也可以安心的重構,減少缺乏編譯器這一層基本保護的風險。
※ youtube 給他訂閱起來呀!
python 程式碼 整理 在 吳老師教學部落格 Youtube 的最讚貼文
中央Python程式入門與Django架站第3次BMI表單結果&計算圓面積DJANGO說明與表單傳遞&整理計算圓面積DJANGO與YOUTUBE表單&建立Youtube選單步驟&安裝requests與BS4與下載YOUTUBE清單&產生YOUTUBE清單HTML程式碼&將Python轉為Django說明&YAHOO與ETTODAY焦點新聞
上課內容:
01_重點回顧與BMI表單結果
02_計算圓面積DJANGO說明與表單傳遞
03_整理計算圓面積DJANGO與YOUTUBE表單
04_建立Youtube選單步驟說明
05_安裝requests與BS4與下載YOUTUBE清單
06_產生YOUTUBE清單HTML程式碼
07_將Python轉為Django說明
08_YAHOO與ETTODAY焦點新聞
完整影音
http://goo.gl/aQTMFS
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/ncu_python_2019
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
建置Python與Django開發環境
基本語法與結構控制
迴圈、資料結構及函式
建立專案及app與檔案處理
視圖與模版
資料庫及後台管理
資料查詢與新增功能實作
資料刪除和修改功能實作
專題:新聞公告系統、網站留言版、網路相簿、購物車、美食地圖
部署網站
參考書目
Python架站特訓班:Django最強實戰作者: 鄧文淵/總監製, 文淵閣工作室/編著?出版社:碁峰?出版日期:2017/08/31
吳老師 108/5/10
Python,Django,中央大學資工系,福建師範大學,程式設計,線上教學,PYTHON安裝環境,網路爬蟲
![post-title](https://i.ytimg.com/vi/0dCjvHmBd0I/hqdefault.jpg)
python 程式碼 整理 在 吳老師教學部落格 Youtube 的精選貼文
中央Python程式入門與Django架站第3次BMI表單結果&計算圓面積DJANGO說明與表單傳遞&整理計算圓面積DJANGO與YOUTUBE表單&建立Youtube選單步驟&安裝requests與BS4與下載YOUTUBE清單&產生YOUTUBE清單HTML程式碼&將Python轉為Django說明&YAHOO與ETTODAY焦點新聞
上課內容:
01_重點回顧與BMI表單結果
02_計算圓面積DJANGO說明與表單傳遞
03_整理計算圓面積DJANGO與YOUTUBE表單
04_建立Youtube選單步驟說明
05_安裝requests與BS4與下載YOUTUBE清單
06_產生YOUTUBE清單HTML程式碼
07_將Python轉為Django說明
08_YAHOO與ETTODAY焦點新聞
完整影音
http://goo.gl/aQTMFS
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/ncu_python_2019
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
建置Python與Django開發環境
基本語法與結構控制
迴圈、資料結構及函式
建立專案及app與檔案處理
視圖與模版
資料庫及後台管理
資料查詢與新增功能實作
資料刪除和修改功能實作
專題:新聞公告系統、網站留言版、網路相簿、購物車、美食地圖
部署網站
參考書目
Python架站特訓班:Django最強實戰作者: 鄧文淵/總監製, 文淵閣工作室/編著?出版社:碁峰?出版日期:2017/08/31
吳老師 108/5/10
Python,Django,中央大學資工系,福建師範大學,程式設計,線上教學,PYTHON安裝環境,網路爬蟲
![post-title](https://i.ytimg.com/vi/U_QGW-jpAA4/hqdefault.jpg)
python 程式碼 整理 在 吳老師教學部落格 Youtube 的最佳貼文
中央Python程式入門與Django架站第3次BMI表單結果&計算圓面積DJANGO說明與表單傳遞&整理計算圓面積DJANGO與YOUTUBE表單&建立Youtube選單步驟&安裝requests與BS4與下載YOUTUBE清單&產生YOUTUBE清單HTML程式碼&將Python轉為Django說明&YAHOO與ETTODAY焦點新聞
上課內容:
01_重點回顧與BMI表單結果
02_計算圓面積DJANGO說明與表單傳遞
03_整理計算圓面積DJANGO與YOUTUBE表單
04_建立Youtube選單步驟說明
05_安裝requests與BS4與下載YOUTUBE清單
06_產生YOUTUBE清單HTML程式碼
07_將Python轉為Django說明
08_YAHOO與ETTODAY焦點新聞
完整影音
http://goo.gl/aQTMFS
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/ncu_python_2019
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
建置Python與Django開發環境
基本語法與結構控制
迴圈、資料結構及函式
建立專案及app與檔案處理
視圖與模版
資料庫及後台管理
資料查詢與新增功能實作
資料刪除和修改功能實作
專題:新聞公告系統、網站留言版、網路相簿、購物車、美食地圖
部署網站
參考書目
Python架站特訓班:Django最強實戰作者: 鄧文淵/總監製, 文淵閣工作室/編著?出版社:碁峰?出版日期:2017/08/31
吳老師 108/5/10
Python,Django,中央大學資工系,福建師範大學,程式設計,線上教學,PYTHON安裝環境,網路爬蟲
![post-title](https://i.ytimg.com/vi/h4l6kfdybBs/hqdefault.jpg)
python 程式碼 整理 在 vscode python自動排版套件2022-在Mobile01/PTT/Yahoo上的 ... 的推薦與評價
1. Python extension for Visual Studio Code · 通過Pylint或Flake8支援程式碼檢查· 在VS Code編輯器中除錯程式碼· IntelliSense支援自動完成,程式碼導航 ... 【Python ... ... <看更多>
python 程式碼 整理 在 vscode python自動排版套件2022-在Mobile01/PTT/Yahoo上的 ... 的推薦與評價
1. Python extension for Visual Studio Code · 通過Pylint或Flake8支援程式碼檢查· 在VS Code編輯器中除錯程式碼· IntelliSense支援自動完成,程式碼導航 ... 【Python ... ... <看更多>
python 程式碼 整理 在 用ChatGPT學數學:基本排列與自動產生Python程式碼- YouTube 的推薦與評價
成為這個頻道的會員並獲得獎勵:https://www.youtube.com/channel/UCSeGsFUHQyd50QPxIVnC_Pw/join邱博文物理/理化/自然/數學/全科教學頻道邱博文 ... ... <看更多>