From: <ph...@lo...> - 2014-09-10 21:20:20
|
There are many places where we could increase abstraction and I agree there is a happy medium/compromise position, we have quite a bit and there is a lot of scope for more. Of course Andrew and Ricard both have valid ideas. I really don't want bugs introduced for the sake of abstraction. Can we focus on new stuff? Phil On 2014-09-10 12:26, gilberto dos santos alves wrote: > +1 from me. > > 2014-09-09 21:51 GMT-03:00 Pak Ricard <pak...@gm...>: > >> Hi all: >> >> Following on Andrew's POV, we calculate the demand of one item 10 >> times in webERP and it takes 94 lines of code (if I'm not wrong). >> >> I think it is a much readable script if we have a function called >> CalculateDemandForItem ($StockId, $Location) and we encapsulate the >> 94 lines there. >> >> Sharing Andrew's <OPINION>, we save 9 * 94 lines of repeated code >> and we get a much readable script. >> >> There are dozens of similar situations in webERP, where I think we >> can improve readability and reduce the chances of bugs, as 1 fix >> fixes all. >> >> Hope we can find a reasonable point where all feel comfortable. >> >> Regards, >> Ricard >> >> 2014-09-09 3:48 GMT+08:00 Andrew Galuski <aga...@re...>: >> >> 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 [1] >> >> 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/ [2] >> >> _______________________________________________ >> >> Web-erp-developers mailing list >> >> Web...@li... >> >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers [3] >> >> > ------------------------------------------------------------------------------ >> Want excitement? >> Manually upgrade your production database. >> When you want reliability, choose Perforce >> Perforce version control. Predictably reliable. >> > http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk >> [4] >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers [3] > > ------------------------------------------------------------------------------ > Want excitement? > Manually upgrade your production database. > When you want reliability, choose Perforce > Perforce version control. Predictably reliable. > > http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk > [4] > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers [3] > > -- > gilberto dos santos alves > +55.11.98646-5049 > sao paulo - sp - brasil > > > > Links: > ------ > [1] http://www.logicworks.co.nz > [2] http://tv.slashdot.org/ > [3] https://lists.sourceforge.net/lists/listinfo/web-erp-developers > [4] > http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk > > ------------------------------------------------------------------------------ > Want excitement? > Manually upgrade your production database. > When you want reliability, choose Perforce > Perforce version control. Predictably reliable. > http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers |