推 x246libra: 想請教一下 想更加搞設計模式 或 物件導向 04/26 09:18
→ x246libra: 學py來了解上面這些概念OK嗎? 還是說學java比較可以 04/26 09:19
→ x246libra: 抓到上述的精隨? 04/26 09:19
推 abccbaandy: 你文章中寫的"唯一的差異"就差很多了,每個人都有自己 04/26 09:37
→ abccbaandy: 的風格,你要怎麼維護別人的code? 04/26 09:37
→ y2468101216: 各大 linter 表示: 04/26 09:44
推 alihue: java var 是強型別吧,只是方便簡寫。py 可以寫OO,但沒人 04/26 10:11
→ alihue: 會拿py這樣寫好嗎?寫出來也超難維護 04/26 10:11
→ alihue: py是寫很快啦,但如果遇到效能很重要的應用,根本沒人選py 04/26 10:12
推 plsmaop: 原來 py 沒人寫 OO,可能我平常不太寫 py,跟少讀 py, 04/26 10:14
→ plsmaop: 我讀過的都是 OO的 py QQ 04/26 10:14
→ vi000246: python沒什麼規範 private的變數外面也能存取 04/26 10:15
→ vi000246: 遇到多人合作 有人不照規範hard code的就GG了 04/26 10:15
→ sxy67230: 這些風格的東西本來就是公司內部自己定義就好啦,Python 04/26 10:28
→ sxy67230: 有pylint是很好用的東西,比較新式的語言都有這種概念 04/26 10:28
→ sxy67230: ,沒必要糾結在護航哪個語言上,所以我才一直強調語言 04/26 10:28
→ sxy67230: 的基本概念才是每個軟工應該琢磨的東西。 04/26 10:28
推 superpai: 所以你自己出錢的話,你會不會雇只寫過Py的人來寫Java? 04/26 10:28
→ legendmtg: 最近在改一堆寫java出身的人寫的python code 04/26 10:38
→ legendmtg: 一堆多餘的糞code.... 04/26 10:38
推 weinine32: 認同你的觀點,但你的“唯一差異“原因,讓我認為想當 04/26 10:45
→ weinine32: 後端工程師,不適合從Python開始,因為會養成壞習慣, 04/26 10:45
→ weinine32: 很多人就是這樣走歪。何況很多公司還在用python2 04/26 10:45
推 legendmtg: 什麼壞習慣XD 寫Java那套OO就是好習慣嗎XD 04/26 10:48
推 legendmtg: 像我寫C++ python出身的 才覺得Java出身的人一堆壞習慣 04/26 10:57
→ weinine32: Java我不懂,沒辦法提供建議 XD 04/26 11:15
→ sxy67230: Google自己的最新風格指南可是很強調OO的概念喔,我不 04/26 11:23
→ sxy67230: 覺得Py寫OO會很難維護,習慣性的問題而已 04/26 11:23
→ sxy67230: 不過我承認Python 易學難精,他可以寫得很簡單,也可以 04/26 11:26
→ sxy67230: 封裝的很漂亮,確實不適合初學者,但是我不同意一直護 04/26 11:26
→ sxy67230: 航某語言而貶低別人的概念 04/26 11:26
推 ripple0129: Py沒人寫OO?真的有用py寫過專案嗎? 04/26 11:32
推 thefattiger: py已經很適合初學者了,語言只有易學難精跟難學難精 04/26 11:43
推 alihue: 說 java 引入 var 是動態型別,就知道沒有熟 java。 04/26 11:52
噓 YahooTaiwan: Java 的 var 也是強型別吧 04/26 12:12
推 shps951015: C# dynamic才是動態型別,Java還沒有動態型別功能 04/26 12:26
推 iiiii: SDK啥語言就寫啥啊 04/26 12:32
→ peter9s3b: 說沒看過用py寫oo的是真的有看過嗎... 04/26 13:08
→ vi000246: python可以寫OO 只是跟強型別的比起來 是半殘的OO 04/26 13:14
推 moonblack: python真的易學難精... 不過每套語言要精通都很難啦 04/26 13:24
推 ZAXUS: 自己寫可能沒感覺 但我讀別人的code最討厭看到auto跟var 04/26 13:30
→ thefattiger: 寫C++不用auto我會想殺人 04/26 14:07
推 mdkn35: python不用OO 是要堆def喔? 04/26 18:14
推 Sunal: go才是沒OO吧 04/26 19:07
推 Sunal: 很多人在說的py很可能只是打開jupyter notebook下指令在用 04/26 19:09
→ Sunal: 的 04/26 19:09
推 Sunal: 到底寫py會有什麼壞習慣? 04/26 19:12
推 brianhsu: Var 只是 type inference ,不是動態型別,差很多滴。 04/26 19:48
推 iwami: python有OO啊 但是半殘 入門還是JAVA簡單一點 04/26 23:10
→ ericwang1017: 說動態型別差的遇到(研究compiler)強的的會被電到飛 04/26 23:23
→ ericwang1017: 天 / OO是種態度 04/26 23:23
→ twilighthook: 就大家寫的領域和看的方向不同使用方式都會有差異罷 04/27 01:04
→ twilighthook: 了 04/27 01:04
→ red0210: Python 的 OO 哪裡半殘? 04/27 04:54
→ okd: python不適合初學者 我還真想不到哪個語言比python適合 04/27 08:10
推 brianhsu: Ruby 啊!我個人私心認為 Ruby 比較漂亮,雖然我沒在寫 04/27 08:18
→ brianhsu: 。XD 04/27 08:19
→ okd: OO應該也沒半殘 但開interface語法就已經不直接了吧 04/27 08:21
→ sean50301: python寫oo哪裡難維護... 04/27 09:33
推 doranako: 我覺得這兩個語言有很大不同,深入理解真的需要花時間 04/27 10:08
→ sxy67230: Python Interface 用久了也沒那麼不直接啦,可以看看py 04/27 10:26
→ sxy67230: 成熟的libary他們有很多實作介面的思考方式,很值得學 04/27 10:26
→ sxy67230: 習。 04/27 10:26
推 brandyjohn: 我會雇寫cpp的人 04/27 10:28
→ sxy67230: 對Java var的理解我可能還不熟,這一塊我確實應該重新 04/27 10:29
→ sxy67230: 思考加強,謝謝Java前輩的指教。 04/27 10:29
→ sxy67230: 至於有人提Java Python 哪一種學OO比較適合的問題,我 04/27 10:36
→ sxy67230: 個人認為沒有太大差異,你應該是要重新思考OO,回到OO 04/27 10:36
→ sxy67230: 的本質。我看過一堆新手為OO而OO的就有點本末倒置了。Py 04/27 10:36
→ sxy67230: thon 學OO的話,去看人家的Library (我很喜歡看別人大 04/27 10:36
→ sxy67230: 神的code,看哪些思想值得學習),看看各大Python 使用 04/27 10:36
→ sxy67230: 的大廠的coding Style guide 。 04/27 10:36
→ sxy67230: 最後,有人提到關於雇用哪一種人,我自己是企業主的話, 04/27 10:55
→ sxy67230: 我會雇用語言概念正確,自主學習速度快,邏輯調理清晰 04/27 10:55
→ sxy67230: 的人。如果他是寫Python 就問他Coding style的概念是否 04/27 10:55
→ sxy67230: 正確,是會著墨自己的Coding能力的人,還是隨便的人。這 04/27 10:55
→ sxy67230: 樣的人才會自我思考進步。 04/27 10:55
→ Mchord: 寫出來東西爛是人的問題不是語言,Python的原罪只是沒那 04/27 11:32
→ Mchord: 麼嚴格所以比較多習慣不好的能靠它吃飯而已 04/27 11:32
推 iven00000000: OO只是概念,我最開始是學Java的,我認為Java為了 04/27 12:02
→ iven00000000: 完善它想要的OO架構,存在一堆冗餘的元件,對新手 04/27 12:02
→ iven00000000: 來說反而很難懂。Python沒有private,public關鍵字 04/27 12:02
→ iven00000000: ,但是有用命名規則跟porperty做到一樣的概念。OO 04/27 12:02
→ iven00000000: 本來就不是依賴編譯器報錯來判斷有沒有寫錯。 04/27 12:02
推 Argos: OOP的好處 其實是要團隊奉行良好的「規範」才能體現出來的 04/27 14:14
→ Argos: 程式語言作者考量的點不同 就會影響語言本身對於OOP規範的 04/27 14:14
→ Argos: 盛行與否 但是 能否享受到OO的好處 跟語言本身其實沒多大關 04/27 14:16
→ Argos: 係 主要還是在於團隊是否有「照規矩來寫code」 04/27 14:16
→ Argos: 這個規矩可以自己訂 但訂了大家就是要遵守 你不屌規矩 再怎 04/27 14:17
→ Argos: 麼嚴謹的語言也是寫得亂七八糟 04/27 14:17
→ Argos: 但通常人們都把寫爛掉的OOP怪罪於程式語言上 講這個語言OO 04/27 14:18
→ Argos: 很難寫 殊不知都是自己的問題 你就是個不合群不專業的碼農 04/27 14:19
→ Argos: 不照規定乖乖努力寫code 硬要用一堆奇怪的慣例和架構來表現 04/27 14:19
→ Argos: 自己聰明過人 能想出別人想不出的精妙玻璃城堡 但華而不實 04/27 14:20
→ Argos: 老實講 95%的軟體工程 根本不需要「聰明人」 尤其是那些自 04/27 14:21
→ Argos: 以為聰明但實際上根本是個智障的 軟工需要的是嚴謹努力認真 04/27 14:21
→ Argos: 的工匠 04/27 14:22
推 jack529: Python寫不好真的會醜到有剩XD 04/27 14:25
推 goldflower: 原來沒人用python寫OO也很難維護 算是開了眼界 04/27 15:08
推 Masakiad: 會說軟體架構不需要聰明只需要努力認真,肯定不知道一 04/27 17:28
→ Masakiad: 個好架構造成的產值是可以1抵10以上的。這不是死幹活幹 04/27 17:28
→ Masakiad: 這麼單純的問題 04/27 17:28
→ thefattiger: 好架構是建立在經驗上,聰明還真的幫不太上忙 04/27 18:19
推 Masakiad: 努力認真跟經驗又是兩回事,而經驗也是運用腦力經過時 04/27 18:48
→ Masakiad: 間後內化堆積的。不是什麼努力認真就可以達成這麼單純, 04/27 18:48
→ Masakiad: 也因此才會有10年經驗的高手與10個1年經驗的新手。不要 04/27 18:48
→ Masakiad: 小看架構這回事 04/27 18:48
推 nova06091: 就是一群農夫在比誰的鋤頭比較潮 04/27 18:49
推 brianhsu: 醜到有剩是人的問題,之前經手過比醜到有剩的 Python 還 04/27 19:41
→ brianhsu: 要醜的 Java...沒有一致的縮排,函式的參數型別是 Objec 04/27 19:41
→ brianhsu: t, 一個函式四五百行,而且還有另一個跟他幾乎一模一樣 04/27 19:41
→ brianhsu: 的 copy paste 分身函數。命名 camel case 和底線挑順眼 04/27 19:41
→ brianhsu: 的用,當然也少不了大家最喜歡的用加號組出來的 SQL inj 04/27 19:42
→ brianhsu: ection。看的我都不好意思說 Python 醜,人家可是規規矩 04/27 19:42
→ brianhsu: 矩地把程式縮排好了呢。 04/27 19:42
噓 leave10123: 型別的動態靜態與強弱是不一樣的東西吧 04/28 15:12
推 zebraseven: Python 就也能做到 OO 沒錯 04/29 16:06
→ zebraseven: 就算沒人想把它這麼寫 他還是OO 04/29 16:06
→ zebraseven: 別跟半桶水的吵了 04/29 16:06
推 tsao1211: 都有OO 別爭了 04/29 20:56
→ oscar90702: 就個人實務經驗,Python相較Java真的是殘缺的OO 04/30 17:55
→ meowyih: 就算用ansi c也一樣可以做封裝繼承抽象(認真) 04/30 18:24
推 mew109: 想知道什麼是殘缺的oo+1 05/02 09:39
噓 pig2014: py最大的問題是效率以及GIL,門檻低的東西一定有毛病 05/04 00:24
噓 pig2014: 真男人都寫C++,Java跟C#也都不錯,有自己的完整架構。py 05/04 00:34
→ pig2014: 其實就是拿來快速開發做不追求效率的垃圾事,做抽象設計 05/04 00:34
→ pig2014: 比Java廢太多。會說很好用大概你常常也沒去管design patt 05/04 00:34
→ pig2014: ern 05/04 00:34
噓 pig2014: 講個最簡單的,要實現Singleton,在Java裡就很優雅,只要 05/04 00:53
→ pig2014: 把物件直接宣告為靜態並且把constructor設為私有就可。在 05/04 00:53
→ pig2014: py裡居然是執行期才做處理,而且py在靜態區直接賦予非Non 05/04 00:53
→ pig2014: e的物件還常常會出現奇怪的特性,更不用說如果再考慮多線 05/04 00:53
→ pig2014: 程,Java還有synchronized勒,你py要自己慢慢上鎖然後最 05/04 00:53
→ pig2014: 後還硬塞一個GIL給你 05/04 00:53
噓 pig2014: 反正結論就是,不是不能實現,而是py的語法就是不夠鼓勵 05/04 00:58
→ pig2014: 嚴謹。大概就是彈性與嚴謹中間取個平衡點,外加超低效率 05/04 00:58
→ pig2014: 。py相較於Java我最喜歡的大概也只有@property跟特定的op 05/04 00:58
→ pig2014: erator overloading,但是沒有function overloading對OO 05/04 00:58
→ pig2014: 來說也真的是垃圾 05/04 00:58