PTT推薦

[請益] 請問程式架構和資料結構的差異

看板Soft_Job標題[請益] 請問程式架構和資料結構的差異作者
serenitynice
(cregryrm)
時間推噓35 推:35 噓:0 →:63

各位大神前輩好,新手發問

想請教一下程式架構和資料結構的主要差異,及重要性?

是這樣的,我在爬文時看到這篇文章,詢問資料結構的重要性
#1Tigizmt (Tech_Job)
裡面有一段討論是這樣的:

※ 引述 《a23395080 (路過看看)》 之銘言:
: 噓 ll1117: 我的程式結構比現在任何資結都強兩倍,不用管書上說什麼 10/25 17:33: 噓 pig2014: ll117少誤人子弟,程式結構是SOLID跟design pattern,干 10/25 17:49: → pig2014: DS屌事 10/25 17:49

想問所謂SOLID和design pattern應該是和物件導向那塊有關吧?
這個和資料結構有什麼關聯嗎?

我自己的認知是
程式的整個架構和好不好維護、能不能擴充有關;
資料結構是可以減少程式的複雜度,讓速度變快,或是為了某些演算法而生的?

本人目前剛修完大一的程設,什麼design pattern和資料結構還不太熟悉
物件導向剛學會封裝、繼承、多型;
資料結構只有寫過linked list,tree那些還沒自己刻過

想問這兩個有什麼關聯嗎? 還是不同領域的
有重要性之分嗎?還是跟著學就好了

謝謝各位指教

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.141.187.168 (臺灣)
PTT 網址

holebro06/30 12:34不同領域 都很重要

chrischen06/30 12:39就 程式 跟 資料 的差別 先理解這兩個名詞

ko27tye06/30 12:42資結現在是大一的課了?

Hsins06/30 13:02你的認知大致上是對的

ChungLi556606/30 13:03資結大二就會上了別急

hidog06/30 13:11基本的搜尋排序,就會跟資料結構扯上關係了

hobnob06/30 13:15你的想法大致對,那種人的高談闊論看看就好

longlongint06/30 13:18Design pattern 讓你方便維護跟擴充功能

longlongint06/30 13:19資結演算法 主要是改進程式的效能 但也方便維護

lazarus112106/30 13:20資料結構偏演算法,程式架構偏設計

longlongint06/30 13:21目標不一樣 但這兩科有一些共用的知識

poison556606/30 13:45架構底下可能還會實作資料結構 兩者不能混為一談 大二

poison556606/30 13:45會教資結但我的學校沒什麼教程式架構ㄏ

luke7206/30 13:58好的資料結構可以讓程式架構變的紮實,有效率,高彈性

luke7206/30 13:59這是相輔相成的。會說不相干的只能說他沒弄懂

jj032106/30 14:02身體胖瘦高矮 = 資料結構, 穿搭好看與否 = 設計

chatnoir06/30 14:04資料結構就是你的材料, 程式設計就是你炒出來的菜~

chatnoir06/30 14:05你要怎麼炒得色香味俱全, 首先你的材料要準備得夠充分

s06yji306/30 14:07程式架構跟資料結構掛鉤的話,換個實作方式架構不就要整

s06yji306/30 14:07個重寫?

chatnoir06/30 14:07演算法跟設計就比較像是你炒菜的功夫了

s06yji306/30 14:10這樣好像不太合理

alan310006/30 14:26如果你是講效能的話通常資料結構是硬限制上不去就得大改

alan310006/30 14:31如果你在小公司資料只有幾百萬筆那會不會資料結構沒啥差

alan310006/30 14:32程式結構強對應快速需求變化也許比資料結構重要

alan310006/30 14:33但如果你在大公司不考慮資料結構大概就是完全跑不動=0分

luke7206/30 15:54換個資料結構就要整個架構重做,代表架構太弱

luke7206/30 15:55好的設計應該是只影響到該改動的部分阿

luke7206/30 15:55高內聚低耦合有沒有聽過

s06yji306/30 16:31那不就表示程式架構和資料結構互相不影響嗎?

ssccg06/30 16:46沒到互不影響,有時候要達成某種程式架構,一定要有某功能

ssccg06/30 16:46的資料結構

wsad5023206/30 16:55OOP是垃圾

wulouise06/30 16:56algorithm + data structure + design = programming

brucetu06/30 17:47先去刷題刷個十題 再學一種後端開發框架做個留言板 你就

brucetu06/30 17:47懂程式架構跟資結是指什麼了

brucetu06/30 17:48你可以完全不碰前端 用postman打api 用你覺得方便的語言

brucetu06/30 17:48做幾支api實現留言板的功能

brucetu06/30 17:50推薦python flask的網路教學隨便找幾篇照著做 幾個小時就

brucetu06/30 17:50懂了

