【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統:0.概述


項目Logo
歡迎閱讀我的開源項目《迷你微信》服務器《迷你微信》客戶端

序言

帖主和隊友仿制了一個簡單版的微信,其中,隊友是用Unity3D做前段,帖主用Java的Mina、Hibernate和Spring做的后端,前段的博客鏈接將在隊友寫好后提供。下面先講講帖主在編寫前后的經歷和遇到的問題(通篇都是廢話╮(╯▽╰)╭,請直接戳下一篇).

一開始帖主的隊友提議做仿制一個微信的時候,帖主稍微一想,微信不就是一個好友名單,然后消息對發么,還有啥?哦,還有個朋友圈,也就這點東西吧。后來經過討論,發現微信的功能還真是不少,且不說基礎功能的好友,聊天,群聊,細致的分下去其實還有登陸,注冊,添加刪除好友等等……關鍵還在於項目的語言通用性,因為前端和后端不適用同一種語言寫的,協議等等的處理也是挺麻煩的,最后,這也是一個對各個框架工具的學習機會。所以帖主的艱辛旅程就此開始。

目錄

【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統 :1.技術簡介之Mina連接
【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統:2.技術簡介之MinaFilter(1)
【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統:3.技術簡介之MinaFilter(2)——LoggingFilter
【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統:4.技術簡介之Spring
【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統:5.技術簡介之Hibernate
【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統:6.技術簡介之Protobuf
【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統:7.項目介紹之架構(1)
【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統:8.自定義傳輸協議
【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統:9.觀察者模式
【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統:10.項目介紹之架構(2)
【迷你微信】基於MINA、Hibernate、Spring、Protobuf的即時聊天系統:11.定制化Log輸出

項目后感——技術

博主在做這個項目時,所使用的有些技術都是零基礎的,就想着:“東西那么多,等要用的時候再去查吧”,於是由於對所使用技術的不了解,項目的設計各種不合理,在隊友指出來后,才漸漸懂得那句話“磨刀不誤砍柴功”。有些東西可以在使用的時候不懂再去了解,但是若是我們根本不知道它的存在,又將如何?況且,若是不能對所使用技術有個整體的認知,如何合理的使用它(不與其設計目的相悖),還可能出現我們花費大量時間去實現該技術已經實現的模塊,這對自己的學習發展以及項目的進展改善是很大的阻礙。

在做項目前,應該要對項目所使用的技術有個整體的了解,細節方面比如哪個細節如何實現,這些秒一眼便好,且不說全看時間不夠,就算認真看了——博主表示記憶力是硬傷(~ ̄▽ ̄)~。有了整體的了解后,首先需要對項目整體架構進行一次划分,然后根據需求,確認需要使用的技術,再根據要使用的技術,將架構改為能夠完美融洽所使用技術的方案。如果不能有個大概的規划,可能會出現項目進行到一半時大改的狀況。

項目后感——生活

在這里博主有點小小的經驗跟大家分享一下,在一個合作的項目中,往往交流的成本是很大的,不像一個人獨做項目時的隨心所欲,無論是協議、接口、架構等等理由都能從討論升級為爭吵,因為在每個人的心中,都不希望自己所做的東西被否定,一旦被否定,可能因為情緒和自尊的原因無視問題本身的對錯堅決抗爭。在這一點上,博主有個小小的建議:

  • 如果你覺得對方是錯的,不一定需要與對方爭到底知道對方認錯。
  • 如果你已經發現自己是錯的,又拉不下臉面當面認錯,可以使用接口延緩戰爭,過后進行處理。

在第一點上,也許有一些朋友覺得自己是對的,對方不肯認錯,一定是對方還不能理解到自己的錯誤,那么我有義務說服它。其實對方有可能已經意識到自己的錯誤,但在你的氣勢宏大,咄咄逼人的場面下,低頭是需要很大的勇氣的,尤其是在眾人面前。

在項目上的爭吵大家可以理解為“咱們是為了項目更好的發展才吵的 ”,不需要將其當做個人恩怨,博主在項目過程中經常與隊友爭吵,爭吵的原因不重要,爭吵的結果也不重要,但是在晚上“停工”后,樓主跟隊友照樣一起運動,一起打游戲,毫無隔閡,所以推薦大家如果可以的話,將工作與個人時間的一切分離開來。

多與隊友溝通交流,在非項目時間一起活動(吃飯,運動),討論時對事不對人,這些看起來無關緊要的東西,其實對於項目的進展以及項目的優化都是只管重要的,良好的信賴關系是合作的基礎。

后話

一個項目結束了,博主在各各地方學習到很多東西(尤其是向隊友),也發現了自身的許多不足,改進缺點是必須的,在下一個項目的開啟之前,需要多去學習,積累一些技術基礎,如果每次項目都是使用完全一樣的東西,那么我們就白白浪費了整個項目周期的時間而學不到什么東西,也希望大家能提供一些建議,讓我們共同的發展。

歡迎閱讀我的開源項目《迷你微信》服務器《迷你微信》客戶端


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM