Mình đã bối rối khi đặt tên cho blob file mà không biết nên đặt theo kiểu nào. Sau khi tìm hiểu, mình mới biết cách mình đang cần là Kebab Case. Chắc hẳn bạn đã nghe qua các cách đặt tên như Pascal Case hay Camel Case, nhưng Kebab Case thì có vẻ ít người quen thuộc hơn. Trong bài viết này, mình sẽ giới thiệu ba kiểu đặt tên này và cách áp dụng chúng. Ngoài ra chúng ta sẽ xem thêm về Proper Case.
Pascal Case
Pascal Case là cách đặt tên mà mỗi từ đều viết hoa chữ cái đầu tiên. Đối với chúng ta, các hàm trong C# thường được viết theo Pascal Case như một tiêu chuẩn chung.
Ví dụ, nếu bạn có một hàm tên là CalculateSum, UploadBlob, hoặc GenerateReport, chúng đều được viết theo Pascal Case. Việc đặt tên như vậy giúp code của chúng ta rõ ràng hơn và dễ nhận diện chức năng của từng hàm.
// Convert the string to Pascal case.
public static string ToPascalCase(this string the_string)
{
// If there are 0 or 1 characters, just return the string.
if (the_string == null) return the_string;
if (the_string.Length < 2) return the_string.ToUpper();
// Split the string into words.
string[] words = the_string.Split(
new char[] { },
StringSplitOptions.RemoveEmptyEntries);
// Combine the words.
string result = "";
foreach (string word in words)
{
result +=
word.Substring(0, 1).ToUpper() +
word.Substring(1);
}
return result;
}
Camel Case
Camel Case là một biến thể của Pascal Case, nhưng thay vì viết hoa chữ cái đầu tiên của từ đầu tiên, chúng ta chỉ viết hoa chữ cái đầu của các từ tiếp theo. Camel Case được sử dụng rộng rãi trong JavaScript, đặc biệt là khi đặt tên biến hoặc hàm, ví dụ như calculateSum, uploadBlob, hoặc generateReport. Bạn sẽ thấy cách đặt tên này trong các dự án liên quan đến JavaScript hay TypeScript.
// Convert the string to camel case.
public static string ToCamelCase(this string the_string)
{
// If there are 0 or 1 characters, just return the string.
if (the_string == null || the_string.Length < 2)
return the_string;
// Split the string into words.
string[] words = the_string.Split(
new char[] { },
StringSplitOptions.RemoveEmptyEntries);
// Combine the words.
string result = words[0].ToLower();
for (int i = 1; i < words.Length; i++)
{
result +=
words[i].Substring(0, 1).ToUpper() +
words[i].Substring(1);
}
return result;
}
Kebab Case
Kebab Case lại có một cách đặt tên khác biệt: mỗi từ được viết thường và phân cách bởi dấu gạch ngang (-). Chúng ta thường thấy kiểu này trong URL hoặc trong file JSON. Ví dụ, calculate-sum, upload-blob, generate-report
static string ConvertToKebabString(string input)
{
if (string.IsNullOrEmpty(input))
{
return string.Empty;
}
StringBuilder result = new StringBuilder();
for (int i = 0; i < input.Length; i++)
{
char c = input[i];
if (char.IsUpper(c))
{
if (i > 0)
{
result.Append('-');
}
result.Append(char.ToLower(c));
}
else
{
result.Append(char.ToLower(c));
}
}
return result.ToString();
}
Proper case
Sau khi đã biết về Kebab Case, chúng ta cùng tìm hiểu thêm về Proper Case.
Ví dụ, nếu chúng ta muốn hiển thị tên file blob một cách dễ đọc cho người dùng, Proper Case sẽ biến "upload-blob" thành "Upload Blob".
// Capitalize the first character and add a space before
// each capitalized letter (except the first character).
public static string ToProperCase(this string the_string)
{
// If there are 0 or 1 characters, just return the string.
if (the_string == null) return the_string;
if (the_string.Length < 2) return the_string.ToUpper();
// Start with the first character.
string result = the_string.Substring(0, 1).ToUpper();
// Add the remaining characters.
for (int i = 1; i < the_string.Length; i++)
{
if (char.IsUpper(the_string[i])) result += " ";
result += the_string[i];
}
return result;
}
Nhận xét
Đăng nhận xét