位置:編程技術網 > 編程語言 > 正文 >

Java開發與技術挑戰——關于技術的技術思考(3)

2018年10月12日 15:52來源:未知手機版

船票網上訂票官網威海金海灣國際飯店,治療痤瘡藥物,貴州公務員考試報名人數,手勢功能,酷狗2013官方免費下載,法制教育計劃

遇到未知的問題和現象來臨時普遍會表現的比較不自信,精神壓力比較大,很難一直保持對Java專業知識的冷靜和思考,容易產生放棄解決的矛盾心理。研發人員在進行產品研發時面對的問題往往是多方面的,并不是說一眼都能看出來是哪一行代碼錯誤那么簡單,沒有找到原因之前可能是無解的,可以說是一種煎熬。


圖1酷派通行證Android應用的沖突

光合原品微信網關程序日志停止輸出的異象

因為光合原品業務需要,微信網關需要增加一個功能:每次用戶關注微信公眾號“光合原品”,給用戶下行的提醒語要可以變化的。這種需求的簡單做法就是后臺維護一系列的關注回復語,使用Java的隨機數函數機制來隨機提取后臺的提示語即可,程序開發完成后部署到生成環境,運行發現下面的異常:

2014-06-21 12:19:22 INFO [com.jiuxf.weixin.protocol.xml.MessageXMLUtil] jsonObject data is null

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

SLF4J: Defaulting to no-operation (NOP) logger implementation

SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

后面的程序日志就徹底打印了,而這些程序在本地進行測試時運行也是正常的,這兩個方面有點自相矛盾,也就是我們常說的悖論。

為了開發這個功能,程序中增加Redis為緩存處理中間件,用于臨時存放關注緩存數據,緩存數據是以JSON的形式進行存放,程序中啟用json-lib-2.4-jdk15.jar第三方jar用于完成對JSON的封裝與解析。由于本地開發環境與服務器不一樣,JSON封裝解析運行還有其他依賴包(commons-beanutils-1.8.0.jar、commonscollections-3.1.jar、commons-lang-2.5.jar、commonslogging-1.1.1.jar、ezmorph-1.0.6.jar),jar沖突在Java平臺下出現非常普遍,解決起來也非常讓人無語,主要是不同的jar包設計者為了保證自己的程序運行不出現異常,往往會隱藏調用中的異常痕跡,導致看不到程序錯誤日志,程序問題定位難度很大。通過對jar的調用部分邏輯進行常量替換跟蹤測試,發現問題依舊存在,jar沖突給予排除,還要繼續尋找其他原因。經過調查和文件對比,真正的原因是沒有在beanfactory.xml配置文件中新增的class聲明,如圖2所示。

beanfactory.xml的修改是手動進行修改的,遺漏了一條新增加的Service類。這種日志最奇怪的地方是程序出錯,日志文件就不輸出信息,傳統的Java程序運行故障都會拋出Exception日志,專業人士一眼就看到問題所在,但沒有錯誤提示想解決就難度大了。

未知與悖論是技術人員無法回避的兩大技術挑戰

上面提到的兩個真實案例非常簡單,其中包含了技術人員經常面臨的兩個挑戰:未知和悖論。

未知是指人受特定的時間和空間的限制及影響,對于現有事物的認知產生一定的局限性,且處于一種迷茫的感知狀態。未知體現在沒有技術人員沒有進行開發工作前的一種狀態,這個狀態中Java人員的心理不是不會寫class,而是不知道當前工作與什么類和函數有關。遇到這種狀態都會本能地使用搜索引擎查詢相關資料,或與朋友同事進行交流,以獲求最直接的幫助和解惑,但沒有效果,因為他們也不知道。處在這個狀態中,技術人員也會呈現不那么自信,不知道如何解決,不知道什么時候能解決,甚至會做出各種極端的舉措。一定程度上,技術人員會寫各種各樣的Java代碼,熟悉各種開發組件和開發包,關鍵是不知道自己要寫什么,這就是未知的挑戰。

另外一個挑戰就是“悖論”了,這個必須打引號,說是悖論,其實并非真正的悖論,它只是當局者不能使用先驗知識解釋當前現象的一種錯覺,代碼都是對的,環境都是OK的,怎么就出現讓自己不可理解的效果呢,實踐證明這類問題在技術上往往都能解決。剛才說未知是技術人員沒有開始工作前遇到的挑戰,悖論往往是已經按照原有的技術討論開展工作后的挑戰,看似已經完成特定的任務,但結果卻不是自己預期那樣。在這個狀態中,一開始可以按照理性的方式進行分析和確認問題,當幾輪分析下來,可能就會走彎路(比如放棄和懷疑自己原有的知識結構的正確性,在錯誤的方式上不斷循環驗證等等),從而導致走進死胡同中出不來。

本文地址:http://www.383726.tw/bianchengyuyan/25.html 轉載請注明出處!

今日熱點資訊
华东15选5开奖结录 山西泳坛夺金开奖结果查询 金龙棋牌游戏大厅 ag真人试玩_点击登陆 社会福利彩票规则 竞彩足球总进球 山西11选5走势图体彩 五分彩开奖官网 羽毛球比赛比分直播 百度金融理财平台 丁丁斗地主 排三复式投注器 女单网球冠军 香港特码公司 百家乐网址_Welcome 吉林11选5前二位跨度遗漏值尾走势图 陕西11选5直播开奖