不學無數 在工作中被逼出來的解決之道

2021-09-20 02:25:55 字數 1752 閱讀 6072

相信初入職場的小夥伴們肯定經歷過在組內統計一些東西的事情,簡單卻繁瑣。前一段時間給了乙個關於統計組內各個系統中都用了哪些使用者下的表的任務。剛拿到這個任務的時候,就是按照之前的思維模式進行完成的,直接在編輯工具中全域性搜尋查詢使用者名稱.(因為我們公司的表都是使用者名稱.表名),在第乙個系統中的時候我這麼幹還行,因為涉及到的使用者也少,表也少。所以也就很快的按部就班的完成了,但是隨著後面系統的越來越多,涉及到的使用者以及表越多,如果我還是這麼幹下去,無聊不說而且容易出錯。最主要原因還是懶,太浪費時間了,所以想想有沒有更加簡單便捷的辦法能夠幫我完成這些事。找人幫忙是不可能的,思來想去熟悉的只有寫**了。所以分析了下這件事的可行性。

用的mybatis框架,所以sql都是存放在xml檔案中。存放位址統一。

公司的表有一套命名規範,基本上都是使用者名稱.t_使用者名稱_表名。考慮用正規表示式解析

所以基本上思路就清晰了

用io流讀取放著sql的所有xml檔案

正規表示式將匹配的資訊取出來

map>根據key為使用者名稱來儲存各個表

第一步是先寫了讀取資料夾下所有檔案的**:

public static string getfilename(string path) throws ioexception 

else

}return stringbuilder.tostring();

}

在剛寫這段**的時候,卡到了對於資料夾的下面還存在資料夾的問題上,因為有可能a資料夾存在b資料夾,b資料夾下存在c檔案等等。然後突然想到了這和之前學過的組合模式非常的相似,都是描述部分和整體關係。意思就是使得使用者對單個物件和組合物件的使用具有一致性。

第二步這裡就寫了關於正規表示式提數

public static string readfile(string filename) throws ioexception 

bufferedreader.close();

string str2 = stringbuilder.tostring().touppercase().replaceall("\t","");

string pattern = "t_[a-z][a-z][a-z]_[a-z_]+";

pattern r = pattern.compile(pattern);

matcher matcher = r.matcher(str2);

stringbuilder resultstring = new stringbuilder();

while (matcher.find())

return resultstring.tostring();

}

第三步就是對於所有提出來的數進行去重和歸類

public static void printdate(string string)

for (string s:set)else }}

for (string str:map.keyset()));

system.out.println("-------------");

}}

雖然寫**花費了一些時間,但是花費2小時寫**,統計所有的系統有可能得1天的時間,其中還是人力統計還會有可能出錯。所以花費這點時間寫**還是很有用的。最主要是鍛鍊了解決問題的思維,以後碰到問題之後要想最優解是什麼而不是拿到乙個問題就直接上來悶頭幹,有可能最後還吃力不討好。

在工作中找尋價值

我遇到很多程式設計師都說自己的工作很無聊,很無趣,想跳槽幹點更有技術含量的 更有挑戰性 甚至是更炫的工作。還有些人一邊罵現有的專案,一邊找新的工作。其實除非你能從頭參與乙個專案的開發,到了新的專案也差不多,很難滿足你的要求。現在有幾個專案是從頭來的呢?大部分的專案都是處於維護狀態,就是對新需求在老 ...

面試中被問到 你在工作中碰到的最困難的問題是什麼?

首先,面試官問道這個問題的目的肯定是想從側面了解你對技術的理解,或者說我解決問題的思路。那麼說,我們回答這個問題也要從這點著手。我是這樣總結的。在我的程式設計生涯中,我總結出了幾點 1.良好的程式設計習慣是對有效率程式設計最大的幫助。2.除錯能力的高低是最能反映乙個程式設計師水平的素質。那我就分享一...

策略模式在工作中應用

物流系統要新增包裹資料,現在物流的上游有三種包裹 線上的包裹,線下的包裹,外部的包裹,每種包裹在新增時會有些不同的操作,比如線上線下的包裹新增後要發訊息給訂單履約中心方便監控,線上包裹新增時要判斷包裹是否需要抽檢,釘箱,並生成相關的資料等。每種包裹都有其特殊的操作,從系統維護的角度上說,可以使用策略...