原创 淺析Java方法反射原理

1. 前言 1.1 目標 java程序員日常開發經常使用到反射技術,所以本文就是要講解一下java的方法反射,讓大家更好了解反射的性能. 1.2 反射性能結論 默認配置下,前15次的反射方法會通過native方法執行,在nati

原创 從此再不爲https異常"PKIX path building failed"煩惱

從此再不爲https異常"PKIX path building failed"煩惱前言異常:PKIX path building failed原理說明分析方法問題場景場景1:服務端證書被客戶端信任場景2:客戶端和服務端證書都是自己

原创 學習筆記——I/O多路複用

前言 我們在學習或者使用nginx、redis或者netty的時候,總是驚訝於它們的高併發性能。但有沒有想過系統是如何在高併發下實現高性能I/O。 什麼是I/O多路複用 I/O多路複用解決的就是併發性效率問題。舉個例子,一個繁忙的

原创 用java編寫基於selenium的方式抓取豆瓣讀書書籍內容

用java編寫基於selenium的方式爬取豆瓣讀書內容前言需求處理思路實踐源代碼selenium設計模式訪問入口最後附上我之前寫的博文入口: 前言 很久以前,生活中使用c#和java分別寫過網頁遊戲外掛,通過語言中內置的方式進

原创 《程序員修煉之道--從小工到專家》讀書筆記

《程序員修煉之道--從小工到專家》讀書筆記注重實效的哲學-讓你的用戶參與與權衡注重實效的途徑-可撤銷性基本工具小結 前段時間看完了《程序員修煉之道–從小工到專家》這書。該書沒有涉及什麼很深奧的技術,或者有特別複雜的設計,都是一些來

原创 Redis 單線程還是多線程?

Redis 單線程還是多線程 前段時間無意間看到一篇博客,講述了Redis6即將在年底發佈的事情,好奇心驅動下搜索了官網,想看看新版Redis帶來了什麼新的功能,果然得到證實Redis在年底將發佈新的版本:6.0,並且Redis創

原创 業務架構扯淡

不寫單元測試的碼農不是好的廚師,哪怕您只想擼一生增刪改查,可能公司也不允許。現實公司,多數同學還是業務開發,業務開發往上一個臺階,很容易想到業務架構師,今天我們來聊聊業務架構。 公司/業務 實際上,所有公司都有一個最本質,最底層的

原创 聊一聊在移動互聯網時代做一個桌面應用

前言 掐指一算距上一次開發桌面應用已經過去十幾年,在某國際領先的遠洋貨櫃集裝箱運輸公司開發設計的人力資源管理系統,供全球200多個辦公室和上萬名員工使用,據說至今仍在使用,生命力之旺盛讓我倍感驕傲。那時候PC是使用率最高的設備,W

原创 自建低成本代碼託管與文檔管理平臺經驗分享

自建低成本代碼託管與文檔管理平臺經驗分享雲服務器選擇搭建Gitea服務倉庫鏡像管理樹莓派備份節點Nextcloud文件管理寫在最後 直入入正題,自建代碼託管平臺其實市面上早有成熟的方案,svn,gitlab,gitea等等。所謂

原创 分佈式開發雜談

分佈式雜談 分佈式模型的理念自計算機誕生之日就已經出現。然而計算機發展初期,由於設備數量稀少且價格昂貴,再加上摩爾定律的影響,與其實現一套複雜的分佈式架構系統,直接提升單臺機器的硬件性能要更加簡單可行得多。由此導致的現象就是上世紀

原创 重讀《代碼整潔之道 - 程序員的職業素養》有感

程序員的職業素養《The Clean Coder》一書是Bob大叔代碼整潔之道《Clean Code》姐妹篇,代碼整潔之道一書從編碼本身的技藝影響了一代又一代的軟件開發人員,它強調函數,命名,單元測試,異常測試,代碼格式等,告訴程

原创 Mockito的使用及原理淺析

Mockito的使用及原理淺析 在微服務橫行的年代,一個服務可能依賴了若干個其它服務,而這些被依賴的服務,又極可能依賴了別的服務,於是構成了一個複雜的依賴鏈。而日常開發中,經常會苦惱於某某上游接口沒數據而所使得UT達不到預期的目標

原创 數據重壓下的一點隨想

       記得剛來唯品的時候,遇到一位信仰基督教的產品同事,這裏說到基督教,沒有特別的含義,或者這是對這位產品最貼切的形容詞吧,畢竟現在他已經獻身基督教,把基督教當做第一職業,也可能是因爲這是我第一次遇到信仰基督教的產品吧。每次跟他討

原创 python scrapy學習demo分享

前言 一個高級測試工程師在自學Python後,向我推薦的一個比較容易上手的Python 框架scrapy。在網上搜索了一下資料後感覺挺有趣的,就想着自己也搭建個環境,然後做一個爬取圖片的demo玩下。 開發環境搭建 Python安

原创 重構之重新認識

重構?每次聽到這個詞,頭腦裏面閃現的就是“推倒重做,代碼重寫”,那到底重構是什麼玩意?所謂“外事不決問谷歌,內事不決問百度,房事不決問天涯”,百度百科上面的解釋是:重構(Refactoring)就是通過調整程序代碼改善軟件的質量、