主頁 >  其他 > 【阿里巴巴Java開發手冊1.7.0(嵩山版)】編程規約&MySQL 資料庫規約

【阿里巴巴Java開發手冊1.7.0(嵩山版)】編程規約&MySQL 資料庫規約

2022-04-22 07:47:58 其他

阿里巴巴Java開發手冊1.7.0(嵩山版)


一、編程規約

(一)命名風格

  1. 所有命名不得以下劃線和$開始和結束,

  2. 所有命名不得以拼音或拼音英文混合,

  3. 類名使用UpperCamelCase風格,

  4. 方法名、引數名、成員變數、區域變數都統一使用lowerCamelCase風格,

  5. 常量命名全部大寫,單詞間用下劃線隔開,力求語意表達完整清楚,不要嫌名字長,

  6. 抽象類命名使用 Abstract 或 Base 開頭;例外類命名使用 Exception 結尾;

    測驗類命名以它要測驗的類的名稱開始,以 Test 結尾,

  7. 型別與中括號緊挨相連來表示陣列,(定義整形陣列 int[] arrayDemo,)

  8. 包名統一使用小寫,點分隔符之間有且僅有一個自然語意的英語單詞,包名統一使用
    單數形式
    ,但是類名如果有復數含義,類名可以使用復數形式

  9. 杜絕完全不規范的縮寫,避免望文不知義,(AbstractClass“縮寫”成 AbsClass;condition“縮寫”成 condi;Function 縮寫”成 Fu)

  10. 在常量與變數的命名時,表示型別的名詞放在詞尾,以提升辨識度,(動+名詞)

  11. Service/DAO 層方法命名規約
    1) 獲取單個物件的方法用 get 做前綴,
    2) 獲取多個物件的方法用 list 做前綴,復數結尾,如:listObjects,
    3) 獲取統計值的方法用 count 做前綴,
    4) 插入的方法用 save/insert 做前綴,推薦save,
    5) 洗掉的方法用 remove/delete 做前綴,推薦remove,
    6) 修改的方法用 update 做前綴,

(二)常量定義

  1. 不允許出現魔法值(未經過預先定義的值)直接出現在代碼中,String key = "Id#taobao_" + tradeId;,其中的字串就是魔法值,
  2. 在 long 或者 Long 賦值時,數值后使用大寫字母 L,不能是小寫字母 l,

(三)代碼格式

  1. 大括號,單行放一起 { },多行:

    1) 左大括號前不換行,
    2) 左大括號后換行,
    3) 右大括號前換行,
    4) 右大括號后還有 else 等代碼則不換行;表示終止的右大括號后必須換行,

  2. if/for/while/switch/do 等保留字與括號之間都必須加空格,

  3. 任何二目、三目運算子的左右兩邊都需要加一個空格,包括賦值運算子=、邏輯運算子&&、加減乘除符號等,

  4. 采用 4 個空格縮進,

  5. 注釋的雙斜線與注釋內容之間有且僅有一個空格,

  6. 單行字符數限制不超過 120 個,超出需要換行,換行時遵循如下原則:
    1)第二行相對第一行縮進 4 個空格,從第三行開始,不再繼續縮進,參考示例,
    2)運算子與下文一起換行,
    3)方法呼叫的點符號與下文一起換行,
    4)方法呼叫中的多個引數需要換行時,在逗號后進行,
    5)在括號前不要換行,

  7. 方法引數在定義和傳入時,多個引數逗號后面必須加空格,

    下例中實參的 args1,后邊必須要有一個空格,
    method(args1, args2, args3);

  8. IDE 的 text file encoding 設定為 UTF-8; IDE 中檔案的換行符使用 Unix 格式,不要
    使用 Windows 格式,

  9. 不同邏輯、不同語意、不同業務的代碼之間插入一個空行分隔開來以提升可讀性,

