昨天在 frontend 社團有 backend 工程師來發問「一個要花費 20 秒的 API,backend 難道不能讓 frontend 等 20 秒再回傳給 frontend 嗎?為什麼有些做法都是先回 201 然後再用 websocket 回傳結果呢?」
當然可以啊,但使用者體驗會很差,這裡把昨天小編的回文拿回來再補充一下。
---
一個 20s 的 request 會遇到幾個問題
1. client 的話的使用者體驗很差,在瀏覽器等了 5s 我就想關網頁了,更何況 20s。
2. 如果使用者在 5s 的時候關網頁,這時候 server 還是會繼續把後面的 15s 處理完。
3. 如果使用者此時又發 request,然後在 7s 的時候又關網頁,這樣子有兩個耗時的工作在後端處理,而且還沒辦法讓前端知道。
4. 使用者都很沒有耐心,如果有 10 個人重複做了 2 3 步,這樣就有 20 個耗時的工作。
5. 如果是 CPU bound task,你的 server 應該會卡死。
6. client 跟 server 各自都有 timeout 的設定,而且 server 前面如果還有擋 nginx 或是其他 cloud provider 的話,光是 timeout 的設定就搞死你了。
---
建議的作法,把真的必要的工作處理完,threshold 最多設 3s,超過的一律丟到 MQ 處理。然後在前端顯示,請他稍後再回來更新網頁,這是最簡單的。每個系統 (OLAP 或 OLTP) 的 threshold 不同,請自行考量。
要不然 polling 也行,每 3 秒拉一次,確認工作是否完成。
最聰明的當然就是透過 push notification 或 websocket 讓 client 得知工作是否已完成。
---
https://hahow.in/cr/kewang-backend
看到這裡,要宣傳小編的後端課程啦!上面回答的這些內容,都會在課程裡面分享喔,還不快去下單!
#backend #frontend #mq
同時也有17部Youtube影片,追蹤數超過7萬的網紅在地上滾的工程師 Nic,也在其Youtube影片中提到,自從遠端工作之後,出勤的打卡記錄也轉成線上服務 雖然我也想不透工程師都線上工作了還打什麼卡...不過沒關係,打就打 但也因為在家裡工作反而常常忘記打下班的卡! 每次結算薪水都很痛苦,一整排的異常,是不是像我這種認真工作的人更容易忘記打下班的卡 XD? 既然容易忘記,我們就來寫個自動打卡系統吧...
「後端課程」的推薦目錄:
- 關於後端課程 在 Kewang 的資訊進化論 Facebook 的最佳貼文
- 關於後端課程 在 Kewang 的資訊進化論 Facebook 的最佳解答
- 關於後端課程 在 Kewang 的資訊進化論 Facebook 的最佳貼文
- 關於後端課程 在 在地上滾的工程師 Nic Youtube 的精選貼文
- 關於後端課程 在 在地上滾的工程師 Nic Youtube 的最讚貼文
- 關於後端課程 在 在地上滾的工程師 Nic Youtube 的最佳貼文
- 關於後端課程 在 [心得] 無經驗轉職後端工程師- 看板Soft_Job - 批踢踢實業坊 的評價
- 關於後端課程 在 請益轉職網頁後端課程選擇- 軟體工程師板 - Dcard 的評價
- 關於後端課程 在 JavaScript 課程學什麼?全端開發教學| 學期2-3 後端開發實務 的評價
- 關於後端課程 在 六角學院- 讓各位久等了,我們終於出後端課程啦 - Facebook 的評價
- 關於後端課程 在 [心得] 文組碩士大徹大悟轉職後端工程師- 看板Salary - Mo PTT 的評價
後端課程 在 Kewang 的資訊進化論 Facebook 的最佳解答
https://www.surveycake.com/s/mMabq
大家好!我是 kewang,程式開發經驗已經有超過 15 年,常在個人粉絲頁分享程式開發的實戰經驗,也在 Hahow 平台上開設「Git - 軟體工程師必備的版本管理時光機」,這次我將規劃一堂 Node.js 的線上課程。
這門課主要是提供給一直想進入後端的前端工程師為主,因為前端工程師先天就有 JavaScript 的學習優勢,所以在學習後端技術時,使用 Node.js 環境來撰寫 JavaScript 更是無縫接軌。而這門課將利用 Node.js 帶領大家了解後端工程師所必須學習的內容,以及前後端如何協同工作。
在這堂後端課程中,我會一步步分享如何使用 Node.js 開發網站。為了提供更好的課程內容,請大家協助填寫問卷,讓我們了解大家的學習意向!
後端課程 在 Kewang 的資訊進化論 Facebook 的最佳貼文
去年底到 udn.com 聯合新聞網 分享了這兩年在 Funliday-旅遊規劃 所做的東西,難得講一些跟不是完全都是技術的東西,自己也整理了一下,真的做了不少東西。尤其是首頁,過了六年終於從 landing page 變成自產內容,真的還蠻感動的!
簡單整理一下裡面講的幾大功能:
1. 景點瀏覽:第一個開發的功能,主要還是跟搜尋及 cache 奮戰
2. 旅遊回憶:主要跟圖片處理,還有 URL 一致性,social 相關元素開發
3. 行程編輯:花了一整年時間重構,讓系統變的更靈活
4. 探索:將 landing page 變成自產內容
5. 在地體驗:開始販售商品,可以有營收進來
---
另外有些內容其實講的零零落落的,也請大家多多包涵 XD
---
最近也在整理要在 hahow 新開的後端課程,裡面有蠻多內容也都是從這兩年的開發經驗而來,請大家敬請期待!
投影片:https://www.slideshare.net/kewang/funliday
後端課程 在 在地上滾的工程師 Nic Youtube 的精選貼文
自從遠端工作之後,出勤的打卡記錄也轉成線上服務
雖然我也想不透工程師都線上工作了還打什麼卡...不過沒關係,打就打
但也因為在家裡工作反而常常忘記打下班的卡!
每次結算薪水都很痛苦,一整排的異常,是不是像我這種認真工作的人更容易忘記打下班的卡 XD?
既然容易忘記,我們就來寫個自動打卡系統吧!
拯救自己多無趣,當然要拯救所有同事啊!
這支影片特別感謝我的團隊伙伴陪我一起耍北爛,有你們真好。
===本月活動===
7/22 晚間 8 點「後端領航者論壇」直播活動,歡迎來參加
(適合新、中手或想往後端開發的工程師朋友)
名額有限,手刀報名 👉 https://bit.ly/3jERZRH
===影片中提到的專案===
自動化打卡 project 使用 Ruby on Rails 撰寫,架設於 Heroku
repo: https://github.com/niclin/bernard
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
🎬 觀看我的生活廢片頻道: https://bit.ly/2Ldfp1B
⭐ instagram (生活日常): https://www.instagram.com/niclin_tw/
⭐ Facebook (資訊分享): https://www.facebook.com/niclin.dev
⭐ Blog (技術筆記): https://blog.niclin.tw
⭐ Linkedin (個人履歷): https://www.linkedin.com/in/nic-lin
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
✉️ 合作邀約信箱: niclin0226@gmail.com
#前端 #後端 #工程師
後端課程 在 在地上滾的工程師 Nic Youtube 的最讚貼文
程式亂寫也可以動,要怎麼寫的好或易於閱讀,就得花上一番功夫去學習寫作技巧。
這支影片會和你分享一些基本的知識點,實戰技巧基本上當代程式語言開發都能使用
不過每個時代會有不同的想法跟觀點,不同的團隊也會有不一樣的慣例,希望這次的內容能夠給你一些不一樣的想法
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
章節:
00:00 提升品質的影響
01:29 有意義的命名比簡寫更好
03:01 限制傳入參數數量
05:03 簡化條件表達式
06:37 變數定義範圍限制
08:28 一次只做一件事
10:35 Early return
━━━━━━━━━━━━━━━━
🎬 觀看我的生活廢片頻道: https://bit.ly/2Ldfp1B
⭐ instagram (生活日常): https://www.instagram.com/niclin_tw/
⭐ Facebook (資訊分享): https://www.facebook.com/niclin.dev
⭐ Blog (技術筆記): https://blog.niclin.tw
⭐ Linkedin (個人履歷): https://www.linkedin.com/in/nic-lin
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
✉️ 合作邀約信箱: niclin0226@gmail.com
#前端 #後端 #工程師
後端課程 在 在地上滾的工程師 Nic Youtube 的最佳貼文
現在學習知識的渠道越來越多,無論對於零基礎或是有經驗的工程師,想要持續成長應該看書還是看影片來的更有效率呢?
主要會和你分享我過去從新手到資深的過程中,如何持續保持進步及學習的經驗
也許這個經驗可以幫助到你,也歡迎留言和我分享你的看法
相信彼此分享不同的學習見解,能讓對於想要更精進自己程式開發功力的人有很大的幫助
===章節===
00:00 哪一個有效律?
00:36 寫程式如同寫作
05:14 書是最便宜的資源
10:14 折扣碼操作示範
===蝦皮購書折扣碼===
折扣碼:FLAGNIC36
時間:2021-03-29 ~ 2021-06-29
折扣碼:FLAGNIC79
時間:2021-06-30 ~ 2021-09-30
折扣碼: FLAGNIC11
時間:2021-10-01~ 2021-12-31
===前陣子在看的推薦書單===
(零基礎)
- 白話演算法!培養程式設計的邏輯思考
- Python 刷提鍛鍊班
(中高階)
- 設計模式之禪(第2版)
- 無瑕的程式碼-整潔的軟體設計與架構篇
- 單元測試的藝術
- 演算法之美:隱藏在資料結構背後的原理(C++版)
- Kent Beck的實作模式
(Ruby)
- Writing Efficient Ruby Code
(成長思考)
- 圖解.實戰 麥肯錫式的思考框架:讓大腦置入邏輯,就能讓90%的困難都有解!
- 師父:那些我在課堂外學會的本事
- 高勝算決策:如何在面對決定時,降低失誤,每次出手成功率都比對手高?
- 窮查理的普通常識
- 懶人圖解簡報術:把複雜知識變成一看就秒懂的圖解懶人包
- 寫作,是最好的自我投資
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
🎬 觀看我的生活廢片頻道: https://bit.ly/2Ldfp1B
⭐ instagram (生活日常): https://www.instagram.com/niclin_tw/
⭐ Facebook (資訊分享): https://www.facebook.com/niclin.dev
⭐ Blog (技術筆記): https://blog.niclin.tw
⭐ Linkedin (個人履歷): https://www.linkedin.com/in/nic-lin
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
✉️ 合作邀約信箱: niclin0226@gmail.com
#寫程式 #前端 #後端
後端課程 在 請益轉職網頁後端課程選擇- 軟體工程師板 - Dcard 的推薦與評價
這個問題大概已經問到爛了,但自己真的很煩惱,也爬過許多文章,還是無法抉擇,因此想來問問網友們的意見。因為自己比較希望能有一套完整架構的課程, ... ... <看更多>
後端課程 在 JavaScript 課程學什麼?全端開發教學| 學期2-3 後端開發實務 的推薦與評價
了解#ALPHACamp 完整 課程 學習地圖 https://alpha.camp/vtjD1▻ 訂閱ALPHA Camp ... 講解AC全端開發 課程 學期2-3 後端 開發實務https://bit.ly/... ... <看更多>
後端課程 在 [心得] 無經驗轉職後端工程師- 看板Soft_Job - 批踢踢實業坊 的推薦與評價
長期受惠於板上文章,決定將自己由去年九月中離職後,
自學網頁技術後成為Python Web Developer的心路歷程分享出來。
希望能幫助到無論是自學還是上課,
為了成為software engineer而努力著的版友們。
----------------------------文長慎入---------------------------------
去年八月底跟公司提離職,九月中離職後開始自學Python、Django網頁技術。
而成為Web Develope上工的時間是今年三月一號,約莫花了半年的時間。
首先我要先澄清的是,我並不鼓勵任何人跟我走一樣的路轉職。
原因無他,台灣使用Django框架以Python寫網頁的工作實在太少了。
如果真的想自學成為網頁後端工程師的話,
成功率最高的方式應該是以工作職缺數量為首要考量,選擇.NET、Node.js、
PHP,甚至是最近火紅的Rails,我想成功率都會高得多。
原PO之所以可以成功用Django轉職,運氣也佔了很大的成分。
一直以來都是很幸運的人,大學運氣好沒什麼唸書考上四大物理,
多益題本刷一刷不小心第一次就考了975分。
之所以挑出這兩件事情講,當然不是純粹想炫耀。
我個人認為如果要以自學的方式成功轉職,
最重要的有以下兩點:
第一點,邏輯以及學習能力(感謝母校物理系的學科訓練)。
第二點,英文能力。至少不能太差,你是要學程式不是學英文。
當你具備了這兩個特質,你就可以靠著國外的MOOC,快速的讓自己入門程式。
廢話不多說,正文開始。
以下會概括分為三個學習的階段,方便大家閱讀。
第一階段:Python好簡單,Coding好好玩之學語法時期
我個人是看Corsera的Python課程入門(有興趣請點 https://goo.gl/49wQIe)
共分為五門課程,前四門我都有認真的看過。教授講課幽默風趣,當你上完課,
你可以學到Python主要的語法以及資料結構,你會知道怎麼用Python爬網路上資料,
甚至會把資料存進SQlite而有了資料庫的概念。
這門課教授講的很好,我認為很適合作為無程式經驗者的入門課程。
當我看完這門課之後,利用學習到的爬蟲技巧以及SQlite資料庫,
寫了一個爬西斯版圖片的爬蟲程式,程式很簡單,主要邏輯就是設定要爬的頁數,
爬網頁版的西斯版,把圖片抓下來存在資料夾中,如果該頁有爬完過就寫進SQlite。
當然,你這個時期寫的程式絕對是那種埋了不少bug,
if、else、try、except混用而成的小怪獸,不要覺得可恥,
這些程式都是你的作品,你該覺得驕傲。
而且,當時的你,應該也不知道自己寫的東西很醜(笑
第二階段:一堆東西不懂、一堆東西要學之資訊爆炸崩潰期
當你進入第二個階段,你必須開始為之後要做的求職DEMO作品做準備。
隨之而來的是大量的資訊、術語以及你要學的東西,可能有點難熬,
不過請耐著性子,紮實的把這些資訊、術語吸收進你的小腦袋瓜,
之後Google會用到的,或著說,寫程式就是要常常Google? 至少我是(汗
這個時期我主要補充了幾種知識:
1. 計算機概論:
台大于天立老師線上開放式課程,邊看邊睡還是耐著性子看完了,
有多少的幫助不清楚,不過有看有保佑,至少能讓自己對Programming更進一步了解。
2. HTML以及CSS:
主要把Codecademy上的課程刷過去,刷了就忘沒關係,
記住一些terminology,你之後寫作品的時候,Google會用到的。
3. JQuery以及Javascript:
Javascript主要也是把Codecademy上面的語法刷過去,稍微做了解。
JQuery部分主要是看tuts+上的30 Days to Learn jQuery (https://goo.gl/x6t1Jz)
4.SQL
把基本的SQL語法在Codecademy刷過一次。
5. Django框架:
看了官方的tutorial、Youtube上一些Django的入門影片,
也看了The Django Book的前幾章,大致上知道Django在幹嘛但矇懞懂懂。
真正深入學習Django靠的是,Django By Example這本書。
寫程式學習最快的方式就是一直寫,當你認真的照著書上,
一行一行打出自己的程式的時候你會發現......
X!書上的code埋了很多Bug,不過你也無形中學會debug(?
總之,這本書蠻推的,如果要學Django框架的話,是一本能讓你從初學者變成,
比較不菜的新手的一本書,裡面用了許多不錯的library,甚至redis、celery等,
實務上用的到的東西,雖然你只是照著書上刻,但做出一些能run的東西也是挺開心的。
你可能會問如果想寫後端為什麼要學HTML、CSS、jQuery、Javascript等,
我才想問你不學前端怎麼做出網頁作品咧。
如果......
你只在自學的時期能只寫後端邏輯、API,
完全不做前端呈現就可以得到滿滿的成就感,我也是醉了。
好拉,至少對我而言後端資料丟到前端在呈現出來是個比較完整而有成就感的過程。
這個階段你會接觸到大量的知識,你必須大量的學習。
可能有時候會有點挫折,不過這些東西都會成為你下個階段寫作品的墊腳石。
你可能會因為大量接觸別人的程式碼而在這個階段,
對於語法、常用的語言資料結構更為熟悉,甚至慢慢開始懂得物件導向的概念,
像是學騎腳踏車一樣,似懂非懂,看多了,就好像懂了(?
最重要的是,在這個階段,你接觸了夠多的知識,你開始知道Google怎麼下關鍵字,
你可能不小心接觸了StackOverFlow,然後順便辦個帳號(?
第三階段:準備作品面試備戰期
身為非本科系半路出家的我們,取得面試機會的方式就是你的作品。
因為Django工作並不多,我當時碰巧得知StreetVoice網站是以Django為架構,
下定決心寫出一個跟StreetVoice一樣的網站證明我也有能力當junior developer。
後來面試完,無消無息又是另一段故事了...
雖然很無腦,不過我還是很感謝有StreetVoice這個網站能讓我不用去構思網站內容,
或許這樣很不creative,不過也省下了我很多的時間,能專注讓自己技術成長。
最後的成果是仿造出了我的DEMO WORK,個人覺得跟街聲網站功能有八成像。
完成的功能有:
1. 會員註冊、登入 2.歌曲管理介面包含專輯、歌曲上傳編輯
3. 歌曲、專輯喜歡功能,following、follower系統
4. 前端刻了一個Music Player播音樂
5. 為了聽音樂不中斷,全站採用AJAX,搭配html push state改變URL
大概由十二月中開始著手製作,
過年的時候做收尾並架在heroku上完成作品,約莫花了一個半月。
其實我很早就決定要做這個題目了,因此在還沒開始寫作品前,
沒事就會開始構思網站架構以及會用到的技術,大大減少開發時間。
---------------------------這是分隔線--------------------------------
當你經歷了以上三個階段,你就正式入門Programming了(應該吧
雖然你還很菜,但你懂了怎麼下google關鍵字,
你也能與人用專業的術語溝通程式的內容。
或許別人講的很多術語你很多似懂非懂,但重點是,你講的術語別人聽得懂,
那你就具備了推銷自己的能力了(X)面試的能力(O)
抬起頭來,自信的拿著你心愛的作品去面試吧。
當你經過了以上三個階段,你可能擁有的面試武器:
1. 語言、框架熟練度:以Python、Django為例,
你可能知道各種基本資料結構的操作(built-in method);
知道什麼樣的資料型態是mutable、immutable;
知道set跟dictionary是以hash方式實作,in的語法速度會比list還快;
你可能知道Django的MTV架構所代表的涵意,
你大致上知道Django ORM的Query要怎麼寫,
你了解request到response在Django中的大致過程。
而這些東西可能是你自己似懂非懂悟出的,
可能是你不懂的時候google看到一些技術部落格,看多了就學起來的。
2. 完整的專案經驗
雖然你的作品可能有點簡陋、code有點醜醜的,
甚至很多寫法都是從stackoverflow或是google上找來的,
但是你有了一個完整的project經驗,你證明了自己有辦法獨立寫出作品。
3. 打死不退的熱忱
要是沒有破釜沈舟的決心,是很難走過以上三個階段的,
展現出自己的決心說服面試官用你吧!
小弟我只面試了三家公司,
很幸運的被現任主管撿走在一家新創電商寫Django,基本上前後端都會碰到。
之所以會一直強調自己很幸運是因為,要是沒有找到這份工作,
我也不知道自己現在在哪兒流落街頭,也沒辦法打這篇文章了......
特別感謝我的女友、家人總是支持我做的決定陪在我身旁。
也感謝現在的主管、同事能夠包容非本科的我在專業知識上的缺乏以及不足。
希望這篇文章能幫助到想靠著自學轉職的勇者們!謝謝大家!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.218.11.14
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1497109631.A.D6F.html
※ 編輯: jly8061666 (124.218.11.14), 06/10/2017 23:53:05
吧。
選Django而不是其他框架單純只是選擇看起來最成熟,使用者最多的框架。畢竟你在初學
的時期根本不知道框架是什麼碗糕,應該算是誤打誤撞吧。
※ 編輯: jly8061666 (223.140.244.244), 06/11/2017 08:29:22
續唸碩班。當初本科系沒唸碩班單純是對竹科興致缺缺,也不想為了洗學歷硬是唸個碩班
。個人覺得每個唸理工都非得唸碩班不可蠻病態的...
※ 編輯: jly8061666 (124.218.11.14), 06/12/2017 21:19:25
... <看更多>