JavaWeb 命名規則

命名規范
命名規范命名規范
命名規范


本規范主要針對java開發制定的規范項目命名
項目命名項目命名
項目命名


?項目創建,名稱所有字母均小寫,組合方式為:
com.company.projectName.component.hiberarchy。
1. projectName:項目名稱
2. component:模塊名稱
3. hiberarchy:開發層次名稱
例如:
com.company.tims.exchange.dao 類文件夾命名


------------------------------------------
類命名規范

基本命名規范:
類命名
命名規范:以大寫字母開頭,如果有多個單詞,每個單詞頭字母大寫
例如:UserInfo

接口命名
命名規范:以大寫字母"I"開頭,如果有多個單詞,每個單詞頭字母大寫
例如:IStudentInfo

接口實現類命名:
命名規范:將實現的接口名稱的首字母"I"去掉,以"Impl作為結尾",如果有多個單詞,每個單

詞頭字母大寫。
例如:StudentInfoImpl


------------------------------------------
J2EE+SSH框架命名規范

servlet類命名:
命名規范:以Servlet單詞結尾
例如:LoginServlet

POJO命名:
使用hibernate自動生成的類即可

DAO類命名:
使用hibernate自動生成的類即可

Action類命名:
命名規范:Action的命名以POJO名稱來制定,POJO名稱Action
例如:
一個POJO名稱為Diary,其對應的action為DiaryAction

ActionForm類命名:
命名規范:ActionForm的命名以POJO名稱來制定,POJO名稱Form
例如:
一個POJO名稱為Diary,其對應的actioForm為DiaryForm

業務邏輯接口命名:
命名規范:業務邏輯接口的命名以POJO名稱來制定,IPOJO名稱Service
例如:
一個POJO名稱為Diary,其對應的業務邏輯接口為IDiaryService

業務邏輯實現類命名:
命名規范:業務邏輯接口實現類的命名以POJO名稱來制定
例如:
一個POJO名稱為Diary,對應的業務邏輯接口實現類名為DiaryServiceImpl


------------------------------------------------

類變量命名:
命名規范:變量名首字母必須小寫,如果該變量名有多個單詞組成,后面的單 詞首字母大寫,

單詞與單詞之間不要使用"_"做連接,變量名訪問控制必須為私有, 可以對其增加setter與

getter方法。
例如:
private int studentAge;
public int getStudentAge(){
return studentAge;
}
public void setStudentAge(int studentAge) {
this.studentAge=studentAge;
}

常量命名:
命名規范:所有字母大寫,如果有多個單詞組成,單詞與單詞之間以” _“隔開。而且該變量

必須是公共、靜態、final類型
例如:public static final String USER_NAME=”userName“;

方法命名:
命名規范:首字母必須小寫,如果該變量名有多個單詞組成,后面的單詞首字母 大寫,單詞與

單詞之間不要使用"_"做連接。單詞不要使用名詞。
例如:public int checkLogin(String name,String pwd){}

--------------------------------------------------------
注釋規范:注釋規范是整個開發規范中最為重要的組成部分,必須嚴格執行。
類的注釋:
作用:注釋整個類,簡單概述該類作用。
書寫規范:類的注釋必須寫在該類的聲明語法之前。在注釋中要描述該類的基 本作用,作者,

日期,版本,公司名稱,版權聲明。
格式:
/* *?
* 類功能描述:(大致描述類的功能)?
* @author:編寫者名稱
*?
* @version: 類文件的版本號 從1.0開始(自己確定版本號的增改?
* 情況), 修改情況(修改時間、作者、改動情況)
*
* @see 包名.參考類名 (列出父類,引入類,每個類占一行),如果有
* 可省略?
* 相關數據如:(便于理解本類的一些常量數據及某些數據的格式?
* 或認為比較重要的數據,如果沒有可省略)?
*/?
類的聲明語法

例如:
/**
* <p>Title:管理員模塊數據處理類 </p>
* <p>Description: 兩個數相加</p>
* <p>Copyright: Copyright (c) 2007</p>
* <p>Company:華騰軟件公司</p>
*?
* @author 童金虎
*?
* @version $Revision: 1.7 $ $Date: 2007/07/08$?
*/
public class AdminDAO
?
變量、常量注釋:
作用:簡單描述該變量的意義。
書寫規范:變量注釋必須寫在變量定義之前,簡單描述其代表的意義。
格式:
/**?
* 變量功能描述:(大致描述變量的功能)
*/