(四)OOP規約

  1. Object 的 equals 方法容易拋空指標例外,應使用常量或確定有值的物件來呼叫 equals ,

    正例:"test".equals(object);
    反例:object.equals("test");
    說明:推薦使用 JDK7 引入的工具類 java.util.Objects#equals(Object a, Object b)

  2. 所有整型包裝類物件之間值的比較,全部使用 equals 方法比較,

  3. 任何貨幣金額,均以最小貨幣單位且整型型別來進行存盤,

  4. 浮點數之間的等值判斷,基本資料型別不能用==來比較,包裝資料型別不能用 equals來判斷,

    1. 如上所示 BigDecimal 的等值比較應使用 compareTo()方法,而不是 equals()方法,

      equals()方法會比較值和精度 (1.0 與 1.00 回傳結果為 false) ,而 compareTo()則會忽略精度,

    2. 定義資料物件 DO 類時,屬性型別要與資料庫欄位型別相匹配,

    3. 禁止使用構造方法 BigDecimal(double) 的方式把 double 值轉化為 BigDecimal 物件,

      說明:BigDecimal(double)存在精度損失風險,在精確計算或值比較的場景中可能會導致業務邏輯例外,
      如:BigDecimal g = new BigDecimal(0.1F); 實際的存盤值為:0.10000000149
      正例:優先推薦入參為 String 的構造方法,或使用 BigDecimal 的 valueOf 方法,此方法內部其實執行了
      Double 的 toString,而 Double 的 toString 按 double 的實際能表達的精度對尾數進行了截斷,
      BigDecimal recommend1 = new BigDecimal("0.1"); // String
      BigDecimal recommend2 = BigDecimal.valueOf(0.1); // valueOf(double)

    4. 關于基本資料型別與包裝資料型別的使用標準如下:

      1) 【強制】所有的 POJO 類屬性必須使用包裝資料型別,
      2) 【強制】RPC 方法的回傳值和引數必須使用包裝資料型別,
      3) 【推薦】所有的區域變數使用基本資料型別,
      說明:POJO 類屬性沒有初值是提醒使用者在需要使用時,必須自己顯式地進行賦值,任何 NPE (NullPointerException,空指標例外)問題,或者入庫檢查,都由使用者來保證,
      正例:資料庫的查詢結果可能是 null,因為自動拆箱,用基本資料型別接收有 NPE 風險,
      反例:某業務的交易報表上顯示成交總額漲跌情況,即正負 x%,x 為基本資料型別,呼叫的 RPC(Remote Procedure Call) 服務,呼叫不成功時,回傳的是默認值,頁面顯示為 0%,這是不合理的,應該顯示成中劃線-,所以包裝資料型別
      的 null 值,能夠表示額外的資訊,如:遠程呼叫失敗,例外退出,

      package java_wrapper;
      
      public class Cat {
          String name;
          int month;
          double weight;
      }
      package java_wrapper;
      
      public class CatTest {
          public static void main(String[] args) {
              Cat one = new Cat();
              System.out.println("小貓的昵稱:"+one.name);
              System.out.println("小貓的年齡:"+one.month);
              System.out.println("小貓的體重:"+one.weight);
          }
      }
      小貓的昵稱:null
      小貓的年齡:0
      小貓的體重:0.0
      
      
      package java_wrapper;
      
      public class Cat {
          String name;
          Integer month;
          Integer weight;
      }
      
      小貓的昵稱:null
      小貓的年齡:null
      小貓的體重:null
      
      
    基本型別 包裝器型別
    boolean Boolean
    char Character
    int Integer
    byte Byte
    short Short
    long Long
    float Float
    double Double
    1. POJO 類必須寫 toString 方法,使用 IDE 中的工具:source> generate toString時,如果繼承了另一個 POJO 類,注意在前面加一下 super.toString,
      說明:在方法執行拋出例外時,可以直接呼叫 POJO 的 toString()方法列印其屬性值,便于排查問題,

    2. 禁止在 POJO 類中,同時存在對應屬性 xxx 的 isXxx()和 getXxx()方法,框架在呼叫屬性 xxx 的提取方法時,并不能確定哪個方法一定是被優先呼叫到的,

    3. 類內方法定義的順序依次是:公有方法或保護方法 > 私有方法 > getter / setter方法,

    4. 回圈體內,字串的連接方式,使用 StringBuilder 的 append 方法進行擴展,

      說明:下例中,反編譯出的位元組碼檔案顯示每次回圈都會 new 出一個 StringBuilder 物件,然后進行 append
      操作,最后通過 toString 方法回傳 String 物件,造成記憶體資源浪費,
      反例:
      String str = "start";
      for (int i = 0; i < 100; i++) {
      str = str + "hello";
      }

    public class DemoStringBuilder2 {
        public static void main(String[] args) {
            StringBuilder bu=new StringBuilder();
            //append方法回傳的是this,呼叫方法的物件bu,this==bu
            bu.append("abc");
            System.out.println(bu);  //abc
    
            bu.append("abc");
            bu.append("2");
            bu.append("true");
            bu.append("哈嘍");
            bu.append("8.8");
            bu.append("abc");
            System.out.println(bu);  //abc2true哈嘍8.8abc
    
    
            //鏈式編程:方法回傳值是一個物件,可以繼續呼叫方法
            System.out.println("abc".toUpperCase().toLowerCase().toLowerCase());
            bu.append("abc").append(1).append("你好").append(789);
            System.out.println(bu);
    		String myStr = bu.toString();	// 回傳String物件
        }
    }
    

