제안
새롭게 적용한 @예약어(e.g. @byte(...)) 방식을
PascalCase + 동사형 (e.g AppendByte(...)) 으로 변경 제안합니다.
사유
사용자 적응 방해
개인적으로 라이브러리의 사용자 인기 및 적용은
BCL 사용 경험과 가장 유사할수록 유리하다고 생각합니다.
그에 반해, 예약어를 메서드로 사용하는 개념이 기존 사용경험과 달라 굉장히 이질적으로 느껴집니다.
라이브러리 유지보수 측면
라이브러리 자체적으로 제안하는 내부 코드컨벤션으로 예약어의 메서드 사용이 제안되지 않는 상태에서,
일부분에 대해서만 예약어를 메서드로 사용하는 것이 라이브러리의 일관성을 해칠 수 있다고 생각합니다.
합리적인 이유로 내부 코드컨벤션으로 제안되고 합당하다면,
해당 내용을 문서화하여 사용자에게 전달하는 것이 더 바람직하다고 생각합니다.
제안 사항
예약어 메서드 변경
BCL에서 제안하는 PascalCase + 동사형 메서드 형태로의 변경을 제안합니다.
@short(...) => AppendShort(...)
@int(...) => AppendInt(...)
@long(...) => AppendLong(...)
@ushort(...) => AppendUshort(...)
@uint(...) => AppendUint(...)
@ulong(...) => AppendUlong(...)
@byte(...) => AppendByte(...)
@bytes(...) => AppendBytes(...)
@class(...) => AppendClass(...)
@string(...) => AppendString(...)
예약어 메서드의 적용
예약어를 사용한 메서드 설계가 어떤 부분에 있어선 매우 직관적이고 편리할 수 있다는 점을 수용하되,
본 라이브러리가 아닌 Extension형 누겟 패키지로 별도로 생성하고
사용자 편의에 따라 추가하여 사용할 수 있도록
동일한 네임스페이스 내에서 Extensions 메서드로 사용될 수 있도록 하는게 좋을 것 같습니다.
using BytePacketSupport;
using BytePacketSupport.Extensions.ReservedWords;
namespace Sample;
public static class Program
{
public static void Main()
{
var packet = new PacketBuilder()
// BytePacketSupport
.AppendShort(1)
.AppendInt(2)
.AppendLong(3)
.AppendUshort(4)
.AppendUint(5)
.AppendUlong(6)
.AppendByte(7)
.AppendBytes(new byte[] { 8, 9, 10 })
.AppendString("Hello, World!")
.AppendClass(new SampleClass())
// BytePacketSupport.Extensions.ReservedWords
.Short(1)
.Int(2)
.Long(3)
.Ushort(4)
.Uint(5)
.Ulong(6)
.Byte(7)
.Bytes(new byte[] { 8, 9, 10 })
.String("Hello, World!")
.Class(new SampleClass());
// or
.@short(1)
.@int(2)
.@long(3)
.@ushort(4)
.@uint(5)
.@ulong(6)
.@byte(7)
.@bytes(new byte[] { 8, 9, 10 })
.@string("Hello, World!")
.@class(new SampleClass());
}
}
참조 문서
일반적인 C# 코드 규칙
.NET C# Coding Style
제안
새롭게 적용한
@예약어(e.g.@byte(...)) 방식을PascalCase + 동사형 (e.g
AppendByte(...)) 으로 변경 제안합니다.사유
사용자 적응 방해
개인적으로 라이브러리의 사용자 인기 및 적용은
BCL 사용 경험과 가장 유사할수록 유리하다고 생각합니다.
그에 반해, 예약어를 메서드로 사용하는 개념이 기존 사용경험과 달라 굉장히 이질적으로 느껴집니다.
라이브러리 유지보수 측면
라이브러리 자체적으로 제안하는 내부 코드컨벤션으로 예약어의 메서드 사용이 제안되지 않는 상태에서,
일부분에 대해서만 예약어를 메서드로 사용하는 것이 라이브러리의 일관성을 해칠 수 있다고 생각합니다.
합리적인 이유로 내부 코드컨벤션으로 제안되고 합당하다면,
해당 내용을 문서화하여 사용자에게 전달하는 것이 더 바람직하다고 생각합니다.
제안 사항
예약어 메서드 변경
BCL에서 제안하는 PascalCase + 동사형 메서드 형태로의 변경을 제안합니다.
@short(...)=>AppendShort(...)@int(...)=>AppendInt(...)@long(...)=>AppendLong(...)@ushort(...)=>AppendUshort(...)@uint(...)=>AppendUint(...)@ulong(...)=>AppendUlong(...)@byte(...)=>AppendByte(...)@bytes(...)=>AppendBytes(...)@class(...)=>AppendClass(...)@string(...)=>AppendString(...)예약어 메서드의 적용
예약어를 사용한 메서드 설계가 어떤 부분에 있어선 매우 직관적이고 편리할 수 있다는 점을 수용하되,
본 라이브러리가 아닌 Extension형 누겟 패키지로 별도로 생성하고
사용자 편의에 따라 추가하여 사용할 수 있도록
동일한 네임스페이스 내에서 Extensions 메서드로 사용될 수 있도록 하는게 좋을 것 같습니다.