例如:

/**
*定義年齡變量
*/
public int age;
方法注釋:
作用:對該方法功能簡單描述,其參數、返回值意義的注解。
書寫規范:方法注釋必須寫在方法定義之前。該注釋包括:方法其功能的簡單 描述,方法的參

數、返回值類型、返回值意義簡單的描述。
格式:
/**?
* 方法功能說明?
* @param args (參數類型可以寫在參數后,也可以省?
* 略。每個參數占一行)?
* @return 輸出參數(多種情況寫在同一行)?
* @see 類#參考方法 (與此方法有調用關系的方法供參?
* 考,不必每個方法都完整列出,要選擇有意義的,每個?
* 方法占一行)?
* @exception 異常處理類(方法中能夠引發的異常,每?
* 個異常占一行)?
*/

例如:
/**
* 修改管理員密碼
* @param adminId 管理員編號
* @param oldPassword 舊密碼
* @param password 新密碼
* @return boolean 是否編輯成功
* @throws UserException
* @throws ServiceException
*/
public booleaneditAdminPassword(int adminId,String oldPassword,
String password) throws UserException,ServiceException;


-----------------------------------------------------------
Jsp頁面命名:
命名規范:jsp頁面名稱要以小寫字母開頭,如果有多個單詞組成,后面的單詞以 大寫字母開

頭。名稱要體現出該頁面的意義,最好能夠與模塊名稱聯系在一起。
例如:
login.jsp --登錄頁面
register.jsp --注冊頁面
message.jsp --客戶留言頁面

------------------------------------------------------------
J2EE項目工程文件夾組織規范:
目的:規范學員web應用程序的資源組織形式,形成良好的文件組織習慣。文件的組織形式應當

體現模塊的劃分。
根據eclipse工具的特征,項目的目錄結構為:
src
----存放java文件

Java代碼??收藏代碼
  1. WebRoot??
  2. |--images?--存放web程序所需的公共圖片??
  3. |--css?--存放web程序所需的公共樣式表??
  4. |--js?--存放web程序所需的公共js文件??
  5. |--commons?--存放web程序所需的公共文件??
  6. |--功能模塊文件夾(存放與某個功能模塊相關的資源)??
  7. ???|--images?--存放與該功能模塊相關的圖片??
  8. ???|--css?--存放與該模塊相關的樣式表文件??
  9. ???|--js?--存放與該模塊相關的js文件??
  10. |--jsp、html頁面??
  11. |--WEB-INF??
  12. ???|--classes??
  13. ???|--lib??
  14. ???|--tld文件??

?---------------------------------------------------------------
J2EE項目提交規范
項目完成時要將項目作為一個產品交付用戶,良好的項目組織規范可以使用戶可以方便的找尋

項目中需要的資源,同時也是一個公司專業性的體現。項目提交時,要按照下列文件格式進行

提交。
項目主文件夾:
作用:存放項目其他資源文件。
命名規范:時間_班級編號_第X小組。
例如:070706_GS2T18_第四小組。
項目主文件夾下面包括以下文件夾和文件:
|--src:保存.java文件。
|--database:保存數據庫的腳本文件或者數據庫備份文件。
|--source:保存eclipse工程中WebRoot目錄下的所有文件。
|--depend:保存編譯該程序必須依賴的其他jar文件。
|--javadoc:保存所有類生成的javadoc api文檔。
|--war:保存程序的歸檔文件
|--xx.war:已經打包好的工程文件,可以直接運行。
|--project:保存開發項目原工程代碼及文件。
|--產品說明書.doc:圖文方式展現該產品使用方法。
|--build.xml:ant腳本,用于生成運行的war文件。
|--項目解說.ppt:進行項目講解的ppt(ppt僅供在校模擬項目使用,不用于其他商業用途)
注:一個完整的項目中,數據庫必須有一定量的有效的測試數據來支持該程序的運行

------------------------------------------------------
包的命名 
Java包的名字都是由小寫單詞組成。但是由于Java面向對象編程的特性,每一名Java程序員都

可以編寫屬于自己的Java包,為了保障每個 Java包命名的唯一性,在最新的Java編程規范中,