(五)日期時間

  1. 【強制】日期格式化時,傳入 pattern 中表示年份統一使用小寫的 y,

    說明:日期格式化時,yyyy 表示當天所在的年,而大寫的 YYYY 代表是 week in which year(JDK7 之后
    引入的概念),意思是當天所在的周屬于的年份,一周從周日開始,周六結束,只要本周跨年,回傳的 YYYY
    就是下一年,

    正例:表示日期和時間的格式如下所示:
    new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

    推薦使用java.util.Date;

    import java.util.Date;
    public class SimpleDateFormatDemo {
        public static void main(String[] args) {
            Date currentTime = new Date();
            System.out.println(currentTime); // 輸出:Mon Feb 18 10:24:30 CST 2019
        }
    }
    

    使用format()方法將日期轉換為字串

    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class SimpleDateFormatDemo {
        public static void main(String[] args) {
            Date currentTime = new Date();
            System.out.println(currentTime);    // Mon Feb 18 13:53:50 CST 2019
            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
            SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy/MM/dd");
            System.out.println(simpleDateFormat1.format(currentTime));  // 輸出2019-02-18 13:53:50.629
            System.out.println(simpleDateFormat2.format(currentTime));  // 輸出2019-02-18
            System.out.println(simpleDateFormat3.format(currentTime));  // 輸出2019/02/18
        }
    }
    

    使用parse()方法將字串轉換為日期

    SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    String strDate1 = "2019-02-18 13:58";
    Date date1 = simpleDateFormat1.parse(strDate1);
    System.out.println(date1);	// 輸出 Mon Feb 18 13:53:50 CST 2019
    
  2. 【強制】在日期格式中分清楚大寫的 M 和小寫的 m,大寫的 H 和小寫的 h 分別指代的意義,

    1) 表示月份是大寫的 M;
    2) 表示分鐘則是小寫的 m;
    3) 24 小時制的是大寫的 H;
    4) 12 小時制的則是小寫的 h,

  3. **【強制】獲取當前毫秒數:System.currentTimeMillis(); **

(六)集合處理

  1. 【強制】判斷所有集合內部的元素是否為空,使用 isEmpty()方法,而不是 size(),

    正例:

    正例:
    Map<String, Object> map = new HashMap<>(16);
    	if(map.isEmpty()) {
    		System.out.println("no element in this map.");
    }
    

(七)控制陳述句

  1. 【強制】當 switch 括號內的變數型別為 String 并且此變數為外部引數時,必須先進行 null判斷,switch陳述句必須包含default,

    1. 三目運算子 condition? 運算式 1 : 運算式 2 中,高度注意運算式 1 和 2 在型別對齊時,

      可能拋出因自動拆箱導致的 NPE 例外,

(八)注釋規約

  1. 【強制】所有的抽象方法 ( 包括介面中的方法 ) 必須要用 Javadoc 注釋、除了回傳值、引數、例外說明外,還必須指出該方法做什么事情,實作什么功能,對子類的實作要求,或者呼叫注意事項,請一并說明,
  2. 【強制】所有的類都必須添加創建者和創建日期,
  3. 【強制】方法內部單行注釋,在被注釋陳述句上方另起一行,使用//注釋,方法內部多行注釋使用/* */注釋,注意與代碼對齊,
  4. 【參考】謹慎注釋掉代碼,在上方詳細說明,而不是簡單地注釋掉,如果無用,則洗掉,

