Re: [閒聊] 用控件有什麼好丟臉的?

作者: LaPass (LaPass)   2015-07-16 15:06:57
※ 引述《justlike5566 (5566天下無敵)》之銘言:
: 小弟不才 進程式設計職場二年多 說多不多 說少不少 主寫C# ASP.NET
: 也會JQ JS SQL
: 一般在寫時 VS跟DW 交換使用 方便除錯跟套css
: 但一直以來有個狀況我無法理解 網路上很多人說用軟體套控件就是弱 爛 鳥 不熟
: 導至公司有些新人偏激到用TXT來寫程式
: 就我的角度來看 如果你很熟練到一個程度
: 用TXT寫asp.net 前台套ccs 後台還可以套using 那我當然沒意見
: 可是很多人連SqlConnection都不熟練 還學高手用TXT
: 那我當然建議用VS 講好聽點就是用來當新手練習 想也知道那用了就回不去了
: 可是新人為了展現出他心裡認為的強 所以他只裝了notepad++
: 這根本本末倒置
: 到底是軟體控件害人還是自嗨很爽?
來講一下我的狀況吧
你講的「控件」我不太清楚是指什麼
但依照記憶,你講的那類IDE通常都會有一堆精靈,能自動生成程式碼
我就當作是那個東西
還有,我不懂你講的用txt寫程式是指什麼?
有IDE叫做txt或是你是指純文字類的編輯器?
簡單來講,我不用你講的「控件」
是因為「懶」以及「不用控件寫起來比較簡單」
我一開始是學C#,當然用的是Visual Studio C#
那時候大概是2008年吧
剛開始學,當然也是因為方便
因為很多東西用拖拖拉拉的就可以把視窗給拉出來
之後 Visual Studio 2010出來了,就是試著換用Visual Studio 2010
不過因為版面都改版了,覺得變得很難用
在之後,我開始學PHP
那時候我用的是DW
雖然DW也是拖拖拉拉就可以把東西拉出來,但是我發現並沒有這麼好用
因為,DW產生的程式碼,有些去跟他動一下,DW就不認得了
不過那時候也只是稍微學一下而已,沒拿來生產東西
一樣,覺得DW很難用
接著是學JAVA,那時候是用eclipse 去寫 android
JAVA的話,我就覺得用那種功能強大的IDE很方便
主要是因為java的語言的特性的關係
在這個時候我才開始覺得我會寫程式
再接下來,我回頭去寫PHP,主要是因為工作需要的關係
那時候我用的是sublime
之後還寫過JS Ruby 之類的
html, SQL也有,不過我不會把那些當程式語言來看
在這個時候我開始比較清楚該怎麼挑IDE
大致上可以區分為兩類
java c# 那種強行別靜態語言
比較適合 visual studio, android studio, eclipse 之類的IDE
因為語言本身在編譯時期就能知道到底程式碼有沒有錯
JS Ruby PHP 之類的,用sublime 跟 nodepade++ 之類的比較方便
弱型別動態語言的話,如果想達到,在撰寫時就檢查、自動完成之類的
必須另外設定很多東西,這很不切實際而且很麻煩
如果真的想在弱型別動態語言上搞這個
乾脆直接換強行別的語言去寫
另外像是DW那種,算是「程式碼生成器」的東西,最好不好用
那會扼殺撰寫程式碼的彈性
那種東西感覺起來比較像是,IDE自己定一套規則,要程式設計師依照那套規則去寫
如果不照規則用,IDE就不能動
當然,有的人會說,他拿DW也只是為了要把程式碼上色跟自動完成
我會想問,那為什麼不乾脆直接用sublime?
那樣的功能也都有,而且免費。
還有,那些比較偏愛使用純文字編輯器的人,也不一定對程式比較熟
像我就不會去背怎麼開連線之類的
即使是現在,我也沒辦法默寫 php 開連線的程式碼
甚至連該用哪個 function, 我都還要去查才知道該怎麼用
但是,這不會有影響
反正只有在專案一開始的時候,才會需要去寫那種東西
我覺得使用IDE的「程式碼生成」最大的差別是在於
「程式設計師本身對程式架構的掌控」
這是兩種程式設計師在能力上,最大的區別
如果架構開的好
理論上是不會用到那麼多的「自動生成」的程式碼
那些「自動生成」的程式碼
相當於:
把一段程式碼剪下貼上到別的地方,然後把其中幾個變數替換成其他名字
大部分的自動生成的程式碼,都是這樣子運作的。
這樣一聽應該就很容易知道問題在哪裡了
剪下貼上一般是寫程式的忌諱之一
如果遇到需要剪下貼上的片段,一般是把那段程式碼抽出去封裝成class或是function
舉例來說
我記得以前DW連接資料庫時
可以用個精靈選擇資料庫、以及欄位等等
DW就會把連線的程式碼給開好,並把SQL語法生出來
對當時還不熟SQL以及資料庫的我來說很方便
但一陣子之後,就會發現DW沒辦法處理太複雜的報表以及資料庫操作
還是得下去摸熟SQL
但是懂SQL之後,就會覺得,DW的SQL生成很麻煩
而且限制太多,有時候換了一套軟體就得再次去找生成SQL的套件來用,很累
倒不如用最傳統的方式下SQL指令去撈
而且,通常撈資料、更新資料都會另外拉function或是class去處理掉
真正寫SQL以及撈資料的時間沒多少
更進階一點,可以找Active Record之類的ORM來用
那個根本連SQL都不用下,只需要把表之間的關聯定義後,問題就通通解決了
當然,還是建議需要懂底下的SQL是怎麼運作的
要不然有時候會遇到Active Record出現鬼打牆的狀況
另外像是javascript、html跟css,也是同樣的道理
自動生成的code通常很髒
未來要修改的話,有可能會遇到需要去抽換那些自動生成的code的架構的狀況
請參考 bootstrap 、angularjs、 JQuery 的方式
如果想偷懶省事的話,可以直接套版
如果有閒以及能力的話,可以自己弄個跟那些東西差不多的架構來處理前端問題
以上,就是我為什麼不去使用控件,也就是你所說的自動生成程式碼的原因
雖然控件能讓寫程式變輕鬆
但自己用純文字類的編輯器開架構時,也是有方法可以讓寫程式變輕鬆
而且那些方法不會受限於編輯器的控件,因此不會被綁死在同一款IDE上
簡單來講,就是換程式語言或是換開發環境時
那些知識可以「帶著走」,而不會reset重來
作者: edward13 (-_-)   2015-07-16 17:00:00
他說的是asp.net webform用控制項拖拉 套版根本杯具
作者: LaPass (LaPass)   2015-07-16 17:37:00
喔喔... 沒用過那種東西google一下,看起來也是自動成html js css的東西的樣子?
作者: crossdunk (推噓自如)   2015-07-16 20:32:00
那似乎跟DW一樣,那我覺得用TXT還比較好XD或是用dw 只拿來打code 不用用拉的
作者: GoalBased (Artificail Intelligence)   2015-07-16 23:58:00
比自動生成的html js css還強,因為還綁後端也比DW好多了,這年頭已經沒看過程式設計師用DW的
作者: mmis1000 (秋月戀楓)   2015-07-17 00:16:00
加上後端只是受害範圍更大而已吧...生成的code一樣爛阿
作者: aspdoctor (大崎)   2015-07-17 00:43:00
其實新的DW cc 2015改進很多囉,生出的code乾淨多了,只是還是用sublime text之類能自己存些常用片段方便多了,拿到用DW生出的code還是需要自己修正,真的會有折騰了一晚還得靠祖先的無奈啊
作者: GoalBased (Artificail Intelligence)   2015-07-17 12:13:00
我沒說好,我只是說比較強
作者: amazing2014 (別斷線拜託)   2015-07-17 21:50:00
sublime猛

Links booklink

Contact Us: admin [ a t ] ucptt.com