Is this an acceptable practice?
-
This is what it looked like before
<System.Runtime.Serialization.DataMember>
Private mLastUpdated As DateTime<System.Runtime.Serialization.DataMember> Private mLastUpdatedBy As String <System.Runtime.Serialization.DataMember> Private mClearanceRequired As Int64 <System.Runtime.Serialization.DataMember> Private mClearanceIsRequired As Boolean
The first example I wrote, stands on in the document, where writing datamember so many times with the word private seems to be a waste of space.
If you're worried about space, why are you using one of the most verbose languages there is? :)
A guide to posting questions on CodeProject
How to debug small programs
Dave Kreskowiak -
I see yes the context of how someone takes a sentence is important. The code is flawless, again the question was about coding practices.
When I commented on this branch of the thread, it wasn't addressed to you.
A guide to posting questions on CodeProject
How to debug small programs
Dave Kreskowiak -
If you're worried about space, why are you using one of the most verbose languages there is? :)
A guide to posting questions on CodeProject
How to debug small programs
Dave KreskowiakWhite space and readability It's like taking actual English practices and applying them to coding, so the point reading code is like reading a paragraph - when it's so elegant writing comments are redundant.
-
Quote:
...datamember so many times with the word private seems to be a waste of space.
Your own words literally say that you are worried about "wasting space". Now you've changed it slightly:
Quote:
The intent is white space and readability not saving space.
You're worried about "wasting space" but only for some very specific and narrow scope of "wasting". And in this particular case, you're worried about "small waste" vs. "absolute clarity" which seems like a pretty lame trade-off. The fact that anyone had to question whether or not the attribute applied to all the variables means that you failed the "readability" test. Your goal of "readability" actually resulted in this code being hard to read and possibly being "unclear" to people who were not experts in this very narrow language feature.
you are right I did say waste of space.
-
Yes, it's a matter of knowing how the compiler is going to handle the code, but it's more about maintainability. The format of the code is not to please the compiler. It's there to convey, without a doubt, what you intended. It's better to be explicitly expressive than it is to assume functionality with a lack of expression. Think about what the next guy who has to maintain your code is going to think when he sees it. Again, you're not looking for opinions. You're shooting down everything everyone says about what you wrote in an attempt to justify it.
A guide to posting questions on CodeProject
How to debug small programs
Dave KreskowiakYou are not reading every comment. Maintainability is a good reply.
-
Quote:
...datamember so many times with the word private seems to be a waste of space.
Your own words literally say that you are worried about "wasting space". Now you've changed it slightly:
Quote:
The intent is white space and readability not saving space.
You're worried about "wasting space" but only for some very specific and narrow scope of "wasting". And in this particular case, you're worried about "small waste" vs. "absolute clarity" which seems like a pretty lame trade-off. The fact that anyone had to question whether or not the attribute applied to all the variables means that you failed the "readability" test. Your goal of "readability" actually resulted in this code being hard to read and possibly being "unclear" to people who were not experts in this very narrow language feature.
The reason indeed why I posted the acceptability is to hear what you think. I am way out to left field my own practices are just for myself as I am the owner of my software company. This is the whole thing, I already know how off standard this is.
Namespace Sinks
<System.Runtime.Serialization.DataContract(IsReference:=True)>
Public MustInherit Class Base
Inherits Validate
Implements iInterface<System.Runtime.Serialization.DataMember> Private mLastUpdated As DateTime, \_ mLastUpdatedBy As String, \_ mClearanceRequired As Int64, \_ mClearanceIsRequired As Boolean Public Sub New() MyBase.New() End Sub Public Sub New(Clearance As Int64) MyBase.New() ClearanceRequired = Clearance End Sub Public Property LastUpdated As DateTime Implements iInterface.LastUpdated Get Return mLastUpdated End Get Set(value As DateTime) mLastUpdated = value End Set End Property Public Property LastUpdatedBy As String Implements iInterface.LastUpdatedBy Get Return mLastUpdatedBy End Get Set(value As String) mLastUpdatedBy = value End Set End Property Public Property ClearanceIsRequired As Boolean Implements iInterface.ClearanceIsRequired Get Return mClearanceIsRequired End Get Set(value As Boolean) mClearanceIsRequired = value End Set End Property Public Property ClearanceRequired As Long Implements iInterface.ClearanceRequired Get Return mClearanceRequired End Get Set(value As Long) mClearanceIsRequired = True mClearanceRequired = value End Set End Property Public Overloads ReadOnly Property Value(User As Directory.iUser) As Object Implements iInterface.Value Get Select Case True Case User.Deny : Throw New Exception("User Denied!") Case ClearanceIsRequired And User.ClearanceReadLevel < ClearanceRequired : Throw New Exception("User clearance is lower then required!") Case Else : Return MyBase.Value En
-
I DO NOT NEED HELP Quit behaving like you know what the fook is going on. THE QUESTION IS - is this an acceptable practice, please learn to read English before getting on my case.
-
The reason indeed why I posted the acceptability is to hear what you think. I am way out to left field my own practices are just for myself as I am the owner of my software company. This is the whole thing, I already know how off standard this is.
Namespace Sinks
<System.Runtime.Serialization.DataContract(IsReference:=True)>
Public MustInherit Class Base
Inherits Validate
Implements iInterface<System.Runtime.Serialization.DataMember> Private mLastUpdated As DateTime, \_ mLastUpdatedBy As String, \_ mClearanceRequired As Int64, \_ mClearanceIsRequired As Boolean Public Sub New() MyBase.New() End Sub Public Sub New(Clearance As Int64) MyBase.New() ClearanceRequired = Clearance End Sub Public Property LastUpdated As DateTime Implements iInterface.LastUpdated Get Return mLastUpdated End Get Set(value As DateTime) mLastUpdated = value End Set End Property Public Property LastUpdatedBy As String Implements iInterface.LastUpdatedBy Get Return mLastUpdatedBy End Get Set(value As String) mLastUpdatedBy = value End Set End Property Public Property ClearanceIsRequired As Boolean Implements iInterface.ClearanceIsRequired Get Return mClearanceIsRequired End Get Set(value As Boolean) mClearanceIsRequired = value End Set End Property Public Property ClearanceRequired As Long Implements iInterface.ClearanceRequired Get Return mClearanceRequired End Get Set(value As Long) mClearanceIsRequired = True mClearanceRequired = value End Set End Property Public Overloads ReadOnly Property Value(User As Directory.iUser) As Object Implements iInterface.Value Get Select Case True Case User.Deny : Throw New Exception("User Denied!") Case ClearanceIsRequired And User.ClearanceReadLevel < ClearanceRequired : Throw New Exception("User clearance is lower then required!") Case Else : Return MyBase.Value En
I would prefer to write the attribute for each member, if you want to save lines of code you could write them inline.
<System.Runtime.Serialization.DataMember> Private mLastUpdated As DateTime
<System.Runtime.Serialization.DataMember> Private mLastUpdatedBy As String
<System.Runtime.Serialization.DataMember> Private mClearanceRequired As Int64
<System.Runtime.Serialization.DataMember> Private mClearanceIsRequired As BooleanAnd since you're saving lines of code, why could use auto-implemented properties por LastUpdated, LastUpdatedBy and ClearanceRequired.
-
I would prefer to write the attribute for each member, if you want to save lines of code you could write them inline.
<System.Runtime.Serialization.DataMember> Private mLastUpdated As DateTime
<System.Runtime.Serialization.DataMember> Private mLastUpdatedBy As String
<System.Runtime.Serialization.DataMember> Private mClearanceRequired As Int64
<System.Runtime.Serialization.DataMember> Private mClearanceIsRequired As BooleanAnd since you're saving lines of code, why could use auto-implemented properties por LastUpdated, LastUpdatedBy and ClearanceRequired.
yeah I like that way too. It's not about saving lines of code, it's about creating white space
-
don't be a bully
-
Please ask in the proper forum.
The report of my death was an exaggeration - Mark Twain
Simply Elegant Designs JimmyRopes Designs
I'm on-line therefore I am. JimmyRopesMore satisfying to post in an "improper" forum. Stuffed Shirt proper? :laugh: :laugh:
The fredster