Re: [討論] 為什麼不要用c++寫網站
※ 引述《Lordaeron (Terry)》之銘言:
: CGI 這東西,看了這麼多人回,都沒人講出來,表示這邊的都是高手了。
: 資O會,以前某套內部的系統是CGI 當底的,後面接的是C。
其實也沒有那麼陌生,經歷過php, Rails時代的人都有被cgi折磨過
只不過現代server side都轉向JavaEE那個樣子,類似Asp.net那樣依附個CGI還是
蠻少見的。
現代的web無論是spring還是go那邊都是走向自己從network connection開始管。
(我知道Spring有內置Tomcat)
: 所以, 在這種基本上是I/O bound 的工作面前,用以CPU bound 為強項的語言。
: 是不是大材小用了?
其實C/C++這種可以編譯爲native code的還是快,但是一般的編寫方式用用不上。
網路連線其實沒有那麼burst的,一堆時間都在idle,不然poll(), coroutines發明
出來做什麼。也畢竟是HTTP/2以前的連線非常沒有效率,每段msg,先是廢話一堆。
gRPC也只是把header的廢話個壓縮掉。
這也是爲什麼有javascript來拉json這樣的東西出現,web中一堆沒有用的資料都是
css這樣的東西,真實有用的資料用類似out of band的手段丟一丟還比較快。
就算這個protocol進化到gRPC protobuf那麼沒有浪費,抱歉現在的socket編程根本
跳不開CPU copy,從Transport layer過來那邊kernel給你copy到userspace去,
然後reply的時候又userspace 給copy到kernel去包一包。
我前一段時間想弄個VPN程式看到這邊都要吐血了,是有DMA方案啦,DPDK。
沒幾個平臺支援,想要部署到Android或者iOS都不可能。
: 但當我看到它每一個取char * 傳進來的字串長度是用sizeof 時,就該明白....讚啦。: 還好它只是檢查它長度是否大於0。
native code的東西對這種memory boundary就很煩,有debug的人會發現,比如在
一個64bits memory的OS上,兩個32bits變數我只watch一個,結果旁邊variable
動一下,我這邊給拉起來。
string判斷size一不小心沒有null terminator就crash了,string類的function
用之前一定要看看有沒有n version, strnlen()就解決問題了沒有?
在ptt這樣不支援UTF-8的可沒有這種好事。
Jave就沒有這種煩惱了,也沒有Pass by reference這樣這的煩惱。
寫C++的時候要經常看看是不是move還是copy這種屁事.
: 推 alihue: 推,其實現代 jvm 速度已經沒有那麼慢了 06/20 08:24: → superpandal: jvm佔用記憶體阿 外加某些工具啟動龜速 運作也馬乎也 06/20 10:05: → superpandal: 沒什麼優勢 06/20 10:06ART講記憶體處理不好是還可以,GraalVM就沒這個問題了
至於ready time這個您有load過一堆c++ libraries,要處理symbols也很慢
: 推 brucetu: c++ compile真的是很耽誤開發 06/20 11:10: 推 tsaigi: sizeof XDDD 很有畫面 06/20 12:35: 推 qwe78971: 確實 每次compile 也超耗時 06/20 13:51C還好,C++真是痛苦,template每次展開都是毀天滅地般的時間。
還好有更糟的rust
--
你比較喜歡哪一個?
當年不是黨國大老但是被江浙財團捧紅的中國帥哥
跟同樣擁兵一方的諸侯約會裁軍結果半途諸侯們爽約,平常有在寫日記的莊嚴男人開始發飆在旁邊讀著荒漠甘泉冷眼旁觀看著薔薇戰爭的人,為了中國的事情爭吵
別國調侃是不是中國總統,義正詞嚴的說著我是民族的燈塔的威嚴老先生
--
graalvm有反射問題阿 不想寫映射設定 這部份go好多了
雖然go的反射難用一點
java你不透過反射是很難hack一些東西搞動態的 變量因
封裝搞的不可見超級麻煩
都什麼年代了還搞一堆設定 設定都一堆坑
我其實不知道reflection有什麼用,c++不習慣RTTI的東西
你的程式如果都是固定邏輯確實可以不用 但要多寫還多
很多東西
很多框架也極依賴反射
我spring只用了大概3個小時就沒碰了,我本業不是web這邊的
c++builder那套元件拉一拉就可以happy了
C就很白癡 一堆型態定義大家亂玩
最後為求保險都在用int32_t 普通的int沒人在用
int是給閉起門來造車的開發人員的軟體糖,不適合大規模用
沒 int32_t 才是語法糖 你看stdint.h就知道
你是指啥時的stdint.h?
一堆stdint.h都是吧 int32_t 還好可能x86大部分用int
int64_t 在不同平台會用不同東西來定義
我問的是"啥時"...如果不明白,東西是有歷史的。
你想講啥就直接說吧 一個在不同版本 平台 廠牌
會長不一樣的東西 你跑來問時間 到底是想幹嘛
vpn 那段,kernel wg 會比較好嗎?
好是好,擴展蠻麻煩的。 kernel中不能隨便spin lock的,一個deadlock真的全世界陪葬
怎麼不用Rust
int32_t 是C99 的事了。C99 以前怎麼辨?不用int用什麼?
而有它也只是為了讓不同的compiler有相同的反應。
免得像long 這樣。
阿所以我說"後來"都用int32_t 或是說他是語法糖
有問題嗎
*最後
而且 如果是C89前 大不了也是自己define類似的東西
(u)int32_t其實在PC/Server這樣的地方用,或者需要定義fixed length的data structure 都是沒有問題的。 但是麻煩還是不要都用32bits,int的意義在於一般都是compiler設定效能最佳化到最好的 data type。stm8也是這樣講,就算int在這個8bits MCU上是32bits長。 至於爲什麼不用更大的data type來存資料比較保險,就有一個paramter pass的問題, 特別是CISC的暫存器又少,大一點就要堆到memory中去了
為啥要反射?用FP寫法,再不濟寫個策略模式也可以吧
,還是封裝太深東西撈不到?
不是...你spring只碰過三小時哪有什麼好評論的,基本上
之所以用Java做web就是因為Spring生態系太強太豐富,非
常好用
web不是只有Java EE,26的Bilibili的Go洩露事件,說明Go使用比人想象的廣 另外我的工作和IO蠻有關係的,怎麼不能評論
哈...spring 未出生java 就已在做web 了。關spring啥事
為什麼用反射? 因為不少東西都在用 工作上能讓你選
擇的情況不多 通常都是框架與lib封裝太深 限制你的應
用 你用其它的也不是完美
現在哪間公司java不用spring? 銀行都有用了...關
spring啥事勒...
Android一票公司,當然web方面甚至說涉及到網路程式都是spring一本道
※ 編輯: hizuki (154.3.4.179 美國), 06/22/2024 18:44:5826
首Po現代網站開發一定有框架 幾乎所有的操作都有現成的函數讓你用 也是就說 就算用c++開發也只是在call框架的API 把資料丟來丟去而已10
: : 在 c++ 也就只是一行 function call 而已了 : : 那為什麼不用c++開發網站就好了? :21
CGI 這東西,看了這麼多人回,都沒人講出來,表示這邊的都是高手了。 資O會,以前某套內部的系統是CGI 當底的,後面接的是C。 但當我看到它每一個取char * 傳進來的字串長度是用sizeof 時,就該明白....讚啦。 還好它只是檢查它長度是否大於0。 鬼扯哪麼久,回到正題,用C 接http request,有什麼好處呢?12
如果是我的話也許寧願選擇用 C 也不太會選擇用 C++ 開發網站。 C 和 C++ 的好處在於沒有節操,大部分軟體工程師講得出來的程式語言,都會有記憶體 範圍保護以及垃圾回收的設計。 但是 C 和 C++ 沒有,C 和 C++ 覺得這是工程師應該要負責的事情。 而大部分的 HTTP 伺服器,如果是使用 nginx 或是 apache 的話,基本上這兩套都是純
42
[問卦] 上禮拜寫的code 今天就看不懂了?***更新*** 靠杯原來是少copy了一個 ( 啦 syntax檢查沒出來 因為是處理塞進去餵sql的指令 所以在python裡面那整串都是str =_____= 幹 然後我終於看懂我上禮拜為什麼要這樣寫了 =_____= 幹 媽的一個目幹卡一個半小時 =____=33
Re: [討論] 遇到問題就workaround真的好嗎?笑死人 一看就是沒有reference觀念的菜雞 immutable string就是要阻止你這種雷包寫出糞code啦 今天要是有人很衰小, 要跟你一起開發醫院的資訊系統 然後又很衰小的, 開發語言的string又是mutable的25
[問卦] 欸 為什麼我資料都成功丟回前端了 秀不出*** 幹你媽的我找到問題了 另外一個要丟回來的資料裡面 有幾個欄位是NaN *** *** 就算我api response那邊下了 default=str 也是不行 ajax看到NaN就不吃 *** *** error以後還是要寫 媽的這弱智問題卡一上午*** 幹你媽的 javascript到底什麼鬼啦 postman測試ok9
[問卦] 寫code這麼簡單憑什麼領高薪?寫程式不就if else就打天下了嗎? 真的不會寫的功能就藍色小舖找找copy一下就好了 這麼簡單的工作到底是憑什麼領高薪啊? 有掛嗎? -----12
Re: [討論] 寫三元判斷式code review被打槍從 C++ 的角度來說 三元運算子有機會改變 l-value/r-value 的性質,進而破壞最佳化 舉個簡單例子 可以看到用三元運算子的時候,回傳區域變數竟然要 copy 而不是 move 雖然說 Java 沒有這些8
Re: [請益] IT領域做網頁的賺不到錢,那要做什麼?恕刪 回推文的 web 轉 iot 經驗 個人最近一年來參與一個 iot 應用專案, server 主要分兩部份 一部份是中間轉傳的 server 由裝置廠商處理, 將裝置回傳的 hex 訊息做轉換後傳送給應用的 server,8
Re: [請益] 如何定義網頁後端┌───┐ │Client│使用者電腦主機, 通常安裝 Browser 瀏覽器 (Firefox, Chrome, Edge, ...) └───┘ │ │1
[心得] 2020-3-16 每日新聞#每日新聞 # 2020-3-16 每日新聞 # FB: # 在C#中使用Immutable types 不可變的類型在很多時候都很好用- #每日新聞 # 2020-2-26 每日新聞 # FB: # Go 1.14 出來了