原创 【操作系統】Unix的哲學

Douglas McIlroy是Unix系統上管道機制的發明者,也是Unix文化的締造者之一。他歸納的Unix哲學如下: 程序應該只關注一個目標,並儘可能把它做好。讓程序能夠互相協同工作。應該讓程序處理文本數據流,因爲這是一個通用的接口

原创 安卓開發知識整理

最近做項目的android打包,把遺忘的android再整理一下。 環境 SDK,NDK 設置,路徑中不能存在空格符,android 運行模板項目的時候,會自動下載更新。 Gradle 設置 界面:四大組件、佈局、UI組件、自定義view

原创 軟件測試:黑盒測試、白盒測試和灰盒測試

1. 黑盒測試和白盒測試的直觀圖   從圖中可以直接看出來,黑盒測試就當整個程序是個黑盒子,我們看不到它裏面做了些什麼事情,只能通過輸入輸出看是否能得到我們所需的來測試。而白盒測試可以當盒子是透明的,裏面的一切我們都看的清楚,從而我們可

原创 【程序設計】PHP面向對象七大設計原則與總結

軟件開發爲什麼需要面向對象設計? 軟件開發設計就難的是應對變化、變化、變化。通過把系統功能封裝成一個個對象,就可以粒度細化、功能實現的耦合度低和職責獨立,細化了就能夠更好的把控;耦合度低就是高內聚、松耦合,能夠減少功能實現之間的關聯,降低

原创 【編程語言】靜態語言與動態語言的本質區別以及其應用場景

 從宏觀的語言層面來說,編程語言類型共分爲兩大類:靜態語言(又叫強類型語言)與動態語言(又叫弱類型語言)。靜態語言通常是低級(底層)語言,動態語言一般爲高級(應用)語言,靜態語言運用通常是通過編譯器,而動態語言解釋器。  動態語言 動態語

原创 淺談MySQL索引優化分析

爲什麼你寫的sql查詢慢?爲什麼你建的索引常失效?通過本章內容,你將學會MySQL性能下降的原因,索引的簡介,索引創建的原則,explain命令的使用,以及explain輸出字段的意義。助你瞭解索引,分析索引,使用索引,從而寫出更高性能的

原创 寫在2019年的最後一天,有感而發

又到一年的年底了,回首看自己匆忙度過的這幾年,幾乎所有時間都在工作、在公司、在客戶那,不僅感慨自己的職業生涯,太悲催了,做的技術太容易被利用,這幾年光幫別人掙的盆滿鉢滿,自己還是苦的一筆,窮的要死。多少時間都在反思自己,我都在想爲什麼會這

原创 互聯網架構設計:高性能的後端

對於互聯網產品的高性能架構設計通常包括以下幾個大方面: 1)Web瀏覽器高性能設計 2)App客戶端高性能設計 3)高性能的網絡和硬件 4)後臺服務高性能設計   後端服務一般指用戶直接看到的遠程服務,涉及到網絡硬件、邏輯計算、通信協議和

原创 【商城】商城購物車下單庫存設計

購物車下單不是一個簡單的添加商品然後下單的功能,這背後涉及的內容非常複雜複雜,它與會員系統、商品系統、庫存系統、訂單系統等緊密結合,設計購物車下單功能時要考慮到與其他系統產生的關聯關係,尤其是訂單系統、庫存系統。在電子商務系統中,訂單處理

原创 MySQL中的Information_schema

在MySQL中可以把 information_schema 看作是一個數據庫,確切說是信息數據庫。其中保存着關於MySQL服務器所維護的所有其他數據庫的信息。如數據庫名,數據庫的表,表欄的數據類型與訪問權限等。在INFORMATION_S

原创 【php調試系列】debug_print_backtrace()可回溯調用過程,哪個類調了哪個類,一目瞭然

<?php class a{ function __construct($a=[]) {     (new b())->t(); } }   class b{     function t() {            print_r

原创 php多線程解決方案

我們在做項目的時候,有些需求,特別是數據的響應處理需要花費大量的時間,由於php是一個短生命週期的腳本語言,到了默認的30秒,php的數據處理還沒完成,php的生命週期就結束了。這時需要使用異步併發處理策略,也就是說,一次php調用可以發

原创 【php調試系列】debug_backtrace可追蹤調用者名稱,那個類/函數調用了當前類/函數

class a{ function __construct() {  echo 'aa';   t(); } }       function t() {         $backtrace = debug_backtrace();