要求程序員在自己定義的包的名稱之前加上唯一的前綴。由于互聯網上的域名稱是不會重復的

,所以程序員一般采用自己在互聯網上的域名稱作為自己程序包的唯一前綴。?
例如: net.frontfree.javagroup

類的命名
類的名字必須由大寫字母開頭而單詞中的其他字母均為小寫;如果類名稱由多個單詞組成,則

每個單詞的首字母均應為大寫例如TestPage;如果類名稱中包含單詞縮寫,則這個所寫詞的每

個字母均應大寫,如:XMLExample,還有一點命名技巧就是由于類是設計用來代表對象的,所以

在命名類時應盡量選擇名詞。   ?
例如: Circle

方法的命名
方法的名字的第一個單詞應以小寫字母作為開頭,后面的單詞則用大寫字母開頭。?
例如: sendMessge

常量的命名
常量的名字應該都使用大寫字母,并且指出該常量完整含義。如果一個常量名稱由多個單詞組

成,則應該用下劃線來分割這些單詞。?
例如: MAX_VALUE

參數的命名
參數的命名規范和方法的命名規范相同,而且為了避免閱讀程序時造成迷惑,請在盡量保證參

數名稱為一個單詞的情況下使參數的命名盡可能明確。

Javadoc注釋
Java除了可以采用我們常見的注釋方式之外,Java語言規范還定義了一種特殊的注釋,也就是

我們所說的Javadoc注釋,它是用來記錄我們代碼中的API的。Javadoc注釋是一種多行注釋,以

/**開頭,而以*/結束,注釋可以包含一些HTML標記符和專門的關鍵詞。使用Javadoc 注釋的好

處是編寫的注釋可以被自動轉為在線文檔,省去了單獨編寫程序文檔的麻煩。?
例如:
/**?
* This is an example of?
* Javadoc?
*?
* @author darchon?
* @version 0.1, 10/11/2002?
*/
在每個程序的最開始部分,一般都用Javadoc注釋對程序的總體描述以及版權信息,之后在主程

序中可以為每個類、接口、方法、字段添加 Javadoc注釋,每個注釋的開頭部分先用一句話概

括該類、接口、方法、字段所完成的功能,這句話應單獨占據一行以突出其概括作用,在這句

話后面可以跟隨更加詳細的描述段落。在描述性段落之后還可以跟隨一些以Javadoc注釋標簽開

頭的特殊段落,例如上面例子中的@auther和@version,這些段落將在生成文檔中以特定方式顯

示。

變量和常量命名
變量命名的方法采用匈牙利命名法,基本結構為scope_typeVariableName,它使用3字符前綴來

表示數據類型,3個字符的前綴必須小寫,前綴后面是由表意性強的一個單詞或多個單詞組成的

名字,而且每個單詞的首寫字母大寫,其它字母小寫,這樣保證了對變量名能夠進行正確的斷

句。例如,定義一個整形變量,用來記錄文檔數量:intDocCount,其中int表明數據類型,后

面為表意的英文名,每個單詞首字母大寫。這樣,在一個變量名就可以反映出變量類型和變量

所存儲的值的意義兩方面內容,這使得代碼語句可讀性強、更加容易理解。byte、int、char、

long、float、 double、boolean和short。
變量類型和首字母對照關系如下表:
數據類型/對象類型 / 變量前綴 / 備注
byte bye?
char chr?
float flt?
boolean bln 做布爾變量時,使用bln?
Integer/int int?
String str?
Single sng?
short sht?
Long/long lng?
Double/double dbl?
Currency cur?
Variant bln astr obj vnt 做布爾變量用時,用bln,做字符串數組用時,用astr,做為對象

使用時,用obj,不確定時,用vnt。
對于數組,在數據類型的前綴前再增加一個a,例如字符串數組為astr。對于在多個函數內都要

使用的全局變量,在前面再增加“g_”。例如一個全局的字符串變量:g_strUserInfo。

在變量命名時要注意以下幾點:
· 選擇有意義的名字,注意每個單詞首字母要大寫。

· 在一段函數中不使用同一個變量表示前后意義不同的兩個數值。

· i、j、k等只作為小型循環的循環索引變量。
· 避免用Flag來命名狀態變量。
· 用Is來命名邏輯變量,如:blnFileIsFound。通過這種給布爾變量肯定形式的命名方式,使

