很多時候我們都是缺少一個好的切入點

來源:互聯網
上載者:User

標籤:winform   blog   http   ar   os   使用   sp   for   strong   

 

 開發人員經常會碰到老闆或上頭安排的項目或需求,是自己完全陌生的領域,這個時候就會非常頭痛,搜尋引擎能解決大部分這些方面的問題,而有時因為自身問題或乾脆找不到解決方案而非常抓狂......雖然幹開發有10來年了,但還是會不時碰到這種問題,現做一下總結

 

  前段時間老闆出了一個難題給我,具體要求如下:

  伺服器上面有兩張網卡分別串連電信和聯通網路,要求軟體在接到A請求時,使用電信網卡訪問網路,接到B請求時,使用聯通網卡訪問網路,必須能多執行緒請求。還給了提示,說他聽他朋友講,使用路由功能就可以簡單實現了

 

  解決辦法一:有問題上度娘,找穀哥

 

  拿到問題後,第一時間先認真分析需求,看看它會涉及幾個技術點,那些自己熟悉的能搞定的,那些是陌生需要尋求協助的

 

  上面需求看起來很簡單而且又給出了提示,簡單分析了一下,可能會涉及到的技術點有:網路訪問、訪問需要綁定網卡(MAC)、負載平衡、多線程、可能涉及路由等技術。心想使用度娘應該很快可以找出答案了,說幹就幹,在度娘那裡輸入:“c# winform 綁定網卡 ”、“c# HttpWebRequest綁定網卡”、“c#綁定MAC”、“c# 自動選擇網卡”、“C# winform多網卡下設定指定網卡網關”、“C# Winform tcp/ip 通訊”、“c# route”、“c# route 切換路由”、“c# MAC網卡 負載平衡”、“多網卡綁定 負載平衡”、“c# 路由”、“c# 路由編程”......

  找了半天,只找到一些不是很靠譜的解決辦法,比如使用CMD命令修改路由器的躍點來處理,但是改了後都走躍點低的那個網卡了,不能同時處理多個請求,只能中斷一個個處理,並沒有達到想要的目的。

  其他解決方案就是找不到......

 

 

  解決辦法二:查技術文檔

 

  當第一種方法不行時,那隻能查看協助文檔、開發語言相關的技術資料

  

  由於使用的開發語言是用C#開發的,所以按老闆的提示,拚命的尋找路由相關的資料(被匯入了誤區了... T_T)

  除了找到修改路由器的躍點方法外,沒有查到其他辦法

 

  解決辦法三:要多使用團隊的力量

  個人解決不了的時候,這時就要動用關係,問問身邊的同事、朋友或技術Q群等,看有沒有好的解決方案,很多時候我們都是缺少一個好的切入點,大家討論一下,通常靈感就來了,或者有的朋友提出了一些好的想法或提示,按著這個思路設定關鍵字去查詢或查看相關資料,難題再也不是問題。所以一般來說(除非特殊的技術難題),這種方法都能解決問題,以前很多技術難題,都是同事朋友幫忙一起解決的,效率特別高。

 

  以上辦法解決不了後,只能向同事、朋友、技術Q群等地方,廣播出自己的難題,廣撒網,看看能不能碰到會的朋友,提示給予一個提示。不過發出這麼多詢問後,得到的回覆都是沒接觸過這方面的技術[email protected][email protected]能問的地方都問了,還是沒有解決辦法

 

  解決辦法四:思考以上解決思路是否誤入歧途了,尋找新的切入點

  當沒有清晰的解決思路時,不妨放下當前問題,先去做其他事情,緩一緩後再重新處理。因為當思路誤入歧途,就老是在那個圈圈裡面轉著,很難跳出來,而緩一緩後,頭腦清晰了,就會產生更多新的想法,再慢慢逐個嘗試。以前試過碰到很多其他技術問題解決不了時,使用本方法輕鬆的找到之前被自己忽略的地方,從而找到問題關鍵點所在,解決了問題

 

  在這個時候,已經研究了三四天時間了,一點解決思路都沒有,心裡很急燥,不過只能先強迫自己冷靜下來進行認真檢討,從新理順一下思路:本需求是否可以實現(按BOSS的說法,這是肯定可以做到的,不過從技術角度分析,實現肯定沒有問題,就是要找對API才行)?本需求所使用的技術,肯定只要是網路訪問、訪問需要綁定網卡(MAC)、負載平衡等方面,而查詢的關鍵字應該有問題,尋找的資料也存在問題。除了使用C#調用API外,是否考慮使用C++編寫外掛程式來給C#調用?......

  最後又花了一天多時間來查詢各方面的資料,還是沒有辦法(主要還是對該領域太陌生了,網上也沒有尋找到對應的解決辦法),那隻能使用最後一招絕殺技了......

 

  解決辦法五:尋找大牛來幫忙解決

  IT技術無窮無盡,每個人都有自己最擅長的地方,所以自己處理不了一些問題也是很正常的事情,而專業的事情要交給專業的人來處理,所以必殺技就是到各大技術論壇尋找牛人來幫忙,比如上技術論壇、部落格網站等地方發貼尋求協助

 

  本問題已經到了最後山窮水盡的時候,本想在各技術論壇發貼詢問的,但想想自己沒有太多時間刷貼,所以厚著臉皮上部落格園和CSDN找一些大牛的部落格,看他們那些對這一塊比較熟悉,然後直接發郵件或直接留言給他們,請求他們幫忙。

  最後在CSDN大牛 陳抒 的協助下最後搞定了本問題。在此非常感謝他在百忙中,熱心的對我提出問題給予回複,同時也感謝在此過程中給予我協助的kl222 、部落格園的lucasFeng等

 

  具體的解決方案如下:(在多網卡的環境下,只要在訪問外網時,指定使用那一個網卡IP來對外發包,就可以非常簡單的實現一開始所說的功能了)

123456789101112131415 //設定對外訪問所使用網卡的IPstring sendingIp = "192.168.0.1";//設定對外訪問所使用的連接埠int sendingPort = 5000;Uri uri = new Uri("http://google.com");HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(uri);//擷取對外訪問的包,並指定使用那個IP(網卡)與連接埠來發送資料包ServicePoint sp = ServicePointManager.FindServicePoint(uri);sp.BindIPEndPointDelegate =    (servicePoint,remoteEp,retryCount) =>         {             return new IPEndPoint(IPAddress.Parse(sendingIp),sendingPort);         };//提交請求並擷取返回結果var data = new StreamReader(wr.GetResponse().GetResponseStream()).ReadToEnd();

 

   總結

  對於初學者來說,會經常碰到各種各樣的需求和問題,但並不是每一個人都能很幸運身邊有一位大牛,可以隨時幫忙解決各種問題,所以大多數還是要考自己來解決,這就需要使用相關的技巧。運用好的技巧可以讓自己少走彎路,節省時間成本。另外過多的依賴別人,也會壓縮自己的成長空間,而且大牛們也會非常的煩初學者自己都沒有認真研究就隨便亂提問題(多數提出的都是一些很初級的問題)。

 

http://www.cnblogs.com/EmptyFS/p/3436111.html

 

很多時候我們都是缺少一個好的切入點(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.