Re: [請益] 想學手持系統的程式設計相關問題

看板Soft_Job (軟體人)作者 (沉默是金。)時間14年前 (2011/06/21 10:04), 編輯推噓6(6017)
留言23則, 9人參與, 最新討論串4/4 (看更多)
※ 引述《Ting1024 (無)》之銘言: : 標題: Re: [請益] 想學手持系統的程式設計相關問題 : : 有沒有 source code 並不是重點,碰到問題USER : 也不可能真的去看SOURCE CODE,而是先去看API說明, : 再看不懂還是到網路問問.. : : 差異在哪?在設計的核心思想. 更現實的來講, : 網路上放出來的資源哪一邊多,那邊就是好開發, : 即使像 java script 這麼難寫的CODE,就因為網路 : 資源多,他就是好用。 : : 但繼續探討到底要寫兩邊,還是壓寶一邊,如果只能 : 壓寶一邊的話,各位會壓哪一邊?這部分,大家的 : 看法就會很有趣了 :D : : → kenzou:javascript怎麼會難寫.. 06/20 13:36 : → Ting1024:要是沒 google, Java script 根本沒幾隻貓會寫 ~_~ 06/20 16:43 : → Ting1024:隨便一個功能就會搞死人了..例如下拉式選單 ~_~ 06/20 16:43 : → askeing:js要寫得好應該不簡單… 06/20 16:44 : 推 coronach:js需要強大的Google能力...不然根本背不完 06/20 23:39 js 需要的是經驗,實際上他的語法不會背不完啦, 怕背不完的加疊一個 jQuery 或 prototype 中介層就好了。 js 最大的問題在於他強調高度的整合,因為很多元件都需要自己重新打造, 然後需要考慮許多週邊的因素, 比方說瀏覽器的相容性,相容性中有幾點 1.樣式的不相容: 其實這許多lib都可以處理掉了,除了你客製, 但你要客製外觀等於你要自己吃下 css designer 的職責, 那你得要會多的東西是正常的,角色不同。 2. js 的執行效能: 這個就是吃經驗的地方了,有許多最佳化技巧, 是你連 google 都很難找到的。 比方說你畫面變動頻繁的狀況下一直持續 call dom.offsetWidth, 會導致畫面一直不斷重繪去取得數字,在老瀏覽器下超級慢, 你沒有處理過類似的東西你怎麼會知道? 或者是用 selector 之類的效能,對底層不夠有 sense , 你怎麼知道哪些瀏覽器有支援原生 selector 或是哪些瀏覽器只能用 模擬的 sizzla 或其他引擎來處理? Javascript 在語言上不能算是難寫, 他原生的資料結構相當單純,就是 json 我們會看見的那些, Object (Map): { key1:value1 , key2:value2 } Function : function(param1,param2){ return xxxx; } Number(整數浮點數都算這類): String(char/string都歸這類) Array: [obj1,obj2,obj3] 剩下來的都是特別的 Dom element ,這算是 object 的延伸, 很多人覺得 dom 的元素因為不同瀏覽器的 dom attr 不太一樣, 所以很難一一找,但基本上大原則你知道,這些都只是時間的問題。 還有一些就是 prototype based 相關的語言特性, 這種語言特性就是如果你沒學過,你就一定要花時間去學, 像是 closure ,不然你不會用,這是你逃不掉的語言特性, 但語言特性只是一次性的成本,學了就會了,不太需要一直重新學習。 我寫 js 寫到現在我已經很少在 google js 的語法了, 只要給我一個 browser window ,我就可以拿到我所有想要的訊息。 連網址列都能拿來當 javascript console 用,這就是熟練度的問題。 javascript 算是「相對」好用才很多人寫, 他只是因為它被放在一個很難被取代的戰略性的位置, 而且事實上它也還不算是太糟糕,以用不用他獲得的改善而言, 還會有像我們這樣的閒人願意去研究他,在上面疊床架屋搞framework。 javascript 的替代方案像是 flash/applet/silverlight/activex..etc 都沒有辦法有效的把 javascript 替代掉,這是為什麼它可以歷久彌新。 還有,早在2001年 google 還不是那麼火紅的時候 js就有人在寫了, 只是那時候我們不需要這麼複雜的東西而已。 ;) 學 JS 比較不建議的是,你只學 lib 的 API 的使用而不學核心技巧, 這樣萬一你使用的 lib 改 API ,你等於是整個學習曲線又要重新再來一次。 像我曾經看過有人在各討論區問了「四年」的問題,還是只會問問題, 從來不參與回答跟分享,而且原理很接近的問題還會問好幾次,讓我印象深刻。 他學會的是怎麼使用者 API 跟怎麼解決眼前的問題, 而不是這些事情背後的成因,這樣會讓人一直一直的需要依賴別人解決問題。 其實不是那麼的好,要小心。 對於 javascript 的 coding 其實不是困難,就是瑣碎, 但說瑣碎,也只是因為很多人不好好的認真的把他當成一套專業領域的語言, 覺得這東西應該簡簡單單寫個幾行就要很 powerful 才會覺得。(大笑) 我對 JS 還蠻有信心的,有關對 JS 的延伸討論,也歡迎到 ajax 板聊。 ;) -- I am a person, and I am always thinking . Thinking in love , Thinking in life , Thinking in why , Thinking in worth. I can't believe any of what , I am just thinking then thinking , but worst of all , most of mine is thinking not actioning... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.44.37

06/21 12:00, , 1F
最為奇怪的程序語言的特性 裡面 Javascript 的部分...
06/21 12:00, 1F

06/21 12:00, , 2F

06/21 12:42, , 3F
推這篇 JS要找到很強的真的也不太容易 徵才徵超久
06/21 12:42, 3F

06/21 12:52, , 4F
推, 我也覺得 JS 難在 DOM 這些瑣碎的東西~
06/21 12:52, 4F

06/21 13:10, , 5F
推! js語法的確夠簡單 背不完的是底層跟DOM跟各lib的API
06/21 13:10, 5F

06/21 13:11, , 6F
但是如果熟練的話 能做的事情真的是非常多...
06/21 13:11, 6F

06/21 15:47, , 7F
推這篇!
06/21 15:47, 7F

06/21 16:31, , 8F
咳...js高手的話麻煩站內信跟我聯絡認識一下...
06/21 16:31, 8F

06/21 17:15, , 9F
(小聲說)liberation就是 JS 強者了,強者面前小的不敢造次
06/21 17:15, 9F

06/21 17:15, , 10F
XD
06/21 17:15, 10F

06/21 17:24, , 11F
我們公司的產品是作 Javascript 搭配伺服器組合成一套的元件
06/21 17:24, 11F

06/21 17:24, , 12F
javascript 使用上很麻煩的點在於資料你要一直從伺服器端
06/21 17:24, 12F

06/21 17:25, , 13F
想辦法序列化成json 再給 js去跑,但是如果整合成元件,這樣
06/21 17:25, 13F

06/21 17:25, , 14F
就會變得很好用,而且很多 javascript 運算很慢的東西,可以
06/21 17:25, 14F

06/21 17:25, , 15F
先在伺服器端算好再到瀏覽器端,所以這樣的玩法我覺得才真的
06/21 17:25, 15F

06/21 17:26, , 16F
是又快又有效,比起苦工刻 js 這樣寫有效率多了。
06/21 17:26, 16F

06/22 06:34, , 17F
大陸天涯網站就是用js寫出來,台灣為何不弄個出來取代ptt?
06/22 06:34, 17F

06/22 09:05, , 18F
天涯有什麼特別的東西嗎?跟台灣的討論區比起來的話?
06/22 09:05, 18F

06/22 11:15, , 19F
又一個想要取代PTT的 XDDD
06/22 11:15, 19F

06/22 15:47, , 20F
網路上只要使用.功能上能有几點便利,就有用處(因為每天在用
06/22 15:47, 20F

06/22 17:47, , 21F
我覺得 ptt 不是功能上的取代,而是因為人潮已經聚集所以難
06/22 17:47, 21F

06/22 17:47, , 22F
以取代。不然其實台灣類似的討論區也很多啊,像是mobile01等
06/22 17:47, 22F

06/22 17:48, , 23F
甚至還有做得很像bbs的 gaaan / disp.cc 之類的
06/22 17:48, 23F
文章代碼(AID): #1D__n7rq (Soft_Job)
文章代碼(AID): #1D__n7rq (Soft_Job)