Matthew Rodatus
  • Member for 10 years, 10 months
  • Last seen more than a month ago
  • Frederick, MD
Should package names be singular or plural?
Accepted answer
389 votes

Use the plural for packages with homogeneous contents and the singular for packages with heterogeneous contents. A class is similar to a database relation. A database relation should be named in the ...

View answer
Storing n-gram data
9 votes

Given that you won't know the optimal range of N, you definitely want to be able to change it. For example, if your application predicts the likelihood that a certain text is English, you would ...

View answer
Can I say that ASP.NET is compiled?
6 votes

If you utilize ASP.NET precompilation of your ASPX/ASCX files, then yes: we can say that the application is compiled. However, if ASP.NET precompilation is not used, then there will be a performance ...

View answer
Help me classify this type of software architecture
4 votes

That sounds like Event Sourcing, which "Capture[s] all changes to an application state as a sequence of events" coupled with a Message Bus, which solves the problem of "several existing systems that ...

View answer
Communication Between Different Technologies in a Distributed Application
1 votes

It depends on how low level each service is. For the lower level services, I would use a binary messaging approach, like Google's protobuf library. For the higher level services (and certainly for ...

View answer
What exactly is distributed computing?
3 votes

To answer your general question about what constitutes distributed computing, I would recommend the paper A Note on Distributed Computing by Ann Wollrath, Geoff Wyant, Jim Waldo and Samuel C. Kendall. ...

View answer
How do you avoid working on the wrong branch?
16 votes

Name the working directories differently. That is, if your project is titled "MY_PROJECT," create a different working directory for each branch. If there is one branch named "dev," then you'd need a ...

View answer
How to get better at testing your own code
2 votes

A tester and a programmer face the problem from different angles, but both roles should fully test functionality and find bugs. Where the roles differ is in focus. A classical tester sees the ...

View answer
Can the concept of Entropy be used to analyze source code in a useful way?
2 votes

Entropy is a "measure of disorder [or] unpredictability." A wider range of unique patterns in the information (i.e. roughly "more meaning") indicate a higher degree of entropy. Applied to computer ...

View answer
Can we price a software based on its lines count, language, technology and stuff like that?
1 votes

It depends on the type of software. For an Integrated Development Environment (IDE) or other software tool, the language is paramount. For a third party library, the number of lines of code may come ...

View answer
How to Evaluate a Programmer's Communication Skills
1 votes

Persuasive communication is a form of critical thinking and the hardest form of communication. So, I would test their ability to consider competing ideas and formulate a rational argument supporting ...

View answer
What are the key factors in choosing a Mocking Framework?
2 votes

Ease of use. Some of the frameworks have more advanced idioms of usage. For example, MOQ allows the use of lambdas to encode expectations. Some older libraries do not support this. Speed. Each unit ...

View answer
Will high reputation on Programmers help to get a good job?
3 votes

The Programmer's SE, as its FAQ says, is "for expert programmers who are interested in conceptual questions on software development." Stack Overflow accomplishes a different, needed function -- ...

View answer
Simple method for reliably detecting code in text?
23 votes

Typically, Markov chains are used to generate text, but they can also be used to predict the similarity of text (per C.E. Shannon 1950) to a trained model. I recommend multiple Markov chains. For ...

View answer
Dealing with a developer continuously ignoring edge cases in his work
Accepted answer
29 votes

Require him to write automated unit tests for his code. Writing unit tests forces one to think through the edge cases. Some particulars: To ensure he doesn't feel singled out, this should be ...

View answer
Use Dependency Injection For Data Objects?
0 votes

Since this is a Data Object in the data access layer, it should depend directly on a database service. You could specify a DatabaseService to the constructor: DataObject dataObject = new DataObject(...

View answer
GUI, BLL, DAL Organization In A Project
Accepted answer
8 votes

Yes. And also assemblies. I'd separate by layers, then components. Yes. There are different approaches to this, but I'd have an IDatabaseService (abstracting the various manners in which the database ...

View answer
Is there any value in writing unit tests for code that already works when inheriting applications?
4 votes

Absolutely yes, because unit tests should not verify correctness but characterize the actual behavior of the system. Especially with a legacy project, many of the requirements are implicitly encoded ...

View answer
Should experienced programmers know database queries?
Accepted answer
69 votes

Whether or not database query writing should be a core requirement depends on the job, but relational databases are ubiquitous in current technology. So, if I met a programmer that didn't know how to ...

View answer
using the presence of a value to control flow?
2 votes

Definitely #2, because it exposes the behavior to the caller rather than hiding important details.

View answer
Am I Unit Testing or Integration Testing my Stored Procedures?
1 votes

I would consider that to be integration testing: It's much slower than a unit test should be. It does not exercise a single, atomic unit of code -- it exercises your procedure, the database server, ...

View answer
Is maintaining Heavily Ajax-Based Web Apps more difficult?
1 votes

The difficulty is primarily a question of experience. If you aren't experienced in maintaining heavily AJAX-based web apps, then yes: it is more difficult. However, there does seem to be more ...

View answer
How to foster intrinsic motivation in a software team
1 votes

It is par for the course that the members of a team are motivated differently. Some people work for extrinsic motivation (e.g. money) and others for intrinsic motivation (e.g. quality software). ...

View answer
Best practice to keep the changes in the project well documented
6 votes

Quite simply, use source control. To answer your questions specifically: If project(s) are not currently in source control, then start using Subversion (classic model) or Mercurial (distributed model)...

View answer
Are there tools to determine code similarity?
4 votes

It sounds like you want to compute the difference between two abstract syntax trees (AST), so you might be interested in the Smart Differencer tool. Found on https://stackoverflow.com/questions/...

View answer
Coming up with a version control strategy for SVN
Accepted answer
5 votes

If you want a unified build process, then be sure to put branches/tags/trunk at the root, like this: branches/ tags/ trunk/ dev/ ... If you don't need a unified build process, then you can put ...

View answer
What kind of bug is this?
Accepted answer
18 votes

From Wikipedia->Software bugs, it sounds like a conceptual error: "[The] code is syntactically correct, but the programmer or designer intended it to do something else."

View answer
Can you prototype a complex system change?
0 votes

Yes, you should prototype even large, complex software changes. The old adage, "measure twice, cut once" applies here. From your prototyping, you'll gain invaluable understanding of the system ...

View answer
3-Tier Object-Oriented Design Flaw?
1 votes

I would recommend reading On the Criteria To Be Used in Decomposing Systems into Modules by D.L. Parnas. It's accessible, interesting, and relevant to the question you are asking. It may even provide ...

View answer
How to learn/become capable of providing quality app design?
3 votes

There are many valuable books on design, but book learning has limitations. To complement book learning, here are three things that improve design acumen: Learn to think and be thorough: Programming ...

View answer