看板 Soft_Job 關於我們 聯絡資訊
※ 引述《y2468101216 (芸)》之銘言: : 身為一個PHP工程師,我不推薦新手學php的理由如下: : 新手會馬上碰到一些5.6的規則到7不適用了。 5.6 到 7 的話沒那麼容易碰到 新手比較容易碰到的地雷是 mysql_* 不能用了,這可以走 mysqli_* 或是用 pdo 另一個比較容易踩到的是 list() 有時候順序會反,不過那是原本的行為很雷 : 2. 那些不會升級的雷坑 : php在台灣很多工作,但很多雷坑,你很難想像會有公司還在用php4這種老舊的東西。 : 基本上低於5.3的公司我覺得滿多的,低於5.3的話你就沒辦法用composer這種好東西。 : 然後你的開發速度就會被python、ruby屌打,因為他們有pip跟gem,而且 : 技術也不會進步,更糟的是你沒時間上網練習新的東西! : 3. 薪水!薪水! : 就美國統計而言,ROR薪水常常在前三,PHP經常性的在後段班。 : 新手走這行有8個是為了賺錢、1個為了創業、1個是有興趣。 : 為了錢著想,學php實在不是說是一個很好的選項。 : 在台灣ROR薪水平均也是高於php便是。 : 參考資料:https://goo.gl/nzy3lB 這兩點可以合在一起簡單的說「你學 PHP,你能找的工作比較 suck」 不過我想這不是「所以別學 PHP」的理由 重點是你基本功如何,你對整個系統的掌握度多少 我身邊會去學 Ruby 的人大概分兩種 - 用 RPG Maker 的(不過 RPG Maker 新版改用 javascript) - code geek code geek 本來平均薪水就比較高,這因果反了。 反過來,如果今天只是個學了 RoR 的新手,但是基本功還不深厚 大概也拿不到那些高薪的工作 不過有一點很寫實, PHP 5.3 之前沒有 composer 的人生是滿 suck 的沒錯.....Orz 雖然不用 composer 沒有 autoload 也可以把 code 寫得很乾淨,但那需要非常強悍 的技術力跟政治力同時下來... : 4. 語言的局限性 : 並不是說php不能在cli下面跑這樣,而是其他語言屌打cli的部分。 : python、java、javascript都不限於web上,路太窄有時並非好事。 這誤會很大(正色 我自己在公司就用 PHP 寫了十幾二十個 cli 指令來做日常工作 甚至連 git hook 都用 php 來寫 PHP 處理大量字串效能確實有點糟,但爬個幾千萬行的 log 還算是一片蛋糕 (速度跟 awk 比當然差很多,不過 awk 不能戳 DB..) 而且也可以像人形蜈蚣一樣一個 pipe 一個,用起來沒什麼不便 如果要說跟 python 比,也許 PHP 會難寫一點(我跟 python 不熟) 不過用起來頂多是菜刀跟西瓜刀的差別,還不至於變成塑膠拆信刀 而且....要講 cli,怎樣都不會把 Java 拿出來說嘴 連老手都很少人能不用 IDE 能寫 Java 了,誰沒事在 cli 上面用這東西... : 5. 教學 : 不吐不快,我隨意google了幾篇php tutorials,前三篇都沒提到composer, : php官網的Installation and Configuration,竟然沒提到php有內置server。 : python跟node.js都會提pip跟npm歐。 : 難怪大家都說入門看php:the right way最好, : 光是想到台灣還有一堆php6的書在誤人子弟,真是夠了。 well, 這倒是血淋淋的事實... 所以才會很多人對 PHP 誤會很深 是的,PHP 是個瑕疵很多的東西,就像我在用 array_* 或是 str* 的時候 永遠搞不清楚第一個參數應該放誰,或是字串處理慢得要死(處理上G的log很有感) 或是一年至少踩到一次自動型別轉換的地雷 但是 PHP 並不是不能用,他依然很好用 -- 不可以!那是黑鷹族的精神象徵! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.218.242.230 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1456196795.A.538.html
GALINE: https://leanpub.com/b/non-webphp 然後就被推了這個書單 02/23 11:50
y2468101216: 可能是我誤解了CLI(command line),我同事基本上是處 02/23 13:27
y2468101216: 裡oracleDB轉換成mssqlDB他是選擇用java寫 02/23 13:28
y2468101216: 後來我接這塊時改用PHP寫,效能確實是有差 02/23 13:29
y2468101216: 對資料庫做大量IO時我還是傾向於要先編譯的語言 02/23 13:30
Blueshiva: 如果是連DB的話,driver的差異有考慮進去嗎? 02/23 13:54
y2468101216: oracle跟mssql driver都是官方提供 02/23 14:32
y2468101216: 你要用開源風險很高 02/23 14:32
Blueshiva: 我指的是PHP/Java連DB的driver,不是很熟但印象中他們 02/23 14:34
Blueshiva: 會對最終效能造成影響 02/23 14:34
y2468101216: PHP我是用oci8原生,不是pdo_oci8,JAVA部分我要看 02/23 14:51
GALINE: 用第三方 lib 來戳 DB 的時候,例如 Laravel 的 ORM,效能 02/23 15:12
GALINE: 可能會被吃掉不少,直接用 pdo 去戳的效能我覺得過得去 02/23 15:13
GALINE: 原生 driver 就要看官方 driver 寫得如何了.... 02/23 15:14
Blueshiva: 應該說,連DB的效能取決三段,語言/driver/DB,問題是 02/23 15:17
Blueshiva: 不同語言連的driver就不同了,所以用連DB效能反推語言 02/23 15:17
Blueshiva: 效能,誤差應該蠻大的。不過@y2468101216的用法本來就 02/23 15:18
Blueshiva: 是串在一起用,所以合在一起考量是必要的。只是不太能 02/23 15:19
Blueshiva: 用這個結果來說PHP或Java效能的差異 02/23 15:19
y2468101216: 難不成mssql跟oracle有官方以外的選項? 02/23 15:21
y2468101216: 我懂你意思了,不過php的driver是用C寫的(我的記憶 02/23 15:22
GALINE: 是說,會需要在意這種事情的時候,也不是新手了.... 02/23 15:23
y2468101216: java的要看就是,我跟java不熟 02/23 15:23
y2468101216: 新手做老手的事情不是台灣常幹的嗎 02/23 15:24
Blueshiva: 都是C寫效能也可能差很多啊 XDD 中間變數太多了 02/23 15:37
y2468101216: 我來搜尋看看有沒有人幹driver的問題 02/23 15:44
kiwatami: db牽扯到的效能影響太多了 光是sql語法跟log buffer調 02/24 08:54
kiwatami: 整就差了十萬八千里 拿來比較效能不客觀 sql語法不同 02/24 08:54
kiwatami: 程式寫法也有差異 一筆一筆寫跟產生store procedure不 02/24 08:54
kiwatami: 論是程式面還是DB效能差異都頗大 前者在程式寫法的影響 02/24 08:54
kiwatami: 又更多一些 另外Aqua Fold好像就有DB migration的解決 02/24 08:54
kiwatami: 方案了 02/24 08:54
Blueshiva: y2468101216講的方式,應該可以忽略DB本身特性的問題, 02/24 10:31
Blueshiva: 因為都是從A DB轉資料到B DB,只是轉移工具是用Java跟 02/24 10:32
Blueshiva: PHP寫,沒理由用Java的時候就把DB tune到飛快,用PHP的 02/24 10:32
Blueshiva: 時候就刻意tune慢 XDD 02/24 10:33
大批資料轉移算是比較特定的問題,不會是新手的煩惱 而且以這個特定例子,我不覺得用 ruby 或 python 能快到哪裡去 XD 主要是 PHP 堪用,市佔率高,容易上手,週邊支援完整 對新手來說,能完整做出東西比什麼都重要 而對於要深入的人來說,PHP 不但可以應付大部分的柴米油鹽需求 真的很閒的時候也可以拿來寫 Gameboy 模擬器,吃飽太閒嗎這人 =__=a https://github.com/gabrielrcouto/php-terminal-gameboy-emulator ※ 編輯: GALINE (114.27.95.249), 02/24/2016 12:21:42
v2266514: 說真的,他們都只是個工具。都能達成大部份需求,只是不 02/24 22:17
v2266514: 同的需求用特定的語言比較有優勢,或是省下功夫。所以初 02/24 22:17
v2266514: 學者不妨從看的懂或用的順手的語言下手,等到在一個語言 02/24 22:17
v2266514: 奠定相關的基礎後再轉也不遲 02/24 22:17
kiwatami: 不同的DB設定對於不同的程式寫法差異本來就很大 02/25 08:35
kiwatami: 調整的越不好 跑起來的差異就會越大 02/25 08:35
kiwatami: 並不是兩次測試設定值都不同的意思 怎麼可以忽略 02/25 08:35
Blueshiva: @kiwatami不過你之前講的那幾個差異性,其實都可以設定 02/25 13:08
Blueshiva: 成一樣,所以要比較效能的時候其實可以忽略 02/25 13:09
lonki719: 寫程式的都很辛苦,半年一年就出新技術,要一直學習, 03/15 21:23
lonki719: 分什麼初學者? 03/15 21:23