程式設計文章 | 討論 | |
❀ | 簡明RESTful API設計要點 Arthur Liao4年 英文版本:[A Concise RESTful API Design Guide](https://twincl.com/programming/*6af/rest-api-design) |
❀❀ | 程式員求生指南:關於寫程式的二三事 Arthur Liao5年 這算是求才的問題吧?在我過去的工作經驗裡面,求才是重點任務之一。比起香港,台灣確實擁有更好的軟體人才庫。歡迎你們到台灣設立開發團隊!:-) 你們已經在台灣辦好公司登記了嗎?這事沒辦好,是沒辦法在台灣正式開始找人的。(以前我在NetBase工作的時候,是我幫他們在台灣辦公司登記,一開始我先遠端在台灣工作,不過這算是特例。) 我建議以下幾個管道,同時進行: - 在104人力銀行開職缺 - 利用社群媒體宣傳(例如FB社團或PTT) - 找獵人頭公司 有問題歡迎提出來,這方面我算很有經驗了,可以提供一些心得給你們參考。(不過請另開一篇,不然樓就歪了。) |
❀❀ | 程式員求生指南:關於寫程式的二三事 Arthur Liao5年 補充我昨天在某個臉書社團關於「前端vs後端」的[討論回應](https://www.facebook.com/groups/f2e.tw/permalink/1002178373152861/?comment_id=1002379623132736),內容如下: > 以下回應比較長,所以我重新貼一段文。 > > 前端的code不會比較難寫,但是經常比後端的code難維護。我舉一個幾年前在Yahoo工作時碰到的維護CSS的例子。當時Yahoo網站的前端程式架構,為了讓各個國家及property(property指的是新聞、運動、娛樂等不同網站)可以有自己的版面風格,所以各國家及property都可以有自己的CSS overwrite,這些CSS overwrite再按照一定的順序載入。你知道CSS長到幾千行的時候,就會變得很難讀懂,而不同國家及property的工程師為了達成PM/designer的要求,有時會為達目的不擇手段,所以經常可以看到「!important」出現在CSS原始碼裡,因為第一次用「!important」的人可以不用管整團CSS是怎麼攪和在一起的。如果你是在下游,用這種X招是可以work,但在中上游的人就慘了。我發現只要我動一下CSS,下游property的網頁就壞了,要改就必須把那一堆「!important」和各種奇奇怪怪的CSS overwrite rule都理順修好。有些我勉強改完了,有些實在沒辦法,只能跟PM和designer說抱歉。 > > 前端開發是個叢林世界,光是一個CSS的coding style就很難統一,何況還有前端的各種不同framework、design pattern(或no pattern)及開發風格。不同的工程師有不同做法,簡直是八仙過海,各顯神通。我覺得前端的code要寫到可讀、易維護,比起後端更難。前端的工程師們,大家辛苦了!(此時腦海浮現「啊,福氣啦!」及周潤發廣告的畫面) |
❀❀ | 程式員求生指南:關於寫程式的二三事 Arthur Liao5年 > 如果是用強類型語言編寫的項目,理論上應該可以描繪出它的「電路圖」,這對檢視程式的質素應該十分有幫助。 確實,強類型語言有很多靜態分析工具可以運用,這在大型專案上很有利。比如Java在企業軟體領域大量被使用,我認為與它適合大型團隊生產線的特質有關:程式要先編譯,分析工具多,自由度低、程式碼品質的發散幅度比較小。不像scripting language(PHP、JavaScript……),自由度高、程式碼品質的發散幅度超大,很多bug都是在runtime/production系統才會發現,必須仰賴很多unit test及test automation補強。 |
❀❀ | 程式員求生指南:關於寫程式的二三事 Arthur Liao5年 謝謝你分享的名言!我以前有一個小小的心得:大部份人都是到了不得不改變的時候,才會改變自己。能主動改變自己,並且持之以恆,你的努力一定不會白費。加油! |
❀❀ | 程式員求生指南:關於寫程式的二三事 Arthur Liao5年♣ 你這麼一說,我又想起了更多事情。以前在Apple II寫6502,我覺得最好玩的是戳喇叭讓它發出長短不同頻率的聲音。奇怪,我以前怎麼有那麼多閒功夫。 |
❀❀ | 程式員求生指南:關於寫程式的二三事 Arthur Liao5年 我完全理解。很多寫程式的人心中都有個理想境界,但既有程式碼的現實、職場環境對待軟體開發的心態,常使自己不得不先放下「理想」。我想,環境是人造成的,在提升自己專業能力的同時,加上大家的努力,也會使環境發生變化。大家一起加油!(希望對台灣軟體環境能有一點貢獻,也是我離開Yahoo自行創業的原因之一,當然還有一段長路要走就是了。) |
❀❀ | 程式員求生指南:關於寫程式的二三事 Arthur Liao5年 已更正,謝謝! |
RESTful API如何一次完成多個相依請求 Arthur Liao5年 > 是否有可能設計此執行plan的格式,例如用JSON設計,讓server端各自去parse,而知道執行完給哪個server,而不用特別設計這個multi-request API去執行 這已經超出RESTful API設計的範圍了,屬於系統架構設計的問題。因為不同系統的需求差異很大,從以上簡略的敘述,我很難給甚麼具體建議。 > 而若有多個相依的request,是否要針對每一個都設計一個multi-request? 還是有更彈性的作法? 能建立一個動態調整的multi-request 我在文章中提供的multi-request範例,就是採用彈性的設計,client發multi-request請求的時候,可以自行調整requests順序及相依關係(當然server端程式也要能正確parse才行)。 | |
RESTful API如何一次完成多個相依請求 Arthur Liao5年 這是指用第一種解法的情況吧?可以擴充multi-request API的格式,接受帶host的request,例如: ``` { "requests": [ {"method": "GET", "uri": "/authors/1001"}, {"method": "GET", "uri": "/articles/${responses[0].articleIds[0]}"}, {"method": "GET", "uri": "/pictures/${responses[1].pictureIds[0]}", "host": "api2.example.com"} ], "response": { "url": "${responses[2].url}" } } ``` 以上仍由server1負責將結果回傳給client。(由於TCP/IP是兩台機器之間的封包傳送,發給server1的請求,實務上不可能變成由server2回傳結果。) | |