得其它開發人員能夠更為清楚的理解布爾變量所代表的意義。
· 如果需要的話,在變量最后附加計算限定詞,如:curSalesSum。
· 命名不相包含,curSales和curSalesSum。
· Static Final 變量的名字應該都大寫,并且指出完整含義。
· 如果需要對變量名進行縮寫時,一定要注意整個代碼中縮寫規則的一致性。例如,如果在代

碼的某些區域中使用intCnt,而在另一些區域中又使用intCount,就會給代碼增加不必要的復

雜性。建議變量名中盡量不要出現縮寫。
· 通過在結尾處放置一個量詞,就可創建更加統一的變量,它們更容易理解,也更容易搜索。

例如,請使用 strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和

strLastCustomer。常用的量詞后綴有:First(一組變量中的第一個)、Last(一組變量中的

最后一個)、Next(一組變量中的下一個變量)、Prev(一組變量中的上一個)、Cur(一組變

量中的當前變量)。
· 為每個變量選擇最佳的數據類型,這樣即能減少對內存的需求量,加快代碼的執行速度,又

會降低出錯的可能性。用于變量的數據類型可能會影響該變量進行計算所產生的結果。在這種

情況下,編譯器不會產生運行期錯誤,它只是迫使該值符合數據類型的要求。這類問題極難查

找。
· 盡量縮小變量的作用域。如果變量的作用域大于它應有的范圍,變量可繼續存在,并且在不

再需要該變量后的很長時間內仍然占用資源。它們的主要問題是,任何類中的任何方法都能對

它們進行修改,并且很難跟蹤究竟是何處進行修改的。占用資源是作用域涉及的一個重要問題

。對變量來說,盡量縮小作用域將會對應用程序的可靠性產生巨大的影響。
關于常量的命名方法,在JAVA代碼中,無論什么時候,均提倡應用常量取代數字、固定字符串

。也就是說,程序中除0,1以外,盡量不應該出現其他數字。常量可以集中在程序開始部分定

義或者更寬的作用域內,名字應該都使用大寫字母,并且指出該常量完整含義。如果一個常量

名稱由多個單詞組成,則應該用下劃線“_”來分割這些單詞如:NUM_DAYS_IN_WEEK、

MAX_VALUE。

?

source代碼模塊 config配置文件模塊 test 測試模塊包命名
包命名包命名
包命名


規則o 全部小寫。o 標識符用點號分隔開來。為了使包的名字更易讀。如
com.leadal.shanty
?常用幾個包名o dao:數據層o service:邏輯層o model:持久類定義包 實現Serializable接

口,創建serialVersionUID 主鍵統一用id標識,Long類型o web:表示層及控制層o enums:枚

舉類型o config:配置文件類包o resource:資源文件包類文件命名
類文件命名類文件命名
類文件命名?
?

盡量以英文進行類定義 所有類都以大寫字母開頭 組合詞每個詞以大寫字母開頭,不用下劃線

或其他符號 避免使用單詞的縮寫,除非它的縮寫已經廣為人知,如HTTP變量命名
變量命名變量命名
變量命名?
?

第一個字母小寫,中間單詞的第一個字母大寫 不用_或&作為第一個字母。 盡量使用短而且具

有意義的單詞 單字符的變量名一般只用于生命期非常短暫的變量。i,j,k,m,n一般用于
integers;c,d,e一般用于characters
?如果變量是集合,則變量名應用復數。
String myName;
?
int[] students;
?
int i;
?
int n;
?
char c;
?
?
btNew;
?
(bt是Button的縮寫)
?
?常量命名
常量命名常量命名
常量命名?
?

所有常量名均全部大寫,單詞間以‘_’隔開
int MAX_NUM; 方法命名規則
方法命名規則方法命名規則
方法命名規則


規則o 第一個單詞一般是動詞。o 第一個字母是小些,但是中間單詞的第一個字母是大寫。o

如果方法返回一個成員變量的值,方法名一般為get+成員變量名,
如若返回的值是bool變量,一般以is作為前綴。o
?如果方法修改一個成員變量的值,方法名一般為:set + 成員變量
名。
?常用動詞o 獲取單個對象 loado 獲取列表 find listo 獲取分頁 pageo 搜索

