前言
整個(gè) 2020 年過得比較倉促芦疏,沒有時(shí)間寫點(diǎn)東西禀酱,主要是沒有沉淀下什么東西∶吖剑回顧整個(gè) 2020 年的工作過程,我印象最深刻的就是工作中不同的工具帶給我的巨大成就感和幸福感袱衷,例如 Quicker捎废、Idea、Datagrip致燥、Rider 等登疗,沒錯(cuò),鄙人也是 Jetbrains 的狂熱粉絲嫌蚤。
春節(jié)假期剛過的某個(gè)工作日的夜晚辐益,突然心血來潮,心想我不該再沉默了脱吱,有些事情該說出來了智政,隨即奮筆疾書寫下這段文字,主要來說說我如何使用 Quicker箱蝠。不熟悉 Quicker 的人可以到官網(wǎng)轉(zhuǎn)轉(zhuǎn)续捂,對于每個(gè)人 Quicker 可能都是一個(gè)不一樣的東西垦垂。
午時(shí)已到
數(shù)據(jù)庫相關(guān)
搞定 PL/SQL Developer
鄙人所處的行業(yè)是醫(yī)療軟件行業(yè),工作中會經(jīng)常接觸 Oracle 數(shù)據(jù)庫牙瓢。絕大部分工作場景都只能使用 PL/SQL Developer 作為客戶端操作數(shù)據(jù)庫劫拗,我在使用這個(gè)工具的過程中發(fā)現(xiàn)了兩個(gè)不習(xí)慣的地方:
- 執(zhí)行 SQL 語句的快捷鍵默認(rèn)是 F8,按不太習(xí)慣矾克,而且需要經(jīng)常連接不同的遠(yuǎn)程機(jī)工作杨幼,把所有環(huán)境的快捷鍵都改一遍不太現(xiàn)實(shí)
- 在一個(gè) SQL 窗口中寫了多條語句,但只想執(zhí)行其中一條聂渊,只能手動選中語句后執(zhí)行差购,否則默認(rèn)情況下會將窗口中的所有語句依次執(zhí)行。研究了一段時(shí)間后發(fā)現(xiàn)也有設(shè)置項(xiàng)可以搞定這個(gè)需求汉嗽,但是同上所述欲逃,行不通。
現(xiàn)在我用 Quicker 來解決這個(gè)問題饼暑,由于很多 SQL 語句只有一行稳析,所以我寫一個(gè)動作實(shí)現(xiàn)如下功能:
- 模擬鍵盤按鍵,Home 跳掉行首弓叛,Shift + End 選中整行
- 模擬鍵盤按鍵 F8 執(zhí)行語句
然后通過擴(kuò)展熱鍵功能設(shè)置為當(dāng)我按下 CapsLock + Return 時(shí)觸發(fā)上面寫這個(gè)動作彰居,完美。這個(gè)動作的使用次數(shù)短時(shí)間內(nèi)就達(dá)到了我所有動作的第一名撰筷,可想而知有多爽陈惰。
搞定客戶需求
核查數(shù)據(jù)篇
客戶經(jīng)常會發(fā)一些 Excel 表格過來讓我們核查數(shù)據(jù),在這個(gè)過程中我們會需要把一列數(shù)據(jù)轉(zhuǎn)換為 SQL 語句中的 IN 關(guān)鍵字的參數(shù)毕籽,例如下圖
我們需要將【個(gè)人編號】列中的數(shù)據(jù)轉(zhuǎn)換為型如【'xxxx','xxxx','xxxx'...】的數(shù)據(jù)抬闯。我就使用 Quicker 寫了個(gè)動作實(shí)現(xiàn)了快速轉(zhuǎn)換,完美关筒。動作鏈接:列轉(zhuǎn)行溶握,關(guān)鍵部分用 C# 代碼實(shí)現(xiàn)就不描述了。
導(dǎo)出數(shù)據(jù)篇
我這邊會經(jīng)常接到統(tǒng)計(jì)報(bào)表的需求蒸播,統(tǒng)計(jì)匯總表的話相應(yīng)就要導(dǎo)出明細(xì)表睡榆。由于鄙人工作極其較真,所以每次導(dǎo)出明細(xì)表都會與匯總表核對一下數(shù)據(jù)量對不對袍榆。
這就出現(xiàn)了一個(gè)問題胀屿,一個(gè)匯總表對應(yīng)十?dāng)?shù)個(gè)甚至數(shù)十個(gè)明細(xì)表,這樣的話我就會像一個(gè)傻子一樣打開一堆明細(xì)表把眼睛看瞎蜡塌,而且數(shù)據(jù)量大(百萬行級)的時(shí)候打開報(bào)表巨慢碉纳。
于是我想用代碼來批量獲取 Excel 文件的數(shù)據(jù)行數(shù)勿负,一頓操作馏艾。嘗試過 Java 和 python劳曹,數(shù)據(jù)量小的時(shí)候還可以,數(shù)據(jù)量大的時(shí)候就搞不定了琅摩,內(nèi)存直接崩掉铁孵。
后面研究了一下 xlsx 文件的格式,發(fā)現(xiàn) xlsx 文件就是一個(gè)壓縮包房资,解壓之后是一些 xml 文件蜕劝,可以從 xml 文件中獲取數(shù)據(jù)行數(shù)而不用解析整個(gè) Excel 文件,用 C# 搞了下轰异,發(fā)現(xiàn)速度比直接打開文件查看要快岖沛,而且內(nèi)存占用極低。那這就不討論了搭独,這事兒我說了算婴削,Quicker 安排!
- 獲取選中文件列表牙肝,排除非 xlsx 文件
- 調(diào)用 C# 代碼實(shí)現(xiàn)獲取文件數(shù)據(jù)量唉俗,具體算法我就不啰嗦了,想看可以到動作里面看下
- 最后用文本窗口顯示結(jié)果
動作鏈接:問君能有幾多行
每天都要做配椭,不做都不行篇
我們團(tuán)隊(duì)有段時(shí)間搞了一個(gè) web 系統(tǒng)虫溜,其中有個(gè)統(tǒng)計(jì)報(bào)表,客戶要求我們工作日每天都要把這個(gè)報(bào)表截圖上報(bào)到微信群中股缸。這個(gè)報(bào)表的大小和相對于屏幕的位置是固定不變的衡楞,還每天都要搞,那我就不客氣了敦姻。寫了個(gè) Quicker 動作實(shí)現(xiàn):
- 打開對應(yīng)網(wǎng)址寺酪,模擬登陸。俺寫的系統(tǒng)替劈,俺不能模擬登陸的話俺就辭職回家了寄雀。
- 截圖,指定位置和大小
- 激活微信進(jìn)程主窗口陨献,也可以通過快捷鍵實(shí)現(xiàn)
- 搜索客戶群盒犹,粘貼發(fā)送
一氣呵成,完美眨业。設(shè)置定時(shí)運(yùn)行任務(wù)后面我評估了一下沒有搞急膀,因?yàn)樯抖甲詣恿艘哺杏X挺寂寞的。
搞定自己
迅速調(diào)整窗口大小篇
啥都搞定了龄捡,當(dāng)然不能苦了自己哈卓嫂。不知道大家有沒有一種感覺,就是在調(diào)整窗口大小的時(shí)候聘殖,需要小心翼翼的把鼠標(biāo)放到窗口的邊緣晨雳,這個(gè)過程對我實(shí)在是很折磨行瑞,每次我都很抓狂。我就一直想寫一個(gè)程序來完成快速調(diào)整窗口大小的功能餐禁,我學(xué) C# 的初衷就是干這個(gè)事情血久。但是還沒有等到我修煉成功,在 Quicker 的動作庫中就發(fā)現(xiàn) Ever 大佬搞了個(gè)干這事兒的動作帮非,簡直開心到起飛氧吐!動作鏈接:調(diào)節(jié)窗口
來個(gè)總結(jié)
總的來說寫的比較草率,圖文并茂啥的等后面慢慢迭代吧末盔,上線是第一要?jiǎng)?wù)筑舅。先寫這么多,還有好些場景后面跟大家分享陨舱,有時(shí)間配個(gè)動圖什么的豁翎。
之前在網(wǎng)上看到一篇文章,大意是好的產(chǎn)品會讓用戶有一個(gè)“哇塞”時(shí)刻隅忿, Quicker 讓我有了很多個(gè)“哇塞”時(shí)刻心剥,感恩。會一直支持 Quicker 背桐,同時(shí)也希望自己也能創(chuàng)造一個(gè)“哇塞”產(chǎn)品优烧,加個(gè)油。