二、MySQL 資料庫

(一) 建表規約

  1. 【強制】表達是與否概念的欄位,必須使用 is_xxx 的方式命名,資料型別是 unsigned tinyint
    (1 表示是,0 表示否),

    unsigned是指的無符號,就是沒有負數,只能用正數和0,此時unsigned修飾的欄位的值可以達到的最大值是原來的最大值加1,即原來一個tinyint欄位能表示的范圍是:-128 ~ 127,而unsigned修飾的欄位范圍是 0 ~ 255.

    資料型別 默認范圍 unsigned范圍
    tinyint -2^7 ~ 2^7-1 0 ~ 2^8-1
  2. 【強制】表名、欄位名必須使用小寫字母或數字 , 禁止出現數字開頭,禁止兩個下劃線中間只
    出現數字,資料庫欄位名的修改代價很大,因為無法進行預發布,所以欄位名稱需要慎重考慮,
    說明:MySQL 在 Windows 下不區分大小寫,但在 Linux 下默認是區分大小寫,因此,資料庫名、表名、
    欄位名,都不允許出現任何大寫字母,避免節外生枝,

  3. 表名不使用復數名詞,

  4. 禁用保留字,如 desc、range、match、delayed 等,

  5. 【強制】主鍵索引名為 pk_ 欄位名;唯一索引名為 uk 欄位名 ; 普通索引名則為 idx 欄位名,
    說明:pk
    即 primary key;uk
    即 unique key;idx_ 即 index 的簡稱,

  6. 【強制】小數型別為 decimal,禁止使用 float 和 double,

    說明:在存盤的時候,float 和 double 都存在精度損失的問題,很可能在比較值的時候,得到不正確的
    結果,如果存盤的資料范圍超過 decimal 的范圍,建議將資料拆成整數和小數并分開存盤,

  7. 【強制】如果存盤的字串長度幾乎相等,使用 char 定長字串型別,

  8. 【強制】 varchar 是可變長字串,不預先分配存盤空間,長度不要超過 5000,如果存盤長度
    大于此值,定義欄位型別為 text
    獨立出來一張表,用主鍵來對應,避免影響其它欄位索引效
    率,

  9. 【強制】表必備三欄位:id, create_time, update_time,

    說明:其中 id 必為主鍵,型別為 bigint unsigned、單表時自增、步長為 1,create_time, update_time
    的型別均為 datetime 型別,前者現在時表示主動式創建,后者過去分詞表示被動式更新,

  10. 【推薦】表的命名最好是遵循“業務名稱_表的作用”,正例:alipay_task / force_project / trade_config

(二)SQL陳述句

  1. 【強制】不要使用 count(列名)或 count(常量)來替代 count(*),count(*)是 SQL92 定義的標
    準統計行數的語法,跟資料庫無關,跟 NULL 和非 NULL 無關,

    說明:count(*)會統計值為 NULL 的行,而 count(列名)不會統計此列為 NULL 值的行,

  2. 【強制】當某一列的值全是 NULL 時,count(col)的回傳結果為 0,但 sum(col)的回傳結果為
    NULL
    ,因此使用 sum()時需注意 NPE 問題,

    正例:可以使用如下方式來避免 sum 的 NPE 問題:SELECT IFNULL(SUM(column), 0) FROM table;

  3. 【強制】使用 ISNULL() 來判斷是否為 NULL 值,

  4. 【強制】對于資料庫中表記錄的查詢和變更,只要涉及多個表,都需要在列名前加表的別名(或表名)進行限定,SQL 陳述句中表的別名前加 as,

本文來自博客園,作者:靠譜楊,轉載請注明原文鏈接:https://www.cnblogs.com/rainbow-1/p/16175872.html

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/460797.html

標籤:其他

上一篇:索引有什么分類?

下一篇:EDI到XML大檔案轉換

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more