searcho 保存 saveo 添加 add inserto 刪除 delete removeo 修改 updateDAO
DAODAO
DAO命名規則
命名規則命名規則
命名規則


接口類命名以DAO結尾 實現類類命名以DAOImpl結尾 結構參考如下: dao.dom4j

UserDAOImpl.hibernate.UserDAOImpl.UserDAO Service
ServiceService
Service命名規范
命名規范命名規范
命名規范

接口類命名以Service結尾 實現類類命名以ServiceImpl結尾 結構參考如下: service.impl

.UserServiceImpl.UserService Struts Action?
Struts Action Struts Action?
Struts Action 命名規范
命名規范命名規范
命名規范?
?

類命名與Action結尾 結構參考如下: web.struts.UserAction.GroupAction

轉載于:https://www.cnblogs.com/hualidezhuanshen/p/5468380.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392302.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392302.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392302.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

多元概率密度_利用多元論把握事件概率

多元概率密度Humans have plenty of cognitive strengths, but one area that most of us struggle with is estimating, explaining and preparing for improbable events. This theme underpins two of Nassim Taleb’s major works: Fooled by Randomness and The Black Swa…

nginx php訪問日志配置,nginx php-fpm 輸出php錯誤日志的配置方法

由于nginx僅是一個web服務器&#xff0c;因此nginx的access日志只有對訪問頁面的記錄&#xff0c;不會有php 的 error log信息。nginx把對php的請求發給php-fpm fastcgi進程來處理&#xff0c;默認的php-fpm只會輸出php-fpm的錯誤信息&#xff0c;在php-fpm的errors log里也看不…

阿里的技術愿景_技術技能的另一面:領域知識和長期愿景

阿里的技術愿景by Sihui Huang黃思慧 技術技能的另一面&#xff1a;領域知識和長期愿景 (The other side of technical skill: domain knowledge and long-term vision) When we first start our careers as software engineers, we tend to focus on improving our coding sk…

leetcode 721. 賬戶合并(并查集)

給定一個列表 accounts&#xff0c;每個元素 accounts[i] 是一個字符串列表&#xff0c;其中第一個元素 accounts[i][0] 是 名稱 (name)&#xff0c;其余元素是 emails 表示該賬戶的郵箱地址。 現在&#xff0c;我們想合并這些賬戶。如果兩個賬戶都有一些共同的郵箱地址&#…

es6重點筆記:數值,函數和數組

本篇全是重點&#xff0c;撿常用的懟&#xff0c;數值的擴展比較少&#xff0c;所以和函數放一起&#xff1a; 一&#xff0c;數值 1&#xff0c;Number.EPSILON&#xff1a;用來檢測浮點數的計算&#xff0c;如果誤差小于這個&#xff0c;就無誤 2&#xff0c;Math.trunc()&am…

SMSSMS垃圾郵件檢測器的專業攻擊

Note: The methodology behind the approach discussed in this post stems from a collaborative publication between myself and Irene Anthi.注意&#xff1a; 本文討論的方法背后的方法來自 我本人和 Irene Anthi 之間 的 合作出版物 。 介紹 (INTRODUCTION) Spam SMS te…

php pdo 緩沖,PDO支持數據緩存_PHP教程

