[討論] 尋找好的軟體框架的方法

看板Soft_Job (軟體人)作者 (大蝌蚪)時間7年前 (2018/08/30 09:51), 7年前編輯推噓13(13018)
留言31則, 15人參與, 7年前最新討論串1/1
各位年薪 300 萬的大大好 最近遇到一個問題讓我很困擾 就是我常常在開發一個專案的時候 會不知道有哪些框架是適合現在的專案 可以優化整個專案架構 舉例來說 之前我有開發 facebook chatbot 的經驗 越開發到後面 if else 就越來越多 因為要常常去抓詞彙是哪種狀況 雖然這種情況很煩惱 但是我還是硬幹把他幹完了 只是看著架構越看越覺得醜 也有上 google 打關鍵字像是 "if else chatbot too many" 主要都是說怎麼簡化 Python 沒有 switch 的問題 後來和那時候不是同事的前輩討論 他就建議我用 finite state machine 我才知道這個框架可以用在 chatbot 後來回去想說如果以一個不知道這個框架的情況 要怎麼搜尋這個框架呢 我一樣 Google chatbot architecture framework 找到的都是 AI NLP 訓練相關的文章 不知道大家在框架選擇上是怎麼搜尋和選擇的 可以幫工作不到兩年經驗的小弟解惑一下 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.88.204 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1535593893.A.E14.html

08/30 09:59, 7年前 , 1F
chatbot這個例子 我剛接觸時跟你一樣if else硬幹...
08/30 09:59, 1F

08/30 09:59, 7年前 , 2F
後來是去line群或者fb社團多聊多逛 聽演講看別人都怎做
08/30 09:59, 2F

08/30 09:59, 7年前 , 3F
也有很多業界實例介紹他們怎麼處理狀態管理的文章
08/30 09:59, 3F
我也有加一些群組,偏後端開發相關的社群 裡面文章通常很多面向 我也沒有特定想到這個有解所以沒問 結果是被動才知道就覺得很糟糕

08/30 10:06, 7年前 , 4F
有蠻多設計模式可參考,寫起來會改成分出很多檔案,但比判
08/30 10:06, 4F

08/30 10:06, 7年前 , 5F
斷式清楚
08/30 10:06, 5F
design patterm 我有看一些,但是比較想知道找到適用框架的方法QQ ※ 編輯: paul800526 (114.136.88.204), 08/30/2018 10:16:51

08/30 10:53, 7年前 , 6F
不明白這問題為何會到框架這一層,想要消除if地獄需
08/30 10:53, 6F

08/30 10:53, 7年前 , 7F
要改善的是程式架構。不調整這部分的話和你選擇那種
08/30 10:53, 7F

08/30 10:53, 7年前 , 8F
框架都一樣悲劇
08/30 10:53, 8F
我定義的框架是給定專案的抽象層, 使得程式開發的時候可以建立在抽象層上 避免架構雜亂, 如果以我這樣定義框架的話, 是討論框架沒錯吧? FSM 可以在使用者走到特定狀態的時候保持固定的選擇 而不需要在全域下進行多層的邏輯判斷, 所以可以改善 chatbot 架構 我是這樣定義的

08/30 11:26, 7年前 , 9F
為啥不用DB?
08/30 11:26, 9F
你說的是 Database 嗎? 如果是的話是說把每個使用者流程都存起來 這樣 DB query 不是很吃資源

08/30 11:42, 7年前 , 10F
有限狀態機其實是大學的基本學科教的
08/30 11:42, 10F

08/30 11:43, 7年前 , 11F
然後段考還會考怎麼設計有限狀態機跟去算有限狀態轉移 Q_Q
08/30 11:43, 11F
演算法有, 學的時候有用在圖學上的題目, 但是要直覺的用在程式上還是蠻難的 像是假設今天有個 NP 問題, 在程式裡面遇到了但是不知道要用哪種解法的感覺 ※ 編輯: paul800526 (114.136.88.204), 08/30/2018 12:48:00

08/30 12:37, 7年前 , 12F
語意分析去找微軟相關大廠有出api,消if else用狀態模式
08/30 12:37, 12F

08/30 12:37, 7年前 , 13F
去做
08/30 12:37, 13F
我看看!! 謝謝 ※ 編輯: paul800526 (114.136.88.204), 08/30/2018 12:50:45 ※ 編輯: paul800526 (114.136.88.204), 08/30/2018 12:52:00

08/30 12:55, 7年前 , 14F
我後來看看發現 state 是 design pattern,我錯了看起
08/30 12:55, 14F

08/30 12:55, 7年前 , 15F
來是我功力不夠QQ
08/30 12:55, 15F

08/30 13:00, 7年前 , 16F
演算法跟其他專業的書讀法都一樣,看完一個概念最好實際
08/30 13:00, 16F

08/30 13:00, 7年前 , 17F
寫過一次,或者想個應用,這樣會比較好吸收。
08/30 13:00, 17F
好噢謝謝

08/30 13:00, 7年前 , 18F
你在說的東西明明就是軟體架構,混雜一些已學的東西
08/30 13:00, 18F

08/30 13:00, 7年前 , 19F
卻沒有好好的消化理解,非常危險
08/30 13:00, 19F
我好像也有感覺

08/30 13:12, 7年前 , 20F
深入淺出設計模式
08/30 13:12, 20F
有下載還沒看QQ

08/30 14:06, 7年前 , 21F
FSM寫過verilog就很會用了啦
08/30 14:06, 21F
沒寫過

08/30 14:34, 7年前 , 22F
如果是你if else能硬幹出來的東西用DB不可能慢啦
08/30 14:34, 22F

08/30 14:36, 7年前 , 23F
隨便講一個10萬筆數據好了 你只做read 50ms以下就能
08/30 14:36, 23F

08/30 14:36, 7年前 , 24F
出結果了
08/30 14:36, 24F

08/30 14:58, 7年前 , 25F
DB快是因為處理資料的演算法都幫你處理好了
08/30 14:58, 25F
我是在想說這樣資料庫要存一堆使用者的狀態,覺得蠻奇怪的...

08/30 15:52, 7年前 , 26F
如果一開始還不知道用哪種架構,那可以先硬寫,只後再重
08/30 15:52, 26F

08/30 15:52, 7年前 , 27F
08/30 15:52, 27F
好噢謝謝

08/30 18:44, 7年前 , 28F
hash map
08/30 18:44, 28F

08/31 17:06, 7年前 , 29F
抓哪一個字會是哪一個情形,使用trie(字典樹)來搜尋對應
08/31 17:06, 29F

08/31 17:07, 7年前 , 30F
的動作呢?
08/31 17:07, 30F
我思考一下 ,之後再來回答 ※ 編輯: paul800526 (114.136.105.115), 08/31/2018 19:53:49

09/03 09:41, 7年前 , 31F
看open source
09/03 09:41, 31F
文章代碼(AID): #1RXqsbuK (Soft_Job)
文章代碼(AID): #1RXqsbuK (Soft_Job)