NTUTM0406/30 18:53通常會說OOO最好XXX最糟糕的 這種評論可以直接跳過

luke7206/30 18:56很多人以為資料結構=演算法,卻忘了為什麼它叫資料結構

luke7206/30 18:58與架構關係很小的是演算法啊

s06yji306/30 19:07這樣有點矛盾,演算法跟數據結構關係很大。

superpandal06/30 19:23以前寫java的時候也是通通搞混 因為oop就是那樣 只是

superpandal06/30 19:23後來意識到就會用資料結構去形容

OnlyRD06/30 19:37資料結構和程式結構也有關啊,通常封裝的原則就是

OnlyRD06/30 19:37越靠近操作就應

OnlyRD06/30 19:37該擁有相關的資料,依據這個原則設計程式基本上都

OnlyRD06/30 19:37不錯。但資料結

OnlyRD06/30 19:37構又會牽扯到算法與記憶體大小、對齊、cache、拷貝

OnlyRD06/30 19:37、搬移、heap

OnlyRD06/30 19:37、stack、資源競爭等等,怎麼可能完全跟程式設計無

OnlyRD06/30 19:37關?

OnlyRD06/30 19:48很多人認為解耦和越高的程式設計就是好設計,實在

OnlyRD06/30 19:48是想得太簡單太

OnlyRD06/30 19:48理論,實務上真的有用的是慣用手法+重複使用某些基

OnlyRD06/30 19:48礎元件和結構

OnlyRD06/30 19:48,更小範圍的使用idioms,有興趣去看一下absl和fol

OnlyRD06/30 19:48ly,他們並不

OnlyRD06/30 19:48是一個傳統的框架,卻集成了許多常用通用的概念元

OnlyRD06/30 19:48件,並且散佈在

OnlyRD06/30 19:48不同的大型軟體之中。如果不清楚應用,設計出天霸

OnlyRD06/30 19:48王型的軟體架構

OnlyRD06/30 19:48,企圖解決所有問題,包括不知道的需求,專案很容

OnlyRD06/30 19:48易失敗。類似的

OnlyRD06/30 19:48概念還有程式產生器這種東西,最後都淘汰在歷史洪

OnlyRD06/30 19:48流之中,沒有什

OnlyRD06/30 19:48麼都通吃的設計,只有最適合的設計。

bill020506/30 20:14資料結構和程式架構是兩回事..完全不同領域的東西

jl4006/30 22:05大一最重要的課程 是社交 談戀愛 別荒廢了

lovdkkkk06/30 23:04板上搜尋 "後端工程師要如何更優秀" 有些不錯的介紹

viper970907/01 00:18推二樓

lturtsamuel07/01 01:38大一不要想這些有的沒的 去辦營隊認識女生比較要緊==

poison556607/01 03:47推樓上 女朋友和書卷我選女朋友

wahaha27907/01 11:36程式架構是為了應付需求變化,資料結構是為了運算效率

wahaha27907/01 11:36,但資料結構會影響到程式架構。

luke7207/01 13:59爛的資料結構會讓你必須加一堆workaround才能應付需求

OriginStar07/01 14:40其實就是2件事混在一起談。以訂票系統舉例,餵1000元

OriginStar07/01 14:42退一堆50元銅板造成困擾,是程式架構的問題

OriginStar07/01 14:43重複訂票造成困擾是資料結構的問題,但一般人就認為系

OriginStar07/01 14:43統爛有問題

NCUking07/01 15:23你認知是對的 反串推文少看 不要浪費生命

strlen07/01 16:01要說完全無關也不是 有一些程式架構 就是從資料結構來的

ChungLi556607/01 16:24大二上DS就會懂了 這門課會告訴你電腦怎麼有效率的處

ChungLi556607/01 16:24理資料存取、排序等等 跟程式架構要探討的主題完全

ChungLi556607/01 16:24不同

s06yji307/01 16:57重複訂票是數據不整合。跟數據結構沒關係。確實是系統爛

s06yji307/01 16:57。0.0

Romulus07/01 18:12通常推文不認識的ID嗆最大聲不要誤人子弟的

Romulus07/01 18:12就是最誤人子弟的那個

superpandal07/01 19:46資料結構有關聯 但搞成物件導向多半都很難維護 畢竟

superpandal07/01 19:47各大專案都寫自己的 然後你湊起來又會因為語言本身特

superpandal07/01 19:48性導致你綁手綁腳還要夠了解才維護的好 成本超乎想像

superpandal07/01 19:50如上面有人講的 好維護過生活不是更好?

superpandal07/01 19:55尤其註解流 資訊零散的太恐怖了 只有對原來開發者友

superpandal07/01 19:55

kurtsgm07/02 16:13程式架構跟資料結構無關 是兩碼事