How do you write fewer lines of code?
-
OriginalGriff wrote:
get a kitten.
Amen to that. My cat definitely reduces the number of lines of code I write! Then again, he's been known to write some extremely verbose, monotonic code. I've been well trained - Win-L to lock the keyboard when I walk away from the desk! Marc
Mine has discovered the delete key, the space bar (good for dialogs, it acts as OK on most of them, whether I want it to or not) and his particular favourite: F11. Holding that down gives him hours of fun (and me a headache).
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together. Manfred R. Bihy: "Looks as if OP is learning resistant."
-
From Mehdi's question about "is less lines of code better" -- Question: How do you go about writing fewer lines of code (omitting removing line breaks as an answer) ? One obvious answer is, replace redundant code with a function. Another possible answer is, using Linq to replace for-next loops (funny how we [well, I do] still call them for-next loops) One other answer to that comes to mind is using OOP to eliminate "if" statements regarding type. Anyways, that's my question--if you really want to achieve fewer lines of code but the same behavior, what really are good practices? Marc
IMHO, probably the most efficient way to realize this goal is by refactoring and using existing frameworks where possible. Some MS technology shops exhibit the "not invented here" syndrome and prefer to shy away from non-Microsoft, non-commercial libraries, sometimes for legal reasons (putting a company's IP for sale is easier when you reduce dependencies on open source and other non-MS commercial libraries). /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
From Mehdi's question about "is less lines of code better" -- Question: How do you go about writing fewer lines of code (omitting removing line breaks as an answer) ? One obvious answer is, replace redundant code with a function. Another possible answer is, using Linq to replace for-next loops (funny how we [well, I do] still call them for-next loops) One other answer to that comes to mind is using OOP to eliminate "if" statements regarding type. Anyways, that's my question--if you really want to achieve fewer lines of code but the same behavior, what really are good practices? Marc
Inheritance. Then you have to look up all that huge class hierarchy to see what the concise fu#*in' code is supposed to do. :)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles] -
With 256 bytes? No chance :) But this is my first interpreter in action (using the 64 x 32 pixel graphics): Tiny BASIC[^]. Please note the elegant wrapping at the end of the line. And here[^] you have a replica of the original version of the computer, which was a project in a magazine. On the screen you see the same 256 byte test program which I also typed in into mine after building it. The graphics need exactly 256 bytes as video buffer, so the seemingly random pixels at the top are the program code.
"Dark the dark side is. Very dark..." - Yoda ---
"Shut up, Yoda, and just make yourself another toast." - Obi Wan Kenobi -
djj55 wrote:
Isn't this a programming question?
programming question != question about programming
:-DReiss wrote:
programming question != question about programming
And also
question about programming != Mark's Question About Programming
--- Mark does not ask programming questions, the questions ask him. :)
-
From Mehdi's question about "is less lines of code better" -- Question: How do you go about writing fewer lines of code (omitting removing line breaks as an answer) ? One obvious answer is, replace redundant code with a function. Another possible answer is, using Linq to replace for-next loops (funny how we [well, I do] still call them for-next loops) One other answer to that comes to mind is using OOP to eliminate "if" statements regarding type. Anyways, that's my question--if you really want to achieve fewer lines of code but the same behavior, what really are good practices? Marc
One way is to get the computer to write the tedious, repetitive code for you. It's relatively cheap to ensure that generated code is correct and so I don't count those lines of code in the total. I'm more interested in counting the lines of code I have to type, test and debug - those are the ones that cost! As a quantitative example, I wrote a code generator ( affectionately called Jenny ) that created wrappers for CRUD operations over the Entity Framework. Jenny is about 1,000 LOC, but for about 100 database tables it generates 8,000 LOC in the DTO assembly, 20,000 in the DAL and 7,000 in the BLL. That's 35,000 lines of copy/paste/edit code I didn't have to write. Plus, if I change my mind about my implementation, I can edit all that code at once by running Jenny again. Nick
-
Reiss wrote:
programming question != question about programming
And also
question about programming != Mark's Question About Programming
--- Mark does not ask programming questions, the questions ask him. :)
-
From Mehdi's question about "is less lines of code better" -- Question: How do you go about writing fewer lines of code (omitting removing line breaks as an answer) ? One obvious answer is, replace redundant code with a function. Another possible answer is, using Linq to replace for-next loops (funny how we [well, I do] still call them for-next loops) One other answer to that comes to mind is using OOP to eliminate "if" statements regarding type. Anyways, that's my question--if you really want to achieve fewer lines of code but the same behavior, what really are good practices? Marc
Including the title of your posting, you asked the same question three times. There's gotta be a moral in there somewhere.
I wanna be a eunuchs developer! Pass me a bread knife!
-
From Mehdi's question about "is less lines of code better" -- Question: How do you go about writing fewer lines of code (omitting removing line breaks as an answer) ? One obvious answer is, replace redundant code with a function. Another possible answer is, using Linq to replace for-next loops (funny how we [well, I do] still call them for-next loops) One other answer to that comes to mind is using OOP to eliminate "if" statements regarding type. Anyways, that's my question--if you really want to achieve fewer lines of code but the same behavior, what really are good practices? Marc
While you were pondering the question me and OG were down at the pub, that's one way of writing less code. I think someone mentioned getting someone else to write the code is another option... But seriously, I believe you write less code by better design and better algorithms.
Its the man, not the machine - Chuck Yeager If at first you don't succeed... get a better publicist If the final destination is death, then we should enjoy every second of the journey.
-
From Mehdi's question about "is less lines of code better" -- Question: How do you go about writing fewer lines of code (omitting removing line breaks as an answer) ? One obvious answer is, replace redundant code with a function. Another possible answer is, using Linq to replace for-next loops (funny how we [well, I do] still call them for-next loops) One other answer to that comes to mind is using OOP to eliminate "if" statements regarding type. Anyways, that's my question--if you really want to achieve fewer lines of code but the same behavior, what really are good practices? Marc
I have started using Test Driven Development (TDD). I find that my class interfaces are much more usable, because I am using them while developing. The code is tested as I develop. I don't waste that extra time writing for features that I think I am going to use, I only write when I need. Including the test code, I find I write less code overall.
-
From Mehdi's question about "is less lines of code better" -- Question: How do you go about writing fewer lines of code (omitting removing line breaks as an answer) ? One obvious answer is, replace redundant code with a function. Another possible answer is, using Linq to replace for-next loops (funny how we [well, I do] still call them for-next loops) One other answer to that comes to mind is using OOP to eliminate "if" statements regarding type. Anyways, that's my question--if you really want to achieve fewer lines of code but the same behavior, what really are good practices? Marc
-
Bassam Abdul-Baki wrote:
Using someone else's code is not technically reducing it.
I was wondering if someone would say that. Well, technically, it reduces the lines of "my" code. Otherwise, you would have to take this to the logical extremes of 1) any framework code + calls to Win API and 2) might as well reduce it to lines of code in the MSIL/assembly language. That doesn't make a lot of sense to me. Marc
-
It's just an example! :sigh:
Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
-
From Mehdi's question about "is less lines of code better" -- Question: How do you go about writing fewer lines of code (omitting removing line breaks as an answer) ? One obvious answer is, replace redundant code with a function. Another possible answer is, using Linq to replace for-next loops (funny how we [well, I do] still call them for-next loops) One other answer to that comes to mind is using OOP to eliminate "if" statements regarding type. Anyways, that's my question--if you really want to achieve fewer lines of code but the same behavior, what really are good practices? Marc
Easy – you need to get smarter. This highly reduces LOC.
There is only one Vera Farmiga and Salma Hayek is her prophet! Advertise here – minimum three posts per day are guaranteed.
-
From Mehdi's question about "is less lines of code better" -- Question: How do you go about writing fewer lines of code (omitting removing line breaks as an answer) ? One obvious answer is, replace redundant code with a function. Another possible answer is, using Linq to replace for-next loops (funny how we [well, I do] still call them for-next loops) One other answer to that comes to mind is using OOP to eliminate "if" statements regarding type. Anyways, that's my question--if you really want to achieve fewer lines of code but the same behavior, what really are good practices? Marc
Good design and reducing plumbing code more than anything. Nothing complicates an app and drives up the line count than fighting with an object model that doesn't match what you are trying to do with it. If you have to routinely make changes to multiple parts of your model that require complicated operations to connect, then you are going to write a bunch of extra code.
Curvature of the Mind now with 3D
-
From Mehdi's question about "is less lines of code better" -- Question: How do you go about writing fewer lines of code (omitting removing line breaks as an answer) ? One obvious answer is, replace redundant code with a function. Another possible answer is, using Linq to replace for-next loops (funny how we [well, I do] still call them for-next loops) One other answer to that comes to mind is using OOP to eliminate "if" statements regarding type. Anyways, that's my question--if you really want to achieve fewer lines of code but the same behavior, what really are good practices? Marc
I tend to collapse if/else statements. If there's just a single if/else, I'll use the (what's the name of this?) operator:
return foo ? "it was foo" : "it was not!";
For big if/elses, or switch statements, I use a custom extension method and type, loosely inspired by F#'s match expressions:
return answer
.Match(42, "It was 42!")
.Match(7, "Perfecttion!")
.Match(-1, () => throw new ArgumentException(...))
.DefaultTo("unknown!");I find that cleaner and more concise than big if/else or switch blocks.
My Messianic Jewish blog: Kineti L'Tziyon My software blog: Debugger.Break() Judah Himango
-
I tend to collapse if/else statements. If there's just a single if/else, I'll use the (what's the name of this?) operator:
return foo ? "it was foo" : "it was not!";
For big if/elses, or switch statements, I use a custom extension method and type, loosely inspired by F#'s match expressions:
return answer
.Match(42, "It was 42!")
.Match(7, "Perfecttion!")
.Match(-1, () => throw new ArgumentException(...))
.DefaultTo("unknown!");I find that cleaner and more concise than big if/else or switch blocks.
My Messianic Jewish blog: Kineti L'Tziyon My software blog: Debugger.Break() Judah Himango
Judah Himango wrote:
I use a custom extension method and type, inspired by F#'s match expressions:
Ooh, that's sweet! I remember encountering this a while ago, but I'm glad you reminded me. Marc
-
I tend to collapse if/else statements. If there's just a single if/else, I'll use the (what's the name of this?) operator:
return foo ? "it was foo" : "it was not!";
For big if/elses, or switch statements, I use a custom extension method and type, loosely inspired by F#'s match expressions:
return answer
.Match(42, "It was 42!")
.Match(7, "Perfecttion!")
.Match(-1, () => throw new ArgumentException(...))
.DefaultTo("unknown!");I find that cleaner and more concise than big if/else or switch blocks.
My Messianic Jewish blog: Kineti L'Tziyon My software blog: Debugger.Break() Judah Himango
That is sweet.
Curvature of the Mind now with 3D
-
From Mehdi's question about "is less lines of code better" -- Question: How do you go about writing fewer lines of code (omitting removing line breaks as an answer) ? One obvious answer is, replace redundant code with a function. Another possible answer is, using Linq to replace for-next loops (funny how we [well, I do] still call them for-next loops) One other answer to that comes to mind is using OOP to eliminate "if" statements regarding type. Anyways, that's my question--if you really want to achieve fewer lines of code but the same behavior, what really are good practices? Marc
Remove functionality that seemed a great idea at the time but simply results in an unused feature and a ton of code to support the plumbing.
cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP
-
Ahh yes. For me, there has to be more than two lines of code to make it worth it, and then you have to consider th4 amount of stack and heap manipulation involved in making the function call (if it's "redundant", it probably requires some sort of poarameter for the function, thus increasing stack usage) versus just leaving the code where it is. Like everything else in coding, there are trade-offs.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
-----
You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997you can eliminate the stack and heap overhead with function inlining.
If your actions inspire others to dream more, learn more, do more and become more, you are a leader." - John Quincy Adams
You must accept one of two basic premises: Either we are alone in the universe, or we are not alone in the universe. And either way, the implications are staggering” - Wernher von Braun