|
Well in that case if your PM is onside, just tell them they're wrong, that they need to go learn about the technologies used in the application they're maintaining, and direct them to the PM if they start an argument about it.
|
|
|
|
|
Part of working successfully as part of a team is consideration for others. If you're not able to calmly and logically persuade them to your point of you then I am afraid you will have to swim with the tide. Regardless of who is 'right' or 'wrong' or how much it costs for either party.
|
|
|
|
|
Well this is difficult in this case.
I am not hit by my team mate. But by some remote team who had a look at the source code and with which I can't talk!
I already asked them: "let's sit together and 'fix' the code" but... "there is no time"
|
|
|
|
|
It can take awhile to change people's long held views. But good luck
|
|
|
|
|
OK, how does your 1 statement knock out codeline look like?
Show, don't tell !
|
|
|
|
|
Maybe 20 lines of jQuery was bit exagerated..
But the latest cookie knockout extension I wrote is quite concise, expressive and helpful.
short version
<div data-bind="cookie: { name: 'visibleColumns', data: visibleColumns() }">...</div>
long version (where I inline visibleColumns() )
<div data-bind="cookie: { name: 'visibleColumns', data: tableOption.aoColumns.enumerable().where(function(x) { return x.koVisible; }).select(function(x) { return x.koVisible; }).array() }">...</div>
I have a datatable extension, which take some standart datatable option, and some extra option like an (optional) 'koVisible ' property of type ko.observable<boolean>() (TypeScript syntax), to automatically hide / show columns.
This statement collect all the koVisible flags (on columns which have it), initialize them from a cookie if it exists and automatically update the cookie if any of them changes.
modified 2-Jun-14 9:17am.
|
|
|
|
|
How about:
Keeping It So Simple Makes Your Application Run with Superior Efficiency
Or, for the 'merkins:
Keeping It So Simple Makes Your Application Stable and Solid
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Think I can use the acronyms!?!
|
|
|
|
|
Keep fighting the good fight. If you are using knockout I assume you are also doing MVVM. MVVM is all about maintainability and simplicity, not to mention KISS/SOLID.
A couple points for you:
A) Just because you don't understand some code doesn't make it bad.
B) Those opposing MVVM and enabling frameworks in todays development world are analogous to people in the year 2000 something still calling OO a fad.
Regardless implementing a thoroughly tested and production ready framework over writing a bunch of roll your own code is usually going to yield less bugs and more bang for the clients buck.
|
|
|
|
|
Rowdy Raider wrote: Regardless implementing a thoroughly tested and production ready framework over writing a bunch of roll your own code is usually going to yield less bugs and more bang for the clients buck.
That is a good repartee! :P
|
|
|
|
|
Rowdy Raider wrote: Keep fighting the good fight. If you are using knockout I assume you are also doing MVVM. MVVM is all about maintainability and simplicity, not to mention KISS/SOLID.
Indeed!!!
|
|
|
|
|
Simplicity is always in the eyes of the observer.
The question is which eyes to care ?
Maybe you can improve the eyes of the maintenance team by training them. But it can only work if they agree to. (Lot's of developers hold grudge against MS will despise knockout and typescript 'just because')
On the other hand you can just ignore them. You are the one getting things done, and stackholder pushing your project don't care about whether or not maintenance team can take it.
The root of the problem is that HR department indirectly pushes "KISS for everybody" so they can hire more easily. (Which is reflected by the level of your maintenance team, that in your case is clearly incompetent for .NET development)
But, at the end of the day, you are the one making another's life better, and in the position to dictate what to use.
Final answer : train them, and if they refuse to be trained, ignore them and get stuff done.
|
|
|
|
|
Super Lloyd wrote: Hey it's true, they look at it dumbfounded and say "it's unmaintainable" so the average programmer can't fix it, indeed!
If the average programmer can't maintain it then it isn't maintainable. The only subjective part of that is whether the average programmer can maintain it.
Super Lloyd wrote: What I sell to the customer, is not just humanely doable in a reasonable time frame with just jQuery.
Why are you selling to a customer?
And why is maintenance not part of the sale?
Super Lloyd wrote: Very tiresome!
Myself I consider it a compliment when someone says that my code is easy to maintain. That is because I realize (as been proven by numerous studies) that the initial cost to develop something can be anywhere from 50% to 1% of the overall cost to maintain it. And being a professional working in a business (not a hobbyist) and one who likes to be paid I keep the primary goal of a business, to make money, always foremost in my mind. Thus I at least make the attempt to help keep maintenance costs down.
|
|
|
|
|
jschell wrote: Why are you selling to a customer?
And why is maintenance not part of the sale?
Let's say I sold Facebook. It's not Facebook of course, but it is a little bit more dynamic. Things are popping here and there, there are multiple dynamic view of the same data. Mmmm... in an other word it's a SPA (single page application)
Now I just can't develop a SPA with JUST jQuery. At the very least I would need to write a library of utilities. They are against (home made) libraries. If my code is not all on the page is too complicated. And this... is... just... beyond... my capabilities...
|
|
|
|
|
For me Keeping It Simple means that anyone in the team is able to understand, maintain and modify what i'm doing without too much trouble (or too much asking), and/or that it have less probability to go wrong, from this point of view, using one line of Knockout would be simpler, because it could fail less often than 20 lines of hand rolled jQuery that do DOM manipulation, and the maintenance team just need to learn a new tool to be able to maintain it!
|
|
|
|
|
There is also the fact I just CAN'T develop what the customer now want (my prototype, a nice SPA (Single Page App) with JUST jQuery and NO home made library.
|
|
|
|
|
The problem isn't KISS. The problem is people who are not keeping their skills up to date. If they were always keeping up to date, they would take some time to evaluate the issue and see that things have improved and they can avoid all those lines.
It is a problem to maintain because it looks like magic to them and they don't know the incantation. Chances are, they program by finding some code that does similar and modifying it as best they can. And there is a better than even chance these people don't really get what is happening there either.
|
|
|
|
|
You can routinely replace 20 lines of jQuery with one line KonockoutJS?
Interesting.
modified 20-Oct-19 21:02pm.
|
|
|
|
|
It's a bit of an exaggeration...
with one statement you create a UI which automatically change when your data change and at the end... you got your data just there, up to date... no need to reconstruct with some data attribute... no need for jQuery create dom or read value or wire update event.... saves a lot!
like doing WPF the WinForm way (use event on each property change and create control manually when needed) (this is jQuery)
versus doing it the MVVM way...
|
|
|
|
|
They say beauty is in the eye of the beholder. I'd say KISS is in the same eye. When you first encounter it, a lambda expression is anything BUT simple. I can see how, as you become more familiar with it, lambda can become beautiful. I'm not there yet, maybe I'm too old a dog. The simpler the code, the less likely to be buggy. So, a lambda statement should be less buggy. Handing it to someone who doesn't know lambda to maintain is a recipe for disaster.
Right now I'm reading 14 page printouts of SQL code without a single line of documentation on what it is trying to do, several to provide data to it, but no documentation on what it should return and it is all self-contained string manipulation. I think I'd rather be struggling with 80 characters of non-understandable code.
|
|
|
|
|
My 10 year old nephew is currently on holiday in Florida.
When handed a twinkie he turned to his mother and said "What excuse for a croissant are these?"
Bless!
---------------------------------
Obscurum per obscurius.
Ad astra per alas porci.
Quidquid latine dictum sit, altum videtur .
|
|
|
|
|
Aah, they grow up so fast. One day a gurgling baby, the next a pretentious a***.
|
|
|
|
|
Oh man, what I wouldn't give to not have a rule against feeding trolls (not you, the OP).
Software Zen: delete this;
|
|
|
|
|
Dave may be many things, but a Troll?
|
|
|
|
|
You're safe, being from the U.K. You wouldn't ask that question if you were a CP member from the U.S.
Software Zen: delete this;
|
|
|
|