4,120 reputation
1020
bio website None
location North Carolina
age 49
visits member for 3 years, 11 months
seen Dec 15 at 19:01
Software Engineer

Dec
15
comment Is it misleading to label code as a particular design pattern if it only loosely fits the definition?
Mostly people implement slight-variations of design patterns. Like trying to reuse someone else's code; it always seems like what is defined "almost" does what you want but not exactly, so you end up having to tailor it to suit your needs. I think if you can see where it may be confusing then you should add a little comment with clarifications. If it should be obvious then don't worry about it because most developers already know that your implementation is probably a slight variation.
Dec
15
comment How do you unit-test code using graphs?
That is the problem with any form of testing. All you know is that the tests that you thought of work. It doesn't mean your sw is error free just because your tests pass. Every project has that same problem. I'm in the final stages of delivering my current project so we can begin manufacturing. The types of errors we come across now tend to be rather obscure. Such as, where the hardware still works up to spec but just barely and when combined with other hardware simultaneously with the same issue then problems happen; but only sometimes:( The sw is well tested but we didn't think of everything
Dec
11
comment How do you unit-test code using graphs?
Same way you unit test any other method. You identify all the "interesting" test cases for each method and write unit tests for them. In your case, you'll have to create canned dependency graphs for each of the "interesting" graph structures.
Dec
11
comment Productivity using .Net WPF for large ERP (LOB) desktop applicatons ~1500 forms\dialogs
+1 for the last paragraph. WPF has a HUGE learning curve but once you learn it, it is far easier and quicker to develop the screens with the exact layout that you want versus WinForms.
Dec
10
answered Is there ever a reason to use an array when lists are available?
Dec
9
comment Saving an object via a method of its own or via another class?
I let my designs "design themselves". If that means that a class has a single responsibility then that is because that is what fits the system best. If a class has 5 or 10 responsibilities but it is obvious that they belong there then that's where I put them. I don't invent 5 or 10 new classes and force-fit names just for the sake of following some principle.
Dec
9
comment Saving an object via a method of its own or via another class?
@Michel:I don't disagree that it is possible to do SRP cleanly. However, I haven't seen it lead to all the benefits that makes everyone use it as "the rule" that should be followed. It just leads to too many classes to gain extensibility that isn't ever going to be used with the downside being that the learning curve is much higher. Simply choosing GOOD class names which defines the scope of each class and applying basic OO design principles will lead to better designed systems, can be built quicker and will require a smaller learning curve, IMO. But, it may require longer to make big changes.
Dec
9
comment Saving an object via a method of its own or via another class?
There is no correct answer. It depends on your needs, your preferences, how your class is to be used and where you see your project going. The only correct OO thing is that you can save and retrieve as objects.
Dec
9
comment Saving an object via a method of its own or via another class?
The claim that SRP makes programs easier to maintain is dubious at best. The problem SRP creates is that instead of having a collection of well-named classes, where the name tells everything the class can and can't do (in other words easy to understand which leads to easy to maintain) you end up with hundreds/thousands of classes which people needed to use a thesaurus in order to pick a unique name, many names are similar but not quite and sorting through all that chaff is a chore. IOW, Not maintainable at all, IMO.
Dec
8
comment How do you tackle really bizarre errors that keep you puzzled for more than 10 hours?
@Giorgio:I think vector is assuming that you know how to create the problem in the first place. Being able to recreate the problem on demand is 95% of the solution (at least). I've seen many bugs over the years that have stumped people for days, weeks or a month because they couldn't figure out how to recreate the problem.
Dec
8
comment How do you keep your motivation and enthusiasm for a never ending project?
@vin:My recommendation is to create tools. There's always something that can be better accomplished via automation. When creating the tools, use different languages, different design techniques, other tools etc. In other words, figure out how to expand your skillset while still "technically" doing project work.
Dec
8
comment How do you keep your motivation and enthusiasm for a never ending project?
The duplicate is not even close to the asked question. There's quite a difference between working on an "overwhelming" project and one that you work on for years but most certainly isn't overwhelming. Successful projects tend to result in the OPs dilemma, if your definition of successful is people actually using your project and wanting more of it. Overwhelming projects can happen at any phase.
Dec
5
comment How is programming affected by spatial aptitude?
"Just above average" IQ is probably the reason you are struggling with programming and grasping the big picture as opposed to spatial aptitude. I don't know any good programmers that aren't smart and "just above average" doesn't fit that category.
Dec
2
comment Specific empty children classes
@Tiago:I think what bruce is trying to say is that classes are supposed to have data AND BEHAVIOR. Yours do not have behavior so they aren't and shouldn't be classes. Furthermore, you want to inherit these classes from a "class" that also isn't really a class. Once again, no behavior. Thus, the "clearly not familiar with basic OO principles" comment. You want ideas. The problem is that you have framed your problem to be to data centric/low-level so you'll always have a "but" in response. To do a proper OO design we'd need to know the big picture problem you are trying to create a solution for.
Dec
1
comment Advantages of unmanaged code
#2 is just plain wrong. When memory allocation and de-allocation is explicit it is usually trivial to ensure proper management. Worst case you just match up allocations and de-allocations. With garbage collected languages there are frequently features of the language that makes it really easy to leave dangling references and there's no nice and easy way to search the code to make sure all references are removed so the object can be garbage collected. I've seldom seen memory leaks get to system test with C/C++ but have seen them far more often in C# and Java.
Nov
25
comment How to break up a programming project into tasks for other developers?
@lotus:Sounds much like the architectural software design Robert Harvey mentioned, so I'll upvote your comment. Once you have the architecture it is easy to divvy out modules and not step on each other too much.
Nov
25
comment How to break up a programming project into tasks for other developers?
I agree with Lightness. You should never do an auto merge. Developers should check every diff to make sure their changes are consistent with the file they are merging with.
Nov
25
comment How to break up a programming project into tasks for other developers?
@the_lotus:What is your definition of technical specification?
Nov
19
comment Convert procedural code to object oriented
@Lorenz:I highly recommend that. If you were experienced in both styles and there was a compelling reason to make the transition then you could probably make it work somewhat but even there it would be a risk. Probably the most "right" way to make that kind of transition would be to do an OO design of the system and import functionality from the original code across your OO classes rather than try to turn your modules into classes. Structured design using classes tends to give you the worst of both worlds instead of the best.
Nov
19
comment Convert procedural code to object oriented
@Lorenz:Back when OO was becoming "The thing", most developers simply did structured designs but used classes. Most developers also had those same projects turn into utter failures. OO and structured designs are orthogonal to each other. Thus, they tend to not mix or play nicely together. (e.g. structured design passes data around with every expectation of having that data acted upon, OO hides data). Not much room for compromise there. If you aren't intending to do a proper OO design then don't bother doing what you are trying to do. Your listed issues are just the tip of the iceberg.