iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 2
0
自我挑戰組

Swift - 來吧!鐵人三十項系列 第 2

Day02:天馬行空的幻想式開發 - 新手和老闆都在想些什麼

前前言

嗨,大家好,我是 Lacie,您現在收看的是 Swift - 來吧!鐵人三十項 系列的第二篇
在鐵人賽完結後,為保持持續做筆記的習慣
將會在我的 Medium 繼續撰寫文章,若有興趣者可前往觀看。


前言

原本沒有預計要寫這個主題
只是最近寫 code 的時候好像發現自己有一個盲點
就趕緊把這個想法給記錄下來,好讓以後的自己笑笑現在的自己


程式開發所做的事情

平常我們在 coding 時,除了各種 API、SDK 的用法需要特地去查查
其他時候大部分的時間應該都是在做一件事情 -「事件邏輯拆解」

如上一篇所述,人腦很聰明,電腦也不差,但你不能把你想做的事直接跟它講

比如跟一個機器人電腦說:「去市場買豬肉,便宜就都買下來」
電腦可能會回你:你在攻三小

若是將上述的話拆分邏輯的話,就會變成:

  1. 去市場
  2. 觀察市場上所有豬肉的價格
  3. 如果每台斤 <= 150 元,全部買,付錢
  4. 如果每台斤 > 150 元,不買
  5. 回家

故,大家才會說,程式開發最重要的是邏輯
將自己的想法層層拆分後,告訴電腦,它才能懂你想要做什麼


幻想式開發

我把「因為不熟悉、不了解,所以沒有評估可行性」的這種盲點,命名為「幻想式開發」
常見於新手開發者(我 XD),那這是什麼意思呢
比方說假設我要做一個 TapCounter 的遊戲 且結合倒數計時

想要在觸碰 Tap 之後,同時也觸發了倒數計時的 function
故,笨笨的我一開始會這樣寫:

然後就會發現

我每按一次 Tap,就觸發一次 倒數計時的 function
太可惡了,那有沒有辦法是可以「鎖定這個 function」 只觸發一次呢(到這個時候就想偏了,鎖住這個 function 只觸發一次,在邏輯中好像怪怪的,可能也會浪費一些時間找到不必要的資料)
若是老手開發者的話,可能很快就可以想到利用 -「狀態管理」:


不熟悉的盲點

我想說的,其實就是這種,因為不熟悉,所產生的盲點而卡關很久(以前常常、現在也常常)
為什麼會有這種「幻想式開發」產生呢?主要就是因為對語言不夠熟悉,不知道各種應用的方式,所以對跨領域轉職者來說,常常會有這種直覺式的思考及直覺式的去想解決辦法
那該怎麼辦呢,除了熟悉該語言以外,就是大家常說的,鍛鍊「工程師腦袋」
試著以電腦及工程的角度去思考問題,用更多元、更多面向去思考看看解決的方法

講到這裡,突然靈光一現,這種「幻想式思考」,好像在哪裡見過

原來就是老闆(或PM或客戶)的想法,如果他們並非「工程師」,可能常常就會提出一些:

  • 阿這個調下來不是很簡單?
  • 做這個功能要這麼久喔?
  • 我看別家也在弄這個,加一下這個應該很簡單吧?
  • 做這個要這麼多錢嗎?

故,如何和非「工程師腦袋」的人解釋實作的困難及時間,又是工程師上班中遇到的另一個困難了。


上一篇
Day01:走進程式的世界裡,你會害怕嗎?
下一篇
Day03:好奇寶寶之來玩玩 SwiftUI - 前置作業
系列文
Swift - 來吧!鐵人三十項30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
ytyubox
iT邦新手 5 級 ‧ 2019-09-18 00:01:08

data driven programming 是一個好練習!

我要留言

立即登入留言