เวลาเราพัฒนาระบบที่มันซับซ้อนๆมากๆ ปัญหาที่ปวดหัวที่สุดเลย คือ การตั้งชื่อ บางทีชื่อตัวแปรยาวๆ ถ้าย่อไป อาจจะงงได้ Dev เลยใช้ชื่อเต็มไป พอลองเอาตัวแปรเหล่านี้มาใช้ มันดูเกะกะรกตามากครับ กว่าจะรู้ว่า ตั้งชื่อเล่นของ Class (Alias) ให้เรียกใช้งานได้ง่ายกันดีกว่า โดย C# มันมีวิธีในการการตั้งชื่อเล่น(Alias) กันนะ มาดู Code เดิมกันดีกว่า
using Sample.Invest.Operation.DTO.Master.Rebalance.RebalanceProcessExtensions; public partial class RebalanceEqForm : RepositoryForm { //Do some method private void InitialGridColumn(IList<RebalanceEQAfterDSDTO> pDtos) { //Do something GridBand common = GridHelper.CreateGridBand(""); GridColumn col; col = GridHelper.CreateCheckBoxBandedGridColumn(_rebalanceBandedGridView, common, "", RebalanceProcessExtensions.Col_Selected, true); SetColumn(col, ls); col = GridHelper.CreateBandedGridColumn(_rebalanceBandedGridView, common, "Portfolio", RebalanceProcessExtensions.Col_Portfolio, DevExpress.Utils.FormatType.None, -1, false); SetColumn(col, ls); col = GridHelper.CreateBandedGridColumn(_rebalanceBandedGridView, common, "Original NAV", RebalanceProcessExtensions.Col_OriginalNAV, DevExpress.Utils.FormatType.Numeric, FORMAT_PATTERN.CURRENCY_CODE, false, true); SetColumn(col, ls); col = GridHelper.CreateBandedGridColumn(_rebalanceBandedGridView, common, "NAV", RebalanceProcessExtensions.Col_NAV, DevExpress.Utils.FormatType.Numeric, FORMAT_PATTERN.CURRENCY_CODE, false); SetColumn(col, ls); col = GridHelper.CreateBandedGridColumn(_rebalanceBandedGridView, common, "% EQ Policy", RebalanceProcessExtensions.Col_PercentEQPolicy, DevExpress.Utils.FormatType.Numeric, FORMAT_PATTERN.CURRENCY_CODE, false); SetColumn(col, ls); } }
ถ้าสังเกตุใน Code พบว่า RebalanceProcessExtensions.Col_OriginalNAV ชื่อ Class RebalanceProcessExtensions มันยาวมากๆ ครับ ถ้าทำไปนานๆ Code ตรึมครับ ดูยาก ที่นี้มาลองใช้ตัวช่วยกันดีกว่า ลองใช้ Class Alias โดยการย่อชื่อ Class ไว้ช่วง using ครับ โดย Code ที่ได้จะเป็นประมาณนี้
using RBExt = Sample.Invest.Operation.DTO.Master.Rebalance.RebalanceProcessExtensions; public partial class RebalanceEqForm : RepositoryForm { //Do some method private void InitialGridColumn(IList<RebalanceEQAfterDSDTO> pDtos) { //Do something GridBand common = GridHelper.CreateGridBand(""); GridColumn col; col = GridHelper.CreateCheckBoxBandedGridColumn(_rebalanceBandedGridView, common, "", RBExt.Col_Selected, true); SetColumn(col, ls); col = GridHelper.CreateBandedGridColumn(_rebalanceBandedGridView, common, "Portfolio", RBExt.Col_Portfolio, DevExpress.Utils.FormatType.None, -1, false); SetColumn(col, ls); col = GridHelper.CreateBandedGridColumn(_rebalanceBandedGridView, common, "Original NAV", RBExt.Col_OriginalNAV, DevExpress.Utils.FormatType.Numeric, FORMAT_PATTERN.CURRENCY_CODE, false, true); SetColumn(col, ls); col = GridHelper.CreateBandedGridColumn(_rebalanceBandedGridView, common, "NAV", RBExt.Col_NAV, DevExpress.Utils.FormatType.Numeric, FORMAT_PATTERN.CURRENCY_CODE, false); SetColumn(col, ls); col = GridHelper.CreateBandedGridColumn(_rebalanceBandedGridView, common, "% EQ Policy", RBExt.Col_PercentEQPolicy, DevExpress.Utils.FormatType.Numeric, FORMAT_PATTERN.CURRENCY_CODE, false); SetColumn(col, ls); } }
จาก Code ใหม่ ย่อจาก RebalanceProcessExtensions ไปเป็น RBExt แล้ว Code ที่เขียนออกมา สั้นลง และดูสบายตาขึ้น ครับ
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.