Cookies help us display personalized product recommendations and ensure you have great shopping experience.

By using this site, you agree to the Privacy Policy and Terms of Use.
Accept
SmartData CollectiveSmartData Collective
  • Analytics
    AnalyticsShow More
    sales and data analytics
    How Data Analytics Improves Lead Management and Sales Results
    9 Min Read
    data analytics and truck accident claims
    How Data Analytics Reduces Truck Accidents and Speeds Up Claims
    7 Min Read
    predictive analytics for interior designers
    Interior Designers Boost Profits with Predictive Analytics
    8 Min Read
    image fx (67)
    Improving LinkedIn Ad Strategies with Data Analytics
    9 Min Read
    big data and remote work
    Data Helps Speech-Language Pathologists Deliver Better Results
    6 Min Read
  • Big Data
  • BI
  • Exclusive
  • IT
  • Marketing
  • Software
Search
© 2008-25 SmartData Collective. All Rights Reserved.
Reading: Hardcoding + procedural code = bad news
Share
Notification
Font ResizerAa
SmartData CollectiveSmartData Collective
Font ResizerAa
Search
  • About
  • Help
  • Privacy
Follow US
© 2008-23 SmartData Collective. All Rights Reserved.
SmartData Collective > Business Intelligence > CRM > Hardcoding + procedural code = bad news
Business IntelligenceCRMData MiningPredictive Analytics

Hardcoding + procedural code = bad news

JamesTaylor
JamesTaylor
6 Min Read
SHARE

Copyright © 2009 James Taylor. Visit the original article at Hardcoding + procedural code = bad news.In a blog post about Hardcoding Considered Harmful – or is it? Jeff Palermo said
Oren Eini boldly makes the assertion that a system is simpler to maintain when configuration is hard-coded in one place within the system. Coupled […]


Copyright © 2009 James Taylor. Visit the original article at Hardcoding + procedural code = bad news.

In a blog post about Hardcoding Considered Harmful – or is it? Jeff Palermo said

Oren Eini boldly makes the assertion that a system is simpler to maintain when configuration is hard-coded in one place within the system. Coupled with an automated testing and deployment process, changing configuration can be just as simple and predictable as possible. Oren asserts that hard-coding as much as possible enhances maintainability. He then defends his position with an example in a subsequent post.

In the example post Oren has this code snippet:

More Read

Building the Business Case for Behavioral Targeting
Business Intelligence, a Maturing Industry?
#21: Here’s a thought…
Headup uses a proprietary semantic engine that cross references…
Looking Back on 2011: BI, Mobility and Collaboration
public class DiscountPreferredMembers : OnOrderSubmittal
{
	public override void Execute()
	{
		if ( User.IsPreferred )
			Order.AddDiscountPrecentage(5);
	}
}

He goes on to say:

We hard code the rules, which is the easiest approach to getting things done. Because we have a structured way of doing that, we can now apply the ways in which we use it. For instance, if we wanted to support runtime replacements of rules, that is easy, all we need to do is to provide a FileSystemWatcher and reload them. If we want to add a rule, we just create a new class for that. If we want to modify a rule, we go and change the hard coded logic.

Wow – the things a programmer will describe as simple! What if this had been hard-coded in a Business Rules Management System or BRMS?

  • It would still be hard-coded and easy to write.
  • It would be deployed as a simple to use, structured component just as Oren describes.
  • If we wanted to support runtime replacement of the rule we would have to do nothing (the BRMS already handles that).
  • If we wanted to add a rule we would just add a rule – no need to create another class.
  • Modification of the rule would be about the same.

The differences become more extreme as the complexity of the decision we are talking about increases. If there were 5 or 10 or 100 rules that had to be applied, as there often are in discount scenarios. Now we would end up with either lots of classes and/or methods and nested if..thens. Not with business rules – just a simple, flat list of rules that are easy to read, easy to manage and easy to change. The problem with this example is not so much that it has been hard coded as that it has been hard-coded in a language that is, to quote Ira Fuch

…syntactic, abbreviated, and procedural, as opposed to semantic, verbose, and declarative

Hard-coding in business rules would dramatically improve the approach Oren proposes. Indeed many BRMS customers do exactly this – they use the BRMS and the business rules syntax but they continue to hard code the rules behind their decisions – developers just write rules, not code pretending to be rules. Now Jeff goes on to say:

I agree with Oren.  The first draft of some functionality should hard-code everything.  Then subsequent revisions will cause some information to be factored out into mediums that can be maintained while suppporting all the requirements in scope.  The requirement cause us to make decisions about what information to hard-code and which information to soft-code.

I understand the point Jeff and Oren are making here – soft-coding things can make them more complex than is necessary and can, especially if done thoughtlessly, create maintenance problems. However hard-coding in traditional procedural languages like Java or C# means creating a procedural and abbreviated piece of code that will become increasingly hard to maintain as its complexity increases and that business users will not find approachable or easy to understand. Hard-coding in business rules avoids this problem and, when something does need to be “soft-coded”, a BRMS allows the easy transition to business user rules management using template-driven or other approaches layered on to the same underlying rules execution and management environment.

Hard-coding may not be harmful absolutely all the time but coding business rules in code probably is.


Link to original post

Share This Article
Facebook Pinterest LinkedIn
Share

Follow us on Facebook

Latest News

sales and data analytics
How Data Analytics Improves Lead Management and Sales Results
Analytics Big Data Exclusive
ai in marketing
How AI and Smart Platforms Improve Email Marketing
Artificial Intelligence Exclusive Marketing
AI Document Verification for Legal Firms: Importance & Top Tools
AI Document Verification for Legal Firms: Importance & Top Tools
Artificial Intelligence Exclusive
AI supply chain
AI Tools Are Strengthening Global Supply Chains
Artificial Intelligence Exclusive

Stay Connected

1.2kFollowersLike
33.7kFollowersFollow
222FollowersPin

You Might also Like

Call-For-Speakers – Deadline: June 4

6 Min Read

2013 1H Conferences in Social Media, BI, Big Data, and Sentiment Applications

4 Min Read

Walled Gardens and the Value of Innovation: Questions for Bill Franks

6 Min Read

Kisha – RESTful workflow on Rails

1 Min Read

SmartData Collective is one of the largest & trusted community covering technical content about Big Data, BI, Cloud, Analytics, Artificial Intelligence, IoT & more.

ai chatbot
The Art of Conversation: Enhancing Chatbots with Advanced AI Prompts
Chatbots
ai in ecommerce
Artificial Intelligence for eCommerce: A Closer Look
Artificial Intelligence

Quick Link

  • About
  • Contact
  • Privacy
Follow US
© 2008-25 SmartData Collective. All Rights Reserved.
Go to mobile version
Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?