From: Andrew G. <aga...@re...> - 2014-09-08 20:04:38
|
Would it be any different if the code was copied into an include instead of a function and we replaced the lines of code with include('includes/tablerow.inc'); This is what we do with header.inc and footer.inc. We don't repeat that code in every script (Thank goodness). <OPINION> I think a minimal level of abstraction would make changes less daunting. If I know I can concentrate on business logic and not formatting I would be willing to make more enhancements. Enhancements might also be done more quickly, tested faster and be more stable. An example is a recent change to introduce location based security to WebERP that I submitted. I had seen in the forums multiple times people looking to restrict access to locations within a particular business function. Example Warehouse worked can see inventory levels at Location A but not Location B. In order to make this change I had to modify every script where there was a location selection list. I had to modify the code as follows: BEFORE: $sql = "SELECT loccode, locationname FROM locations AFTER: $sql = "SELECT locations.loccode, locationname, canview FROM locations INNER JOIN locationusers ON locationusers.loccode=locations.loccode AND locationusers.userid='" . $_SESSION['UserID'] . "' AND locationusers.canview=1" That line alone appears like 50+ times in 50+ files. The same code to build the <select> takes around 15 lines of code before and after that SQL that is nearly identical in every script. If all of that code was in an include file or in a function I could have added a feature people requested in less than 1 day instead of 5 days. And testing it would have been a lot faster. If the logic is in 1 place I can test my change in < 5 screens be confident it is working. If I have to change 50 scripts I need to test all 50 scripts...Because even the smallest typo can make a script break. Abstraction and reduced code can be a good thing </OPINION> Best Regards, Andrew From: Phil Daintree [mailto:ph...@lo...] Sent: Tuesday, September 02, 2014 1:25 AM To: webERP Developers Subject: Re: [WebERP-developers] TableRows() Ricard, There are many many ways to reduce the amount of code in webERP - we really could take loads out... but the sacrifice is readability - I don't believe we would gain speed/efficiency. If we made the tables a class as per Jonathan's idea we could take out buckets of code - this would be the obvious extension of the I don't want to change the code to increase abstraction ever - or code that does the same thing a different way that could potentially introduce new bugs. Nope - the effort should be not to reinvent what we have, but to add functionality using the same blocks and structure as we have. I believe you learnt php from webERP - and are a living example as to why the phil-osophy behind webERP's development style is one of it's greatest strengths... Phil Phil Daintree Logic Works Ltd - +64 (0)275 567890 http://www.logicworks.co.nz On 02/09/14 13:12, Pak Ricard wrote: Hi Phil: I saw with satisfaction the commit 6859 where Rafael used the TableRows() functions in some scripts. Now, I saw this change was reverted, and I can't see but good things about it (probably i'm missing something). These same 6 lines are repeated over and over webERP (probably over 100 times), so if we get a change to reduce the number of lines and still get a readable script, I think it's worth it. Well just my 2 cents. I would love to know your POV (and any other developer's) about it :-) Regards, Ricard ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ Web-erp-developers mailing list Web...@li...<mailto:Web...@li...> https://lists.sourceforge.net/lists/listinfo/web-erp-developers |