如何優雅地避免程式碼巢狀 | 程式碼嵌套 | 狀態模式 | 表驅動法 |

  Рет қаралды 122,903

今天晚放学

今天晚放学

Күн бұрын

Пікірлер: 113
@王振宇-h6y
@王振宇-h6y 9 ай бұрын
這麼好的影片我居然現在才看到,感謝作者的製作
@luxhk3377
@luxhk3377 8 ай бұрын
其實,避免過份嵌套在學編程的第一年內就必須意識到,這個不需要老師教,思維邏輯清晰點的都會意識到問題,所以為什有原始的高階語言就已經有switch和if return的存在,這也是第一個方法在解決嵌套,這亦是入門階段,然後就開始往狀態機進發,如何就是往抽像進發。。。沒錯,我寫c的,是純c沒oo的也抽象,因為某些時候您會發現不抽象真的很難管理你的code。。。各種抽象函式分離再去就是按需各自發揮,根本沒有標準,只能按情況而定,這就是優化。抽象的思維不是語言本身,是程序員自己。 例如c的結構體和函數指針就是變量和執行方法的封裝,才有後來的class,所以語言的進化本身也是編程人的思維進化,現代語言的改進是在編程人員需求的情況下改進了編譯器,代码规则或runtime而已,记住这些。
@b95109028
@b95109028 9 ай бұрын
點進來之前覺得大概就又是個一般的影片,看完後秒訂閱。主要是流暢與不廢話,很適合我們這類型觀眾
@jhlin2297
@jhlin2297 9 ай бұрын
學完一學期的物件導向,竟然現在才看到影片 真正了解了Patterns的好用之處,感謝製作影片。
@longlong8556
@longlong8556 8 ай бұрын
請問patterns好用之處在哪
@haner0834
@haner0834 8 ай бұрын
@@longlong8556 主要是在程式碼的可讀性和維護性提高,個人開發可能沒什麼感覺,但和別人合作時就很重要了:)
@無名氏-l1c
@無名氏-l1c 4 ай бұрын
@@longlong8556主要是能裝作你懂
@タニマック
@タニマック 6 ай бұрын
這是我看過最好的程式教學影片
@楊宗燁-n4v
@楊宗燁-n4v 8 ай бұрын
講解的很精闢,希望能有更多相關影片
@張夢萊
@張夢萊 9 ай бұрын
雖然我用的程式語言沒有這些功能,但也學了一些。 代碼嵌套另一個問題是除錯困難。
@user-abiko_cccc
@user-abiko_cccc 9 ай бұрын
对于刚入行的程序员来说,每天的日常经常就是不停地跟这些很原始的if else 条件判断里打架。然后在嵌套了四五层的条件判断之后彻底把自己绕晕掉。这就是因为根本不知道为了解决这样的问题,前辈们早就发明了各种既成的高阶函数以解决这些问题,自己对此只是太无知而已。
@sjsusbsjsjsj659
@sjsusbsjsjsj659 8 ай бұрын
但作為一個普通打工仔,還是不要把工作完成得太完美
@robertnull6653
@robertnull6653 6 ай бұрын
倒是覺得剛入行會繞暈,主要在不會寫架構,不會模組化,這點剛碰OOP最清晰,東西全耦合在一起,加個功能都得判斷一堆,還壞了其他功能。若是架構好,避免嵌套就是腦袋想幾下的事情
@charle09111
@charle09111 9 ай бұрын
簡單易懂 含金量高
@zhenghongjiang5862
@zhenghongjiang5862 21 күн бұрын
挺精彩的,做這些內容過程不簡單
@bittergourd
@bittergourd 3 ай бұрын
作为一个搞数据搞模型的写手,我是functional programming的拥趸。即便如此,这个视频中依然有很多值得学习的技巧。
@貓戰經驗分享
@貓戰經驗分享 4 ай бұрын
這部片太帥了吧,不會是背景BGM、節奏、步調無可挑剔 我只能說好燃啊啊啊啊
@王大為
@王大為 8 ай бұрын
這頻道把我內心的疑問解決不少
@薬売り-t6y
@薬売り-t6y 5 ай бұрын
optional是FP針對Null的解決方式,跟其他語言替代if的語法糖有點不太一樣,FP的可讀性更高更容易撰寫測試,概念上消除了Null
@吉喆喆
@吉喆喆 3 ай бұрын
干货满满
@黃國棠-i8p
@黃國棠-i8p 8 ай бұрын
收穫很多,謝謝作者!
@Koishogi
@Koishogi 9 ай бұрын
...雖然這些功能我還不會寫(自學初學者)不過介紹的很詳細 謝謝!會變看邊學的
@jkapc8396
@jkapc8396 9 ай бұрын
这不是初学阶段的重要目标,等到有一定的工程经验才会明白为什么要这么做
@sunnycat777
@sunnycat777 8 ай бұрын
真的多該看看⋯已經處理了不少外包這樣的雷代碼,要加油點
@johnnyli7628
@johnnyli7628 8 ай бұрын
好是好,問題是很多人看不懂哈哈,不要太高估同事們(外判員工)的能力
@張李-m6v
@張李-m6v 6 күн бұрын
早期我習慣先寫完再修改, 不過很多教程都會教怎麼寫。
@林駿騰-s8q
@林駿騰-s8q 2 ай бұрын
您好,請問可以告訴我有關您影片製作的工具嗎?我很喜歡這樣的影片呈現方式,也謝謝您製作這麼詳細的解說。
@yuxiang4218
@yuxiang4218 9 ай бұрын
棒! 不同语言的比较很有意思
@bbq-.-
@bbq-.- 3 ай бұрын
動畫做得好棒
@周哲煒-u1r
@周哲煒-u1r 7 ай бұрын
非常好的影片~~
@盧秀玲-b7s
@盧秀玲-b7s 8 ай бұрын
感謝你的教導!!
@許竣翔-t5o
@許竣翔-t5o 8 ай бұрын
優質影片推推
@junsu200ok
@junsu200ok 8 ай бұрын
1:32 右邊簡單工廠的CASE是不是畫錯了呀? 每個CASE都是FullReduction
@stevechan5315
@stevechan5315 8 ай бұрын
视频制作太好看了
@fengcc2900
@fengcc2900 7 ай бұрын
js这种花里胡哨的语言的所谓的“优雅”,只是建立在语法糖和更耗性能的语句功能之上。就像农村土包穿了名牌花哨的衣服,本质还是土包。我嵌套一个if不比你使用lambda更省性能更直观吗?
@endgfw
@endgfw 9 ай бұрын
很简单,用排除法,逐个return,或者是组合条件
@crumblywing
@crumblywing 9 ай бұрын
你的影片好棒,謝謝你的分享
@ethanz3153
@ethanz3153 8 ай бұрын
制作精良!
@汪小-p9l
@汪小-p9l 6 ай бұрын
太棒了!!!真的
@reddevils7424
@reddevils7424 Ай бұрын
2:52 字幕
@mangomilkshakelol
@mangomilkshakelol 8 ай бұрын
好好读system design ❤
@hy1234
@hy1234 9 ай бұрын
还是要写成屎山代码,才能防止被优化
@Ryan.L-28
@Ryan.L-28 7 ай бұрын
自己的工作還是得由自己創造
@AIProphecy
@AIProphecy 8 ай бұрын
可以解釋如何解決太多需要多判斷的問題嗎? 在我看起來這只能判斷出現在狀態,但要執行此狀態下可以的作動不還是要判斷句嗎?😂😂😂
@周哲煒-u1r
@周哲煒-u1r 7 ай бұрын
原本是在錯誤狀態中會報錯,新方法是直接實作在多型裡面,在對應function裡面報錯
@chifunggung6289
@chifunggung6289 8 ай бұрын
这些动画是怎么做的?诚信请求
@ouo9454
@ouo9454 9 ай бұрын
主管:嵌套迴圈對程式影響不大 我😑
@xiaoeyun
@xiaoeyun 9 ай бұрын
結果正確,花費時間就不重要了
@stevelin6546
@stevelin6546 9 ай бұрын
​@@xiaoeyun客戶:明天就要 工程師:ㄎㄥ
@xiaoeyun
@xiaoeyun 9 ай бұрын
@@stevelin6546 我的意思是代碼需要你喝一杯咖啡時間,還是點下去就直接出來的差別XD
@ouo9454
@ouo9454 9 ай бұрын
主管只看結果,殊不知省時的代價很大
@许跃华
@许跃华 9 ай бұрын
@@stevelin6546 是的,搭建基础框架和重要模块时,有相对充足的时间,可以好好打磨代码。但在实际二次开发功能时,无论老板还是客户,只看重响应速度和没有大的bug,于是代码屎山就诞生了😅
@jiyingli9938
@jiyingli9938 8 ай бұрын
漂亮啊🎉 视频动画怎么做的?
@unexceptedworld
@unexceptedworld 8 ай бұрын
回调才是嵌套过深的真正元凶,然而被选择性忽略了
@杨永全-h7e
@杨永全-h7e 4 ай бұрын
学到了
@robertnull6653
@robertnull6653 6 ай бұрын
日期取得那個例子,多個row寫閏年日期不是浪費記憶體空間嗎,還是說省下判斷月份的時間更重要?
@johnlin7439
@johnlin7439 3 ай бұрын
return monthDays[month - 1] + (1 if isLeapYear and month == 2 else 0)
@Invisible_troll
@Invisible_troll 9 ай бұрын
Python我选择直接添加一个函数来解决问题
@Roieee1028
@Roieee1028 8 ай бұрын
很好奇这种视频动画是怎么做出来的呢?
@yedemon
@yedemon 5 ай бұрын
但听说 “只有这样,才能确保别人修改不了你的代码”。
@majaja790909
@majaja790909 8 ай бұрын
對上班只寫PL/SQL的我 也只能含淚接受 😢
@wodkaJ
@wodkaJ 7 ай бұрын
有同感😂
@jasonchan7147
@jasonchan7147 8 ай бұрын
太強了,有時貪快寫很多if else,到最後debug真的會想自殺。影片很有用,感謝!
@ziranshuzhang6831
@ziranshuzhang6831 8 ай бұрын
dart表示嵌套看习惯无所谓
@ditokum
@ditokum 7 ай бұрын
【但你也只能含淚接受】
@John-ey3im
@John-ey3im 8 ай бұрын
時間複雜度從O(n)到O(1)的區別
@BreakingGood-k9x
@BreakingGood-k9x 8 ай бұрын
老哥有料欸
@Boyang-zy9mv
@Boyang-zy9mv 8 ай бұрын
优雅!!!
@hypatia-du-bois-marie
@hypatia-du-bois-marie 8 ай бұрын
朋友你聽過monad嗎?
@massimilianohu
@massimilianohu 9 ай бұрын
@蓝海极客
@蓝海极客 9 ай бұрын
请问,你这个动画是什么软件做的?我在想一个有什么好的软件适合表达代码修改
@amosf.2780
@amosf.2780 9 ай бұрын
我也想知道! 做的好棒喔!
@谹䈣譀
@谹䈣譀 9 ай бұрын
看起來ppt的動畫幾乎都能做到
@蓝海极客
@蓝海极客 9 ай бұрын
ppt代码怕是没有高亮吧​@@谹䈣譀
@yugio5991
@yugio5991 9 ай бұрын
我也想知道!
@Himate-er6wy
@Himate-er6wy 5 ай бұрын
Me too
@陳琨錡
@陳琨錡 8 ай бұрын
太濃縮了,看不懂
@water-ban-bu7ex
@water-ban-bu7ex 8 ай бұрын
太有料惹
@piterashi
@piterashi 8 ай бұрын
請問1:03 為何要顛倒判斷邏輯?
@2cosXcos-1
@2cosXcos-1 7 ай бұрын
這是數學邏輯的一個重要用法 你要判斷包含的很多 那反過來直接找不包含也是一樣
@kittysmith9366
@kittysmith9366 7 ай бұрын
前面是不满足的条件,当然要颠倒判断逻辑
@古歌-w3i
@古歌-w3i 9 ай бұрын
1:20 幹這行大多都是沒對象的 怎麼會知道😢
@一袋米要扛幾樓痛みを感
@一袋米要扛幾樓痛みを感 9 ай бұрын
那話如同拳頭一般直擊我心:Critical!
@user-abiko_cccc
@user-abiko_cccc 9 ай бұрын
因为干这行的很多情况下使用的一种编程思想叫:“面向对象”。😂! PS:中国叫“面向对象”,台湾叫“物件导向”,没有用这个词可能不太能理解这里其实是一个关于程序员的笑话。
@TwoNightMix
@TwoNightMix 8 ай бұрын
代码拿到一开始就是乱的 只能祈祷他能跑起来就好了
@Hhong_1120
@Hhong_1120 4 ай бұрын
很强大的视频,不过我目前的水平还不太行,收藏了
@fakecake6776
@fakecake6776 8 ай бұрын
Chain method
@shuaipu5784
@shuaipu5784 8 ай бұрын
筛选1000000
@redZhong
@redZhong 8 ай бұрын
2:52 😭😭
@gn_ghost4757
@gn_ghost4757 5 ай бұрын
C表示我好难
@Rex-nx4nv
@Rex-nx4nv 8 ай бұрын
這影片太優質了吧
@chichungwan8070
@chichungwan8070 9 ай бұрын
原鏈接?
@yuan0
@yuan0 9 ай бұрын
為什麼巢狀不好
@re4388
@re4388 9 ай бұрын
可讀性降低。一兩層其實沒差。但多層就開始會降低閱讀速度。
@阿才-f1x
@阿才-f1x 9 ай бұрын
@@re4388 我很好奇像1:09這種用很多函式的會更好讀嗎? 因為我感覺我看JS幾乎都在查函式
@jerrychen9580
@jerrychen9580 9 ай бұрын
@@阿才-f1x 所以為什函式名稱很重要 你應該要看函式名稱就知道大概在做甚麼 像1:09我如果確定傳入參數沒問題 那看到check我基本上就不用理它 直接看接下來的邏輯就好
@naobeshiaw1645
@naobeshiaw1645 9 ай бұрын
三層四層之後就要對著大括號慢慢看哪一層是在哪一層了 讀起來很痛苦
@yuan0
@yuan0 9 ай бұрын
了解感謝
@Dark-M-Snake
@Dark-M-Snake 7 ай бұрын
最討厭遇到switch
@duzhuo
@duzhuo 8 ай бұрын
飞机头代码哈哈哈哈
@yaoh9098
@yaoh9098 8 ай бұрын
666666
@yunyong8615
@yunyong8615 6 ай бұрын
如果你在中国,那就需要用屎山代码来自保了。
@hackaniceday
@hackaniceday 4 ай бұрын
超棒的影片
@digitSpirit
@digitSpirit 7 ай бұрын
現在的程序猿寫出來的碼,個個偷懶耍帥一流,不了解底層硬體特性、不知道自己寫出的碼代價幾何,naming 隨意至極、沒有套件幫忙就做不出東西了 .. 你若質疑他們,他們還會告訴你所謂的效率包括開發時程上的效率 .. 不過也無所謂了,再過不久這一類猿人都要被 AI 取代了 ..
@wtfJunk
@wtfJunk 5 ай бұрын
提早返回其实不是一个好习惯,大量的提早返回很容易产生bug,返回代码很容易会让人忽略
@wtfJunk
@wtfJunk 5 ай бұрын
如果提早返回不容易被忽略,那么条件并不复杂,不需要用提早返回。 如果条件复杂,大量的提早返回会使得条件逻辑结构不明显,返回代码也很容易被忽略
Functional Programming: a New Way of Programming - the Basics
24:23
走歪的工程師James
Рет қаралды 116 М.
Flipping Robot vs Heavier And Heavier Objects
00:34
Mark Rober
Рет қаралды 59 МЛН
버블티로 부자 구별하는법4
00:11
진영민yeongmin
Рет қаралды 21 МЛН
Synyptas 4 | Арамызда бір сатқын бар ! | 4 Bolim
17:24
Electronic Circuit in 11 Minutes
11:17
jasonmel
Рет қаралды 1,9 МЛН
5分鐘完全了解I2C通訊介面!掌握I2C的核心概念
5:12
工程師の師
Рет қаралды 13 М.
没有显卡的年代,这群程序员用4行代码优化游戏
14:38
The Roles of Frontend, Backend, and Database Explained by Example
8:58
走歪的工程師James
Рет қаралды 545 М.
用2页纸证明一个数学猜想,这真不是民科
9:23
量子位
Рет қаралды 26 М.
15分鐘掌握Regular Expressions(基礎+應用題)
17:22
走歪的工程師James
Рет қаралды 32 М.
自动化防御性编程,让你变得无法取代!
11:26
码农高天
Рет қаралды 67 М.
Flipping Robot vs Heavier And Heavier Objects
00:34
Mark Rober
Рет қаралды 59 МЛН