初創互聯網公司該如何進行網站架構?

現在公司的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你也要自己修改擴展一些功能吧,到時候自己寫的代碼質量肯定是菜鳥級的。你有權力有魄力的話就送客吧。


一些心得:

  1. 建立之初最重要的目的是業務驗證。因此選擇團隊最熟悉的技術棧較靠譜,比較容易實現快速迭代,及時調整業務。
  2. 如果出於技術性、成本性的考量, 需要在其他的平台作抉擇,選用比較成熟的技術框架來搭建可以規避很多的風險。

  3. 業務架構的復用度通常不高,大多是核心信息結構比較匹配。但隨著系統不斷的運營調整,差異化會不可避免的發生。因此在業務框架的選用上,工作量評估不能過於樂觀。盡量選擇自由度較高的結構。

回到樓主的問題,如果當前重點是質量和穩定性,那麼全體遷移到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 的網站上?

TAG:互聯網 | 網站架構 | 網站性能 | IT行業 |