初創互聯網公司該如何進行網站架構?
現在公司的java研發團隊有一個負責了5個月的項目,在穩定性上和性能上比較欠缺。公司領導不滿研發成果,考慮換用開源的php程序進行二次開發,並希望所有java程序員進行技術轉型,而且希望在3個月內完成研發任務。大家如何看待這個問題?當然本人覺得這很荒誕的,因為公司有php程序員,而且項目中出現的穩定性問題以及性能問題並不和現在的j架構相關而是程序員們的代碼質量導致的。領導們的意見是開源php程序在性能,穩定性,以及安全性上會比目前我們這個自主研發的產品好點。而java的開源項目暫時還沒找到合適的。他們覺得自主研發達到這樣的效果還需要很長的時間,所以考慮轉向php。希望廣大知友能踴躍發表下意見,幫忙分析下問題。看是在現有基礎上進一步優化,還是直接考慮換用php項目。因本人資質還不深,很多事情不好權衡,所以才在知乎上求助的。希望各路知友都能發表下意見啊。
不要用所謂的開源的東西去搭東西。
除了坑就是坑。
更不要用PHP。
Java做不好的性能問題僅僅是沒找到合作的人而已。
- Java系統不如意是不是事實?是否確實制約了公司業務?
- 老闆提出的方案未必是解,但他的concern有沒有道理
- 從技術的角度理解不了老闆的憂慮,就從商業的角度來
- 他提出方案的目的未必是一定要這麼做,而是提供可選解
- 更重要的是,他需要和你溝通到這確實是一個問題
- 他需要的是從你那裡得到一個真正的解
- 公司是否初期並不直接決定架構應該如何,具體問題決定架構
- 你打算怎麼解決這個問題?
- 如果沿用Java,如果解決當前的問題
- 如果放棄PHP,有沒有完整的方案
初創公司,如果不是有很多錢燒的話,優先考慮php,找到符合需求的框架,改改弄弄,快速上線肯定比自己開發來得多快好省。
除非你的技術團隊都是牛人,否則代碼質量是比不上成熟的php框架的。 php還有一個好處是現拿現用,丟了也不可惜。創業項目可能運營幾個月就要大改動,甚至產品大方向都變了。這時候自己開發要重來就太累,技術會捨不得丟棄,跟產品決策人對頂,增加內耗風險。
好幾年前公司做一個類似博客的項目。但由於技術老大自己不熟悉php,堅持用.net從頭到尾開發。而我作為pm建議在wordpress基礎上修改。結果自己開發的搞了好幾個月,bug很多,功能還是差wp一大截。倉促上線,雖然用戶發展了幾十萬,但最後還是由於當初錯誤的技術路線,項目還是關閉了,但總體還是盈利的。雖然用wp也未必成功,但初期的肯定更快更強大更穩定。
創業團隊不要重複發明輪子,真的有牛人就用在能形成核心競爭力的點上吧。不過具體到貴公司,恐怕很難一下就掉頭,讓java的學php肯定有難度,人家也不爽,你也不可能把人開了重新招php。如果本來就是水平一般的java,那就不是語言問題,而是水平問題,換成php你也要自己修改擴展一些功能吧,到時候自己寫的代碼質量肯定是菜鳥級的。你有權力有魄力的話就送客吧。一些心得:
- 建立之初最重要的目的是業務驗證。因此選擇團隊最熟悉的技術棧較靠譜,比較容易實現快速迭代,及時調整業務。
- 如果出於技術性、成本性的考量, 需要在其他的平台作抉擇,選用比較成熟的技術框架來搭建可以規避很多的風險。
- 業務架構的復用度通常不高,大多是核心信息結構比較匹配。但隨著系統不斷的運營調整,差異化會不可避免的發生。因此在業務框架的選用上,工作量評估不能過於樂觀。盡量選擇自由度較高的結構。
回到樓主的問題,如果當前重點是質量和穩定性,那麼全體遷移到PHP後,依舊無法保證(縱使是基於已有框架二次開發),畢竟學習成本、現有的能力都是無法一蹴而就。所以從技術的角度,我並不建議切換。
可以考慮對當前的框架做一個排查,看問題主要出現在基礎架構還是業務邏輯。如果是基礎架構的問題, 那麼換用一個更加合適的Web框架可能會解決很多安全性、穩定性的問題。如果是業務邏輯層,嘗試在領域模型、數據訪問、介面定義三塊找優化的空間。初創公司不必太在意技術架構,怎麼省錢怎麼來,這麼快速怎麼來,怎麼拿手怎麼來。
如果失敗了,投入成本最少;如果成功了,你有足夠的資源重構你的架構。可以參考這本書
《大型網站技術架構-核心原理與案例分析》
(亞馬遜預售 大型網站技術架構:核心原理與案例分析/李智慧 噹噹網預售 《大型網站技術架構:核心原理與案例分析(最接地氣的網站架構經驗,網站生存技術心要,應對大數據挑戰的乾貨分享!)》李智慧 著)分析下領導的想法和java優點,應該是停留二十世紀初的,或者某些從學校出來的學生從老師那裡聽到的,java會比較慢,性能堪憂,但是隨著目前JKD 版本的提升,java的性能並不會很低效,同樣的代碼在一定時間後執行效率並不會比C語言差,何況是php了,在成規模的項目上php的效率不見得會比java高效,穩定性 方面 都有自己的gc .而安全性 不知道從何談起,一個是解釋型語言,一個是編譯型 領導在考慮哪方面的安全性?
PHP的使用率在10年封頂後,一直保持在下降的趨勢,雖然java的使用率一直受到其他web開發軟體的佔領,但是還是保持第一的寶座(數據是各大編程語言的使用量,Java應考慮包括手機端的使用)
總的來說,考慮使用那種語言是因為哪種語言更適合當前的環境,例如 預期項目規模,側重點等等,而不應該考慮因為 coder的代碼質量不行而去換語言...語言躺槍啊..
再有,java代碼寫不好,PHP代碼就可以寫好?--------------------在小項目中 功能點在只有頁面的時候 PHP確實會比Java開發速度快,但是在項目升級或維護上會很快遇到瓶頸這個我有一些經驗。
曾經做過電商網站。我本人之前沒有PHP或者java經驗,在考慮各種風險後,選擇用magento二次開發。大部分功能配置一下就達成了,小部分功能需要開發插件。期間由於PHP不熟悉,明顯的感覺的效率低,但是最終還是穩定的跑起來了
以樓主團隊的現狀,還是選用一個主流的開源框架為宜。請注意,技術團隊的價值在於及時的交付可運行的系統,而不是開發一個又一個的輪子。
至於語言轉換,我覺得Java轉到PHP不算個事得看你的網站實際使用場景和後續的業務要求是怎樣的,才能談架構問題啊。寫來寫去就給100人用的系統還考慮什麼效率問題,直接硬體好點就行了
開源那些東西,在沒有足夠好的研發人員之前,基本就是下面的情況:
大坑套小坑,小坑套老坑,坑中還有水,水裡還有釘,下去就沒影。
這不是語言的問題,公司有錢就算是再差的代碼也能堅挺,有這換php的時間不如找找問題
題主的問題 似乎和語言 構架沒什麼關係 而是團隊工程師水平hold不住目前的需求 就算轉語言 也不會達到公司的預期 這點需要讓公司意識到
你們團隊目前的人力狀況是什麼樣的 高級 中級 初級工程師的配比如何 可以review一次 之前被指責的性能 穩定性出現的問題 是什麼原因導致的 跟團隊一起回顧一下 可以拉上公司相關方一起來做這個事情建議先搞清楚具體的性能指標是多少?PHP的開源測試過可以達到要求的性能指標嗎,如果不能達到,那去做自己不熟悉的二次開發優化成本可能更高!
慢不是java的問題,是架構的問題,可以先找一些高手幫你看看,可以找我
推薦閱讀:
※衡量網站性能時,並發數與吞吐量為何要分別考量?
※點點網上線初期時的「架構重寫」事件有哪些值得借鑒的經驗教訓?
※基於windows + .net開發網站, 高並發/高訪問量的系統架構是怎麼樣的呢?
※如何學習大型網站的架構技術?
※如何把自己單獨做的HTML頁面放到基於 WordPress 的網站上?