剛剛在整理筆記的時候,發現兩年半前還在前公司就應該要發的文章一直躺在筆記裡面,快點整理一下 po 出來。
---
這是第三篇關於 log 的文章,應該也是最後一篇了,這次來聊聊如何讓開發者用 log 了解自己發出的 API 流程是否正確及如何提升效率。
強者小編同事用 python 寫的 log 整理工具,其實就是把 AP 吐出來的一堆多行 debug log,轉成只有 header、url、執行時間的單行 log。所以其實可以把產生出的 API log 再用其他 Linux 指令,即時顯示給開發者看。
---
這麼做的好處不少,對 frontend 來說,可以避免下列問題發生:
1. API 誤用:A 畫面應該是要串 a API,可是卻串到了 b API,又或是串成了 a' API。串成 b 是有點誇張啦,但最近 review 後發現 a' API 倒是比較常出現,像是參數帶錯之類的。
2. 誤解 API 流程:流程應該是串 abc,可是卻串成了 acb。有時候這不是什麼大問題,但在注重流程的 App 上這就很嚴重了。
3. API 狂發:流程應該是串 abc,但卻變成了 abbbcc。這個問題在使用上比較難發現,因為會有這類問題的大都是 GET API,依 RESTful GET API 的 idempotent 特性,無論執行多少次 GET,結果都會是一樣,所以也就更難發現問題了。
---
對 backend 來說的好處也不少:
1. 了解 cache 設計方向:像是剛剛的第 3 點問題,在 frontend 還沒更版前,backend 可以先加上 Cache-Control 機制,把大量的無效 request 從資料庫轉移到 Cache 裡面,當然 frontend 本來就要有這機制才行。
2. 了解每支 API 的效率:開發 API 沒幾個重點,就是流程正確、執行速度快,其中執行速度也是最難處理的一塊。所以了解 API 的處理速度,才有辦法做最佳化。
用這套工具就可以把上面提到的幾個重點一一檢視,也發了十幾個 issue 給 frontend 及 backend,算是 CP 值很高的一個開發。
---
至於技術細節,其實也就下面兩個重點而已:
1. 用 SocketIO 建置一套 WebSocket Server,然後放兩個輸入框,表示要訂閱 (subscribe) 的 log 來源及要監視的 user id
2. 用 tail -f 將 log 即時 pipe 到強者同事寫的 log 整理工具,再用 awk 把需要的欄位輸出,最後將輸出的欄位發送到 WebSocket Server
這個即時顯示 log 的網頁從發想到完成,工時應該只有兩三個小時吧,但發揮的效用可說是非常的大,今天就靠這個網頁開了十幾張單,算是最近小編蠻能說嘴的一項工作了吧 XDDD
* https://www.facebook.com/kewang.information/posts/2058766574399706
* https://www.facebook.com/kewang.information/posts/2085843121692051
#socketio #websocket #log
websocket python 在 BorntoDev Facebook 的精選貼文
🔥 ถามมากันเยอะ ว่าอยากทำเว็บแบบนั้น แบบนี้ต้องรู้อะไรบ้าง !? วันนี้แอดจะมาบอกแนวทางการเรียนรู้ไปพร้อมกันน <3
.
โดยจะต้องบอกคร่าว ๆ ก่อนว่า "ไม่ว่าเราจะทำเว็บอะไร แบบไหนก็แล้วแต่ ล้วนต้องมีพื้นฐานมาก่อนเหมือนกันทั้งสิ้น !!"
.
คล้าย ๆ กับการเรียนภาษาอังกฤษนั่นแหละ ถ้าเราเริ่มต้นเราก็อาจจะต้องเริ่มจากตัวอักษรภาษาอังกฤษ การใช้ Tense ต่าง ๆ ของเว็บก็มีเช่นกัน โดย Basic ของเว็บจะมีเรื่อง
.
✅ HTML
เป็นโครงหลักของเว็บไซต์ทั่วไป โดยหน้าตาของภาษา HTML นั้นจะเป็นการใช้ tag ที่เริ่มต้นด้วย <> แล้วปิดด้วย > เพื่อสร้างชิ้นส่วนต่างๆในหน้าเว็บเรียกว่า Element
.
✅ CSS
CSS นั้นเป็นสิ่งที่ช่วยเพิ่มความสวยงามให้กับหน้าตาของเว็บ เราสามารถปรับแต่งหน้าตาของเว็บได้จาก CSS ไม่ว่าจะเป็นสี รูป ไปจนถึงตำแหน่งของสิ่งต่างๆ หรือแม้แต่การทำ animation ก็สามารถทำได้
.
✅ JavaScript
JavaScript นั้นเป็นส่วนที่เพิ่มความสามารถให้กับเว็บของเราเป็นอย่างมาก ทำให้ส่วนต่างๆของเว็บสามารถทำงานได้ตามที่เราต้องการ
.
และ เมือเรารู้พื้นฐานตรงนี้แล้ว เราจะมีเส้นทาง 2 ทางหลักให้เลือก โดยมีทางที่ชื่อว่าสาย Front-End และ Back-End ส่วนถ้าใครชอบทั้งคู่ จนไปครบจบกระบวนการที่เว็บควรมีเราจะเรียกว่า Full-Stack นั่นเอง
.
⭐️ โดยเริ่มจาก Fornt-End กันก่อน
มันเป็นส่วนหน้าตาการแสดงผลของเว็บไซต์ ที่ผู้ใช้งาน(Client)มองเห็นทั้งหมดไม่ว่าจะเป็น ตัวหนังสือ ปุ่ม หรือแถบเมนูต่างๆ ทุกๆส่วนที่ผู้ใช้เห็นและมีปฏิสัมพันธ์ด้วยนับว่าอยู่ใน Frontend ทั้งหมด ซึ่งภาษาที่ใช้ในฝั่ง Frontend ก็คือ HTML, CSS และ JavaScript
.
✅ Framework
สิ่งอำนวยความสะดวกในการเขียนโปรแกรม ซึ่งประกอบด้วยชุดคำสั่งหรือองค์ประกอบต่างๆ ให้เราสามารถนำมาใช้ได้ง่ายๆ โดยไม่ต้องเขียนเองทั้งหมด
.
Js CSS
Angular Bootstrap
Vue.js Materialize
React Semantic UI
Backbone.js Bulma
.
⭐️ ตามมาด้วย Back-End กันต่อ
ส่วนการทำงานประมวลผล และ จัดเก็บข้อมูลของเว็บไซต์ เพื่อทำให้ส่วนของ Frontend สามารถทำงานได้อย่างถูกต้องสมบูรณ์
.
✅ Programming language
เราจะต้องใช้ภาษาโปรแกรมมิ่งในส่วนของการทำงานใน Backend เช่น เมื่อรับข้อมูลสินค้าที่ผู้ใช้เลือกมาจาก Frontend, Backend ก็จะนำมาคำนวนโปรโมชั่นแล้วนำมาหักลบกับเงินในบัญชีจากนั้นเก็บข้อมูลใน Database เป็นต้น
.
PHP
Python
C#
Java
JavaScript
Ruby
.
✅ Framework
สิ่งอำนวยความสะดวกในการเขียนโปรแกรม ซึ่งประกอบด้วยชุดคำสั่งหรือองค์ประกอบต่างๆ ให้เราสามารถนำมาใช้ได้ง่ายๆ โดยไม่ต้องเขียนเองทั้งหมด
Django
Express.js
Flask
Laravel
Ruby on Rails
ASP.NET
.
⭐️ส่วนสำคัญอื่นๆ
นอกจากส่วนของการแสดงผลและการติดต่อกับผู้ใช้อย่าง Frontend และ ส่วนของการทำงานด้านหลังของระบบอย่าง Backend แล้ว การเขียนเว็บยังมีส่วนที่สำคัญที่ขาดไปไม่ได้ เช่น ส่วนของการรับส่งข้อมูล
.
✅ API
Application Programming Interface เป็นช่องทางในการเข้าถึงข้อมูลต่างๆ ของเว็บไซต์ ไม่ว่าจะเป็นการอ่านเขียนข้อมูลจากฐานข้อมูลจาก server ไปจนถึงข้อมูลจากภายนอก
.
✅ WebSocket
วิธีการติดต่อเพื่อรับส่งข้อมูลแบบระหว่าง Client กับ Server โดยแต่ละฝั่งสามารถส่งข้อมูลไปหาอีกฝั่งตอนไหนก็ได้ เหมาะสำหรับรับส่งข้อมูลแบบ real-time
.
"ทั้งหมดนี้ก็เป็นเส้นทาง Path คร่าว ๆ ของสายเว็บ หากใครชอบของสวย ๆ งาม ๆ ก็อาจจะทำส่วนหน้าบ้าน ใครชอบ Logic จัด ๆ มาหลังบ้านก็สนุกไม่น้อยนะแอดว่าาา <3"
.
#borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
websocket python 在 TMBA Facebook 的精選貼文
【友情宣傳】
台股首支 HTTP & WebSocket 即時行情 API 開放試用!
Fugle 富果投資推出了 HTTP & WebSocket 台股股市即時行情 API,還有 Python 套件。讓有程式開發能力的投資人,獲得法人等級的即時資料源,並根據真實反饋持續優化使用者體驗。
📎 開始即時行情 API :https://fugle.pse.is/J36AP
📎 開戶玉山證券 FugleTrade,權限完全提升:https://fugle.pse.is/KP7WF
#若是完全不會寫程式也沒關係
#Fugle網站還有數十種股市研究指標免費開放中 https://fugle.pse.is/K8PG5
websocket python 在 #新手python websocket - 軟體工程師板 | Dcard 的必吃
各位安安~,最近接觸websocket也在網路上找了很多資料,我使用websockets套件,(websocket、websockets、websocket-client我也分不清楚, ... ... <看更多>