原创 【Haskell】Haskell中的條件編譯

(點擊上方公衆號,可快速關注)背景最近在用Haskell語言和haskell-gi包寫一款Haskell的IDE,這款軟件初步支持簡體中文和英文兩種語言環境(中文簡體語言環境展示中文簡體,其他環境展示英文)。實現這種國際化的需求,有多種

原创 【C++】函數相關概念說明

(點擊上方公衆號,可快速關注)相對於其他一些語言,如Haskell,C++函數相關的概念相對較多,大部分概念跟語言實現有關。實際上大部分時間沒有必要區分清楚,但如果要閱讀外文資料時,最好還是儘量把概念分析清楚,否則會經常遇到“雞同鴨講”

原创 【工程實踐】Node.js與C++ AES算法互通

(點擊上方公衆號,可快速關注)近期一個涉及與外部渠道對接的項目,對方是Node.js編寫的後臺服務,我們拿到對方通過AES192算法生成的密文,需要解密驗證。由於我們的服務後臺是C++編寫,在對接過程中遇到了不少問題,所以有了這篇文章。

原创 【Git】怎麼樣纔是好的提交

(點擊上方公衆號,可快速關注)使用git時,不同人對提交(commit)的粒度都有自己的把控,當然這裏面有一些主觀的成分在裏面,但有一些通用的規則是值得借鑑的。下面是我從一本關於git的英文書籍裏看到的,覺得很好很實用,分享給大家。每個

原创 從髒亂差工程得到的一些啓示

(點擊上方公衆號,可快速關注)從事計算機軟件行業,或多或少都經歷過一些難以言表的髒亂差工程,這篇文章說的是這些髒亂差工程的直接表現,以及簡單的原因分析和解決方案。由於這是一個非常大的話題,本篇文章側重於我經歷過的項目,力求篇幅不要太大。

原创 【Asio】創建端點

(點擊上方公衆號,可快速關注)定義在網絡通信中,通信的兩端就是兩個端點(Endpoint)。Asio其中一條設計目標是:儘可能繼承已被證明有效的實踐經驗。伯克利套接字(BSD socket)API 是目前被使用最廣泛的網絡接口,雖然一開

原创 【Python】控制流_比較操作符

(點擊上方公衆號,可快速關注)比較操作符用於比較兩個值,最終求值爲一個布爾值。比較操作符有:操作符含義==等於!=不等於<小於>大於<=小於等於>=大於等於==和!=請注意,==和=符號的區別,前者是比較操作符,用於比較符號兩邊的值是否

原创 Why Asio?

(點擊上方公衆號,可快速關注)Asio系列文章開寫了,希望大家關注。Asio庫大概率會進入C++23標準庫,是時候該學習一下了。長久以來,C++最飽受詬病的一點就是缺少一些實用的庫,比如,網絡庫、文件系統、日期庫等。而網絡庫是我們平時最

原创 【Python】控制流_布爾類型

(點擊上方公衆號,可快速關注)在邏輯學中,命題只有兩個結果:要麼是“真”,要麼是“假”。在計算機編程中,也需要使用到真假的概念,比如下面的流程圖:該流程圖描述了618當天某商品的定價邏輯,使用到了真假值。所以,一般情況下,編程語言都會提

原创 【Python】控制流_控制流是啥

(點擊上方公衆號,可快速關注)所謂“控制流語句”就是控制程序運行流程的一些語句,決定在什麼條件下執行哪些 Python 語句。控制流整體上分爲三類:順序結構這類結構最直觀,我們前面接觸到的程序都是一行一行代碼從頭到尾執行,這是語言默認地

原创 【Python】Python基礎_習題解答

(點擊上方公衆號,可快速關注)變量很像盒子,但跟現實中的盒子又很不一樣。前面我們提到一點:現實中的盒子可以放很多東西,而變量只能放一個值。再類比下,現實中的盒子,飯盒用來裝飯,鞋盒用來放鞋,一般情況下不會混用。在Python中,一個變量

原创 【Python】Python基礎_第一個程序

(點擊上方公衆號,可快速關注)創建程序的步驟程序是語句的集合,即使最簡單的一個print語句也是程序。程序通常以文件的形式保存在計算機上,下面說明使用IDLE創建程序的步驟:打開IDLE,選擇File->New File,創建新文件:當

原创 【Python】Python基礎_類型轉換很必要

(點擊上方公衆號,可快速關注)爲什麼需要類型轉換一句話:當前的數據類型並不支持你需要的操作。比如,當我們要計算兩個整數的和的時候,但我們接收到的數據是字符串類型,我們沒法進行加法操作,因爲:+對於字符串是連接操作,會得到非預期的結果,如

原创 【Python】Python基礎_IO操作很簡單

(點擊上方公衆號,可快速關注)背景介紹我們平常接觸到的程序運行都直接或間接地取決於用戶地輸入內容,並通過某種方式將結果呈現(輸出)給用戶。這就是編程所說的IO(Input/Output)的含義。在Python中,IO操作是通過一些IO函

原创 【Python】Python基礎_變量就像盒子

(點擊上方公衆號,可快速關注)變量定義在前面的內容中,接觸到了很多值,比如1、1.0、'abc'等,這些值是固定的,它的值是正如其字面所表達的,在計算機科學中稱爲字面量(literal)。但在編程中,經常要表達一種變化的值,比如,當前的