/*** 作者&#xff1a;初十* QQ&#xff1a;345610000*/class myPDO extends PDO{public $cache_Dir null; //緩存目錄public $cache_expireTime 7200; //緩存時間&#xff0c;默認兩小時//帶緩存的查詢public function cquery($sql){//緩存存放總目錄if ($this->cache_Di…

mooc課程下載_如何使用十大商學院的免費課程制作MOOC“ MBA”

mooc課程下載by Laurie Pickard通過勞里皮卡德(Laurie Pickard) 如何使用十大商學院的免費課程制作MOOC“ MBA” (How to make a MOOC “MBA” using free courses from Top 10 business schools) Back when massive open online courses (MOOCs) were new, I started a proje…

leetcode 1584. 連接所有點的最小費用(并查集)

給你一個points 數組&#xff0c;表示 2D 平面上的一些點&#xff0c;其中 points[i] [xi, yi] 。 連接點 [xi, yi] 和點 [xj, yj] 的費用為它們之間的 曼哈頓距離 &#xff1a;|xi - xj| |yi - yj| &#xff0c;其中 |val| 表示 val 的絕對值。 請你返回將所有點連接的最小…

Nagios學習實踐系列

其實上篇Nagios學習實踐系列——基本安裝篇只是安裝了Nagios基本組件&#xff0c;雖然能夠打開主頁&#xff0c;但是如果不配置相關配置文件文件&#xff0c;那么左邊菜單很多頁面都打不開&#xff0c;相當于只是一個空殼子。接下來&#xff0c;我們來學習研究一下Nagios的配置…

在Salesforce中處理Email的發送

在Salesforce中可以用自帶的 Messaging 的 sendEmail 方法去處理Email的發送 請看如下一段簡單代碼&#xff1a; public boolean TextFormat {get;set;} public string EmailTo {get;set;} public string EmailCC {get;set;} public string EmailBCC {get;set;} public string …

kvm vnc的使用,鼠標漂移等

1.宿主機的vnc&#xff08;virtual Network Computing&#xff09;配置 安裝rpm包 yum install tigervnc-server -y 為了防止干擾直接關閉防火墻和selinux /etc/init.d/iptables stop setenforce 0 配置vnc密碼和啟動vncserver服務 vncpasswd vncserver 2.客戶機的vnc 在qemu…

php深淺拷貝,JavaScript 中的深淺拷貝

工作中經常會遇到需要復制 JavaScript 數據的時候&#xff0c;遇到 bug 時實在令人頭疼&#xff1b;面試中也經常會被問到如何實現一個數據的深淺拷貝&#xff0c;但是你對其中的原理清晰嗎&#xff1f;一起來看一下吧&#xff01;一、為什么會有深淺拷貝想要更加透徹的理解為什…

使用Python進行地理編碼和反向地理編碼

Geocoding is the process of taking input text, such as an address or the name of a place, and returning a latitude/longitude location. To put it simply, Geocoding is converting physical address to latitude and longitude.地理編碼是獲取輸入文本(例如地址或地點…

java開發簡歷編寫_如何通過幾個簡單的步驟編寫出色的初級開發人員簡歷

java開發簡歷編寫So you’ve seen your dream junior developer role advertised, and are thinking about applying. It’s time to write that Resume! Nothing better than sitting down to a blank piece of paper and not knowing how to start, right?因此&#xff0c;您…

leetcode 628. 三個數的最大乘積(排序)

給定一個整型數組&#xff0c;在數組中找出由三個數組成的最大乘積&#xff0c;并輸出這個乘積。 示例 1: 輸入: [1,2,3] 輸出: 6 解題思路 最大的乘積可能有兩種情況 1.兩個最小負數和一個最大正數 2.三個最大正數 代碼 class Solution {public int maximumProduct(int[…

[Object-C語言隨筆之三] 類的創建和實例化以及函數的添加和調用!

上一小節的隨筆寫了常用的打印以及很基礎的數據類型的定義方式&#xff0c;今天就來一起學習下如何創建類與函數的一些隨筆&#xff1b; 首先類的創建&#xff1a;在Xcode下&#xff0c;菜單File&#xff0d;New File&#xff0c;然后出現選擇class模板&#xff0c;如下圖&…

2024-AI人工智能學習-安裝了pip install pydot但是還是報錯

2024-AI人工智能學習-安裝了pip install pydot但是還是報錯 出現這樣子的錯誤&#xff1a; /usr/local/bin/python3.11 /Users/wangyang/PycharmProjects/studyPython/tf_model.py 2023-12-24 22:59:02.238366: I tensorflow/core/platform/cpu_feature_guard.cc:182] This …

grafana 創建儀表盤_創建儀表盤前要問的三個問題

grafana 創建儀表盤可視化 (VISUALIZATIONS) It’s easier than ever to dive into dashboarding, but are you doing it right?深入儀表板比以往任何時候都容易&#xff0c;但是您這樣做正確嗎&#xff1f; Tableau, Power BI, and many other business intelligence tools …

qq群 voiceover_如何在iOS上使用VoiceOver為所有人構建應用程序

qq群 voiceoverby Jayven N由Jayven N 如何在iOS上使用VoiceOver為所有人構建應用程序 (How to build apps for everyone using VoiceOver on iOS) 輔助功能入門 (Getting started with accessibility) There’s always those topics that people don’t talk about enough. S…